@soleri/core 2.9.0 → 2.11.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 (503) hide show
  1. package/dist/agency/agency-manager.d.ts +47 -0
  2. package/dist/agency/agency-manager.d.ts.map +1 -0
  3. package/dist/agency/agency-manager.js +281 -0
  4. package/dist/agency/agency-manager.js.map +1 -0
  5. package/dist/agency/index.d.ts +3 -0
  6. package/dist/agency/index.d.ts.map +1 -0
  7. package/dist/agency/index.js +2 -0
  8. package/dist/agency/index.js.map +1 -0
  9. package/dist/agency/types.d.ts +69 -0
  10. package/dist/agency/types.d.ts.map +1 -0
  11. package/dist/agency/types.js +5 -0
  12. package/dist/agency/types.js.map +1 -0
  13. package/dist/brain/brain.d.ts +0 -1
  14. package/dist/brain/brain.d.ts.map +1 -1
  15. package/dist/brain/brain.js +14 -0
  16. package/dist/brain/brain.js.map +1 -1
  17. package/dist/brain/intelligence.d.ts +5 -1
  18. package/dist/brain/intelligence.d.ts.map +1 -1
  19. package/dist/brain/intelligence.js +83 -0
  20. package/dist/brain/intelligence.js.map +1 -1
  21. package/dist/brain/types.d.ts +21 -0
  22. package/dist/brain/types.d.ts.map +1 -1
  23. package/dist/chat/agent-loop-types.d.ts +82 -0
  24. package/dist/chat/agent-loop-types.d.ts.map +1 -0
  25. package/dist/chat/agent-loop-types.js +8 -0
  26. package/dist/chat/agent-loop-types.js.map +1 -0
  27. package/dist/chat/agent-loop.d.ts +19 -0
  28. package/dist/chat/agent-loop.d.ts.map +1 -0
  29. package/dist/chat/agent-loop.js +261 -0
  30. package/dist/chat/agent-loop.js.map +1 -0
  31. package/dist/chat/auth-manager.d.ts +49 -0
  32. package/dist/chat/auth-manager.d.ts.map +1 -0
  33. package/dist/chat/auth-manager.js +152 -0
  34. package/dist/chat/auth-manager.js.map +1 -0
  35. package/dist/chat/browser-session.d.ts +86 -0
  36. package/dist/chat/browser-session.d.ts.map +1 -0
  37. package/dist/chat/browser-session.js +143 -0
  38. package/dist/chat/browser-session.js.map +1 -0
  39. package/dist/chat/cancellation.d.ts +54 -0
  40. package/dist/chat/cancellation.d.ts.map +1 -0
  41. package/dist/chat/cancellation.js +80 -0
  42. package/dist/chat/cancellation.js.map +1 -0
  43. package/dist/chat/chat-session.d.ts +86 -0
  44. package/dist/chat/chat-session.d.ts.map +1 -0
  45. package/dist/chat/chat-session.js +252 -0
  46. package/dist/chat/chat-session.js.map +1 -0
  47. package/dist/chat/file-handler.d.ts +63 -0
  48. package/dist/chat/file-handler.d.ts.map +1 -0
  49. package/dist/chat/file-handler.js +182 -0
  50. package/dist/chat/file-handler.js.map +1 -0
  51. package/dist/chat/fragment-buffer.d.ts +49 -0
  52. package/dist/chat/fragment-buffer.d.ts.map +1 -0
  53. package/dist/chat/fragment-buffer.js +130 -0
  54. package/dist/chat/fragment-buffer.js.map +1 -0
  55. package/dist/chat/index.d.ts +24 -0
  56. package/dist/chat/index.d.ts.map +1 -0
  57. package/dist/chat/index.js +15 -0
  58. package/dist/chat/index.js.map +1 -0
  59. package/dist/chat/mcp-bridge.d.ts +60 -0
  60. package/dist/chat/mcp-bridge.d.ts.map +1 -0
  61. package/dist/chat/mcp-bridge.js +111 -0
  62. package/dist/chat/mcp-bridge.js.map +1 -0
  63. package/dist/chat/notifications.d.ts +82 -0
  64. package/dist/chat/notifications.d.ts.map +1 -0
  65. package/dist/chat/notifications.js +119 -0
  66. package/dist/chat/notifications.js.map +1 -0
  67. package/dist/chat/output-compressor.d.ts +30 -0
  68. package/dist/chat/output-compressor.d.ts.map +1 -0
  69. package/dist/chat/output-compressor.js +95 -0
  70. package/dist/chat/output-compressor.js.map +1 -0
  71. package/dist/chat/queue.d.ts +91 -0
  72. package/dist/chat/queue.d.ts.map +1 -0
  73. package/dist/chat/queue.js +146 -0
  74. package/dist/chat/queue.js.map +1 -0
  75. package/dist/chat/response-chunker.d.ts +29 -0
  76. package/dist/chat/response-chunker.d.ts.map +1 -0
  77. package/dist/chat/response-chunker.js +163 -0
  78. package/dist/chat/response-chunker.js.map +1 -0
  79. package/dist/chat/self-update.d.ts +62 -0
  80. package/dist/chat/self-update.d.ts.map +1 -0
  81. package/dist/chat/self-update.js +90 -0
  82. package/dist/chat/self-update.js.map +1 -0
  83. package/dist/chat/types.d.ts +105 -0
  84. package/dist/chat/types.d.ts.map +1 -0
  85. package/dist/chat/types.js +8 -0
  86. package/dist/chat/types.js.map +1 -0
  87. package/dist/chat/voice.d.ts +39 -0
  88. package/dist/chat/voice.d.ts.map +1 -0
  89. package/dist/chat/voice.js +80 -0
  90. package/dist/chat/voice.js.map +1 -0
  91. package/dist/claudemd/compose.d.ts +31 -0
  92. package/dist/claudemd/compose.d.ts.map +1 -0
  93. package/dist/claudemd/compose.js +105 -0
  94. package/dist/claudemd/compose.js.map +1 -0
  95. package/dist/claudemd/index.d.ts +5 -0
  96. package/dist/claudemd/index.d.ts.map +1 -0
  97. package/dist/claudemd/index.js +3 -0
  98. package/dist/claudemd/index.js.map +1 -0
  99. package/dist/claudemd/inject.d.ts +31 -0
  100. package/dist/claudemd/inject.d.ts.map +1 -0
  101. package/dist/claudemd/inject.js +157 -0
  102. package/dist/claudemd/inject.js.map +1 -0
  103. package/dist/claudemd/types.d.ts +41 -0
  104. package/dist/claudemd/types.d.ts.map +1 -0
  105. package/dist/claudemd/types.js +5 -0
  106. package/dist/claudemd/types.js.map +1 -0
  107. package/dist/context/context-engine.d.ts +31 -0
  108. package/dist/context/context-engine.d.ts.map +1 -0
  109. package/dist/context/context-engine.js +245 -0
  110. package/dist/context/context-engine.js.map +1 -0
  111. package/dist/context/index.d.ts +3 -0
  112. package/dist/context/index.d.ts.map +1 -0
  113. package/dist/context/index.js +2 -0
  114. package/dist/context/index.js.map +1 -0
  115. package/dist/context/types.d.ts +54 -0
  116. package/dist/context/types.d.ts.map +1 -0
  117. package/dist/context/types.js +5 -0
  118. package/dist/context/types.js.map +1 -0
  119. package/dist/enforcement/adapters/claude-code.d.ts +18 -0
  120. package/dist/enforcement/adapters/claude-code.d.ts.map +1 -0
  121. package/dist/enforcement/adapters/claude-code.js +106 -0
  122. package/dist/enforcement/adapters/claude-code.js.map +1 -0
  123. package/dist/enforcement/adapters/index.d.ts +2 -0
  124. package/dist/enforcement/adapters/index.d.ts.map +1 -0
  125. package/dist/enforcement/adapters/index.js +2 -0
  126. package/dist/enforcement/adapters/index.js.map +1 -0
  127. package/dist/enforcement/index.d.ts +4 -0
  128. package/dist/enforcement/index.d.ts.map +1 -0
  129. package/dist/enforcement/index.js +3 -0
  130. package/dist/enforcement/index.js.map +1 -0
  131. package/dist/enforcement/registry.d.ts +23 -0
  132. package/dist/enforcement/registry.d.ts.map +1 -0
  133. package/dist/enforcement/registry.js +63 -0
  134. package/dist/enforcement/registry.js.map +1 -0
  135. package/dist/enforcement/types.d.ts +51 -0
  136. package/dist/enforcement/types.d.ts.map +1 -0
  137. package/dist/enforcement/types.js +8 -0
  138. package/dist/enforcement/types.js.map +1 -0
  139. package/dist/facades/facade-factory.d.ts +10 -3
  140. package/dist/facades/facade-factory.d.ts.map +1 -1
  141. package/dist/facades/facade-factory.js +94 -5
  142. package/dist/facades/facade-factory.js.map +1 -1
  143. package/dist/facades/types.d.ts +15 -1
  144. package/dist/facades/types.d.ts.map +1 -1
  145. package/dist/facades/types.js +6 -0
  146. package/dist/facades/types.js.map +1 -1
  147. package/dist/health/health-registry.d.ts +40 -0
  148. package/dist/health/health-registry.d.ts.map +1 -0
  149. package/dist/health/health-registry.js +134 -0
  150. package/dist/health/health-registry.js.map +1 -0
  151. package/dist/health/index.d.ts +5 -0
  152. package/dist/health/index.d.ts.map +1 -0
  153. package/dist/health/index.js +3 -0
  154. package/dist/health/index.js.map +1 -0
  155. package/dist/health/vault-integrity.d.ts +13 -0
  156. package/dist/health/vault-integrity.d.ts.map +1 -0
  157. package/dist/health/vault-integrity.js +49 -0
  158. package/dist/health/vault-integrity.js.map +1 -0
  159. package/dist/index.d.ts +67 -6
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +51 -3
  162. package/dist/index.js.map +1 -1
  163. package/dist/intake/intake-pipeline.d.ts +0 -7
  164. package/dist/intake/intake-pipeline.d.ts.map +1 -1
  165. package/dist/intake/intake-pipeline.js +1 -1
  166. package/dist/intake/intake-pipeline.js.map +1 -1
  167. package/dist/intelligence/types.d.ts +1 -0
  168. package/dist/intelligence/types.d.ts.map +1 -1
  169. package/dist/migrations/index.d.ts +6 -0
  170. package/dist/migrations/index.d.ts.map +1 -0
  171. package/dist/migrations/index.js +5 -0
  172. package/dist/migrations/index.js.map +1 -0
  173. package/dist/migrations/migration-runner.d.ts +51 -0
  174. package/dist/migrations/migration-runner.d.ts.map +1 -0
  175. package/dist/migrations/migration-runner.js +141 -0
  176. package/dist/migrations/migration-runner.js.map +1 -0
  177. package/dist/packs/index.d.ts +10 -0
  178. package/dist/packs/index.d.ts.map +1 -0
  179. package/dist/packs/index.js +8 -0
  180. package/dist/packs/index.js.map +1 -0
  181. package/dist/packs/lockfile.d.ts +97 -0
  182. package/dist/packs/lockfile.d.ts.map +1 -0
  183. package/dist/packs/lockfile.js +129 -0
  184. package/dist/packs/lockfile.js.map +1 -0
  185. package/dist/packs/pack-installer.d.ts +41 -0
  186. package/dist/packs/pack-installer.d.ts.map +1 -0
  187. package/dist/packs/pack-installer.js +253 -0
  188. package/dist/packs/pack-installer.js.map +1 -0
  189. package/dist/packs/resolver.d.ts +51 -0
  190. package/dist/packs/resolver.d.ts.map +1 -0
  191. package/dist/packs/resolver.js +195 -0
  192. package/dist/packs/resolver.js.map +1 -0
  193. package/dist/packs/types.d.ts +186 -0
  194. package/dist/packs/types.d.ts.map +1 -0
  195. package/dist/packs/types.js +69 -0
  196. package/dist/packs/types.js.map +1 -0
  197. package/dist/persistence/postgres-provider.d.ts +42 -7
  198. package/dist/persistence/postgres-provider.d.ts.map +1 -1
  199. package/dist/persistence/postgres-provider.js +187 -46
  200. package/dist/persistence/postgres-provider.js.map +1 -1
  201. package/dist/planning/gap-analysis.d.ts.map +1 -1
  202. package/dist/planning/gap-analysis.js +3 -1
  203. package/dist/planning/gap-analysis.js.map +1 -1
  204. package/dist/playbooks/index.d.ts +2 -0
  205. package/dist/playbooks/index.d.ts.map +1 -1
  206. package/dist/playbooks/index.js +2 -0
  207. package/dist/playbooks/index.js.map +1 -1
  208. package/dist/playbooks/playbook-executor.d.ts +100 -0
  209. package/dist/playbooks/playbook-executor.d.ts.map +1 -0
  210. package/dist/playbooks/playbook-executor.js +207 -0
  211. package/dist/playbooks/playbook-executor.js.map +1 -0
  212. package/dist/plugins/index.d.ts +7 -0
  213. package/dist/plugins/index.d.ts.map +1 -0
  214. package/dist/plugins/index.js +7 -0
  215. package/dist/plugins/index.js.map +1 -0
  216. package/dist/plugins/plugin-loader.d.ts +28 -0
  217. package/dist/plugins/plugin-loader.d.ts.map +1 -0
  218. package/dist/plugins/plugin-loader.js +150 -0
  219. package/dist/plugins/plugin-loader.js.map +1 -0
  220. package/dist/plugins/plugin-registry.d.ts +58 -0
  221. package/dist/plugins/plugin-registry.d.ts.map +1 -0
  222. package/dist/plugins/plugin-registry.js +157 -0
  223. package/dist/plugins/plugin-registry.js.map +1 -0
  224. package/dist/plugins/types.d.ts +180 -0
  225. package/dist/plugins/types.d.ts.map +1 -0
  226. package/dist/plugins/types.js +48 -0
  227. package/dist/plugins/types.js.map +1 -0
  228. package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
  229. package/dist/runtime/admin-extra-ops.js +181 -8
  230. package/dist/runtime/admin-extra-ops.js.map +1 -1
  231. package/dist/runtime/capture-ops.d.ts.map +1 -1
  232. package/dist/runtime/capture-ops.js +106 -7
  233. package/dist/runtime/capture-ops.js.map +1 -1
  234. package/dist/runtime/deprecation.d.ts +33 -0
  235. package/dist/runtime/deprecation.d.ts.map +1 -0
  236. package/dist/runtime/deprecation.js +41 -0
  237. package/dist/runtime/deprecation.js.map +1 -0
  238. package/dist/runtime/facades/admin-facade.d.ts.map +1 -1
  239. package/dist/runtime/facades/admin-facade.js +12 -1
  240. package/dist/runtime/facades/admin-facade.js.map +1 -1
  241. package/dist/runtime/facades/agency-facade.d.ts +7 -0
  242. package/dist/runtime/facades/agency-facade.d.ts.map +1 -0
  243. package/dist/runtime/facades/agency-facade.js +103 -0
  244. package/dist/runtime/facades/agency-facade.js.map +1 -0
  245. package/dist/runtime/facades/brain-facade.d.ts.map +1 -1
  246. package/dist/runtime/facades/brain-facade.js +58 -0
  247. package/dist/runtime/facades/brain-facade.js.map +1 -1
  248. package/dist/runtime/facades/chat-facade.d.ts +7 -0
  249. package/dist/runtime/facades/chat-facade.d.ts.map +1 -0
  250. package/dist/runtime/facades/chat-facade.js +808 -0
  251. package/dist/runtime/facades/chat-facade.js.map +1 -0
  252. package/dist/runtime/facades/context-facade.d.ts +7 -0
  253. package/dist/runtime/facades/context-facade.d.ts.map +1 -0
  254. package/dist/runtime/facades/context-facade.js +45 -0
  255. package/dist/runtime/facades/context-facade.js.map +1 -0
  256. package/dist/runtime/facades/index.d.ts.map +1 -1
  257. package/dist/runtime/facades/index.js +18 -0
  258. package/dist/runtime/facades/index.js.map +1 -1
  259. package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
  260. package/dist/runtime/facades/vault-facade.js +247 -1
  261. package/dist/runtime/facades/vault-facade.js.map +1 -1
  262. package/dist/runtime/feature-flags.d.ts +18 -0
  263. package/dist/runtime/feature-flags.d.ts.map +1 -0
  264. package/dist/runtime/feature-flags.js +90 -0
  265. package/dist/runtime/feature-flags.js.map +1 -0
  266. package/dist/runtime/pack-ops.d.ts +9 -0
  267. package/dist/runtime/pack-ops.d.ts.map +1 -0
  268. package/dist/runtime/pack-ops.js +76 -0
  269. package/dist/runtime/pack-ops.js.map +1 -0
  270. package/dist/runtime/playbook-ops.d.ts +3 -7
  271. package/dist/runtime/playbook-ops.d.ts.map +1 -1
  272. package/dist/runtime/playbook-ops.js +101 -10
  273. package/dist/runtime/playbook-ops.js.map +1 -1
  274. package/dist/runtime/plugin-ops.d.ts +9 -0
  275. package/dist/runtime/plugin-ops.d.ts.map +1 -0
  276. package/dist/runtime/plugin-ops.js +235 -0
  277. package/dist/runtime/plugin-ops.js.map +1 -0
  278. package/dist/runtime/runtime.d.ts.map +1 -1
  279. package/dist/runtime/runtime.js +72 -5
  280. package/dist/runtime/runtime.js.map +1 -1
  281. package/dist/runtime/telemetry-ops.d.ts +10 -0
  282. package/dist/runtime/telemetry-ops.d.ts.map +1 -0
  283. package/dist/runtime/telemetry-ops.js +53 -0
  284. package/dist/runtime/telemetry-ops.js.map +1 -0
  285. package/dist/runtime/types.d.ts +35 -0
  286. package/dist/runtime/types.d.ts.map +1 -1
  287. package/dist/runtime/vault-sharing-ops.d.ts +13 -0
  288. package/dist/runtime/vault-sharing-ops.d.ts.map +1 -0
  289. package/dist/runtime/vault-sharing-ops.js +345 -0
  290. package/dist/runtime/vault-sharing-ops.js.map +1 -0
  291. package/dist/streams/index.d.ts +1 -1
  292. package/dist/streams/index.d.ts.map +1 -1
  293. package/dist/streams/index.js +1 -1
  294. package/dist/streams/index.js.map +1 -1
  295. package/dist/streams/replayable-stream.d.ts +13 -1
  296. package/dist/streams/replayable-stream.d.ts.map +1 -1
  297. package/dist/streams/replayable-stream.js +27 -3
  298. package/dist/streams/replayable-stream.js.map +1 -1
  299. package/dist/text/similarity.d.ts +0 -1
  300. package/dist/text/similarity.d.ts.map +1 -1
  301. package/dist/text/similarity.js +1 -1
  302. package/dist/text/similarity.js.map +1 -1
  303. package/dist/transport/http-server.d.ts +56 -0
  304. package/dist/transport/http-server.d.ts.map +1 -0
  305. package/dist/transport/http-server.js +210 -0
  306. package/dist/transport/http-server.js.map +1 -0
  307. package/dist/transport/index.d.ts +11 -0
  308. package/dist/transport/index.d.ts.map +1 -0
  309. package/dist/transport/index.js +10 -0
  310. package/dist/transport/index.js.map +1 -0
  311. package/dist/transport/lsp-server.d.ts +140 -0
  312. package/dist/transport/lsp-server.d.ts.map +1 -0
  313. package/dist/transport/lsp-server.js +239 -0
  314. package/dist/transport/lsp-server.js.map +1 -0
  315. package/dist/transport/rate-limiter.d.ts +35 -0
  316. package/dist/transport/rate-limiter.d.ts.map +1 -0
  317. package/dist/transport/rate-limiter.js +72 -0
  318. package/dist/transport/rate-limiter.js.map +1 -0
  319. package/dist/transport/session-manager.d.ts +49 -0
  320. package/dist/transport/session-manager.d.ts.map +1 -0
  321. package/dist/transport/session-manager.js +83 -0
  322. package/dist/transport/session-manager.js.map +1 -0
  323. package/dist/transport/token-auth.d.ts +29 -0
  324. package/dist/transport/token-auth.d.ts.map +1 -0
  325. package/dist/transport/token-auth.js +84 -0
  326. package/dist/transport/token-auth.js.map +1 -0
  327. package/dist/transport/types.d.ts +61 -0
  328. package/dist/transport/types.d.ts.map +1 -0
  329. package/dist/transport/types.js +5 -0
  330. package/dist/transport/types.js.map +1 -0
  331. package/dist/transport/ws-server.d.ts +78 -0
  332. package/dist/transport/ws-server.d.ts.map +1 -0
  333. package/dist/transport/ws-server.js +342 -0
  334. package/dist/transport/ws-server.js.map +1 -0
  335. package/dist/vault/git-vault-sync.d.ts +107 -0
  336. package/dist/vault/git-vault-sync.d.ts.map +1 -0
  337. package/dist/vault/git-vault-sync.js +251 -0
  338. package/dist/vault/git-vault-sync.js.map +1 -0
  339. package/dist/vault/knowledge-review.d.ts +67 -0
  340. package/dist/vault/knowledge-review.d.ts.map +1 -0
  341. package/dist/vault/knowledge-review.js +133 -0
  342. package/dist/vault/knowledge-review.js.map +1 -0
  343. package/dist/vault/obsidian-sync.d.ts +94 -0
  344. package/dist/vault/obsidian-sync.d.ts.map +1 -0
  345. package/dist/vault/obsidian-sync.js +247 -0
  346. package/dist/vault/obsidian-sync.js.map +1 -0
  347. package/dist/vault/scope-detector.d.ts +31 -0
  348. package/dist/vault/scope-detector.d.ts.map +1 -0
  349. package/dist/vault/scope-detector.js +182 -0
  350. package/dist/vault/scope-detector.js.map +1 -0
  351. package/dist/vault/vault-branching.d.ts +71 -0
  352. package/dist/vault/vault-branching.d.ts.map +1 -0
  353. package/dist/vault/vault-branching.js +180 -0
  354. package/dist/vault/vault-branching.js.map +1 -0
  355. package/dist/vault/vault-manager.d.ts +89 -0
  356. package/dist/vault/vault-manager.d.ts.map +1 -0
  357. package/dist/vault/vault-manager.js +199 -0
  358. package/dist/vault/vault-manager.js.map +1 -0
  359. package/dist/vault/vault-types.d.ts +30 -0
  360. package/dist/vault/vault-types.d.ts.map +1 -0
  361. package/dist/vault/vault-types.js +10 -0
  362. package/dist/vault/vault-types.js.map +1 -0
  363. package/dist/vault/vault.d.ts +10 -0
  364. package/dist/vault/vault.d.ts.map +1 -1
  365. package/dist/vault/vault.js +36 -3
  366. package/dist/vault/vault.js.map +1 -1
  367. package/package.json +1 -1
  368. package/src/__tests__/admin-extra-ops.test.ts +31 -11
  369. package/src/__tests__/agency-manager.test.ts +374 -0
  370. package/src/__tests__/agent-loop.test.ts +256 -0
  371. package/src/__tests__/capture-ops.test.ts +275 -0
  372. package/src/__tests__/chat-differentiators.test.ts +251 -0
  373. package/src/__tests__/chat-enhanced.test.ts +390 -0
  374. package/src/__tests__/chat-transport.test.ts +665 -0
  375. package/src/__tests__/claudemd.test.ts +282 -0
  376. package/src/__tests__/context-engine.test.ts +256 -0
  377. package/src/__tests__/core-ops.test.ts +97 -5
  378. package/src/__tests__/deprecation.test.ts +78 -0
  379. package/src/__tests__/enforcement.test.ts +153 -0
  380. package/src/__tests__/facade-factory.test.ts +271 -0
  381. package/src/__tests__/feature-flags.test.ts +138 -0
  382. package/src/__tests__/git-vault-sync.test.ts +230 -0
  383. package/src/__tests__/health-registry.test.ts +173 -0
  384. package/src/__tests__/knowledge-review.test.ts +104 -0
  385. package/src/__tests__/lsp-transport.test.ts +442 -0
  386. package/src/__tests__/migration-runner.test.ts +170 -0
  387. package/src/__tests__/normalize.test.ts +10 -0
  388. package/src/__tests__/obsidian-sync.test.ts +354 -0
  389. package/src/__tests__/pack-lockfile.test.ts +261 -0
  390. package/src/__tests__/pack-ops.test.ts +146 -0
  391. package/src/__tests__/pack-system.test.ts +423 -0
  392. package/src/__tests__/playbook-executor.test.ts +249 -0
  393. package/src/__tests__/playbook-ops-execution.test.ts +189 -0
  394. package/src/__tests__/plugin-ops.test.ts +411 -0
  395. package/src/__tests__/plugin-system.test.ts +509 -0
  396. package/src/__tests__/postgres-provider.test.ts +64 -6
  397. package/src/__tests__/replayable-stream.test.ts +112 -1
  398. package/src/__tests__/scope-detector.test.ts +121 -0
  399. package/src/__tests__/session-lifecycle.test.ts +259 -0
  400. package/src/__tests__/transport.test.ts +758 -0
  401. package/src/__tests__/vault-branching.test.ts +274 -0
  402. package/src/__tests__/vault-connect.test.ts +179 -0
  403. package/src/__tests__/vault-integrity.test.ts +71 -0
  404. package/src/__tests__/vault-manager.test.ts +238 -0
  405. package/src/__tests__/vault-scaling.test.ts +281 -0
  406. package/src/__tests__/vault-sharing.test.ts +270 -0
  407. package/src/__tests__/ws-transport.test.ts +479 -0
  408. package/src/agency/agency-manager.ts +326 -0
  409. package/src/agency/index.ts +13 -0
  410. package/src/agency/types.ts +88 -0
  411. package/src/brain/brain.ts +15 -11
  412. package/src/brain/intelligence.ts +103 -0
  413. package/src/brain/types.ts +26 -0
  414. package/src/chat/agent-loop-types.ts +99 -0
  415. package/src/chat/agent-loop.ts +357 -0
  416. package/src/chat/auth-manager.ts +171 -0
  417. package/src/chat/browser-session.ts +188 -0
  418. package/src/chat/cancellation.ts +99 -0
  419. package/src/chat/chat-session.ts +283 -0
  420. package/src/chat/file-handler.ts +230 -0
  421. package/src/chat/fragment-buffer.ts +160 -0
  422. package/src/chat/index.ts +72 -0
  423. package/src/chat/mcp-bridge.ts +135 -0
  424. package/src/chat/notifications.ts +164 -0
  425. package/src/chat/output-compressor.ts +116 -0
  426. package/src/chat/queue.ts +208 -0
  427. package/src/chat/response-chunker.ts +200 -0
  428. package/src/chat/self-update.ts +117 -0
  429. package/src/chat/types.ts +126 -0
  430. package/src/chat/voice.ts +134 -0
  431. package/src/claudemd/compose.ts +142 -0
  432. package/src/claudemd/index.ts +17 -0
  433. package/src/claudemd/inject.ts +170 -0
  434. package/src/claudemd/types.ts +45 -0
  435. package/src/context/context-engine.ts +302 -0
  436. package/src/context/index.ts +11 -0
  437. package/src/context/types.ts +69 -0
  438. package/src/enforcement/adapters/claude-code.ts +135 -0
  439. package/src/enforcement/adapters/index.ts +1 -0
  440. package/src/enforcement/index.ts +10 -0
  441. package/src/enforcement/registry.ts +82 -0
  442. package/src/enforcement/types.ts +56 -0
  443. package/src/facades/facade-factory.ts +138 -5
  444. package/src/facades/types.ts +21 -0
  445. package/src/health/health-registry.ts +165 -0
  446. package/src/health/index.ts +11 -0
  447. package/src/health/vault-integrity.ts +66 -0
  448. package/src/index.ts +294 -2
  449. package/src/intake/intake-pipeline.ts +1 -1
  450. package/src/intelligence/types.ts +1 -0
  451. package/src/migrations/index.ts +6 -0
  452. package/src/migrations/migration-runner.ts +185 -0
  453. package/src/packs/index.ts +20 -0
  454. package/src/packs/lockfile.ts +180 -0
  455. package/src/packs/pack-installer.ts +289 -0
  456. package/src/packs/resolver.ts +237 -0
  457. package/src/packs/types.ts +125 -0
  458. package/src/persistence/postgres-provider.ts +211 -58
  459. package/src/planning/gap-analysis.ts +52 -7
  460. package/src/playbooks/index.ts +11 -0
  461. package/src/playbooks/playbook-executor.ts +301 -0
  462. package/src/plugins/index.ts +19 -0
  463. package/src/plugins/plugin-loader.ts +183 -0
  464. package/src/plugins/plugin-registry.ts +187 -0
  465. package/src/plugins/types.ts +119 -0
  466. package/src/runtime/admin-extra-ops.ts +193 -8
  467. package/src/runtime/capture-ops.ts +113 -8
  468. package/src/runtime/deprecation.ts +58 -0
  469. package/src/runtime/facades/admin-facade.ts +16 -1
  470. package/src/runtime/facades/agency-facade.ts +111 -0
  471. package/src/runtime/facades/brain-facade.ts +60 -0
  472. package/src/runtime/facades/chat-facade.ts +918 -0
  473. package/src/runtime/facades/context-facade.ts +55 -0
  474. package/src/runtime/facades/index.ts +22 -1
  475. package/src/runtime/facades/vault-facade.ts +261 -1
  476. package/src/runtime/feature-flags.ts +101 -0
  477. package/src/runtime/pack-ops.ts +85 -0
  478. package/src/runtime/playbook-ops.ts +113 -9
  479. package/src/runtime/plugin-ops.ts +258 -0
  480. package/src/runtime/runtime.ts +84 -5
  481. package/src/runtime/telemetry-ops.ts +57 -0
  482. package/src/runtime/types.ts +35 -0
  483. package/src/runtime/vault-sharing-ops.ts +372 -0
  484. package/src/streams/index.ts +1 -1
  485. package/src/streams/replayable-stream.ts +34 -3
  486. package/src/text/similarity.ts +1 -1
  487. package/src/transport/http-server.ts +269 -0
  488. package/src/transport/index.ts +48 -0
  489. package/src/transport/lsp-server.ts +401 -0
  490. package/src/transport/rate-limiter.ts +97 -0
  491. package/src/transport/session-manager.ts +120 -0
  492. package/src/transport/token-auth.ts +96 -0
  493. package/src/transport/types.ts +66 -0
  494. package/src/transport/ws-server.ts +415 -0
  495. package/src/vault/git-vault-sync.ts +318 -0
  496. package/src/vault/knowledge-review.ts +221 -0
  497. package/src/vault/obsidian-sync.ts +346 -0
  498. package/src/vault/scope-detector.ts +219 -0
  499. package/src/vault/vault-branching.ts +264 -0
  500. package/src/vault/vault-manager.ts +237 -0
  501. package/src/vault/vault-types.ts +50 -0
  502. package/src/vault/vault.ts +41 -3
  503. package/src/governance/index.ts +0 -18
@@ -0,0 +1,157 @@
1
+ /**
2
+ * CLAUDE.md injection — marker-based write with diff detection and user-safe zones.
3
+ *
4
+ * Improvements over Salvador:
5
+ * - Diff-before-write: skips I/O if content unchanged
6
+ * - User-safe zones: `<!-- user:custom -->` blocks inside markers survive regeneration
7
+ * - Versioned markers: `<!-- agent:mode v1 -->` for future migration
8
+ */
9
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
10
+ import { OPEN_MARKER, CLOSE_MARKER, USER_ZONE_OPEN, USER_ZONE_CLOSE } from './compose.js';
11
+ /** Legacy marker patterns to detect and migrate */
12
+ const LEGACY_MARKERS = [
13
+ '<!-- agent:mode -->', // v0 (no version)
14
+ '<!-- salvador:mode -->', // pre-Soleri
15
+ ];
16
+ /**
17
+ * Extract user-safe zone content from an existing agent block.
18
+ * Returns the content between `<!-- user:custom -->` markers, or null.
19
+ */
20
+ export function extractUserZone(content) {
21
+ const openIdx = content.indexOf(USER_ZONE_OPEN);
22
+ const closeIdx = content.indexOf(USER_ZONE_CLOSE);
23
+ if (openIdx === -1 || closeIdx === -1 || closeIdx <= openIdx)
24
+ return null;
25
+ const inner = content.slice(openIdx + USER_ZONE_OPEN.length, closeIdx).trim();
26
+ return inner || null;
27
+ }
28
+ /**
29
+ * Preserve user-safe zone content when regenerating.
30
+ * Replaces the empty user zone in `newBlock` with the saved content.
31
+ */
32
+ function preserveUserZone(newBlock, savedZone) {
33
+ if (!savedZone)
34
+ return newBlock;
35
+ const emptyZone = `${USER_ZONE_OPEN}\n\n${USER_ZONE_CLOSE}`;
36
+ const filledZone = `${USER_ZONE_OPEN}\n${savedZone}\n${USER_ZONE_CLOSE}`;
37
+ return newBlock.replace(emptyZone, filledZone);
38
+ }
39
+ /**
40
+ * Find the agent block boundaries in content.
41
+ * Handles current and legacy markers.
42
+ */
43
+ function findBlock(content) {
44
+ // Current markers
45
+ const openIdx = content.indexOf(OPEN_MARKER);
46
+ if (openIdx !== -1) {
47
+ const closeIdx = content.indexOf(CLOSE_MARKER, openIdx);
48
+ if (closeIdx > openIdx) {
49
+ return { openIdx, closeIdx, closeLen: CLOSE_MARKER.length };
50
+ }
51
+ }
52
+ // Legacy markers
53
+ for (const legacy of LEGACY_MARKERS) {
54
+ const legacyOpen = content.indexOf(legacy);
55
+ if (legacyOpen === -1)
56
+ continue;
57
+ const legacyCloseTag = legacy.replace('<!-- ', '<!-- /');
58
+ const legacyClose = content.indexOf(legacyCloseTag, legacyOpen);
59
+ if (legacyClose > legacyOpen) {
60
+ return { openIdx: legacyOpen, closeIdx: legacyClose, closeLen: legacyCloseTag.length };
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ /**
66
+ * Inject an agent block into a CLAUDE.md file.
67
+ *
68
+ * - If markers exist: replace (preserving user-safe zones), skip if unchanged
69
+ * - If legacy markers: migrate
70
+ * - If no markers: append
71
+ */
72
+ export function injectCLAUDEmd(filePath, block) {
73
+ try {
74
+ // New file
75
+ if (!existsSync(filePath)) {
76
+ writeFileSync(filePath, block + '\n', 'utf-8');
77
+ return { success: true, action: 'injected', message: 'Created file with agent block' };
78
+ }
79
+ const content = readFileSync(filePath, 'utf-8');
80
+ const bounds = findBlock(content);
81
+ if (bounds) {
82
+ // Extract user zone from existing block before replacing
83
+ const existingBlock = content.slice(bounds.openIdx, bounds.closeIdx + bounds.closeLen);
84
+ const userZone = extractUserZone(existingBlock);
85
+ const finalBlock = preserveUserZone(block, userZone);
86
+ // Diff check — skip write if identical
87
+ if (existingBlock === finalBlock) {
88
+ return {
89
+ success: true,
90
+ action: 'skipped',
91
+ message: 'Content unchanged — no write needed',
92
+ diffDetected: false,
93
+ };
94
+ }
95
+ const before = content.slice(0, bounds.openIdx);
96
+ const after = content.slice(bounds.closeIdx + bounds.closeLen);
97
+ writeFileSync(filePath, before + finalBlock + after, 'utf-8');
98
+ return {
99
+ success: true,
100
+ action: 'replaced',
101
+ message: 'Replaced agent block (diff detected)',
102
+ diffDetected: true,
103
+ };
104
+ }
105
+ // No markers — append
106
+ writeFileSync(filePath, content.trimEnd() + '\n\n' + block + '\n', 'utf-8');
107
+ return { success: true, action: 'injected', message: 'Appended agent block' };
108
+ }
109
+ catch (err) {
110
+ return {
111
+ success: false,
112
+ action: 'error',
113
+ message: `Injection failed: ${err instanceof Error ? err.message : String(err)}`,
114
+ };
115
+ }
116
+ }
117
+ /**
118
+ * Remove the agent block from a CLAUDE.md file.
119
+ */
120
+ export function removeCLAUDEmd(filePath) {
121
+ try {
122
+ if (!existsSync(filePath)) {
123
+ return { success: true, action: 'not_present', message: 'File does not exist' };
124
+ }
125
+ const content = readFileSync(filePath, 'utf-8');
126
+ const bounds = findBlock(content);
127
+ if (!bounds) {
128
+ return { success: true, action: 'not_present', message: 'No agent block found' };
129
+ }
130
+ const before = content.slice(0, bounds.openIdx).trimEnd();
131
+ const after = content.slice(bounds.closeIdx + bounds.closeLen).trimStart();
132
+ writeFileSync(filePath, after ? before + '\n\n' + after : before + '\n', 'utf-8');
133
+ return { success: true, action: 'removed', message: 'Removed agent block' };
134
+ }
135
+ catch (err) {
136
+ return {
137
+ success: false,
138
+ action: 'error',
139
+ message: `Removal failed: ${err instanceof Error ? err.message : String(err)}`,
140
+ };
141
+ }
142
+ }
143
+ /**
144
+ * Check if an agent block is present in a CLAUDE.md file.
145
+ */
146
+ export function hasCLAUDEmdBlock(filePath) {
147
+ if (!existsSync(filePath))
148
+ return false;
149
+ try {
150
+ const content = readFileSync(filePath, 'utf-8');
151
+ return findBlock(content) !== null;
152
+ }
153
+ catch {
154
+ return false;
155
+ }
156
+ }
157
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/claudemd/inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Types for CLAUDE.md auto-composition and injection.
3
+ */
4
+ /** Agent metadata for CLAUDE.md generation */
5
+ export interface AgentMeta {
6
+ id: string;
7
+ name: string;
8
+ activationPhrase: string;
9
+ deactivationPhrase: string;
10
+ activateCommand: string;
11
+ deactivateCommand: string;
12
+ /** Global instruction sections (priority-sorted, lower = higher) */
13
+ globalInstructions?: GlobalInstruction[];
14
+ }
15
+ /** A standalone section in CLAUDE.md not tied to a facade */
16
+ export interface GlobalInstruction {
17
+ heading: string;
18
+ content: string;
19
+ priority?: number;
20
+ }
21
+ /** Facade instructions for CLAUDE.md behavioral rules */
22
+ export interface FacadeInstructions {
23
+ heading: string;
24
+ rules?: string[];
25
+ templates?: Record<string, string>;
26
+ priority?: number;
27
+ keyOps?: string[];
28
+ }
29
+ /** Result of an injection or removal operation */
30
+ export interface InjectionResult {
31
+ success: boolean;
32
+ action: 'injected' | 'replaced' | 'skipped' | 'error';
33
+ message: string;
34
+ diffDetected?: boolean;
35
+ }
36
+ export interface RemovalResult {
37
+ success: boolean;
38
+ action: 'removed' | 'not_present' | 'error';
39
+ message: string;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/claudemd/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,8CAA8C;AAC9C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for CLAUDE.md auto-composition and injection.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claudemd/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Context Engine — entity extraction, knowledge retrieval, and confidence scoring.
3
+ *
4
+ * Orchestrates three signals to enrich intent classification:
5
+ * 1. Entity extraction (regex-based, domain-agnostic)
6
+ * 2. Knowledge retrieval (vault FTS + Cognee vector + brain recommendations)
7
+ * 3. Confidence scoring (combines entity + knowledge signals)
8
+ *
9
+ * Graceful degradation: if Cognee is unavailable, vault-only.
10
+ * If vault is empty, keyword confidence from IntentRouter is unchanged.
11
+ */
12
+ import type { Vault } from '../vault/vault.js';
13
+ import type { Brain } from '../brain/brain.js';
14
+ import type { BrainIntelligence } from '../brain/intelligence.js';
15
+ import type { CogneeClient } from '../cognee/client.js';
16
+ import type { EntityExtractionResult, KnowledgeRetrievalResult, ContextAnalysis, ContextEngineConfig } from './types.js';
17
+ export declare class ContextEngine {
18
+ private vault;
19
+ private brain;
20
+ private brainIntelligence;
21
+ private cognee;
22
+ private config;
23
+ constructor(vault: Vault, brain: Brain, brainIntelligence: BrainIntelligence, cognee: CogneeClient | null, config?: ContextEngineConfig);
24
+ extractEntities(prompt: string): EntityExtractionResult;
25
+ retrieveKnowledge(prompt: string, domain?: string): Promise<KnowledgeRetrievalResult>;
26
+ analyze(prompt: string, domain?: string): Promise<ContextAnalysis>;
27
+ private computeConfidence;
28
+ private toConfidenceLevel;
29
+ private detectDomains;
30
+ }
31
+ //# sourceMappingURL=context-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAGV,sBAAsB,EAEtB,wBAAwB,EACxB,eAAe,EAEf,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAuDpB,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAgC;gBAG5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,MAAM,CAAC,EAAE,mBAAmB;IAgB9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB;IA6BjD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAgFrF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+BxE,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;CAkBtB"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Context Engine — entity extraction, knowledge retrieval, and confidence scoring.
3
+ *
4
+ * Orchestrates three signals to enrich intent classification:
5
+ * 1. Entity extraction (regex-based, domain-agnostic)
6
+ * 2. Knowledge retrieval (vault FTS + Cognee vector + brain recommendations)
7
+ * 3. Confidence scoring (combines entity + knowledge signals)
8
+ *
9
+ * Graceful degradation: if Cognee is unavailable, vault-only.
10
+ * If vault is empty, keyword confidence from IntentRouter is unchanged.
11
+ */
12
+ // ─── Entity Patterns ────────────────────────────────────────────────
13
+ const ENTITY_PATTERNS = [
14
+ // File paths: src/foo/bar.ts, ./config.json, foo.tsx
15
+ { type: 'file', pattern: /(?:\.\/|src\/|packages\/)?[\w\-./]+\.\w{1,6}/g, confidence: 0.8 },
16
+ // Function/method names: functionName(), ClassName.method()
17
+ { type: 'function', pattern: /\b[a-z]\w*(?:\.\w+)*\(\)/g, confidence: 0.7 },
18
+ // Domains: accessibility, performance, security, etc.
19
+ {
20
+ type: 'domain',
21
+ pattern: /\b(?:accessibility|a11y|performance|security|architecture|testing|design|ux|devops|data|analytics|auth|api)\b/gi,
22
+ confidence: 0.9,
23
+ },
24
+ // Actions: create, fix, build, deploy, etc.
25
+ {
26
+ type: 'action',
27
+ pattern: /\b(?:create|build|fix|debug|deploy|test|validate|review|improve|refactor|optimize|migrate|add|remove|update)\b/gi,
28
+ confidence: 0.8,
29
+ },
30
+ // Technologies: React, TypeScript, Node.js, etc.
31
+ {
32
+ type: 'technology',
33
+ pattern: /\b(?:react|vue|svelte|angular|typescript|javascript|node\.?js|python|rust|go|docker|kubernetes|postgres|sqlite|redis|tailwind|css|html|graphql|rest|grpc)\b/gi,
34
+ confidence: 0.85,
35
+ },
36
+ // Patterns: kebab-case compound terms that look like patterns
37
+ { type: 'pattern', pattern: /\b[a-z]+-[a-z]+(?:-[a-z]+)*\b/g, confidence: 0.5 },
38
+ ];
39
+ // Words to ignore when extracting patterns
40
+ const STOP_PATTERNS = new Set([
41
+ 'e-mail',
42
+ 'real-time',
43
+ 'built-in',
44
+ 'up-to-date',
45
+ 'well-known',
46
+ 'open-source',
47
+ 'third-party',
48
+ 'cross-platform',
49
+ 'end-to-end',
50
+ 'out-of-the-box',
51
+ ]);
52
+ // ─── Confidence Thresholds ──────────────────────────────────────────
53
+ const HIGH_CONFIDENCE = 0.75;
54
+ const MEDIUM_CONFIDENCE = 0.45;
55
+ // ─── Class ──────────────────────────────────────────────────────────
56
+ export class ContextEngine {
57
+ vault;
58
+ brain;
59
+ brainIntelligence;
60
+ cognee;
61
+ config;
62
+ constructor(vault, brain, brainIntelligence, cognee, config) {
63
+ this.vault = vault;
64
+ this.brain = brain;
65
+ this.brainIntelligence = brainIntelligence;
66
+ this.cognee = cognee;
67
+ this.config = {
68
+ vaultSearchLimit: config?.vaultSearchLimit ?? 10,
69
+ cogneeSearchLimit: config?.cogneeSearchLimit ?? 10,
70
+ brainRecommendLimit: config?.brainRecommendLimit ?? 5,
71
+ minScoreThreshold: config?.minScoreThreshold ?? 0.1,
72
+ };
73
+ }
74
+ // ─── Entity Extraction ──────────────────────────────────────────
75
+ extractEntities(prompt) {
76
+ const seen = new Set();
77
+ const entities = [];
78
+ for (const { type, pattern, confidence } of ENTITY_PATTERNS) {
79
+ // Reset lastIndex for global regex
80
+ pattern.lastIndex = 0;
81
+ let match;
82
+ while ((match = pattern.exec(prompt)) !== null) {
83
+ const value = match[0].toLowerCase();
84
+ const key = `${type}:${value}`;
85
+ if (seen.has(key))
86
+ continue;
87
+ if (type === 'pattern' && STOP_PATTERNS.has(value))
88
+ continue;
89
+ seen.add(key);
90
+ entities.push({ type, value, confidence });
91
+ }
92
+ }
93
+ // Group by type
94
+ const byType = {};
95
+ for (const e of entities) {
96
+ (byType[e.type] ??= []).push(e);
97
+ }
98
+ return { entities, byType };
99
+ }
100
+ // ─── Knowledge Retrieval ────────────────────────────────────────
101
+ async retrieveKnowledge(prompt, domain) {
102
+ const items = [];
103
+ let vaultHits = 0;
104
+ let cogneeHits = 0;
105
+ let brainHits = 0;
106
+ // 1. Vault FTS search
107
+ try {
108
+ const vaultResults = this.vault.search(prompt, {
109
+ domain,
110
+ limit: this.config.vaultSearchLimit,
111
+ });
112
+ // Normalize FTS5 -rank scores to 0-1 range
113
+ const maxScore = vaultResults.length > 0 ? Math.max(...vaultResults.map((r) => r.score)) : 1;
114
+ for (const r of vaultResults) {
115
+ items.push({
116
+ id: r.entry.id,
117
+ title: r.entry.title,
118
+ score: maxScore > 0 ? r.score / maxScore : 0.5,
119
+ source: 'vault',
120
+ domain: r.entry.domain,
121
+ });
122
+ vaultHits++;
123
+ }
124
+ }
125
+ catch {
126
+ // Vault search failed — continue with other sources
127
+ }
128
+ // 2. Cognee vector search (async, graceful degradation)
129
+ if (this.cognee) {
130
+ try {
131
+ const cogneeResults = await this.cognee.search(prompt, {
132
+ limit: this.config.cogneeSearchLimit,
133
+ });
134
+ for (const r of cogneeResults) {
135
+ // Avoid duplicates from vault
136
+ if (items.some((i) => i.id === r.id))
137
+ continue;
138
+ items.push({
139
+ id: r.id,
140
+ title: r.text.slice(0, 100),
141
+ score: r.score,
142
+ source: 'cognee',
143
+ });
144
+ cogneeHits++;
145
+ }
146
+ }
147
+ catch {
148
+ // Cognee unavailable — continue without
149
+ }
150
+ }
151
+ // 3. Brain recommendations
152
+ try {
153
+ const recommendations = this.brainIntelligence.recommend({
154
+ domain,
155
+ task: prompt,
156
+ limit: this.config.brainRecommendLimit,
157
+ });
158
+ for (const r of recommendations) {
159
+ items.push({
160
+ id: r.pattern,
161
+ title: r.pattern,
162
+ score: r.strength / 100,
163
+ source: 'brain',
164
+ domain: r.domain,
165
+ });
166
+ brainHits++;
167
+ }
168
+ }
169
+ catch {
170
+ // Brain empty — continue without
171
+ }
172
+ // Sort by score descending, filter by threshold
173
+ items.sort((a, b) => b.score - a.score);
174
+ const filtered = items.filter((i) => i.score >= this.config.minScoreThreshold);
175
+ return { items: filtered, vaultHits, cogneeHits, brainHits };
176
+ }
177
+ // ─── Context Analysis ───────────────────────────────────────────
178
+ async analyze(prompt, domain) {
179
+ const start = performance.now();
180
+ // Extract entities
181
+ const entities = this.extractEntities(prompt);
182
+ // Retrieve knowledge
183
+ const knowledge = await this.retrieveKnowledge(prompt, domain);
184
+ // Compute confidence from multiple signals
185
+ const confidence = this.computeConfidence(entities, knowledge);
186
+ const confidenceLevel = this.toConfidenceLevel(confidence);
187
+ // Detect domains from entities + knowledge
188
+ const detectedDomains = this.detectDomains(entities, knowledge);
189
+ const processingTimeMs = Math.round(performance.now() - start);
190
+ return {
191
+ prompt,
192
+ entities,
193
+ knowledge,
194
+ confidence,
195
+ confidenceLevel,
196
+ detectedDomains,
197
+ processingTimeMs,
198
+ };
199
+ }
200
+ // ─── Private Helpers ────────────────────────────────────────────
201
+ computeConfidence(entities, knowledge) {
202
+ let score = 0;
203
+ // Entity signal (0-0.4): more entities = clearer prompt
204
+ const entityCount = entities.entities.length;
205
+ const entitySignal = Math.min(0.4, entityCount * 0.08);
206
+ score += entitySignal;
207
+ // Action signal (0-0.2): explicit actions boost confidence
208
+ const actions = entities.byType.action ?? [];
209
+ if (actions.length > 0)
210
+ score += 0.2;
211
+ // Knowledge signal (0-0.3): relevant knowledge found
212
+ if (knowledge.items.length > 0) {
213
+ const topScore = knowledge.items[0].score;
214
+ score += topScore * 0.3;
215
+ }
216
+ // Source diversity bonus (0-0.1): multiple sources = more confident
217
+ const sources = new Set(knowledge.items.map((i) => i.source));
218
+ if (sources.size >= 2)
219
+ score += 0.05;
220
+ if (sources.size >= 3)
221
+ score += 0.05;
222
+ return Math.min(1, score);
223
+ }
224
+ toConfidenceLevel(confidence) {
225
+ if (confidence >= HIGH_CONFIDENCE)
226
+ return 'high';
227
+ if (confidence >= MEDIUM_CONFIDENCE)
228
+ return 'medium';
229
+ return 'low';
230
+ }
231
+ detectDomains(entities, knowledge) {
232
+ const domains = new Set();
233
+ // From entity extraction
234
+ for (const e of entities.byType.domain ?? []) {
235
+ domains.add(e.value);
236
+ }
237
+ // From knowledge results
238
+ for (const item of knowledge.items) {
239
+ if (item.domain)
240
+ domains.add(item.domain);
241
+ }
242
+ return [...domains];
243
+ }
244
+ }
245
+ //# sourceMappingURL=context-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ContextEngine } from './context-engine.js';
2
+ export type { EntityType, ExtractedEntity, EntityExtractionResult, KnowledgeItem, KnowledgeRetrievalResult, ConfidenceLevel, ContextAnalysis, ContextEngineConfig, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ContextEngine } from './context-engine.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Context Engine types — entity extraction, knowledge retrieval, confidence scoring.
3
+ */
4
+ export type EntityType = 'file' | 'function' | 'domain' | 'action' | 'pattern' | 'technology';
5
+ export interface ExtractedEntity {
6
+ type: EntityType;
7
+ value: string;
8
+ confidence: number;
9
+ }
10
+ export interface EntityExtractionResult {
11
+ entities: ExtractedEntity[];
12
+ byType: Partial<Record<EntityType, ExtractedEntity[]>>;
13
+ }
14
+ export interface KnowledgeItem {
15
+ id: string;
16
+ title: string;
17
+ score: number;
18
+ source: 'vault' | 'cognee' | 'brain';
19
+ domain?: string;
20
+ }
21
+ export interface KnowledgeRetrievalResult {
22
+ items: KnowledgeItem[];
23
+ vaultHits: number;
24
+ cogneeHits: number;
25
+ brainHits: number;
26
+ }
27
+ export type ConfidenceLevel = 'high' | 'medium' | 'low';
28
+ export interface ContextAnalysis {
29
+ /** Original prompt that was analyzed */
30
+ prompt: string;
31
+ /** Extracted entities from the prompt */
32
+ entities: EntityExtractionResult;
33
+ /** Retrieved knowledge relevant to the prompt */
34
+ knowledge: KnowledgeRetrievalResult;
35
+ /** Enhanced confidence based on entity + knowledge signals */
36
+ confidence: number;
37
+ /** Discrete confidence level */
38
+ confidenceLevel: ConfidenceLevel;
39
+ /** Domains detected from entities + knowledge */
40
+ detectedDomains: string[];
41
+ /** Processing time in milliseconds */
42
+ processingTimeMs: number;
43
+ }
44
+ export interface ContextEngineConfig {
45
+ /** Max vault search results to retrieve. Default: 10. */
46
+ vaultSearchLimit?: number;
47
+ /** Max Cognee search results to retrieve. Default: 10. */
48
+ cogneeSearchLimit?: number;
49
+ /** Max brain recommendations to include. Default: 5. */
50
+ brainRecommendLimit?: number;
51
+ /** Minimum score threshold for knowledge items. Default: 0.1. */
52
+ minScoreThreshold?: number;
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAE9F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;CACxD;AAID,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,iDAAiD;IACjD,SAAS,EAAE,wBAAwB,CAAC;IACpC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,iDAAiD;IACjD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Context Engine types — entity extraction, knowledge retrieval, confidence scoring.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Claude Code host adapter — translates enforcement rules to Claude Code hooks.
3
+ *
4
+ * Maps:
5
+ * - pre-tool-use → PreToolUse hooks in settings.json
6
+ * - pre-commit → UserPromptSubmit hook checking git commit
7
+ * - pre-compact → PreCompact hook
8
+ * - session-start → SessionStart hook
9
+ */
10
+ import type { EnforcementConfig, EnforcementTrigger, HostAdapter, HostAdapterResult } from '../types.js';
11
+ export declare class ClaudeCodeAdapter implements HostAdapter {
12
+ readonly host = "claude-code";
13
+ supports(trigger: EnforcementTrigger): boolean;
14
+ translate(config: EnforcementConfig): HostAdapterResult;
15
+ private generatePatternCommand;
16
+ private generateHookFile;
17
+ }
18
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/enforcement/adapters/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,aAAa,CAAC;AASrB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAI9C,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB;IAkEvD,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,gBAAgB;CAyBzB"}