@inharness-ai/claude4spec 1.0.21 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/c4s-brief-implementer/SKILL.md +120 -53
- package/CHANGELOG.md +13 -0
- package/dist/bin/c4s/commands/agent.d.ts +18 -0
- package/dist/bin/c4s/commands/agent.js +102 -0
- package/dist/bin/c4s/commands/agent.js.map +1 -0
- package/dist/bin/c4s/commands/ask.d.ts +9 -8
- package/dist/bin/c4s/commands/ask.js +23 -31
- package/dist/bin/c4s/commands/ask.js.map +1 -1
- package/dist/bin/c4s/commands/catalog.d.ts +1 -1
- package/dist/bin/c4s/commands/catalog.js +2 -2
- package/dist/bin/c4s/commands/catalog.js.map +1 -1
- package/dist/bin/c4s/commands/describe.d.ts +1 -1
- package/dist/bin/c4s/commands/describe.js +2 -2
- package/dist/bin/c4s/commands/describe.js.map +1 -1
- package/dist/bin/c4s/commands/detail.d.ts +1 -1
- package/dist/bin/c4s/commands/detail.js +2 -2
- package/dist/bin/c4s/commands/detail.js.map +1 -1
- package/dist/bin/c4s/commands/element-list.d.ts +1 -1
- package/dist/bin/c4s/commands/element-list.js +2 -2
- package/dist/bin/c4s/commands/element-list.js.map +1 -1
- package/dist/bin/c4s/commands/find-references.js +1 -1
- package/dist/bin/c4s/commands/find-references.js.map +1 -1
- package/dist/bin/c4s/commands/inline-mention.d.ts +1 -1
- package/dist/bin/c4s/commands/inline-mention.js +2 -2
- package/dist/bin/c4s/commands/inline-mention.js.map +1 -1
- package/dist/bin/c4s/commands/list-slugs.d.ts +1 -1
- package/dist/bin/c4s/commands/list-slugs.js +2 -2
- package/dist/bin/c4s/commands/list-slugs.js.map +1 -1
- package/dist/bin/c4s/commands/list-tags.d.ts +1 -1
- package/dist/bin/c4s/commands/list-tags.js +2 -2
- package/dist/bin/c4s/commands/list-tags.js.map +1 -1
- package/dist/bin/c4s/commands/plugins.d.ts +9 -0
- package/dist/bin/c4s/commands/plugins.js +81 -0
- package/dist/bin/c4s/commands/plugins.js.map +1 -0
- package/dist/bin/c4s/commands/resolve.d.ts +1 -1
- package/dist/bin/c4s/commands/resolve.js +2 -2
- package/dist/bin/c4s/commands/resolve.js.map +1 -1
- package/dist/bin/c4s/commands/single-element.d.ts +1 -1
- package/dist/bin/c4s/commands/single-element.js +2 -2
- package/dist/bin/c4s/commands/single-element.js.map +1 -1
- package/dist/bin/c4s/commands/tagged-list-mixed.d.ts +1 -1
- package/dist/bin/c4s/commands/tagged-list-mixed.js +2 -2
- package/dist/bin/c4s/commands/tagged-list-mixed.js.map +1 -1
- package/dist/bin/c4s/commands/tagged-list.d.ts +1 -1
- package/dist/bin/c4s/commands/tagged-list.js +2 -2
- package/dist/bin/c4s/commands/tagged-list.js.map +1 -1
- package/dist/bin/c4s/context.d.ts +3 -3
- package/dist/bin/c4s/context.js +7 -4
- package/dist/bin/c4s/context.js.map +1 -1
- package/dist/bin/c4s/errors.d.ts +1 -1
- package/dist/bin/c4s/errors.js.map +1 -1
- package/dist/bin/c4s-mcp.js +6 -2
- package/dist/bin/c4s-mcp.js.map +1 -1
- package/dist/bin/c4s.js +19 -4
- package/dist/bin/c4s.js.map +1 -1
- package/dist/bin/gitignore.js +7 -11
- package/dist/bin/gitignore.js.map +1 -1
- package/dist/client/assets/{arc-Coa9fbDO.js → arc-C9oTB3b1.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-VJZcRMEN.js → architectureDiagram-3BPJPVTR-Bno5ViqK.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-C7dU2lW1.js → blockDiagram-GPEHLZMM-CJYBoeWQ.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CG_BBm_5.js → c4Diagram-AAUBKEIU-DaaqWE6s.js} +1 -1
- package/dist/client/assets/channel-Cei_E79M.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BnS95YpK.js → chunk-2J33WTMH-P_I0OPMy.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-COr8w3X3.js → chunk-4BX2VUAB-CCySMlh5.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CxrIbZhB.js → chunk-55IACEB6-CEUyqKGF.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-DRchPPRe.js → chunk-727SXJPM-CoTSYOVz.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-_SfN7mED.js → chunk-AQP2D5EJ-DB0nMxPr.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-p2tIiP1D.js → chunk-FMBD7UC4-PG3m6-_a.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-B1mbl2hP.js → chunk-ND2GUHAM-CBNk6IaV.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DBUpeqvS.js → chunk-QZHKN3VN-CLFa0WvN.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DUe_fAto.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DUe_fAto.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BBsY5aKD.js → cose-bilkent-S5V4N54A-BDwDDxHN.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-b-vu4RC9.js → dagre-BM42HDAG-DR-1e8N5.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-j-DW9qSf.js → diagram-2AECGRRQ-C-tHgBWt.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-DHX_WYWQ.js → diagram-5GNKFQAL-uLmoKaJL.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DxdQok_M.js → diagram-KO2AKTUF-8Fd-xuOy.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-BbTIX5c1.js → diagram-LMA3HP47-C1gniWsn.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BQ9ODAlH.js → diagram-OG6HWLK6-BMWjZbeC.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-6lwAL1y9.js → erDiagram-TEJ5UH35-CIUO8hrR.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-ioSHb5-t.js → flowDiagram-I6XJVG4X-Ccw5YEf3.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CXFQp9Nj.js → ganttDiagram-6RSMTGT7-BAvlf8cY.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-C1pVD_NQ.js → gitGraphDiagram-PVQCEYII-ChCkdYar.js} +1 -1
- package/dist/client/assets/{index-JaAxQJXh.js → index-BotCWOKC.js} +1 -1
- package/dist/client/assets/index-CtdzGyqj.js +805 -0
- package/dist/client/assets/{index-hz5T_W2e.js → index-DtpKHGD1.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-C2Guev-g.js → infoDiagram-5YYISTIA-CZMGwNyB.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D3v8VBb2.js → ishikawaDiagram-YF4QCWOH-CubjZGk6.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-DX1AW_Ap.js → journeyDiagram-JHISSGLW-DzwOyVzB.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-CzXThvq2.js → kanban-definition-UN3LZRKU-CXznoTY9.js} +1 -1
- package/dist/client/assets/{linear-CVw4gl5i.js → linear-EDwTFRrU.js} +1 -1
- package/dist/client/assets/{mermaid.core-C29eoXRj.js → mermaid.core-Lae2097R.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DEEGVQVA.js → mindmap-definition-RKZ34NQL-DFjIW41g.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-Dme-VM6m.js → pieDiagram-4H26LBE5-CZDLR1jd.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CURFNo24.js → quadrantDiagram-W4KKPZXB-CTGDzbqp.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DxMZWXME.js → requirementDiagram-4Y6WPE33-CeH0NbMv.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BW64D4_P.js → sankeyDiagram-5OEKKPKP-B6ZTjurV.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BATRPm8Q.js → sequenceDiagram-3UESZ5HK-DcTRztVx.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-pgHVMnO3.js → stateDiagram-AJRCARHV-nUgRVZSA.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D9pJuQbI.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-qBxJZPWd.js → timeline-definition-PNZ67QCA-CXm5n4rV.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-BZJK9hqJ.js → vennDiagram-CIIHVFJN-EmNJBYNd.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-BobtgEXg.js → wardley-L42UT6IY-MLrlp8H-.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DuWfX_-P.js → wardleyDiagram-YWT4CUSO-5QoES25n.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-DCw1iURo.js → xychartDiagram-2RQKCTM6-CbDEQbY0.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/core/agent/run-agent.d.ts +61 -0
- package/dist/core/agent/run-agent.js +212 -0
- package/dist/core/agent/run-agent.js.map +1 -0
- package/dist/core/ask/run-ask.d.ts +1 -1
- package/dist/core/ask/run-ask.js +14 -5
- package/dist/core/ask/run-ask.js.map +1 -1
- package/dist/core/workspace/resolve.d.ts +2 -0
- package/dist/core/workspace/resolve.js +2 -1
- package/dist/core/workspace/resolve.js.map +1 -1
- package/dist/plugin-types/ambient.d.ts +30 -0
- package/dist/plugin-types/plugin-runtime.d.ts +172 -0
- package/dist/plugin-types/ui.d.ts +154 -0
- package/dist/server/config.d.ts +12 -0
- package/dist/server/config.js +26 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/core/plugin-host/__fixtures__/plugins.d.ts +14 -0
- package/dist/server/core/plugin-host/__fixtures__/plugins.js +56 -0
- package/dist/server/core/plugin-host/__fixtures__/plugins.js.map +1 -0
- package/dist/server/core/plugin-host/base-packages.d.ts +14 -0
- package/dist/server/core/plugin-host/base-packages.js +26 -0
- package/dist/server/core/plugin-host/base-packages.js.map +1 -0
- package/dist/server/core/plugin-host/cache-bust.d.ts +10 -0
- package/dist/server/core/plugin-host/cache-bust.js +21 -0
- package/dist/server/core/plugin-host/cache-bust.js.map +1 -0
- package/dist/server/core/plugin-host/cli-engine.d.ts +7 -2
- package/dist/server/core/plugin-host/cli-engine.js +11 -3
- package/dist/server/core/plugin-host/cli-engine.js.map +1 -1
- package/dist/server/core/plugin-host/cli-plugins.d.ts +23 -0
- package/dist/server/core/plugin-host/cli-plugins.js +49 -0
- package/dist/server/core/plugin-host/cli-plugins.js.map +1 -0
- package/dist/server/core/plugin-host/cross-cutting.d.ts +41 -4
- package/dist/server/core/plugin-host/cross-cutting.js +52 -4
- package/dist/server/core/plugin-host/cross-cutting.js.map +1 -1
- package/dist/server/core/plugin-host/frontend-assets.d.ts +100 -0
- package/dist/server/core/plugin-host/frontend-assets.js +262 -0
- package/dist/server/core/plugin-host/frontend-assets.js.map +1 -0
- package/dist/server/core/plugin-host/frontend-manifest.d.ts +33 -0
- package/dist/server/core/plugin-host/frontend-manifest.js +52 -0
- package/dist/server/core/plugin-host/frontend-manifest.js.map +1 -0
- package/dist/server/core/plugin-host/loader.d.ts +107 -0
- package/dist/server/core/plugin-host/loader.js +196 -0
- package/dist/server/core/plugin-host/loader.js.map +1 -0
- package/dist/server/core/plugin-host/manifest-adapter.d.ts +30 -0
- package/dist/server/core/plugin-host/manifest-adapter.js +119 -0
- package/dist/server/core/plugin-host/manifest-adapter.js.map +1 -0
- package/dist/server/core/plugin-host/overlay-loader.d.ts +60 -0
- package/dist/server/core/plugin-host/overlay-loader.js +243 -0
- package/dist/server/core/plugin-host/overlay-loader.js.map +1 -0
- package/dist/server/core/plugin-host/plugin-watcher.d.ts +41 -0
- package/dist/server/core/plugin-host/plugin-watcher.js +95 -0
- package/dist/server/core/plugin-host/plugin-watcher.js.map +1 -0
- package/dist/server/core/plugin-host/project-host.d.ts +8 -2
- package/dist/server/core/plugin-host/project-host.js +56 -6
- package/dist/server/core/plugin-host/project-host.js.map +1 -1
- package/dist/server/core/plugin-host/registry.d.ts +26 -2
- package/dist/server/core/plugin-host/registry.js +107 -2
- package/dist/server/core/plugin-host/registry.js.map +1 -1
- package/dist/server/core/plugin-host/runtime-shims.d.ts +26 -0
- package/dist/server/core/plugin-host/runtime-shims.js +96 -0
- package/dist/server/core/plugin-host/runtime-shims.js.map +1 -0
- package/dist/server/core/plugin-host/types.d.ts +105 -3
- package/dist/server/db/migrations/042_chat_thread_drop_context_type_check.sql +61 -0
- package/dist/server/external-skills/brief-implementer-template.d.ts +1 -1
- package/dist/server/external-skills/brief-implementer-template.js +5 -2
- package/dist/server/external-skills/brief-implementer-template.js.map +1 -1
- package/dist/server/external-skills/spec-reader-template.d.ts +1 -1
- package/dist/server/external-skills/spec-reader-template.js +14 -0
- package/dist/server/external-skills/spec-reader-template.js.map +1 -1
- package/dist/server/index.js +82 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/c4s-tools.d.ts +6 -1
- package/dist/server/mcp/c4s-tools.js +18 -13
- package/dist/server/mcp/c4s-tools.js.map +1 -1
- package/dist/server/plugin-runtime/index.d.ts +17 -0
- package/dist/server/plugin-runtime/index.js +16 -0
- package/dist/server/plugin-runtime/index.js.map +1 -0
- package/dist/server/plugin-runtime/ui.d.ts +15 -0
- package/dist/server/plugin-runtime/ui.js +15 -0
- package/dist/server/plugin-runtime/ui.js.map +1 -0
- package/dist/server/routes/agent-turn.d.ts +8 -1
- package/dist/server/routes/agent-turn.js +67 -39
- package/dist/server/routes/agent-turn.js.map +1 -1
- package/dist/server/routes/config.d.ts +8 -0
- package/dist/server/routes/config.js +41 -3
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/plugins.d.ts +43 -0
- package/dist/server/routes/plugins.js +93 -0
- package/dist/server/routes/plugins.js.map +1 -0
- package/dist/server/routes/threads.js +21 -3
- package/dist/server/routes/threads.js.map +1 -1
- package/dist/server/serialization/registerAll.d.ts +4 -0
- package/dist/server/serialization/registerAll.js +4 -2
- package/dist/server/serialization/registerAll.js.map +1 -1
- package/dist/server/services/chat-context.d.ts +34 -0
- package/dist/server/services/chat-context.js +58 -15
- package/dist/server/services/chat-context.js.map +1 -1
- package/dist/server/services/chat.d.ts +6 -0
- package/dist/server/services/chat.js +18 -2
- package/dist/server/services/chat.js.map +1 -1
- package/dist/server/services/entity-writer.d.ts +2 -3
- package/dist/server/services/entity-writer.js.map +1 -1
- package/dist/server/services/skill-registry.d.ts +31 -2
- package/dist/server/services/skill-registry.js +73 -1
- package/dist/server/services/skill-registry.js.map +1 -1
- package/dist/server/workspace/context-cache.d.ts +9 -0
- package/dist/server/workspace/context-cache.js +14 -0
- package/dist/server/workspace/context-cache.js.map +1 -1
- package/dist/server/workspace/project-context.d.ts +3 -0
- package/dist/server/workspace/project-context.js +106 -4
- package/dist/server/workspace/project-context.js.map +1 -1
- package/dist/server/workspace/registry.d.ts +28 -1
- package/dist/server/workspace/registry.js +57 -1
- package/dist/server/workspace/registry.js.map +1 -1
- package/dist/server/workspace/types.d.ts +15 -0
- package/dist/shared/entities.d.ts +4 -1
- package/dist/shared/entities.js.map +1 -1
- package/dist/shared/plugin-host/frontend-manifest.d.ts +56 -0
- package/dist/shared/plugin-host/frontend-manifest.js +89 -0
- package/dist/shared/plugin-host/frontend-manifest.js.map +1 -0
- package/dist/shared/plugin-host/host-api.d.ts +60 -0
- package/dist/shared/plugin-host/host-api.js +67 -0
- package/dist/shared/plugin-host/host-api.js.map +1 -0
- package/dist/shared/plugin-host/manifest.d.ts +194 -0
- package/dist/shared/plugin-host/manifest.js +52 -0
- package/dist/shared/plugin-host/manifest.js.map +1 -0
- package/dist/shared/plugin-host/ui-kit-surface.d.ts +22 -0
- package/dist/shared/plugin-host/ui-kit-surface.js +25 -0
- package/dist/shared/plugin-host/ui-kit-surface.js.map +1 -0
- package/dist/shared/types.d.ts +5 -0
- package/package.json +18 -3
- package/dist/client/assets/channel-D5gzBvo7.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CT-amIxa.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CT-amIxa.js +0 -1
- package/dist/client/assets/index-DyAnw7YN.js +0 -798
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-szm_LIuD.js +0 -1
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import type { ProjectRecord, WorkspaceRecord } from './types.js';
|
|
2
|
-
export declare const WORKSPACES_SCHEMA_VERSION =
|
|
2
|
+
export declare const WORKSPACES_SCHEMA_VERSION = 2;
|
|
3
3
|
export declare const DEFAULT_WORKSPACE_PORT = 4500;
|
|
4
|
+
/**
|
|
5
|
+
* M33: plugin packages built into claude4spec core deps — always present in
|
|
6
|
+
* every workspace regardless of the persisted `plugins[]`, trusted by virtue of
|
|
7
|
+
* installation (outside the workspace `trustProjectPlugins` gate) and loaded
|
|
8
|
+
* FIRST, before any workspace-declared plugin. `database-table` is the first
|
|
9
|
+
* preinstalled plugin: it stopped being an in-host built-in (6 core types remain
|
|
10
|
+
* in `registerAllPlugins`) and is now contributed by this package via the M33
|
|
11
|
+
* loader fan-out — default-active, so tables work identically out of the box.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PREDEFINED_PLUGINS: readonly string[];
|
|
14
|
+
/**
|
|
15
|
+
* Effective workspace plugin package set = predefined ∪ user-added, deduped,
|
|
16
|
+
* predefined first. This is what the M33 loader dynamic-imports at bootstrap.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolvePluginPackages(ws: Pick<WorkspaceRecord, 'plugins'>): string[];
|
|
4
19
|
/**
|
|
5
20
|
* Global registry root. `C4S_HOME` override exists for dev/E2E so a test run
|
|
6
21
|
* never touches the real `~/.claude4spec/`.
|
|
@@ -41,6 +56,18 @@ export declare class WorkspaceRegistry {
|
|
|
41
56
|
registerProject(ws: WorkspaceRecord, cwd: string): ProjectRecord;
|
|
42
57
|
removeProject(ws: WorkspaceRecord, id: string): boolean;
|
|
43
58
|
touchLastOpened(wsName: string, projectId?: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* M33 phase 2: read the machine-local plugin-trust decision for one project.
|
|
61
|
+
* `undefined` = undecided (the loader shows a trust prompt on first open).
|
|
62
|
+
*/
|
|
63
|
+
getProjectTrust(ws: WorkspaceRecord, id: string): boolean | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* M33 phase 2: persist the plugin-trust decision per `(workspace × project)`.
|
|
66
|
+
* Lives in `~/.claude4spec/workspaces.json`, NEVER in the repo. The caller is
|
|
67
|
+
* expected to trigger a `ProjectContext` rebuild so the overlay (un)loads
|
|
68
|
+
* without a process restart.
|
|
69
|
+
*/
|
|
70
|
+
setProjectTrust(ws: WorkspaceRecord, id: string, value: boolean): void;
|
|
44
71
|
/**
|
|
45
72
|
* Carry of config-v3 harvested values — first-wins: only fills the workspace
|
|
46
73
|
* when registry creation predated knowing them. A dropped port logs a warn.
|
|
@@ -2,10 +2,42 @@ import fs from 'node:fs';
|
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { projectIdForCwd } from './project-id.js';
|
|
5
|
-
|
|
5
|
+
// v2 (M33): WorkspaceRecord gains optional `plugins[]`. Legacy v1 records lack
|
|
6
|
+
// the field and read as predefined-only — no rewrite needed on read. NOTE: any
|
|
7
|
+
// mutation by a >=0.1.73 binary rewrites `$schemaVersion` to 2, after which an
|
|
8
|
+
// OLDER binary (max schema 1) refuses to open the file (read() forward-compat
|
|
9
|
+
// guard). Mixed-version use against one `~/.claude4spec/` is a one-way upgrade.
|
|
10
|
+
export const WORKSPACES_SCHEMA_VERSION = 2;
|
|
6
11
|
export const DEFAULT_WORKSPACE_PORT = 4500;
|
|
7
12
|
const DEFAULT_WORKSPACE_NAME = 'default';
|
|
8
13
|
const LOCK_STALE_MS = 5_000;
|
|
14
|
+
/**
|
|
15
|
+
* M33: plugin packages built into claude4spec core deps — always present in
|
|
16
|
+
* every workspace regardless of the persisted `plugins[]`, trusted by virtue of
|
|
17
|
+
* installation (outside the workspace `trustProjectPlugins` gate) and loaded
|
|
18
|
+
* FIRST, before any workspace-declared plugin. `database-table` is the first
|
|
19
|
+
* preinstalled plugin: it stopped being an in-host built-in (6 core types remain
|
|
20
|
+
* in `registerAllPlugins`) and is now contributed by this package via the M33
|
|
21
|
+
* loader fan-out — default-active, so tables work identically out of the box.
|
|
22
|
+
*/
|
|
23
|
+
export const PREDEFINED_PLUGINS = [
|
|
24
|
+
'@inharness-ai/c4s-plugin-simple-database-tables',
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Effective workspace plugin package set = predefined ∪ user-added, deduped,
|
|
28
|
+
* predefined first. This is what the M33 loader dynamic-imports at bootstrap.
|
|
29
|
+
*/
|
|
30
|
+
export function resolvePluginPackages(ws) {
|
|
31
|
+
const seen = new Set();
|
|
32
|
+
const out = [];
|
|
33
|
+
for (const pkg of [...PREDEFINED_PLUGINS, ...(ws.plugins ?? [])]) {
|
|
34
|
+
if (!seen.has(pkg)) {
|
|
35
|
+
seen.add(pkg);
|
|
36
|
+
out.push(pkg);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
9
41
|
/**
|
|
10
42
|
* Global registry root. `C4S_HOME` override exists for dev/E2E so a test run
|
|
11
43
|
* never touches the real `~/.claude4spec/`.
|
|
@@ -158,6 +190,30 @@ export class WorkspaceRegistry {
|
|
|
158
190
|
return null;
|
|
159
191
|
});
|
|
160
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* M33 phase 2: read the machine-local plugin-trust decision for one project.
|
|
195
|
+
* `undefined` = undecided (the loader shows a trust prompt on first open).
|
|
196
|
+
*/
|
|
197
|
+
getProjectTrust(ws, id) {
|
|
198
|
+
return this.getProject(ws, id)?.trustProjectPlugins;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* M33 phase 2: persist the plugin-trust decision per `(workspace × project)`.
|
|
202
|
+
* Lives in `~/.claude4spec/workspaces.json`, NEVER in the repo. The caller is
|
|
203
|
+
* expected to trigger a `ProjectContext` rebuild so the overlay (un)loads
|
|
204
|
+
* without a process restart.
|
|
205
|
+
*/
|
|
206
|
+
setProjectTrust(ws, id, value) {
|
|
207
|
+
this.withLock((data) => {
|
|
208
|
+
const target = data.workspaces.find((w) => w.name === ws.name);
|
|
209
|
+
if (!target)
|
|
210
|
+
return null;
|
|
211
|
+
const p = target.projects.find((x) => x.id === id);
|
|
212
|
+
if (p)
|
|
213
|
+
p.trustProjectPlugins = value;
|
|
214
|
+
return null;
|
|
215
|
+
});
|
|
216
|
+
}
|
|
161
217
|
/**
|
|
162
218
|
* Carry of config-v3 harvested values — first-wins: only fills the workspace
|
|
163
219
|
* when registry creation predated knowing them. A dropped port logs a warn.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/server/workspace/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/server/workspace/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,14 @@ export interface ProjectRecord {
|
|
|
13
13
|
addedAt: string;
|
|
14
14
|
/** ISO timestamp of the last SPA open / activation. */
|
|
15
15
|
lastOpened?: string;
|
|
16
|
+
/**
|
|
17
|
+
* M33 phase 2: machine-local trust decision for this project's committed
|
|
18
|
+
* `.claude4spec/plugins/` overlay, per `(workspace × project)`. Deliberately
|
|
19
|
+
* lives ONLY in `~/.claude4spec/`, NEVER in the repo — a cloned repo cannot
|
|
20
|
+
* self-authorize. `undefined` = undecided (prompt on first open); `true` =
|
|
21
|
+
* overlay loads; `false` = overlay refused.
|
|
22
|
+
*/
|
|
23
|
+
trustProjectPlugins?: boolean;
|
|
16
24
|
}
|
|
17
25
|
export interface WorkspaceRecord {
|
|
18
26
|
/** Identity. Path-safe (used as a directory segment under ~/.claude4spec/). */
|
|
@@ -23,6 +31,13 @@ export interface WorkspaceRecord {
|
|
|
23
31
|
/** ISO timestamp of the last server start for this workspace. */
|
|
24
32
|
lastOpened: string;
|
|
25
33
|
projects: ProjectRecord[];
|
|
34
|
+
/**
|
|
35
|
+
* M33: npm plugin package names loaded at process bootstrap, workspace-global
|
|
36
|
+
* (orthogonal to per-project `config.entities` activation). User-added entries
|
|
37
|
+
* only — predefined core packages are merged in at resolve time, not persisted.
|
|
38
|
+
* Absent on legacy records (schema < 2) = predefined-only.
|
|
39
|
+
*/
|
|
40
|
+
plugins?: string[];
|
|
26
41
|
}
|
|
27
42
|
export interface WorkspacesFile {
|
|
28
43
|
$schemaVersion: number;
|
|
@@ -601,8 +601,11 @@ export type ChatRole = 'user' | 'assistant' | 'tool_use' | 'tool_result' | 'user
|
|
|
601
601
|
* M23 'patch' = patch resolution thread — applies a patch's findings to the
|
|
602
602
|
* spec. Full spec-editing toolset; patch_path points to FS file under
|
|
603
603
|
* patchesDir; the patch content is injected into the system prompt.
|
|
604
|
+
* 0.1.79 'ask' = read-only peer-consult thread. Forced plan-mode every turn
|
|
605
|
+
* (READONLY_BUILTINS); answers without ever mutating its own spec. No
|
|
606
|
+
* brief_path/patch_path; created via POST /api/threads with context_type='ask'.
|
|
604
607
|
*/
|
|
605
|
-
export type ChatContextType = 'chat' | 'brief' | 'patch';
|
|
608
|
+
export type ChatContextType = 'chat' | 'brief' | 'patch' | 'ask';
|
|
606
609
|
export interface ChatThread {
|
|
607
610
|
id: string;
|
|
608
611
|
title: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/shared/entities.ts"],"names":[],"mappings":"AAsTA,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAU,CAAC;AAgJvE,qGAAqG;AACrG,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/shared/entities.ts"],"names":[],"mappings":"AAsTA,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAU,CAAC;AAgJvE,qGAAqG;AACrG,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAgd7C,sEAAsE;AACtE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM;IACN,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,cAAc;IACd,mBAAmB;CACX,CAAC;AAmGX;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM;IACN,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,YAAY;CACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M33 — frontend plugin loading contract ("Option B": import map + native ESM).
|
|
3
|
+
*
|
|
4
|
+
* The client fetches {@link FrontendManifestResponse} at boot, injects an
|
|
5
|
+
* import map (so plugin `import "react"` resolves to the host's singleton),
|
|
6
|
+
* injects each plugin's CSS, then `await import(entry)` per active plugin.
|
|
7
|
+
*
|
|
8
|
+
* Shared so the server builder and the client boot loader agree on the shape.
|
|
9
|
+
*/
|
|
10
|
+
/** One active plugin's frontend payload. */
|
|
11
|
+
export interface PluginFrontendEntry {
|
|
12
|
+
/** npm package name. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** plugin semver. */
|
|
15
|
+
version: string;
|
|
16
|
+
/** ESM URL of the plugin's frontend entry, served as native ESM. */
|
|
17
|
+
entry: string;
|
|
18
|
+
/** Optional precompiled CSS URL for this plugin. */
|
|
19
|
+
css?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Response of `GET /api/plugins/frontend-manifest`. */
|
|
22
|
+
export interface FrontendManifestResponse {
|
|
23
|
+
/** Host semver the client compares against (major-mismatch omits a plugin). */
|
|
24
|
+
hostApiVersion: string;
|
|
25
|
+
/** Bare specifier → ESM URL. Externalizes shared peers to host bundle URLs. */
|
|
26
|
+
importMap: Record<string, string>;
|
|
27
|
+
/** Active plugins to load. Empty (no plugin packages shipped yet). */
|
|
28
|
+
plugins: PluginFrontendEntry[];
|
|
29
|
+
/** Optional host-level precompiled CSS URLs to inject (order preserved). */
|
|
30
|
+
css?: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Bare specifiers the import map externalizes to host-served shim ESM modules.
|
|
34
|
+
* Each resolves to `/api/plugins/runtime/<peer>.js`, which re-exports the host's
|
|
35
|
+
* live singleton from `window.__c4s_shared`. Keeping the list here lets the
|
|
36
|
+
* server builder and the client publisher stay in lockstep.
|
|
37
|
+
*/
|
|
38
|
+
export declare const SHARED_PEER_SPECIFIERS: readonly ["react", "react/jsx-runtime", "react/jsx-dev-runtime", "react-dom", "react-dom/client", "@tiptap/core", "@tanstack/react-query", "@tanstack/react-router", "@c4s/plugin-runtime", "@c4s/plugin-runtime/ui"];
|
|
39
|
+
export type SharedPeerSpecifier = (typeof SHARED_PEER_SPECIFIERS)[number];
|
|
40
|
+
/**
|
|
41
|
+
* The value exports of `@c4s/plugin-runtime` (frontend facade), the one peer the
|
|
42
|
+
* server can't introspect by importing (it's a browser module). The runtime
|
|
43
|
+
* shim generator emits these names; a parity test asserts they match the actual
|
|
44
|
+
* module so this list can't silently drift. Keep in sync with
|
|
45
|
+
* `src/client/runtime/plugin-runtime.ts` value exports.
|
|
46
|
+
*/
|
|
47
|
+
export declare const PLUGIN_RUNTIME_EXPORT_NAMES: readonly ["clientPluginHost", "registerFrontendModule", "queryClient", "editorBridge", "registerExtensionReferenceType", "HOST_API_VERSION"];
|
|
48
|
+
/**
|
|
49
|
+
* The VALUE exports of `@c4s/plugin-runtime/ui` (Host UI Kit catalog, M34/L12) —
|
|
50
|
+
* a browser module the server can't introspect, same as the main facade above.
|
|
51
|
+
* The runtime shim emits these names; a parity test asserts they match the
|
|
52
|
+
* actual module so this list can't silently drift. Keep in sync with
|
|
53
|
+
* `src/client/runtime/plugin-runtime-ui.ts` (→ `client/host-ui-kit/index.ts`)
|
|
54
|
+
* value exports. Type-only exports are erased at runtime and excluded here.
|
|
55
|
+
*/
|
|
56
|
+
export declare const PLUGIN_RUNTIME_UI_EXPORT_NAMES: readonly ["EntityListHeader", "DetailPanelShell", "FieldRow", "FieldGrid", "EntityListLayout", "Pagination", "EmptyState", "TagFilterBar", "EntityListRow", "ActionButton", "Badge", "LoadingState", "FormField", "InlineEditField", "useHostTokens", "HOST_TOKEN_NAMES", "readHostTokens", "UI_KIT_CATALOG", "STABLE_UI_KIT_COMPONENTS"];
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M33 — frontend plugin loading contract ("Option B": import map + native ESM).
|
|
3
|
+
*
|
|
4
|
+
* The client fetches {@link FrontendManifestResponse} at boot, injects an
|
|
5
|
+
* import map (so plugin `import "react"` resolves to the host's singleton),
|
|
6
|
+
* injects each plugin's CSS, then `await import(entry)` per active plugin.
|
|
7
|
+
*
|
|
8
|
+
* Shared so the server builder and the client boot loader agree on the shape.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Bare specifiers the import map externalizes to host-served shim ESM modules.
|
|
12
|
+
* Each resolves to `/api/plugins/runtime/<peer>.js`, which re-exports the host's
|
|
13
|
+
* live singleton from `window.__c4s_shared`. Keeping the list here lets the
|
|
14
|
+
* server builder and the client publisher stay in lockstep.
|
|
15
|
+
*/
|
|
16
|
+
export const SHARED_PEER_SPECIFIERS = [
|
|
17
|
+
'react',
|
|
18
|
+
// The automatic JSX runtime subpaths a plugin's `dist/frontend.js` emits when
|
|
19
|
+
// compiled with `jsx: 'react-jsx'` (`import { jsx, jsxs } from "react/jsx-runtime"`,
|
|
20
|
+
// dev builds also `jsxDEV` from `react/jsx-dev-runtime`). These are SEPARATE bare
|
|
21
|
+
// subpaths not covered by the `react` entry, so they need their own import-map
|
|
22
|
+
// entries — otherwise the browser can't resolve them and the whole plugin module
|
|
23
|
+
// fails to load. Sharing them keeps the plugin on the host's single React
|
|
24
|
+
// reconciler (L11 invariant) instead of bundling a second copy.
|
|
25
|
+
'react/jsx-runtime',
|
|
26
|
+
'react/jsx-dev-runtime',
|
|
27
|
+
'react-dom',
|
|
28
|
+
'react-dom/client',
|
|
29
|
+
'@tiptap/core',
|
|
30
|
+
'@tanstack/react-query',
|
|
31
|
+
// M33 phase 3: the router is a SHARED library peer (one instance via the import
|
|
32
|
+
// map) so a plugin's `createRoute({ getParentRoute })` and the host's single
|
|
33
|
+
// TanStack Router operate on the SAME route-tree types — NOT a live singleton
|
|
34
|
+
// re-exported through `@c4s/plugin-runtime`.
|
|
35
|
+
'@tanstack/react-router',
|
|
36
|
+
'@c4s/plugin-runtime',
|
|
37
|
+
'@c4s/plugin-runtime/ui',
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* The value exports of `@c4s/plugin-runtime` (frontend facade), the one peer the
|
|
41
|
+
* server can't introspect by importing (it's a browser module). The runtime
|
|
42
|
+
* shim generator emits these names; a parity test asserts they match the actual
|
|
43
|
+
* module so this list can't silently drift. Keep in sync with
|
|
44
|
+
* `src/client/runtime/plugin-runtime.ts` value exports.
|
|
45
|
+
*/
|
|
46
|
+
export const PLUGIN_RUNTIME_EXPORT_NAMES = [
|
|
47
|
+
'clientPluginHost',
|
|
48
|
+
'registerFrontendModule',
|
|
49
|
+
'queryClient',
|
|
50
|
+
'editorBridge',
|
|
51
|
+
'registerExtensionReferenceType',
|
|
52
|
+
'HOST_API_VERSION',
|
|
53
|
+
];
|
|
54
|
+
/**
|
|
55
|
+
* The VALUE exports of `@c4s/plugin-runtime/ui` (Host UI Kit catalog, M34/L12) —
|
|
56
|
+
* a browser module the server can't introspect, same as the main facade above.
|
|
57
|
+
* The runtime shim emits these names; a parity test asserts they match the
|
|
58
|
+
* actual module so this list can't silently drift. Keep in sync with
|
|
59
|
+
* `src/client/runtime/plugin-runtime-ui.ts` (→ `client/host-ui-kit/index.ts`)
|
|
60
|
+
* value exports. Type-only exports are erased at runtime and excluded here.
|
|
61
|
+
*/
|
|
62
|
+
export const PLUGIN_RUNTIME_UI_EXPORT_NAMES = [
|
|
63
|
+
// Core (stable)
|
|
64
|
+
'EntityListHeader',
|
|
65
|
+
'DetailPanelShell',
|
|
66
|
+
'FieldRow',
|
|
67
|
+
'FieldGrid',
|
|
68
|
+
// List (experimental)
|
|
69
|
+
'EntityListLayout',
|
|
70
|
+
'Pagination',
|
|
71
|
+
'EmptyState',
|
|
72
|
+
'TagFilterBar',
|
|
73
|
+
'EntityListRow',
|
|
74
|
+
// Actions & states (experimental)
|
|
75
|
+
'ActionButton',
|
|
76
|
+
'Badge',
|
|
77
|
+
'LoadingState',
|
|
78
|
+
// Form (experimental)
|
|
79
|
+
'FormField',
|
|
80
|
+
'InlineEditField',
|
|
81
|
+
// Token bridge
|
|
82
|
+
'useHostTokens',
|
|
83
|
+
'HOST_TOKEN_NAMES',
|
|
84
|
+
'readHostTokens',
|
|
85
|
+
// Stability metadata
|
|
86
|
+
'UI_KIT_CATALOG',
|
|
87
|
+
'STABLE_UI_KIT_COMPONENTS',
|
|
88
|
+
];
|
|
89
|
+
//# sourceMappingURL=frontend-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend-manifest.js","sourceRoot":"","sources":["../../../src/shared/plugin-host/frontend-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0BH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO;IACP,8EAA8E;IAC9E,qFAAqF;IACrF,kFAAkF;IAClF,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAC1E,gEAAgE;IAChE,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,uBAAuB;IACvB,gFAAgF;IAChF,6EAA6E;IAC7E,8EAA8E;IAC9E,6CAA6C;IAC7C,wBAAwB;IACxB,qBAAqB;IACrB,wBAAwB;CAChB,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,kBAAkB;IAClB,wBAAwB;IACxB,aAAa;IACb,cAAc;IACd,gCAAgC;IAChC,kBAAkB;CACV,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,sBAAsB;IACtB,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,eAAe;IACf,kCAAkC;IAClC,cAAc;IACd,OAAO;IACP,cAAc;IACd,sBAAsB;IACtB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;IACrB,gBAAgB;IAChB,0BAA0B;CAClB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M33 — Host API versioning surface: the per-major changelog and the
|
|
3
|
+
* migration descriptors a plugin author needs when their package was built
|
|
4
|
+
* against an incompatible major.
|
|
5
|
+
*
|
|
6
|
+
* Versioning rule (mirrored in the manifest doc): additive same-major slots =
|
|
7
|
+
* minor bump; a breaking slot-shape change = major bump WITH a descriptor here
|
|
8
|
+
* and a deprecation window (a slot deprecated in major N may be removed only in
|
|
9
|
+
* N+1). `incompatible` (major mismatch) is distinct from `skipped` (an `engines`
|
|
10
|
+
* miss — an environment problem with no migration path).
|
|
11
|
+
*
|
|
12
|
+
* The surface now also covers the `stable` Host UI Kit components (M34/L12); a
|
|
13
|
+
* breaking prop-shape change there is a major bump with a `ui-prop-reshape`
|
|
14
|
+
* descriptor (see {@link VERSIONED_UI_KIT_COMPONENTS}).
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* The component prop contracts counted into the versioned `hostApiVersion`
|
|
18
|
+
* surface from the Host UI Kit (M34/L12): the `stable` (Core) tier ONLY. A
|
|
19
|
+
* breaking prop-shape change to one of these is a major bump carrying a
|
|
20
|
+
* `ui-prop-reshape` descriptor below (AC3). `experimental` kit components are
|
|
21
|
+
* exposed by `@c4s/plugin-runtime/ui` but excluded here — their props may change
|
|
22
|
+
* without a major and they are NOT gated at plugin load (AC4). Promoting an
|
|
23
|
+
* `experimental` component to `stable` adds it to {@link UI_KIT_STABLE_COMPONENTS}
|
|
24
|
+
* and thereby to this surface (AC5).
|
|
25
|
+
*/
|
|
26
|
+
export declare const VERSIONED_UI_KIT_COMPONENTS: readonly ["EntityListHeader", "DetailPanelShell", "FieldRow", "FieldGrid"];
|
|
27
|
+
/** One versioned change to the Host API contract between two adjacent majors. */
|
|
28
|
+
export interface HostApiMigration {
|
|
29
|
+
fromMajor: number;
|
|
30
|
+
toMajor: number;
|
|
31
|
+
/** The affected slot / surface, e.g. "onUnregister" or a `stable` kit component. */
|
|
32
|
+
slot: string;
|
|
33
|
+
/**
|
|
34
|
+
* `ui-prop-reshape` — a breaking prop-shape change to a `stable` Host UI Kit
|
|
35
|
+
* component (M34/L12). The others cover the manifest/contributes/editor
|
|
36
|
+
* surfaces.
|
|
37
|
+
*/
|
|
38
|
+
kind: 'slot-required' | 'field-rename' | 'contributes-reshape' | 'ui-prop-reshape';
|
|
39
|
+
/** Human-readable migration instruction. */
|
|
40
|
+
summary: string;
|
|
41
|
+
}
|
|
42
|
+
/** Migration path attached to an `incompatible` package record. */
|
|
43
|
+
export interface PluginMigrationInfo {
|
|
44
|
+
/** The Host API version to target after migrating. */
|
|
45
|
+
targetHostApiVersion: string;
|
|
46
|
+
/** Versioned descriptors of the shape changes between the plugin's major and the host's. */
|
|
47
|
+
migrations: HostApiMigration[];
|
|
48
|
+
/** Whether a compat-shim exists for the deprecated slot(s). */
|
|
49
|
+
shimAvailable: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** First numeric component of a semver RANGE (e.g. "^1.4.0" → 1, ">=2.5.0" → 2). */
|
|
52
|
+
export declare function rangeMajor(range: string): number | null;
|
|
53
|
+
/** Changelog entries spanning the majors between (inclusive of the boundary crossings). */
|
|
54
|
+
export declare function migrationsBetween(fromMajor: number, toMajor: number): HostApiMigration[];
|
|
55
|
+
/**
|
|
56
|
+
* Build the migration info for a plugin whose `hostApiVersion` RANGE targets a
|
|
57
|
+
* different major than the running host. Returns `null` when the majors match
|
|
58
|
+
* (no migration needed) or the range major is unparseable.
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildMigrationInfo(pluginRange: string): PluginMigrationInfo | null;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M33 — Host API versioning surface: the per-major changelog and the
|
|
3
|
+
* migration descriptors a plugin author needs when their package was built
|
|
4
|
+
* against an incompatible major.
|
|
5
|
+
*
|
|
6
|
+
* Versioning rule (mirrored in the manifest doc): additive same-major slots =
|
|
7
|
+
* minor bump; a breaking slot-shape change = major bump WITH a descriptor here
|
|
8
|
+
* and a deprecation window (a slot deprecated in major N may be removed only in
|
|
9
|
+
* N+1). `incompatible` (major mismatch) is distinct from `skipped` (an `engines`
|
|
10
|
+
* miss — an environment problem with no migration path).
|
|
11
|
+
*
|
|
12
|
+
* The surface now also covers the `stable` Host UI Kit components (M34/L12); a
|
|
13
|
+
* breaking prop-shape change there is a major bump with a `ui-prop-reshape`
|
|
14
|
+
* descriptor (see {@link VERSIONED_UI_KIT_COMPONENTS}).
|
|
15
|
+
*/
|
|
16
|
+
import { HOST_API_VERSION, parseMajor } from './manifest.js';
|
|
17
|
+
import { UI_KIT_STABLE_COMPONENTS } from './ui-kit-surface.js';
|
|
18
|
+
/**
|
|
19
|
+
* The component prop contracts counted into the versioned `hostApiVersion`
|
|
20
|
+
* surface from the Host UI Kit (M34/L12): the `stable` (Core) tier ONLY. A
|
|
21
|
+
* breaking prop-shape change to one of these is a major bump carrying a
|
|
22
|
+
* `ui-prop-reshape` descriptor below (AC3). `experimental` kit components are
|
|
23
|
+
* exposed by `@c4s/plugin-runtime/ui` but excluded here — their props may change
|
|
24
|
+
* without a major and they are NOT gated at plugin load (AC4). Promoting an
|
|
25
|
+
* `experimental` component to `stable` adds it to {@link UI_KIT_STABLE_COMPONENTS}
|
|
26
|
+
* and thereby to this surface (AC5).
|
|
27
|
+
*/
|
|
28
|
+
export const VERSIONED_UI_KIT_COMPONENTS = UI_KIT_STABLE_COMPONENTS;
|
|
29
|
+
/**
|
|
30
|
+
* The Host API changelog, one entry per breaking change at a major boundary.
|
|
31
|
+
* Empty at the `1.0.0` baseline — no major has been crossed yet. The first
|
|
32
|
+
* breaking slot-shape change will add an entry here (and bump the major).
|
|
33
|
+
*/
|
|
34
|
+
const HOST_API_CHANGELOG = [];
|
|
35
|
+
/** First numeric component of a semver RANGE (e.g. "^1.4.0" → 1, ">=2.5.0" → 2). */
|
|
36
|
+
export function rangeMajor(range) {
|
|
37
|
+
const m = /(\d+)/.exec(range);
|
|
38
|
+
if (!m)
|
|
39
|
+
return null;
|
|
40
|
+
const n = Number(m[1]);
|
|
41
|
+
return Number.isFinite(n) ? n : null;
|
|
42
|
+
}
|
|
43
|
+
/** Changelog entries spanning the majors between (inclusive of the boundary crossings). */
|
|
44
|
+
export function migrationsBetween(fromMajor, toMajor) {
|
|
45
|
+
const [lo, hi] = fromMajor <= toMajor ? [fromMajor, toMajor] : [toMajor, fromMajor];
|
|
46
|
+
return HOST_API_CHANGELOG.filter((m) => m.fromMajor >= lo && m.toMajor <= hi);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build the migration info for a plugin whose `hostApiVersion` RANGE targets a
|
|
50
|
+
* different major than the running host. Returns `null` when the majors match
|
|
51
|
+
* (no migration needed) or the range major is unparseable.
|
|
52
|
+
*/
|
|
53
|
+
export function buildMigrationInfo(pluginRange) {
|
|
54
|
+
const pluginMajor = rangeMajor(pluginRange);
|
|
55
|
+
const hostMajor = parseMajor(HOST_API_VERSION);
|
|
56
|
+
if (pluginMajor == null || hostMajor == null || pluginMajor === hostMajor)
|
|
57
|
+
return null;
|
|
58
|
+
const migrations = migrationsBetween(pluginMajor, hostMajor);
|
|
59
|
+
return {
|
|
60
|
+
targetHostApiVersion: HOST_API_VERSION,
|
|
61
|
+
migrations,
|
|
62
|
+
// No shim without descriptors, and a slot becoming required can never be
|
|
63
|
+
// shimmed (the author must implement it). Empty changelog ⇒ false.
|
|
64
|
+
shimAvailable: migrations.length > 0 && migrations.every((m) => m.kind !== 'slot-required'),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=host-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-api.js","sourceRoot":"","sources":["../../../src/shared/plugin-host/host-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AA4BpE;;;;GAIG;AACH,MAAM,kBAAkB,GAAuB,EAAE,CAAC;AAElD,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,OAAe;IAClE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpF,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,WAAW,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvF,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO;QACL,oBAAoB,EAAE,gBAAgB;QACtC,UAAU;QACV,yEAAyE;QACzE,mEAAmE;QACnE,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC;KAC5F,CAAC;AACJ,CAAC"}
|