@soleri/core 2.11.0 → 7.0.0

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 (255) hide show
  1. package/data/flows/build.flow.yaml +128 -0
  2. package/data/flows/deliver.flow.yaml +110 -0
  3. package/data/flows/design.flow.yaml +108 -0
  4. package/data/flows/enhance.flow.yaml +90 -0
  5. package/data/flows/explore.flow.yaml +84 -0
  6. package/data/flows/fix.flow.yaml +90 -0
  7. package/data/flows/plan.flow.yaml +87 -0
  8. package/data/flows/review.flow.yaml +90 -0
  9. package/dist/brain/brain.d.ts.map +1 -1
  10. package/dist/brain/brain.js +10 -0
  11. package/dist/brain/brain.js.map +1 -1
  12. package/dist/brain/intelligence.d.ts.map +1 -1
  13. package/dist/brain/intelligence.js +16 -2
  14. package/dist/brain/intelligence.js.map +1 -1
  15. package/dist/capabilities/chain-mapping.d.ts +21 -0
  16. package/dist/capabilities/chain-mapping.d.ts.map +1 -0
  17. package/dist/capabilities/chain-mapping.js +86 -0
  18. package/dist/capabilities/chain-mapping.js.map +1 -0
  19. package/dist/capabilities/index.d.ts +10 -0
  20. package/dist/capabilities/index.d.ts.map +1 -0
  21. package/dist/capabilities/index.js +8 -0
  22. package/dist/capabilities/index.js.map +1 -0
  23. package/dist/capabilities/registry.d.ts +95 -0
  24. package/dist/capabilities/registry.d.ts.map +1 -0
  25. package/dist/capabilities/registry.js +227 -0
  26. package/dist/capabilities/registry.js.map +1 -0
  27. package/dist/capabilities/types.d.ts +106 -0
  28. package/dist/capabilities/types.d.ts.map +1 -0
  29. package/dist/capabilities/types.js +12 -0
  30. package/dist/capabilities/types.js.map +1 -0
  31. package/dist/control/intent-router.d.ts.map +1 -1
  32. package/dist/control/intent-router.js +58 -2
  33. package/dist/control/intent-router.js.map +1 -1
  34. package/dist/domain-packs/index.d.ts +8 -0
  35. package/dist/domain-packs/index.d.ts.map +1 -0
  36. package/dist/domain-packs/index.js +8 -0
  37. package/dist/domain-packs/index.js.map +1 -0
  38. package/dist/domain-packs/inject-rules.d.ts +24 -0
  39. package/dist/domain-packs/inject-rules.d.ts.map +1 -0
  40. package/dist/domain-packs/inject-rules.js +65 -0
  41. package/dist/domain-packs/inject-rules.js.map +1 -0
  42. package/dist/domain-packs/knowledge-installer.d.ts +27 -0
  43. package/dist/domain-packs/knowledge-installer.d.ts.map +1 -0
  44. package/dist/domain-packs/knowledge-installer.js +89 -0
  45. package/dist/domain-packs/knowledge-installer.js.map +1 -0
  46. package/dist/domain-packs/loader.d.ts +28 -0
  47. package/dist/domain-packs/loader.d.ts.map +1 -0
  48. package/dist/domain-packs/loader.js +105 -0
  49. package/dist/domain-packs/loader.js.map +1 -0
  50. package/dist/domain-packs/pack-runtime.d.ts +80 -0
  51. package/dist/domain-packs/pack-runtime.d.ts.map +1 -0
  52. package/dist/domain-packs/pack-runtime.js +36 -0
  53. package/dist/domain-packs/pack-runtime.js.map +1 -0
  54. package/dist/domain-packs/skills-installer.d.ts +21 -0
  55. package/dist/domain-packs/skills-installer.d.ts.map +1 -0
  56. package/dist/domain-packs/skills-installer.js +38 -0
  57. package/dist/domain-packs/skills-installer.js.map +1 -0
  58. package/dist/domain-packs/token-resolver.d.ts +37 -0
  59. package/dist/domain-packs/token-resolver.d.ts.map +1 -0
  60. package/dist/domain-packs/token-resolver.js +109 -0
  61. package/dist/domain-packs/token-resolver.js.map +1 -0
  62. package/dist/domain-packs/types.d.ts +91 -0
  63. package/dist/domain-packs/types.d.ts.map +1 -0
  64. package/dist/domain-packs/types.js +122 -0
  65. package/dist/domain-packs/types.js.map +1 -0
  66. package/dist/engine/bin/soleri-engine.d.ts +12 -0
  67. package/dist/engine/bin/soleri-engine.d.ts.map +1 -0
  68. package/dist/engine/bin/soleri-engine.js +183 -0
  69. package/dist/engine/bin/soleri-engine.js.map +1 -0
  70. package/dist/engine/core-ops.d.ts +27 -0
  71. package/dist/engine/core-ops.d.ts.map +1 -0
  72. package/dist/engine/core-ops.js +159 -0
  73. package/dist/engine/core-ops.js.map +1 -0
  74. package/dist/engine/index.d.ts +19 -0
  75. package/dist/engine/index.d.ts.map +1 -0
  76. package/dist/engine/index.js +17 -0
  77. package/dist/engine/index.js.map +1 -0
  78. package/dist/engine/register-engine.d.ts +54 -0
  79. package/dist/engine/register-engine.d.ts.map +1 -0
  80. package/dist/engine/register-engine.js +270 -0
  81. package/dist/engine/register-engine.js.map +1 -0
  82. package/dist/engine/test-helpers.d.ts +30 -0
  83. package/dist/engine/test-helpers.d.ts.map +1 -0
  84. package/dist/engine/test-helpers.js +59 -0
  85. package/dist/engine/test-helpers.js.map +1 -0
  86. package/dist/flows/context-router.d.ts +39 -0
  87. package/dist/flows/context-router.d.ts.map +1 -0
  88. package/dist/flows/context-router.js +206 -0
  89. package/dist/flows/context-router.js.map +1 -0
  90. package/dist/flows/dispatch-registry.d.ts +24 -0
  91. package/dist/flows/dispatch-registry.d.ts.map +1 -0
  92. package/dist/flows/dispatch-registry.js +70 -0
  93. package/dist/flows/dispatch-registry.js.map +1 -0
  94. package/dist/flows/epilogue.d.ts +24 -0
  95. package/dist/flows/epilogue.d.ts.map +1 -0
  96. package/dist/flows/epilogue.js +52 -0
  97. package/dist/flows/epilogue.js.map +1 -0
  98. package/dist/flows/executor.d.ts +25 -0
  99. package/dist/flows/executor.d.ts.map +1 -0
  100. package/dist/flows/executor.js +153 -0
  101. package/dist/flows/executor.js.map +1 -0
  102. package/dist/flows/gate-evaluator.d.ts +26 -0
  103. package/dist/flows/gate-evaluator.d.ts.map +1 -0
  104. package/dist/flows/gate-evaluator.js +162 -0
  105. package/dist/flows/gate-evaluator.js.map +1 -0
  106. package/dist/flows/index.d.ts +14 -0
  107. package/dist/flows/index.d.ts.map +1 -0
  108. package/dist/flows/index.js +20 -0
  109. package/dist/flows/index.js.map +1 -0
  110. package/dist/flows/loader.d.ts +17 -0
  111. package/dist/flows/loader.d.ts.map +1 -0
  112. package/dist/flows/loader.js +61 -0
  113. package/dist/flows/loader.js.map +1 -0
  114. package/dist/flows/plan-builder.d.ts +40 -0
  115. package/dist/flows/plan-builder.d.ts.map +1 -0
  116. package/dist/flows/plan-builder.js +213 -0
  117. package/dist/flows/plan-builder.js.map +1 -0
  118. package/dist/flows/probes.d.ts +11 -0
  119. package/dist/flows/probes.d.ts.map +1 -0
  120. package/dist/flows/probes.js +62 -0
  121. package/dist/flows/probes.js.map +1 -0
  122. package/dist/flows/types.d.ts +950 -0
  123. package/dist/flows/types.d.ts.map +1 -0
  124. package/dist/flows/types.js +105 -0
  125. package/dist/flows/types.js.map +1 -0
  126. package/dist/index.d.ts +11 -1
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +10 -1
  129. package/dist/index.js.map +1 -1
  130. package/dist/intelligence/loader.d.ts +19 -0
  131. package/dist/intelligence/loader.d.ts.map +1 -1
  132. package/dist/intelligence/loader.js +86 -5
  133. package/dist/intelligence/loader.js.map +1 -1
  134. package/dist/intelligence/types.d.ts +1 -0
  135. package/dist/intelligence/types.d.ts.map +1 -1
  136. package/dist/packs/types.d.ts +58 -19
  137. package/dist/packs/types.d.ts.map +1 -1
  138. package/dist/packs/types.js +14 -0
  139. package/dist/packs/types.js.map +1 -1
  140. package/dist/playbooks/generic/onboarding.d.ts +9 -0
  141. package/dist/playbooks/generic/onboarding.d.ts.map +1 -0
  142. package/dist/playbooks/generic/onboarding.js +74 -0
  143. package/dist/playbooks/generic/onboarding.js.map +1 -0
  144. package/dist/playbooks/playbook-registry.d.ts.map +1 -1
  145. package/dist/playbooks/playbook-registry.js +2 -0
  146. package/dist/playbooks/playbook-registry.js.map +1 -1
  147. package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
  148. package/dist/runtime/admin-extra-ops.js +15 -9
  149. package/dist/runtime/admin-extra-ops.js.map +1 -1
  150. package/dist/runtime/admin-ops.js +4 -4
  151. package/dist/runtime/admin-ops.js.map +1 -1
  152. package/dist/runtime/capture-ops.d.ts.map +1 -1
  153. package/dist/runtime/capture-ops.js +33 -1
  154. package/dist/runtime/capture-ops.js.map +1 -1
  155. package/dist/runtime/domain-ops.d.ts +21 -5
  156. package/dist/runtime/domain-ops.d.ts.map +1 -1
  157. package/dist/runtime/domain-ops.js +85 -8
  158. package/dist/runtime/domain-ops.js.map +1 -1
  159. package/dist/runtime/facades/cognee-facade.d.ts.map +1 -1
  160. package/dist/runtime/facades/cognee-facade.js +3 -1
  161. package/dist/runtime/facades/cognee-facade.js.map +1 -1
  162. package/dist/runtime/facades/index.d.ts.map +1 -1
  163. package/dist/runtime/facades/index.js +10 -6
  164. package/dist/runtime/facades/index.js.map +1 -1
  165. package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
  166. package/dist/runtime/facades/vault-facade.js +2 -0
  167. package/dist/runtime/facades/vault-facade.js.map +1 -1
  168. package/dist/runtime/orchestrate-ops.d.ts +8 -7
  169. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  170. package/dist/runtime/orchestrate-ops.js +227 -58
  171. package/dist/runtime/orchestrate-ops.js.map +1 -1
  172. package/dist/runtime/runtime.d.ts.map +1 -1
  173. package/dist/runtime/runtime.js +23 -17
  174. package/dist/runtime/runtime.js.map +1 -1
  175. package/dist/runtime/types.d.ts +6 -2
  176. package/dist/runtime/types.d.ts.map +1 -1
  177. package/dist/runtime/vault-linking-ops.d.ts +13 -0
  178. package/dist/runtime/vault-linking-ops.d.ts.map +1 -0
  179. package/dist/runtime/vault-linking-ops.js +367 -0
  180. package/dist/runtime/vault-linking-ops.js.map +1 -0
  181. package/dist/vault/linking.d.ts +46 -0
  182. package/dist/vault/linking.d.ts.map +1 -0
  183. package/dist/vault/linking.js +275 -0
  184. package/dist/vault/linking.js.map +1 -0
  185. package/dist/vault/vault-types.d.ts +37 -0
  186. package/dist/vault/vault-types.d.ts.map +1 -1
  187. package/dist/vault/vault.d.ts +12 -0
  188. package/dist/vault/vault.d.ts.map +1 -1
  189. package/dist/vault/vault.js +85 -6
  190. package/dist/vault/vault.js.map +1 -1
  191. package/package.json +4 -1
  192. package/src/__tests__/admin-extra-ops.test.ts +1 -1
  193. package/src/__tests__/admin-ops.test.ts +2 -1
  194. package/src/__tests__/cognee-client-gaps.test.ts +470 -0
  195. package/src/__tests__/cognee-hybrid-search.test.ts +478 -0
  196. package/src/__tests__/cognee-sync-manager-deep.test.ts +630 -0
  197. package/src/__tests__/cognee-sync-manager.test.ts +1 -0
  198. package/src/__tests__/core-ops.test.ts +9 -61
  199. package/src/__tests__/domain-packs.test.ts +421 -0
  200. package/src/__tests__/flows.test.ts +604 -0
  201. package/src/__tests__/playbook-registry.test.ts +2 -2
  202. package/src/__tests__/playbook-seeder.test.ts +8 -8
  203. package/src/__tests__/playbook.test.ts +5 -5
  204. package/src/__tests__/token-resolver.test.ts +79 -0
  205. package/src/brain/brain.ts +12 -0
  206. package/src/brain/intelligence.ts +21 -2
  207. package/src/capabilities/chain-mapping.ts +93 -0
  208. package/src/capabilities/index.ts +21 -0
  209. package/src/capabilities/registry.ts +290 -0
  210. package/src/capabilities/types.ts +143 -0
  211. package/src/control/intent-router.ts +46 -2
  212. package/src/domain-packs/index.ts +27 -0
  213. package/src/domain-packs/inject-rules.ts +74 -0
  214. package/src/domain-packs/knowledge-installer.ts +116 -0
  215. package/src/domain-packs/loader.ts +124 -0
  216. package/src/domain-packs/pack-runtime.ts +99 -0
  217. package/src/domain-packs/skills-installer.ts +56 -0
  218. package/src/domain-packs/token-resolver.ts +126 -0
  219. package/src/domain-packs/types.ts +229 -0
  220. package/src/engine/__tests__/register-engine.test.ts +104 -0
  221. package/src/engine/bin/soleri-engine.ts +217 -0
  222. package/src/engine/core-ops.ts +178 -0
  223. package/src/engine/index.ts +19 -0
  224. package/src/engine/register-engine.ts +385 -0
  225. package/src/engine/test-helpers.ts +83 -0
  226. package/src/flows/context-router.ts +257 -0
  227. package/src/flows/dispatch-registry.ts +80 -0
  228. package/src/flows/epilogue.ts +65 -0
  229. package/src/flows/executor.ts +182 -0
  230. package/src/flows/gate-evaluator.ts +171 -0
  231. package/src/flows/index.ts +52 -0
  232. package/src/flows/loader.ts +63 -0
  233. package/src/flows/plan-builder.ts +250 -0
  234. package/src/flows/probes.ts +70 -0
  235. package/src/flows/types.ts +217 -0
  236. package/src/index.ts +68 -1
  237. package/src/intelligence/loader.ts +96 -5
  238. package/src/intelligence/types.ts +1 -0
  239. package/src/packs/types.ts +19 -0
  240. package/src/playbooks/generic/onboarding.ts +79 -0
  241. package/src/playbooks/playbook-registry.ts +2 -0
  242. package/src/runtime/admin-extra-ops.ts +14 -8
  243. package/src/runtime/admin-ops.ts +4 -4
  244. package/src/runtime/capture-ops.ts +40 -1
  245. package/src/runtime/domain-ops.ts +92 -7
  246. package/src/runtime/facades/cognee-facade.ts +3 -1
  247. package/src/runtime/facades/index.ts +12 -6
  248. package/src/runtime/facades/vault-facade.ts +2 -0
  249. package/src/runtime/orchestrate-ops.ts +271 -62
  250. package/src/runtime/runtime.ts +27 -18
  251. package/src/runtime/types.ts +6 -2
  252. package/src/runtime/vault-linking-ops.ts +454 -0
  253. package/src/vault/linking.ts +333 -0
  254. package/src/vault/vault-types.ts +46 -0
  255. package/src/vault/vault.ts +94 -7
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Capability Registry — runtime resolution engine for the three-layer architecture.
3
+ *
4
+ * Maps capability IDs (domain.action) to pack handlers. Resolves dependencies,
5
+ * checks availability, and supports graceful degradation when capabilities are
6
+ * missing.
7
+ *
8
+ * Registration flow:
9
+ * 1. Pack manifest declares capabilities (static, serializable)
10
+ * 2. Pack's onActivate() provides handlers (runtime, async)
11
+ * 3. registerPack() reconciles declarations with handlers
12
+ *
13
+ * @see docs/architecture/capability-packs.md
14
+ */
15
+ import type { CapabilityDefinition, CapabilityHandler, RegisteredCapability, ResolvedCapability, PackSuggestion, FlowValidation } from './types.js';
16
+ export interface FlowForValidation {
17
+ steps: Array<{
18
+ needs?: string[];
19
+ chains?: string[];
20
+ }>;
21
+ onMissingCapability?: {
22
+ default?: string;
23
+ blocking?: string[];
24
+ };
25
+ }
26
+ export declare class CapabilityRegistry {
27
+ private capabilities;
28
+ private packs;
29
+ /**
30
+ * Register all capabilities from an installed pack.
31
+ *
32
+ * For each definition in `definitions`, the corresponding handler is looked
33
+ * up in `handlers`. If no handler is found the capability is skipped with a
34
+ * warning. When multiple packs provide the same capability, providers are
35
+ * sorted by priority (descending) — highest priority wins on resolve().
36
+ *
37
+ * @param packId - Unique identifier for the pack
38
+ * @param definitions - Capability definitions from the pack manifest
39
+ * @param handlers - Map of capabilityId → handler from onActivate()
40
+ * @param priority - Higher = preferred (core=100, user=75, domain=50, fallback=0)
41
+ */
42
+ registerPack(packId: string, definitions: CapabilityDefinition[], handlers: Map<string, CapabilityHandler>, priority?: number): void;
43
+ /**
44
+ * Check if a capability is registered (has at least one provider).
45
+ */
46
+ has(capabilityId: string): boolean;
47
+ /**
48
+ * Resolve a capability — returns the highest-priority handler, knowledge
49
+ * refs, and provider list. If the capability is missing or has unsatisfied
50
+ * dependencies, returns `available: false` with suggestions.
51
+ */
52
+ resolve(capabilityId: string): ResolvedCapability;
53
+ /**
54
+ * List all registered capabilities grouped by domain.
55
+ *
56
+ * Domain is derived from the first segment of the capability ID
57
+ * (e.g., "color" from "color.validate").
58
+ */
59
+ list(): Map<string, CapabilityDefinition[]>;
60
+ /**
61
+ * Search registered packs for capabilities matching the requested IDs.
62
+ *
63
+ * This searches ALL packs (not just capabilities currently registered with
64
+ * handlers) — useful for suggesting which packs to install when a capability
65
+ * is missing.
66
+ */
67
+ suggestPacksFor(capabilityIds: string[]): PackSuggestion[];
68
+ /**
69
+ * Validate a flow's capability requirements against installed packs.
70
+ *
71
+ * Reads both `needs` (v2 preferred) and `chains` (v1 deprecated) fields.
72
+ * For v1 chains, attempts best-effort mapping via chainToCapability().
73
+ *
74
+ * Missing capabilities are classified as either "blocking" or "degraded"
75
+ * based on the flow's onMissingCapability config.
76
+ */
77
+ validateFlow(flow: FlowForValidation): FlowValidation;
78
+ /**
79
+ * Total number of registered capabilities.
80
+ */
81
+ get size(): number;
82
+ /**
83
+ * Total number of registered packs.
84
+ */
85
+ get packCount(): number;
86
+ /**
87
+ * Get all registered capability IDs.
88
+ */
89
+ ids(): string[];
90
+ /**
91
+ * Get the RegisteredCapability for a given ID, or undefined.
92
+ */
93
+ get(capabilityId: string): RegisteredCapability | undefined;
94
+ }
95
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,mBAAmB,CAAC,EAAE;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,KAAK,CAA2E;IAMxF;;;;;;;;;;;;OAYG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,oBAAoB,EAAE,EACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACxC,QAAQ,GAAE,MAAU,GACnB,IAAI;IA+BP;;OAEG;IACH,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIlC;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IAmCjD;;;;;OAKG;IACH,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAa3C;;;;;;OAMG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;IAqB1D;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc;IAyDrD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,GAAG,IAAI,MAAM,EAAE;IAIf;;OAEG;IACH,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;CAG5D"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Capability Registry — runtime resolution engine for the three-layer architecture.
3
+ *
4
+ * Maps capability IDs (domain.action) to pack handlers. Resolves dependencies,
5
+ * checks availability, and supports graceful degradation when capabilities are
6
+ * missing.
7
+ *
8
+ * Registration flow:
9
+ * 1. Pack manifest declares capabilities (static, serializable)
10
+ * 2. Pack's onActivate() provides handlers (runtime, async)
11
+ * 3. registerPack() reconciles declarations with handlers
12
+ *
13
+ * @see docs/architecture/capability-packs.md
14
+ */
15
+ import { chainToCapability } from './chain-mapping.js';
16
+ // ---------------------------------------------------------------------------
17
+ // Registry
18
+ // ---------------------------------------------------------------------------
19
+ export class CapabilityRegistry {
20
+ capabilities = new Map();
21
+ packs = new Map();
22
+ // -----------------------------------------------------------------------
23
+ // Registration
24
+ // -----------------------------------------------------------------------
25
+ /**
26
+ * Register all capabilities from an installed pack.
27
+ *
28
+ * For each definition in `definitions`, the corresponding handler is looked
29
+ * up in `handlers`. If no handler is found the capability is skipped with a
30
+ * warning. When multiple packs provide the same capability, providers are
31
+ * sorted by priority (descending) — highest priority wins on resolve().
32
+ *
33
+ * @param packId - Unique identifier for the pack
34
+ * @param definitions - Capability definitions from the pack manifest
35
+ * @param handlers - Map of capabilityId → handler from onActivate()
36
+ * @param priority - Higher = preferred (core=100, user=75, domain=50, fallback=0)
37
+ */
38
+ registerPack(packId, definitions, handlers, priority = 0) {
39
+ for (const definition of definitions) {
40
+ const handler = handlers.get(definition.id);
41
+ if (!handler) {
42
+ console.warn(`Pack "${packId}" declares capability "${definition.id}" but no handler provided — skipping`);
43
+ continue;
44
+ }
45
+ const existing = this.capabilities.get(definition.id);
46
+ if (existing) {
47
+ // Add as additional provider, keep sorted by priority descending
48
+ existing.providers.push({ packId, handler, priority });
49
+ existing.providers.sort((a, b) => b.priority - a.priority);
50
+ }
51
+ else {
52
+ this.capabilities.set(definition.id, {
53
+ definition,
54
+ providers: [{ packId, handler, priority }],
55
+ });
56
+ }
57
+ }
58
+ // Store pack metadata for suggestPacksFor() lookups
59
+ this.packs.set(packId, { id: packId, capabilities: definitions });
60
+ }
61
+ // -----------------------------------------------------------------------
62
+ // Query
63
+ // -----------------------------------------------------------------------
64
+ /**
65
+ * Check if a capability is registered (has at least one provider).
66
+ */
67
+ has(capabilityId) {
68
+ return this.capabilities.has(capabilityId);
69
+ }
70
+ /**
71
+ * Resolve a capability — returns the highest-priority handler, knowledge
72
+ * refs, and provider list. If the capability is missing or has unsatisfied
73
+ * dependencies, returns `available: false` with suggestions.
74
+ */
75
+ resolve(capabilityId) {
76
+ const registered = this.capabilities.get(capabilityId);
77
+ if (!registered) {
78
+ return {
79
+ available: false,
80
+ capabilityId,
81
+ suggestion: this.suggestPacksFor([capabilityId]),
82
+ };
83
+ }
84
+ // Check dependency satisfaction
85
+ const depends = registered.definition.depends ?? [];
86
+ const missingDeps = depends.filter((dep) => !this.capabilities.has(dep));
87
+ if (missingDeps.length > 0) {
88
+ return {
89
+ available: false,
90
+ capabilityId,
91
+ missingDependencies: missingDeps,
92
+ suggestion: this.suggestPacksFor(missingDeps),
93
+ };
94
+ }
95
+ // Resolved — return the highest-priority provider (index 0 after sort)
96
+ const primary = registered.providers[0];
97
+ return {
98
+ available: true,
99
+ capabilityId,
100
+ handler: primary.handler,
101
+ providers: registered.providers.map((p) => p.packId),
102
+ knowledge: registered.definition.knowledge ?? [],
103
+ };
104
+ }
105
+ /**
106
+ * List all registered capabilities grouped by domain.
107
+ *
108
+ * Domain is derived from the first segment of the capability ID
109
+ * (e.g., "color" from "color.validate").
110
+ */
111
+ list() {
112
+ const grouped = new Map();
113
+ for (const [id, registered] of this.capabilities) {
114
+ const domain = id.split('.')[0];
115
+ const group = grouped.get(domain) ?? [];
116
+ group.push(registered.definition);
117
+ grouped.set(domain, group);
118
+ }
119
+ return grouped;
120
+ }
121
+ /**
122
+ * Search registered packs for capabilities matching the requested IDs.
123
+ *
124
+ * This searches ALL packs (not just capabilities currently registered with
125
+ * handlers) — useful for suggesting which packs to install when a capability
126
+ * is missing.
127
+ */
128
+ suggestPacksFor(capabilityIds) {
129
+ if (capabilityIds.length === 0)
130
+ return [];
131
+ const idSet = new Set(capabilityIds);
132
+ const suggestions = [];
133
+ for (const [, pack] of this.packs) {
134
+ const provides = pack.capabilities.filter((cap) => idSet.has(cap.id)).map((cap) => cap.id);
135
+ if (provides.length > 0) {
136
+ suggestions.push({ packId: pack.id, provides });
137
+ }
138
+ }
139
+ return suggestions;
140
+ }
141
+ // -----------------------------------------------------------------------
142
+ // Validation
143
+ // -----------------------------------------------------------------------
144
+ /**
145
+ * Validate a flow's capability requirements against installed packs.
146
+ *
147
+ * Reads both `needs` (v2 preferred) and `chains` (v1 deprecated) fields.
148
+ * For v1 chains, attempts best-effort mapping via chainToCapability().
149
+ *
150
+ * Missing capabilities are classified as either "blocking" or "degraded"
151
+ * based on the flow's onMissingCapability config.
152
+ */
153
+ validateFlow(flow) {
154
+ // Collect all capability IDs needed across all steps
155
+ const needed = new Set();
156
+ for (const step of flow.steps) {
157
+ // v2: needs field (preferred)
158
+ if (step.needs) {
159
+ for (const cap of step.needs) {
160
+ needed.add(cap);
161
+ }
162
+ }
163
+ // v1: chains field (deprecated, best-effort mapping)
164
+ if (step.chains) {
165
+ for (const chain of step.chains) {
166
+ const capId = chainToCapability(chain);
167
+ if (capId)
168
+ needed.add(capId);
169
+ }
170
+ }
171
+ }
172
+ // Partition into available vs missing
173
+ const available = [];
174
+ const missing = [];
175
+ for (const capId of needed) {
176
+ if (this.has(capId)) {
177
+ available.push(capId);
178
+ }
179
+ else {
180
+ missing.push(capId);
181
+ }
182
+ }
183
+ // Classify missing capabilities by impact
184
+ const blockingSet = new Set(flow.onMissingCapability?.blocking ?? []);
185
+ const degraded = missing.map((capability) => ({
186
+ capability,
187
+ impact: blockingSet.has(capability) ? 'blocking' : 'degraded',
188
+ suggestion: this.suggestPacksFor([capability]),
189
+ }));
190
+ const hasBlocker = degraded.some((d) => d.impact === 'blocking');
191
+ return {
192
+ valid: missing.length === 0,
193
+ available,
194
+ missing,
195
+ degraded,
196
+ canRunPartially: !hasBlocker,
197
+ };
198
+ }
199
+ // -----------------------------------------------------------------------
200
+ // Inspection (useful for debugging / CLI commands)
201
+ // -----------------------------------------------------------------------
202
+ /**
203
+ * Total number of registered capabilities.
204
+ */
205
+ get size() {
206
+ return this.capabilities.size;
207
+ }
208
+ /**
209
+ * Total number of registered packs.
210
+ */
211
+ get packCount() {
212
+ return this.packs.size;
213
+ }
214
+ /**
215
+ * Get all registered capability IDs.
216
+ */
217
+ ids() {
218
+ return [...this.capabilities.keys()];
219
+ }
220
+ /**
221
+ * Get the RegisteredCapability for a given ID, or undefined.
222
+ */
223
+ get(capabilityId) {
224
+ return this.capabilities.get(capabilityId);
225
+ }
226
+ }
227
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAkBvD,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,OAAO,kBAAkB;IACrB,YAAY,GAAG,IAAI,GAAG,EAAgC,CAAC;IACvD,KAAK,GAAG,IAAI,GAAG,EAAgE,CAAC;IAExF,0EAA0E;IAC1E,eAAe;IACf,0EAA0E;IAE1E;;;;;;;;;;;;OAYG;IACH,YAAY,CACV,MAAc,EACd,WAAmC,EACnC,QAAwC,EACxC,WAAmB,CAAC;QAEpB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,SAAS,MAAM,0BAA0B,UAAU,CAAC,EAAE,sCAAsC,CAC7F,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,iEAAiE;gBACjE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE;oBACnC,UAAU;oBACV,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,0EAA0E;IAC1E,QAAQ;IACR,0EAA0E;IAE1E;;OAEG;IACH,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAoB;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,YAAY;gBACZ,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC;aACjD,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,YAAY;gBACZ,mBAAmB,EAAE,WAAW;gBAChC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;aAC9C,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO;YACL,SAAS,EAAE,IAAI;YACf,YAAY;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE;SACjD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;QAE1D,KAAK,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,aAAuB;QACrC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,WAAW,GAAqB,EAAE,CAAC;QAEzC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE3F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,aAAa;IACb,0EAA0E;IAE1E;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAuB;QAClC,qDAAqD;QACrD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,8BAA8B;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACvC,IAAI,KAAK;wBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5C,UAAU;YACV,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,UAAoB,CAAC,CAAC,CAAE,UAAoB;YACnF,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;SAC/C,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAEjE,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC3B,SAAS;YACT,OAAO;YACP,QAAQ;YACR,eAAe,EAAE,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,mDAAmD;IACnD,0EAA0E;IAE1E;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Capability type system for Soleri's three-layer architecture.
3
+ *
4
+ * Capabilities are the atomic unit of agent functionality — what the agent
5
+ * CAN DO, not which tool it calls. Flows reference capabilities by intent
6
+ * (e.g., "color.validate"), and the registry resolves them to pack handlers
7
+ * at runtime.
8
+ *
9
+ * @see docs/architecture/capability-packs.md
10
+ */
11
+ import type { PackRuntime } from '../domain-packs/pack-runtime.js';
12
+ import type { IntelligenceEntry } from '../intelligence/types.js';
13
+ export interface CapabilityDefinition {
14
+ /** Namespaced ID: domain.action (e.g., "color.validate", "token.check") */
15
+ id: string;
16
+ /** Human-readable description of what this capability does */
17
+ description: string;
18
+ /** What this capability produces (output contract) */
19
+ provides: string[];
20
+ /** What this capability requires as input */
21
+ requires: string[];
22
+ /** Other capabilities that must be available (auto-resolved) */
23
+ depends?: string[];
24
+ /** Vault knowledge entry IDs to auto-load when this capability runs */
25
+ knowledge?: string[];
26
+ }
27
+ /**
28
+ * Capability handler — the actual implementation.
29
+ *
30
+ * Declared separately from CapabilityDefinition because:
31
+ * - Manifest declares the definition (static, serializable)
32
+ * - Pack's onActivate() registers the handler (runtime, async)
33
+ */
34
+ export type CapabilityHandler = (params: Record<string, unknown>, context: CapabilityContext) => Promise<CapabilityResult>;
35
+ /**
36
+ * CapabilityContext — extends PackRuntime with knowledge and composition.
37
+ *
38
+ * PackRuntime already provides: vault, getProject, listProjects, createCheck,
39
+ * validateCheck, validateAndConsume. This adds:
40
+ * - knowledge: auto-loaded from pack bundle + user vault
41
+ * - brain: recommendations from the learning loop
42
+ * - invoke: call another capability (composition)
43
+ */
44
+ export interface CapabilityContext {
45
+ /** Pack runtime (vault, projects, checks) — from existing PackRuntime */
46
+ runtime: PackRuntime;
47
+ /** Auto-loaded knowledge from pack + user vault */
48
+ knowledge: KnowledgeContext;
49
+ /** Brain recommendations for this capability */
50
+ brain: BrainRecommendation[];
51
+ /** Request another capability (for composition) */
52
+ invoke: (capabilityId: string, params: Record<string, unknown>) => Promise<CapabilityResult>;
53
+ }
54
+ export interface CapabilityResult {
55
+ success: boolean;
56
+ data: Record<string, unknown>;
57
+ /** Which "provides" fields were actually produced */
58
+ produced: string[];
59
+ }
60
+ export interface KnowledgeContext {
61
+ /** Entries from the pack's bundled knowledge (IntelligenceBundle) */
62
+ pack: IntelligenceEntry[];
63
+ /** Entries from user's project vault (searched by capability's knowledge[] IDs) */
64
+ vault: IntelligenceEntry[];
65
+ /** Combined, deduplicated, ranked by relevance */
66
+ merged: IntelligenceEntry[];
67
+ }
68
+ export interface BrainRecommendation {
69
+ pattern: string;
70
+ strength: number;
71
+ source: string;
72
+ }
73
+ export interface RegisteredCapability {
74
+ definition: CapabilityDefinition;
75
+ providers: Array<{
76
+ packId: string;
77
+ handler: CapabilityHandler;
78
+ /** Higher = preferred (see Multi-Provider Resolution in RFC) */
79
+ priority: number;
80
+ }>;
81
+ }
82
+ export interface ResolvedCapability {
83
+ available: boolean;
84
+ capabilityId: string;
85
+ handler?: CapabilityHandler;
86
+ providers?: string[];
87
+ knowledge?: string[];
88
+ missingDependencies?: string[];
89
+ suggestion?: PackSuggestion[];
90
+ }
91
+ export interface PackSuggestion {
92
+ packId: string;
93
+ provides: string[];
94
+ }
95
+ export interface FlowValidation {
96
+ valid: boolean;
97
+ available: string[];
98
+ missing: string[];
99
+ degraded: Array<{
100
+ capability: string;
101
+ impact: 'blocking' | 'degraded' | 'optional';
102
+ suggestion: PackSuggestion[];
103
+ }>;
104
+ canRunPartially: boolean;
105
+ }
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Capability type system for Soleri's three-layer architecture.
3
+ *
4
+ * Capabilities are the atomic unit of agent functionality — what the agent
5
+ * CAN DO, not which tool it calls. Flows reference capabilities by intent
6
+ * (e.g., "color.validate"), and the registry resolves them to pack handlers
7
+ * at runtime.
8
+ *
9
+ * @see docs/architecture/capability-packs.md
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1 +1 @@
1
- {"version":3,"file":"intent-router.d.ts","sourceRoot":"","sources":["../../src/control/intent-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AA+EpB,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAmC;gBAE1C,KAAK,EAAE,KAAK;IASxB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,gBAAgB;IAoBxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IA6CjD,OAAO,CAAC,UAAU;IAgBlB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAczC,cAAc,IAAI,eAAe;IAIjC,gBAAgB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE;IAWlD,QAAQ,IAAI,UAAU,EAAE;IAKxB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IActC,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAY7D,eAAe,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;CAuBF"}
1
+ {"version":3,"file":"intent-router.d.ts","sourceRoot":"","sources":["../../src/control/intent-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAuHpB,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAmC;gBAE1C,KAAK,EAAE,KAAK;IASxB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,gBAAgB;IAoBxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAiDjD,OAAO,CAAC,UAAU;IAgBlB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAczC,cAAc,IAAI,eAAe;IAIjC,gBAAgB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE;IAWlD,QAAQ,IAAI,UAAU,EAAE;IAKxB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IActC,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAY7D,eAAe,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;CAuBF"}
@@ -7,6 +7,42 @@
7
7
  * 10 default modes seeded on first use via INSERT OR IGNORE.
8
8
  * Agents can register custom modes at runtime.
9
9
  */
10
+ // ─── Token Stemming ─────────────────────────────────────────────────
11
+ // Lightweight suffix stripping for intent matching.
12
+ // Handles: "crashes" → "crash", "deploying" → "deploy", "broken" → "broke",
13
+ // "issues" → "issue", "building" → "build", "optimizing" → "optimize"
14
+ function stemToken(token) {
15
+ if (token.length < 4)
16
+ return token;
17
+ // Order matters — check longer suffixes first
18
+ if (token.endsWith('ying'))
19
+ return token.slice(0, -4) + 'y'; // deploying → deploy
20
+ if (token.endsWith('izing'))
21
+ return token.slice(0, -3) + 'e'; // optimizing → optimize
22
+ if (token.endsWith('ating'))
23
+ return token.slice(0, -3) + 'e'; // creating → create
24
+ if (token.endsWith('ting'))
25
+ return token.slice(0, -4) + 't'; // getting → get (approx)
26
+ if (token.endsWith('ning'))
27
+ return token.slice(0, -4) + 'n'; // planning → plan (approx)
28
+ if (token.endsWith('ing'))
29
+ return token.slice(0, -3); // fixing → fix, building → build
30
+ if (token.endsWith('ies'))
31
+ return token.slice(0, -3) + 'y'; // queries → query
32
+ if (token.endsWith('shes'))
33
+ return token.slice(0, -2); // crashes → crash
34
+ if (token.endsWith('ches'))
35
+ return token.slice(0, -2); // searches → search
36
+ if (token.endsWith('ses'))
37
+ return token.slice(0, -2); // releases → releas (close enough)
38
+ if (token.endsWith('es') && token.length > 4)
39
+ return token.slice(0, -1); // issues → issue
40
+ if (token.endsWith('ed') && token.length > 4)
41
+ return token.slice(0, -2); // fixed → fix
42
+ if (token.endsWith('s') && !token.endsWith('ss') && token.length > 3)
43
+ return token.slice(0, -1); // bugs → bug
44
+ return token;
45
+ }
10
46
  // ─── Default Mode Definitions ───────────────────────────────────────
11
47
  const DEFAULT_MODES = [
12
48
  {
@@ -21,7 +57,23 @@ const DEFAULT_MODES = [
21
57
  intent: 'fix',
22
58
  description: 'Fixing bugs, errors, and broken behavior',
23
59
  behaviorRules: ['Identify root cause first', 'Verify fix with tests', 'Check for regressions'],
24
- keywords: ['fix', 'bug', 'broken', 'error', 'crash', 'issue', 'debug', 'repair', 'janky'],
60
+ keywords: [
61
+ 'fix',
62
+ 'bug',
63
+ 'broken',
64
+ 'error',
65
+ 'crash',
66
+ 'issue',
67
+ 'debug',
68
+ 'repair',
69
+ 'janky',
70
+ 'fail',
71
+ 'wrong',
72
+ 'stuck',
73
+ 'regression',
74
+ 'fault',
75
+ 'defect',
76
+ ],
25
77
  },
26
78
  {
27
79
  mode: 'VALIDATE-MODE',
@@ -129,7 +181,11 @@ export class IntentRouter {
129
181
  }
130
182
  // ─── Intent Classification ──────────────────────────────────────────
131
183
  routeIntent(prompt) {
132
- const tokens = new Set(prompt.toLowerCase().split(/\s+/).filter(Boolean));
184
+ const rawTokens = prompt.toLowerCase().split(/\s+/).filter(Boolean);
185
+ // Stem tokens: strip common suffixes for fuzzy matching
186
+ // "crashes" → "crash", "broken" stays "broken", "deploying" → "deploy"
187
+ const stemmed = rawTokens.map((t) => stemToken(t));
188
+ const tokens = new Set([...rawTokens, ...stemmed]);
133
189
  const modes = this.getModes();
134
190
  let bestMode = null;
135
191
  let bestMatchCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"intent-router.js","sourceRoot":"","sources":["../../src/control/intent-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent-router.js","sourceRoot":"","sources":["../../src/control/intent-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { type DomainPack, type DomainPackManifest, type DomainPackRef, type KnowledgeManifest, type PackSkillDefinition, type ValidateResult, validateDomainPack, SEMANTIC_FACADE_NAMES, } from './types.js';
2
+ export { loadDomainPack, loadDomainPacksFromConfig, resolveDependencies } from './loader.js';
3
+ export { installKnowledge, type KnowledgeInstallResult } from './knowledge-installer.js';
4
+ export { installSkills, type SkillsInstallResult } from './skills-installer.js';
5
+ export { injectDomainRules, removeDomainRules } from './inject-rules.js';
6
+ export { type PackRuntime, type PackProjectContext, type PackCheckContext, createPackRuntime, } from './pack-runtime.js';
7
+ export { resolveToken, listProjectTokens, buildReverseIndex } from './token-resolver.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { validateDomainPack, SEMANTIC_FACADE_NAMES, } from './types.js';
2
+ export { loadDomainPack, loadDomainPacksFromConfig, resolveDependencies } from './loader.js';
3
+ export { installKnowledge } from './knowledge-installer.js';
4
+ export { installSkills } from './skills-installer.js';
5
+ export { injectDomainRules, removeDomainRules } from './inject-rules.js';
6
+ export { createPackRuntime, } from './pack-runtime.js';
7
+ export { resolveToken, listProjectTokens, buildReverseIndex } from './token-resolver.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAC;AAEzF,OAAO,EAAE,aAAa,EAA4B,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAIL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Domain-level CLAUDE.md injection for domain packs.
3
+ *
4
+ * Each pack can inject behavioral rules under its own marker:
5
+ * <!-- domain:packName --> ... <!-- /domain:packName -->
6
+ *
7
+ * Injection is idempotent — existing content between markers is replaced.
8
+ */
9
+ /**
10
+ * Inject domain rules into a CLAUDE.md file.
11
+ *
12
+ * @param filePath - Path to CLAUDE.md
13
+ * @param packName - Domain pack name (used in markers)
14
+ * @param rulesContent - Markdown content to inject
15
+ */
16
+ export declare function injectDomainRules(filePath: string, packName: string, rulesContent: string): void;
17
+ /**
18
+ * Remove domain rules from a CLAUDE.md file.
19
+ *
20
+ * @param filePath - Path to CLAUDE.md
21
+ * @param packName - Domain pack name
22
+ */
23
+ export declare function removeDomainRules(filePath: string, packName: string): void;
24
+ //# sourceMappingURL=inject-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-rules.d.ts","sourceRoot":"","sources":["../../src/domain-packs/inject-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CA4BhG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB1E"}