Part of Phase 1 — Core skeleton (tasks.md Task 1.2).
Summary
Author the complete public type surface in @tecode/api — the only package extensions may import — and enforce the layering rule with ESLint.
Details
- Types:
Manifest, ExtensionContext, Disposable, Uri, Position / Range / TextEdit / Selection (0-based, LSP-compatible), the Document interface, event types, and the namespace interfaces for commands, workspace, window, editor, ui, config, context, languages, themes. UiColorKey union (~40 VS Code color names) and CaptureName union (tree-sitter capture names incl. dotted refinements).- Export
API_VERSION = "1.0" (major.minor). @tecode/api has an empty dependencies field and contains no runtime code beyond constants.- Add ESLint
no-restricted-imports forbidding @tecode/core imports outside packages/cli.
Completion requirements
References
- requirements.md: Req 1.3, 3.2, 3.3, 7.2, 10.1
- design.md: §2, §12
Dependencies
Blocked by: 1.1 (#2)
Part of Phase 1 — Core skeleton (tasks.md Task 1.2).
Summary
Author the complete public type surface in
@tecode/api— the only package extensions may import — and enforce the layering rule with ESLint.Details
Manifest,ExtensionContext,Disposable,Uri,Position/Range/TextEdit/Selection(0-based, LSP-compatible), theDocumentinterface, event types, and the namespace interfaces forcommands,workspace,window,editor,ui,config,context,languages,themes.UiColorKeyunion (~40 VS Code color names) andCaptureNameunion (tree-sitter capture names incl. dotted refinements).API_VERSION = "1.0"(major.minor).@tecode/apihas an emptydependenciesfield and contains no runtime code beyond constants.no-restricted-importsforbidding@tecode/coreimports outsidepackages/cli.Completion requirements
@tecode/api@tecode/apihas zero dependencies and no runtime logic (types + constants only)API_VERSIONexported and documented (compat rule: same major, host minor >= requested)@tecode/coreimport frombuiltin(verified by a fixture or lint test)bun testand lint pass workspace-wideReferences
Dependencies
Blocked by: 1.1 (#2)