@blxzer/cursor-trellis-core 0.4.1 → 0.4.3

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.
Files changed (93) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/task/adapter-middleware.d.ts +91 -0
  6. package/dist/task/adapter-middleware.d.ts.map +1 -0
  7. package/dist/task/adapter-middleware.js +384 -0
  8. package/dist/task/adapter-middleware.js.map +1 -0
  9. package/dist/task/contract-migrate.d.ts +29 -0
  10. package/dist/task/contract-migrate.d.ts.map +1 -0
  11. package/dist/task/contract-migrate.js +207 -0
  12. package/dist/task/contract-migrate.js.map +1 -0
  13. package/dist/task/full-quality.d.ts +89 -0
  14. package/dist/task/full-quality.d.ts.map +1 -0
  15. package/dist/task/full-quality.js +379 -0
  16. package/dist/task/full-quality.js.map +1 -0
  17. package/dist/task/index.d.ts +20 -0
  18. package/dist/task/index.d.ts.map +1 -1
  19. package/dist/task/index.js +10 -0
  20. package/dist/task/index.js.map +1 -1
  21. package/dist/task/kernel-cli.d.ts +44 -0
  22. package/dist/task/kernel-cli.d.ts.map +1 -0
  23. package/dist/task/kernel-cli.js +287 -0
  24. package/dist/task/kernel-cli.js.map +1 -0
  25. package/dist/task/kernel-contract.d.ts +113 -0
  26. package/dist/task/kernel-contract.d.ts.map +1 -0
  27. package/dist/task/kernel-contract.js +332 -0
  28. package/dist/task/kernel-contract.js.map +1 -0
  29. package/dist/task/kernel-store.d.ts +99 -0
  30. package/dist/task/kernel-store.d.ts.map +1 -0
  31. package/dist/task/kernel-store.js +735 -0
  32. package/dist/task/kernel-store.js.map +1 -0
  33. package/dist/task/lite-context-pack.d.ts +71 -0
  34. package/dist/task/lite-context-pack.d.ts.map +1 -0
  35. package/dist/task/lite-context-pack.js +175 -0
  36. package/dist/task/lite-context-pack.js.map +1 -0
  37. package/dist/task/ondemand-topology.d.ts +100 -0
  38. package/dist/task/ondemand-topology.d.ts.map +1 -0
  39. package/dist/task/ondemand-topology.js +418 -0
  40. package/dist/task/ondemand-topology.js.map +1 -0
  41. package/dist/task/p36-artifact-migrate.d.ts +61 -0
  42. package/dist/task/p36-artifact-migrate.d.ts.map +1 -0
  43. package/dist/task/p36-artifact-migrate.js +336 -0
  44. package/dist/task/p36-artifact-migrate.js.map +1 -0
  45. package/dist/task/p36-wave-c.d.ts +39 -0
  46. package/dist/task/p36-wave-c.d.ts.map +1 -0
  47. package/dist/task/p36-wave-c.js +100 -0
  48. package/dist/task/p36-wave-c.js.map +1 -0
  49. package/dist/task/records.d.ts +9 -0
  50. package/dist/task/records.d.ts.map +1 -1
  51. package/dist/task/records.js +11 -0
  52. package/dist/task/records.js.map +1 -1
  53. package/package.json +1 -6
  54. package/dist/rpc/broker/audit.d.ts +0 -16
  55. package/dist/rpc/broker/audit.d.ts.map +0 -1
  56. package/dist/rpc/broker/audit.js +0 -33
  57. package/dist/rpc/broker/audit.js.map +0 -1
  58. package/dist/rpc/broker/in-process.d.ts +0 -62
  59. package/dist/rpc/broker/in-process.d.ts.map +0 -1
  60. package/dist/rpc/broker/in-process.js +0 -490
  61. package/dist/rpc/broker/in-process.js.map +0 -1
  62. package/dist/rpc/broker/journal.d.ts +0 -11
  63. package/dist/rpc/broker/journal.d.ts.map +0 -1
  64. package/dist/rpc/broker/journal.js +0 -17
  65. package/dist/rpc/broker/journal.js.map +0 -1
  66. package/dist/rpc/contract/errors.d.ts +0 -18
  67. package/dist/rpc/contract/errors.d.ts.map +0 -1
  68. package/dist/rpc/contract/errors.js +0 -55
  69. package/dist/rpc/contract/errors.js.map +0 -1
  70. package/dist/rpc/contract/parse.d.ts +0 -9
  71. package/dist/rpc/contract/parse.d.ts.map +0 -1
  72. package/dist/rpc/contract/parse.js +0 -144
  73. package/dist/rpc/contract/parse.js.map +0 -1
  74. package/dist/rpc/contract/topics.d.ts +0 -11
  75. package/dist/rpc/contract/topics.d.ts.map +0 -1
  76. package/dist/rpc/contract/topics.js +0 -42
  77. package/dist/rpc/contract/topics.js.map +0 -1
  78. package/dist/rpc/contract/types.d.ts +0 -54
  79. package/dist/rpc/contract/types.d.ts.map +0 -1
  80. package/dist/rpc/contract/types.js +0 -39
  81. package/dist/rpc/contract/types.js.map +0 -1
  82. package/dist/rpc/index.d.ts +0 -10
  83. package/dist/rpc/index.d.ts.map +0 -1
  84. package/dist/rpc/index.js +0 -11
  85. package/dist/rpc/index.js.map +0 -1
  86. package/dist/rpc/transport/localhost-server.d.ts +0 -36
  87. package/dist/rpc/transport/localhost-server.d.ts.map +0 -1
  88. package/dist/rpc/transport/localhost-server.js +0 -275
  89. package/dist/rpc/transport/localhost-server.js.map +0 -1
  90. package/dist/rpc/transport/websocket.d.ts +0 -20
  91. package/dist/rpc/transport/websocket.d.ts.map +0 -1
  92. package/dist/rpc/transport/websocket.js +0 -156
  93. package/dist/rpc/transport/websocket.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from "./channel/index.js";
2
2
  export * from "./task/index.js";
3
- export * from "./rpc/index.js";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
- // Root barrel — re-exports the channel, task, and rpc public APIs so callers
1
+ // Root barrel — re-exports the channel and task public APIs so callers
2
2
  // can `import { ... } from "@blxzer/cursor-trellis-core"`. Sub-path
3
- // imports (`@blxzer/cursor-trellis-core/channel`, `/task`, `/rpc`) remain the
3
+ // imports (`@blxzer/cursor-trellis-core/channel`, `/task`) remain the
4
4
  // recommended form for tree-shake-friendly consumption.
5
5
  export * from "./channel/index.js";
6
6
  export * from "./task/index.js";
7
- export * from "./rpc/index.js";
8
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,oEAAoE;AACpE,8EAA8E;AAC9E,wDAAwD;AAExD,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,oEAAoE;AACpE,sEAAsE;AACtE,wDAAwD;AAExD,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Stage 6 Cursor Adapter + Middleware (P27 Middleware, P29 Adapter/Profile,
3
+ * P30 Stage 6).
4
+ *
5
+ * Pure helpers persisted through existing create extras / patch. Does not
6
+ * write Kernel store or task.json. Field names here are an implementation
7
+ * choice — not a frozen Manifest / Event ABI schema.
8
+ */
9
+ export declare const STAGE6_SOURCE = "stage6-adapter-middleware";
10
+ export declare const STAGE6_SCHEMA_VERSION: 1;
11
+ export declare const STAGE6_HOOK_EVENTS: readonly ["sessionStart", "preToolUse", "beforeSubmitPrompt", "beforeShellExecution", "afterShellExecution", "stop"];
12
+ export type Stage6HookEvent = (typeof STAGE6_HOOK_EVENTS)[number];
13
+ export declare const RETRIEVAL_INTENTS: readonly ["exact", "semantic", "structural", "external"];
14
+ export type RetrievalIntent = (typeof RETRIEVAL_INTENTS)[number];
15
+ export declare const DEFAULT_MIDDLEWARE_PROVIDERS: readonly ["smart-search"];
16
+ export declare const OPTIONAL_CODE_INTEL_PROVIDERS: readonly ["codegraph", "fast-context"];
17
+ export declare const SMART_SEARCH_PROVIDER = "smart-search";
18
+ export declare const EXTERNAL_KNOWLEDGE_CAPABILITY = "external-knowledge";
19
+ export type Stage6CommandPhase = "create" | "start" | "archive" | "patch";
20
+ export type ProviderReadinessStatus = "ready" | "missing" | "failed" | "unknown";
21
+ export interface EventSubscription {
22
+ event: string;
23
+ module: string;
24
+ }
25
+ export interface EventBridgeLastEvent {
26
+ event: string;
27
+ at: string;
28
+ source: string;
29
+ delivered: string[];
30
+ skipped: string[];
31
+ }
32
+ export interface EventBridgeState {
33
+ schema_version: typeof STAGE6_SCHEMA_VERSION;
34
+ source: typeof STAGE6_SOURCE;
35
+ subscriptions: EventSubscription[];
36
+ last_event?: EventBridgeLastEvent;
37
+ }
38
+ export interface ProviderReadiness {
39
+ status: ProviderReadinessStatus;
40
+ capability: string;
41
+ evidence?: string | null;
42
+ }
43
+ export interface MiddlewareProviders {
44
+ schema_version: typeof STAGE6_SCHEMA_VERSION;
45
+ source: typeof STAGE6_SOURCE;
46
+ registered: string[];
47
+ required: string[];
48
+ active: string[];
49
+ degraded: string[];
50
+ readiness: Record<string, ProviderReadiness>;
51
+ }
52
+ export interface CapabilityRouter {
53
+ schema_version: typeof STAGE6_SCHEMA_VERSION;
54
+ source: typeof STAGE6_SOURCE;
55
+ exact?: true;
56
+ semantic?: true;
57
+ structural?: true;
58
+ external?: true;
59
+ }
60
+ export interface DispatchHookEventInput {
61
+ event: string;
62
+ source?: string;
63
+ at?: string;
64
+ }
65
+ export declare function defaultEventBridge(): EventBridgeState;
66
+ export declare function defaultMiddlewareProviders(): MiddlewareProviders;
67
+ export declare function defaultCapabilityRouter(): CapabilityRouter;
68
+ export declare function subscribeEvent(extras: Record<string, unknown>, event: string, moduleName: string): EventBridgeState;
69
+ /**
70
+ * Record and dispatch one hook event. Unsubscribed modules are skipped and
71
+ * never fail the hook.
72
+ */
73
+ export declare function recordHookEvent(extras: Record<string, unknown>, input: DispatchHookEventInput): EventBridgeLastEvent;
74
+ export declare function probeSmartSearchReadiness(input?: {
75
+ available?: boolean;
76
+ status?: ProviderReadinessStatus;
77
+ evidence?: string | null;
78
+ }): ProviderReadiness;
79
+ export declare function applySmartSearchReadiness(extras: Record<string, unknown>, readiness: ProviderReadiness): MiddlewareProviders;
80
+ export declare function normalizeEventBridge(raw: unknown): EventBridgeState;
81
+ export declare function normalizeMiddlewareProviders(raw: unknown): MiddlewareProviders;
82
+ export declare function normalizeCapabilityRouter(raw: unknown): CapabilityRouter;
83
+ export declare function readEventBridge(extras: Record<string, unknown>): EventBridgeState;
84
+ export declare function readMiddlewareProviders(extras: Record<string, unknown>): MiddlewareProviders;
85
+ export declare function readCapabilityRouter(extras: Record<string, unknown>): CapabilityRouter;
86
+ export declare function requiredCapabilities(extras: Record<string, unknown>): string[];
87
+ export declare function externalKnowledgeReady(providers: MiddlewareProviders): boolean;
88
+ export declare function normalizeStage6InExtras(extras: Record<string, unknown>): void;
89
+ export declare function assertStage6ForPhase(extras: Record<string, unknown>, phase: Stage6CommandPhase): void;
90
+ export declare function normalizeStage6InExtrasAndAssert(extras: Record<string, unknown>, phase: Stage6CommandPhase): void;
91
+ //# sourceMappingURL=adapter-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-middleware.d.ts","sourceRoot":"","sources":["../../src/task/adapter-middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,eAAO,MAAM,aAAa,8BAA8B,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAEhD,eAAO,MAAM,kBAAkB,sHAOrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,eAAO,MAAM,iBAAiB,0DAKpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,eAAO,MAAM,4BAA4B,2BAA4B,CAAC;AACtE,eAAO,MAAM,6BAA6B,wCAGhC,CAAC;AAEX,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,qBAAqB,CAAC;IAC7C,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,OAAO,qBAAqB,CAAC;IAC7C,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,qBAAqB,CAAC;IAC7C,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,CAMrD;AAED,wBAAgB,0BAA0B,IAAI,mBAAmB,CAgBhE;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,CAS1D;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAWlB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,sBAAsB,GAC5B,oBAAoB,CA0BtB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,GAAE;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,iBAAiB,CAazB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,iBAAiB,GAC3B,mBAAmB,CAcrB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAgEnE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAiD9E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAiCxE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAEjF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,mBAAmB,CAErB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,CAElB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAE9E;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA8C7E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,kBAAkB,GACxB,IAAI,CAgBN;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,kBAAkB,GACxB,IAAI,CAGN"}
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Stage 6 Cursor Adapter + Middleware (P27 Middleware, P29 Adapter/Profile,
3
+ * P30 Stage 6).
4
+ *
5
+ * Pure helpers persisted through existing create extras / patch. Does not
6
+ * write Kernel store or task.json. Field names here are an implementation
7
+ * choice — not a frozen Manifest / Event ABI schema.
8
+ */
9
+ import { KernelError } from "./kernel-contract.js";
10
+ import { isPlainObject } from "./schema.js";
11
+ export const STAGE6_SOURCE = "stage6-adapter-middleware";
12
+ export const STAGE6_SCHEMA_VERSION = 1;
13
+ export const STAGE6_HOOK_EVENTS = [
14
+ "sessionStart",
15
+ "preToolUse",
16
+ "beforeSubmitPrompt",
17
+ "beforeShellExecution",
18
+ "afterShellExecution",
19
+ "stop",
20
+ ];
21
+ export const RETRIEVAL_INTENTS = [
22
+ "exact",
23
+ "semantic",
24
+ "structural",
25
+ "external",
26
+ ];
27
+ export const DEFAULT_MIDDLEWARE_PROVIDERS = ["smart-search"];
28
+ export const OPTIONAL_CODE_INTEL_PROVIDERS = [
29
+ "codegraph",
30
+ "fast-context",
31
+ ];
32
+ export const SMART_SEARCH_PROVIDER = "smart-search";
33
+ export const EXTERNAL_KNOWLEDGE_CAPABILITY = "external-knowledge";
34
+ export function defaultEventBridge() {
35
+ return {
36
+ schema_version: STAGE6_SCHEMA_VERSION,
37
+ source: STAGE6_SOURCE,
38
+ subscriptions: [],
39
+ };
40
+ }
41
+ export function defaultMiddlewareProviders() {
42
+ return {
43
+ schema_version: STAGE6_SCHEMA_VERSION,
44
+ source: STAGE6_SOURCE,
45
+ registered: [...DEFAULT_MIDDLEWARE_PROVIDERS],
46
+ required: [...DEFAULT_MIDDLEWARE_PROVIDERS],
47
+ active: [],
48
+ degraded: [],
49
+ readiness: {
50
+ [SMART_SEARCH_PROVIDER]: {
51
+ status: "unknown",
52
+ capability: EXTERNAL_KNOWLEDGE_CAPABILITY,
53
+ evidence: null,
54
+ },
55
+ },
56
+ };
57
+ }
58
+ export function defaultCapabilityRouter() {
59
+ return {
60
+ schema_version: STAGE6_SCHEMA_VERSION,
61
+ source: STAGE6_SOURCE,
62
+ exact: true,
63
+ semantic: true,
64
+ structural: true,
65
+ external: true,
66
+ };
67
+ }
68
+ export function subscribeEvent(extras, event, moduleName) {
69
+ const current = readEventBridge(extras);
70
+ const eventName = requireId(event, "event_bridge.subscriptions[].event");
71
+ const module = requireId(moduleName, "event_bridge.subscriptions[].module");
72
+ const subscriptions = [...current.subscriptions];
73
+ if (!subscriptions.some((item) => item.event === eventName && item.module === module)) {
74
+ subscriptions.push({ event: eventName, module });
75
+ }
76
+ const next = { ...current, subscriptions };
77
+ extras.event_bridge = next;
78
+ return next;
79
+ }
80
+ /**
81
+ * Record and dispatch one hook event. Unsubscribed modules are skipped and
82
+ * never fail the hook.
83
+ */
84
+ export function recordHookEvent(extras, input) {
85
+ const current = readEventBridge(extras);
86
+ const event = requireId(input.event, "event_bridge.last_event.event");
87
+ const delivered = [];
88
+ const skipped = [];
89
+ for (const sub of current.subscriptions) {
90
+ if (sub.event !== event) {
91
+ skipped.push(sub.module);
92
+ continue;
93
+ }
94
+ if (!delivered.includes(sub.module))
95
+ delivered.push(sub.module);
96
+ }
97
+ const lastEvent = {
98
+ event,
99
+ at: typeof input.at === "string" && input.at.trim() !== ""
100
+ ? input.at
101
+ : new Date().toISOString(),
102
+ source: typeof input.source === "string" && input.source.trim() !== ""
103
+ ? input.source
104
+ : "cursor-hooks",
105
+ delivered,
106
+ skipped,
107
+ };
108
+ extras.event_bridge = { ...current, last_event: lastEvent };
109
+ return lastEvent;
110
+ }
111
+ export function probeSmartSearchReadiness(input = {}) {
112
+ const status = input.status ??
113
+ (input.available === true
114
+ ? "ready"
115
+ : input.available === false
116
+ ? "missing"
117
+ : "unknown");
118
+ return {
119
+ status,
120
+ capability: EXTERNAL_KNOWLEDGE_CAPABILITY,
121
+ evidence: input.evidence ?? null,
122
+ };
123
+ }
124
+ export function applySmartSearchReadiness(extras, readiness) {
125
+ const current = readMiddlewareProviders(extras);
126
+ const next = {
127
+ ...current,
128
+ readiness: {
129
+ ...current.readiness,
130
+ [SMART_SEARCH_PROVIDER]: {
131
+ ...readiness,
132
+ capability: EXTERNAL_KNOWLEDGE_CAPABILITY,
133
+ },
134
+ },
135
+ };
136
+ extras.middleware_providers = applyProviderHealth(next, extras);
137
+ return extras.middleware_providers;
138
+ }
139
+ export function normalizeEventBridge(raw) {
140
+ if (raw === undefined || raw === null)
141
+ return defaultEventBridge();
142
+ if (!isPlainObject(raw)) {
143
+ throw new KernelError("INVALID_REQUEST", "event_bridge must be a JSON object");
144
+ }
145
+ const subscriptionsIn = raw.subscriptions;
146
+ const subscriptions = [];
147
+ if (subscriptionsIn !== undefined && subscriptionsIn !== null) {
148
+ if (!Array.isArray(subscriptionsIn)) {
149
+ throw new KernelError("INVALID_REQUEST", "event_bridge.subscriptions must be an array");
150
+ }
151
+ for (const item of subscriptionsIn) {
152
+ if (!isPlainObject(item)) {
153
+ throw new KernelError("INVALID_REQUEST", "event_bridge.subscriptions[] must be objects");
154
+ }
155
+ const sub = {
156
+ event: requireId(item.event, "event_bridge.subscriptions[].event"),
157
+ module: requireId(item.module, "event_bridge.subscriptions[].module"),
158
+ };
159
+ if (!subscriptions.some((existing) => existing.event === sub.event && existing.module === sub.module)) {
160
+ subscriptions.push(sub);
161
+ }
162
+ }
163
+ }
164
+ const lastRaw = raw.last_event;
165
+ let lastEvent;
166
+ if (lastRaw !== undefined && lastRaw !== null) {
167
+ if (!isPlainObject(lastRaw)) {
168
+ throw new KernelError("INVALID_REQUEST", "event_bridge.last_event must be an object");
169
+ }
170
+ lastEvent = {
171
+ event: requireId(lastRaw.event, "event_bridge.last_event.event"),
172
+ at: typeof lastRaw.at === "string" && lastRaw.at.trim() !== ""
173
+ ? lastRaw.at
174
+ : new Date().toISOString(),
175
+ source: typeof lastRaw.source === "string" && lastRaw.source.trim() !== ""
176
+ ? lastRaw.source
177
+ : "cursor-hooks",
178
+ delivered: uniqueStrings(asStringArray(lastRaw.delivered)),
179
+ skipped: uniqueStrings(asStringArray(lastRaw.skipped)),
180
+ };
181
+ }
182
+ return {
183
+ schema_version: STAGE6_SCHEMA_VERSION,
184
+ source: STAGE6_SOURCE,
185
+ subscriptions,
186
+ ...(lastEvent ? { last_event: lastEvent } : {}),
187
+ };
188
+ }
189
+ export function normalizeMiddlewareProviders(raw) {
190
+ if (raw === undefined || raw === null)
191
+ return defaultMiddlewareProviders();
192
+ if (!isPlainObject(raw)) {
193
+ throw new KernelError("INVALID_REQUEST", "middleware_providers must be a JSON object");
194
+ }
195
+ const defaults = defaultMiddlewareProviders();
196
+ const registered = uniqueStrings([
197
+ ...defaults.registered,
198
+ ...asStringArray(raw.registered),
199
+ ]);
200
+ const required = uniqueStrings(asStringArray(raw.required)).filter((name) => registered.includes(name));
201
+ const active = uniqueStrings(asStringArray(raw.active)).filter((name) => registered.includes(name));
202
+ const degraded = uniqueStrings(asStringArray(raw.degraded));
203
+ const readiness = {
204
+ ...defaults.readiness,
205
+ };
206
+ if (isPlainObject(raw.readiness)) {
207
+ for (const [name, value] of Object.entries(raw.readiness)) {
208
+ if (!isPlainObject(value))
209
+ continue;
210
+ const status = parseReadinessStatus(value.status);
211
+ readiness[name] = {
212
+ status,
213
+ capability: typeof value.capability === "string" && value.capability.trim() !== ""
214
+ ? value.capability
215
+ : name === SMART_SEARCH_PROVIDER
216
+ ? EXTERNAL_KNOWLEDGE_CAPABILITY
217
+ : "unknown",
218
+ evidence: typeof value.evidence === "string" ? value.evidence : null,
219
+ };
220
+ }
221
+ }
222
+ return {
223
+ schema_version: STAGE6_SCHEMA_VERSION,
224
+ source: STAGE6_SOURCE,
225
+ registered,
226
+ required: required.length > 0 ? required : [...defaults.required],
227
+ active,
228
+ degraded,
229
+ readiness,
230
+ };
231
+ }
232
+ export function normalizeCapabilityRouter(raw) {
233
+ if (raw === undefined || raw === null)
234
+ return defaultCapabilityRouter();
235
+ if (!isPlainObject(raw)) {
236
+ throw new KernelError("INVALID_REQUEST", "capability_router must be a JSON object");
237
+ }
238
+ const forbidden = [
239
+ ...OPTIONAL_CODE_INTEL_PROVIDERS,
240
+ "fast_context_search",
241
+ "codegraph_explore",
242
+ "codegraph_search",
243
+ "codegraph_callers",
244
+ ];
245
+ for (const key of Object.keys(raw)) {
246
+ if (forbidden.includes(key)) {
247
+ throw new KernelError("INVALID_REQUEST", "capability_router must not bind Optional tool names");
248
+ }
249
+ }
250
+ const next = {
251
+ schema_version: STAGE6_SCHEMA_VERSION,
252
+ source: STAGE6_SOURCE,
253
+ };
254
+ for (const intent of RETRIEVAL_INTENTS) {
255
+ if (raw[intent] !== false) {
256
+ next[intent] = true;
257
+ }
258
+ }
259
+ return next;
260
+ }
261
+ export function readEventBridge(extras) {
262
+ return normalizeEventBridge(extras.event_bridge);
263
+ }
264
+ export function readMiddlewareProviders(extras) {
265
+ return normalizeMiddlewareProviders(extras.middleware_providers);
266
+ }
267
+ export function readCapabilityRouter(extras) {
268
+ return normalizeCapabilityRouter(extras.capability_router);
269
+ }
270
+ export function requiredCapabilities(extras) {
271
+ return uniqueStrings(asStringArray(extras.required_capabilities));
272
+ }
273
+ export function externalKnowledgeReady(providers) {
274
+ const readiness = providers.readiness[SMART_SEARCH_PROVIDER];
275
+ return readiness?.status === "ready";
276
+ }
277
+ export function normalizeStage6InExtras(extras) {
278
+ extras.event_bridge = normalizeEventBridge(extras.event_bridge);
279
+ extras.capability_router = normalizeCapabilityRouter(extras.capability_router);
280
+ const incoming = extras.hook_event;
281
+ if (isPlainObject(incoming) && typeof incoming.event === "string") {
282
+ recordHookEvent(extras, {
283
+ event: incoming.event,
284
+ source: typeof incoming.source === "string" ? incoming.source : undefined,
285
+ at: typeof incoming.at === "string" ? incoming.at : undefined,
286
+ });
287
+ delete extras.hook_event;
288
+ }
289
+ extras.middleware_providers = normalizeMiddlewareProviders(extras.middleware_providers);
290
+ if (isPlainObject(extras.smart_search_probe)) {
291
+ const probeStatus = extras.smart_search_probe.status;
292
+ applySmartSearchReadiness(extras, probeSmartSearchReadiness({
293
+ available: extras.smart_search_probe.available === true
294
+ ? true
295
+ : extras.smart_search_probe.available === false
296
+ ? false
297
+ : undefined,
298
+ status: probeStatus === "ready" ||
299
+ probeStatus === "missing" ||
300
+ probeStatus === "failed" ||
301
+ probeStatus === "unknown"
302
+ ? probeStatus
303
+ : undefined,
304
+ evidence: typeof extras.smart_search_probe.evidence === "string"
305
+ ? extras.smart_search_probe.evidence
306
+ : null,
307
+ }));
308
+ delete extras.smart_search_probe;
309
+ }
310
+ else {
311
+ extras.middleware_providers = applyProviderHealth(extras.middleware_providers, extras);
312
+ }
313
+ }
314
+ export function assertStage6ForPhase(extras, phase) {
315
+ if (phase === "create" || phase === "patch")
316
+ return;
317
+ const providers = readMiddlewareProviders(extras);
318
+ const needsExternal = requiredCapabilities(extras).includes(EXTERNAL_KNOWLEDGE_CAPABILITY);
319
+ if (!needsExternal)
320
+ return;
321
+ if (externalKnowledgeReady(providers))
322
+ return;
323
+ if (extras.external_knowledge_policy === "degrade") {
324
+ extras.profile_health = "degraded";
325
+ return;
326
+ }
327
+ throw new KernelError("INVALID_TRANSITION", "external-knowledge required but smart-search Provider is not ready");
328
+ }
329
+ export function normalizeStage6InExtrasAndAssert(extras, phase) {
330
+ normalizeStage6InExtras(extras);
331
+ assertStage6ForPhase(extras, phase);
332
+ }
333
+ function applyProviderHealth(providers, extras) {
334
+ const degraded = uniqueStrings([...providers.degraded]);
335
+ const smart = providers.readiness[SMART_SEARCH_PROVIDER];
336
+ if (smart && smart.status !== "ready" && smart.status !== "unknown") {
337
+ if (!degraded.includes(SMART_SEARCH_PROVIDER)) {
338
+ degraded.push(SMART_SEARCH_PROVIDER);
339
+ }
340
+ extras.profile_health = "degraded";
341
+ }
342
+ const missing = uniqueStrings(asStringArray(extras.ondemand_required_missing));
343
+ if (missing.includes(EXTERNAL_KNOWLEDGE_CAPABILITY) ||
344
+ missing.includes(SMART_SEARCH_PROVIDER)) {
345
+ if (!degraded.includes(SMART_SEARCH_PROVIDER)) {
346
+ degraded.push(SMART_SEARCH_PROVIDER);
347
+ }
348
+ extras.profile_health = "degraded";
349
+ }
350
+ return { ...providers, degraded };
351
+ }
352
+ function parseReadinessStatus(value) {
353
+ if (value === "ready" ||
354
+ value === "missing" ||
355
+ value === "failed" ||
356
+ value === "unknown") {
357
+ return value;
358
+ }
359
+ return "unknown";
360
+ }
361
+ function asStringArray(value) {
362
+ if (!Array.isArray(value))
363
+ return [];
364
+ return value.filter((item) => typeof item === "string");
365
+ }
366
+ function uniqueStrings(values) {
367
+ const out = [];
368
+ for (const value of values) {
369
+ if (typeof value !== "string")
370
+ continue;
371
+ const id = value.trim();
372
+ if (!id || out.includes(id))
373
+ continue;
374
+ out.push(id);
375
+ }
376
+ return out;
377
+ }
378
+ function requireId(value, field) {
379
+ if (typeof value !== "string" || value.trim() === "") {
380
+ throw new KernelError("INVALID_REQUEST", `${field} must be a non-empty string`);
381
+ }
382
+ return value.trim();
383
+ }
384
+ //# sourceMappingURL=adapter-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-middleware.js","sourceRoot":"","sources":["../../src/task/adapter-middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Stage 7 Contract dry-run (P28 §15.9 Expand → Migrate → Contract).
3
+ *
4
+ * Read-only scan of old Task / Profile / Artifact references. Field names
5
+ * here are an implementation choice — not a frozen Manifest / migrate ABI.
6
+ * This module must not write task.json, kernel.json, Archive, or verify.md.
7
+ */
8
+ export declare const RETIRED_TOP_LEVEL_FIELDS: readonly ["task_kind", "task_type", "kind", "mode"];
9
+ export declare const RETIRED_META_FIELDS: readonly ["classification", "task_kind", "task_type", "mode"];
10
+ export type ContractMigrateFindingKind = "retired-field" | "legacy-parent" | "artifact-inference" | "depends-mode" | "file-inferred-rigor" | "children-inferred-parent" | "profile-ref";
11
+ export interface ContractMigrateFinding {
12
+ path: string;
13
+ kind: ContractMigrateFindingKind;
14
+ detail: string;
15
+ }
16
+ export interface ContractMigrateReport {
17
+ dryRun: true;
18
+ wrote: false;
19
+ scanned: number;
20
+ findings: ContractMigrateFinding[];
21
+ }
22
+ export interface ScanContractMigrationOptions {
23
+ root: string;
24
+ tasksDir?: string;
25
+ }
26
+ export declare function stripRetiredExtras(extras: Record<string, unknown>): Record<string, unknown>;
27
+ export declare function stripRetiredMeta(meta: Record<string, unknown>): Record<string, unknown>;
28
+ export declare function scanContractMigration(options: ScanContractMigrationOptions): ContractMigrateReport;
29
+ //# sourceMappingURL=contract-migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-migrate.d.ts","sourceRoot":"","sources":["../../src/task/contract-migrate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,wBAAwB,qDAK3B,CAAC;AAEX,eAAO,MAAM,mBAAmB,+DAKtB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,cAAc,GACd,qBAAqB,GACrB,0BAA0B,GAC1B,aAAa,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,0BAA0B,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAmBvB"}