@soleri/core 2.1.0 → 2.5.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 (377) hide show
  1. package/dist/brain/brain.d.ts +10 -1
  2. package/dist/brain/brain.d.ts.map +1 -1
  3. package/dist/brain/brain.js +116 -13
  4. package/dist/brain/brain.js.map +1 -1
  5. package/dist/brain/intelligence.d.ts +36 -1
  6. package/dist/brain/intelligence.d.ts.map +1 -1
  7. package/dist/brain/intelligence.js +119 -14
  8. package/dist/brain/intelligence.js.map +1 -1
  9. package/dist/brain/types.d.ts +34 -2
  10. package/dist/brain/types.d.ts.map +1 -1
  11. package/dist/cognee/client.d.ts +3 -0
  12. package/dist/cognee/client.d.ts.map +1 -1
  13. package/dist/cognee/client.js +17 -0
  14. package/dist/cognee/client.js.map +1 -1
  15. package/dist/cognee/sync-manager.d.ts +94 -0
  16. package/dist/cognee/sync-manager.d.ts.map +1 -0
  17. package/dist/cognee/sync-manager.js +293 -0
  18. package/dist/cognee/sync-manager.js.map +1 -0
  19. package/dist/control/identity-manager.d.ts +22 -0
  20. package/dist/control/identity-manager.d.ts.map +1 -0
  21. package/dist/control/identity-manager.js +233 -0
  22. package/dist/control/identity-manager.js.map +1 -0
  23. package/dist/control/intent-router.d.ts +32 -0
  24. package/dist/control/intent-router.d.ts.map +1 -0
  25. package/dist/control/intent-router.js +242 -0
  26. package/dist/control/intent-router.js.map +1 -0
  27. package/dist/control/types.d.ts +68 -0
  28. package/dist/control/types.d.ts.map +1 -0
  29. package/dist/control/types.js +9 -0
  30. package/dist/control/types.js.map +1 -0
  31. package/dist/curator/curator.d.ts +37 -1
  32. package/dist/curator/curator.d.ts.map +1 -1
  33. package/dist/curator/curator.js +199 -1
  34. package/dist/curator/curator.js.map +1 -1
  35. package/dist/errors/classify.d.ts +13 -0
  36. package/dist/errors/classify.d.ts.map +1 -0
  37. package/dist/errors/classify.js +97 -0
  38. package/dist/errors/classify.js.map +1 -0
  39. package/dist/errors/index.d.ts +6 -0
  40. package/dist/errors/index.d.ts.map +1 -0
  41. package/dist/errors/index.js +4 -0
  42. package/dist/errors/index.js.map +1 -0
  43. package/dist/errors/retry.d.ts +40 -0
  44. package/dist/errors/retry.d.ts.map +1 -0
  45. package/dist/errors/retry.js +97 -0
  46. package/dist/errors/retry.js.map +1 -0
  47. package/dist/errors/types.d.ts +48 -0
  48. package/dist/errors/types.d.ts.map +1 -0
  49. package/dist/errors/types.js +59 -0
  50. package/dist/errors/types.js.map +1 -0
  51. package/dist/facades/types.d.ts +1 -1
  52. package/dist/governance/governance.d.ts +42 -0
  53. package/dist/governance/governance.d.ts.map +1 -0
  54. package/dist/governance/governance.js +488 -0
  55. package/dist/governance/governance.js.map +1 -0
  56. package/dist/governance/index.d.ts +3 -0
  57. package/dist/governance/index.d.ts.map +1 -0
  58. package/dist/governance/index.js +2 -0
  59. package/dist/governance/index.js.map +1 -0
  60. package/dist/governance/types.d.ts +102 -0
  61. package/dist/governance/types.d.ts.map +1 -0
  62. package/dist/governance/types.js +3 -0
  63. package/dist/governance/types.js.map +1 -0
  64. package/dist/index.d.ts +52 -3
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +47 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/intake/content-classifier.d.ts +14 -0
  69. package/dist/intake/content-classifier.d.ts.map +1 -0
  70. package/dist/intake/content-classifier.js +125 -0
  71. package/dist/intake/content-classifier.js.map +1 -0
  72. package/dist/intake/dedup-gate.d.ts +17 -0
  73. package/dist/intake/dedup-gate.d.ts.map +1 -0
  74. package/dist/intake/dedup-gate.js +66 -0
  75. package/dist/intake/dedup-gate.js.map +1 -0
  76. package/dist/intake/intake-pipeline.d.ts +63 -0
  77. package/dist/intake/intake-pipeline.d.ts.map +1 -0
  78. package/dist/intake/intake-pipeline.js +373 -0
  79. package/dist/intake/intake-pipeline.js.map +1 -0
  80. package/dist/intake/types.d.ts +65 -0
  81. package/dist/intake/types.d.ts.map +1 -0
  82. package/dist/intake/types.js +3 -0
  83. package/dist/intake/types.js.map +1 -0
  84. package/dist/intelligence/loader.js +1 -1
  85. package/dist/intelligence/loader.js.map +1 -1
  86. package/dist/intelligence/types.d.ts +3 -1
  87. package/dist/intelligence/types.d.ts.map +1 -1
  88. package/dist/logging/logger.d.ts +37 -0
  89. package/dist/logging/logger.d.ts.map +1 -0
  90. package/dist/logging/logger.js +145 -0
  91. package/dist/logging/logger.js.map +1 -0
  92. package/dist/logging/types.d.ts +19 -0
  93. package/dist/logging/types.d.ts.map +1 -0
  94. package/dist/logging/types.js +2 -0
  95. package/dist/logging/types.js.map +1 -0
  96. package/dist/loop/loop-manager.d.ts +100 -0
  97. package/dist/loop/loop-manager.d.ts.map +1 -0
  98. package/dist/loop/loop-manager.js +379 -0
  99. package/dist/loop/loop-manager.js.map +1 -0
  100. package/dist/loop/types.d.ts +103 -0
  101. package/dist/loop/types.d.ts.map +1 -0
  102. package/dist/loop/types.js +11 -0
  103. package/dist/loop/types.js.map +1 -0
  104. package/dist/persistence/index.d.ts +3 -0
  105. package/dist/persistence/index.d.ts.map +1 -0
  106. package/dist/persistence/index.js +2 -0
  107. package/dist/persistence/index.js.map +1 -0
  108. package/dist/persistence/sqlite-provider.d.ts +25 -0
  109. package/dist/persistence/sqlite-provider.d.ts.map +1 -0
  110. package/dist/persistence/sqlite-provider.js +59 -0
  111. package/dist/persistence/sqlite-provider.js.map +1 -0
  112. package/dist/persistence/types.d.ts +36 -0
  113. package/dist/persistence/types.d.ts.map +1 -0
  114. package/dist/persistence/types.js +8 -0
  115. package/dist/persistence/types.js.map +1 -0
  116. package/dist/planning/gap-analysis.d.ts +72 -0
  117. package/dist/planning/gap-analysis.d.ts.map +1 -0
  118. package/dist/planning/gap-analysis.js +442 -0
  119. package/dist/planning/gap-analysis.js.map +1 -0
  120. package/dist/planning/gap-types.d.ts +29 -0
  121. package/dist/planning/gap-types.d.ts.map +1 -0
  122. package/dist/planning/gap-types.js +28 -0
  123. package/dist/planning/gap-types.js.map +1 -0
  124. package/dist/planning/planner.d.ts +421 -4
  125. package/dist/planning/planner.d.ts.map +1 -1
  126. package/dist/planning/planner.js +949 -21
  127. package/dist/planning/planner.js.map +1 -1
  128. package/dist/playbooks/generic/brainstorming.d.ts +9 -0
  129. package/dist/playbooks/generic/brainstorming.d.ts.map +1 -0
  130. package/dist/playbooks/generic/brainstorming.js +105 -0
  131. package/dist/playbooks/generic/brainstorming.js.map +1 -0
  132. package/dist/playbooks/generic/code-review.d.ts +11 -0
  133. package/dist/playbooks/generic/code-review.d.ts.map +1 -0
  134. package/dist/playbooks/generic/code-review.js +176 -0
  135. package/dist/playbooks/generic/code-review.js.map +1 -0
  136. package/dist/playbooks/generic/subagent-execution.d.ts +9 -0
  137. package/dist/playbooks/generic/subagent-execution.d.ts.map +1 -0
  138. package/dist/playbooks/generic/subagent-execution.js +68 -0
  139. package/dist/playbooks/generic/subagent-execution.js.map +1 -0
  140. package/dist/playbooks/generic/systematic-debugging.d.ts +9 -0
  141. package/dist/playbooks/generic/systematic-debugging.d.ts.map +1 -0
  142. package/dist/playbooks/generic/systematic-debugging.js +87 -0
  143. package/dist/playbooks/generic/systematic-debugging.js.map +1 -0
  144. package/dist/playbooks/generic/tdd.d.ts +9 -0
  145. package/dist/playbooks/generic/tdd.d.ts.map +1 -0
  146. package/dist/playbooks/generic/tdd.js +70 -0
  147. package/dist/playbooks/generic/tdd.js.map +1 -0
  148. package/dist/playbooks/generic/verification.d.ts +9 -0
  149. package/dist/playbooks/generic/verification.d.ts.map +1 -0
  150. package/dist/playbooks/generic/verification.js +74 -0
  151. package/dist/playbooks/generic/verification.js.map +1 -0
  152. package/dist/playbooks/index.d.ts +4 -0
  153. package/dist/playbooks/index.d.ts.map +1 -0
  154. package/dist/playbooks/index.js +5 -0
  155. package/dist/playbooks/index.js.map +1 -0
  156. package/dist/playbooks/playbook-registry.d.ts +42 -0
  157. package/dist/playbooks/playbook-registry.d.ts.map +1 -0
  158. package/dist/playbooks/playbook-registry.js +227 -0
  159. package/dist/playbooks/playbook-registry.js.map +1 -0
  160. package/dist/playbooks/playbook-seeder.d.ts +47 -0
  161. package/dist/playbooks/playbook-seeder.d.ts.map +1 -0
  162. package/dist/playbooks/playbook-seeder.js +104 -0
  163. package/dist/playbooks/playbook-seeder.js.map +1 -0
  164. package/dist/playbooks/playbook-types.d.ts +132 -0
  165. package/dist/playbooks/playbook-types.d.ts.map +1 -0
  166. package/dist/playbooks/playbook-types.js +12 -0
  167. package/dist/playbooks/playbook-types.js.map +1 -0
  168. package/dist/project/project-registry.d.ts +79 -0
  169. package/dist/project/project-registry.d.ts.map +1 -0
  170. package/dist/project/project-registry.js +274 -0
  171. package/dist/project/project-registry.js.map +1 -0
  172. package/dist/project/types.d.ts +28 -0
  173. package/dist/project/types.d.ts.map +1 -0
  174. package/dist/project/types.js +5 -0
  175. package/dist/project/types.js.map +1 -0
  176. package/dist/prompts/index.d.ts +4 -0
  177. package/dist/prompts/index.d.ts.map +1 -0
  178. package/dist/prompts/index.js +3 -0
  179. package/dist/prompts/index.js.map +1 -0
  180. package/dist/prompts/parser.d.ts +17 -0
  181. package/dist/prompts/parser.d.ts.map +1 -0
  182. package/dist/prompts/parser.js +47 -0
  183. package/dist/prompts/parser.js.map +1 -0
  184. package/dist/prompts/template-manager.d.ts +25 -0
  185. package/dist/prompts/template-manager.d.ts.map +1 -0
  186. package/dist/prompts/template-manager.js +71 -0
  187. package/dist/prompts/template-manager.js.map +1 -0
  188. package/dist/prompts/types.d.ts +26 -0
  189. package/dist/prompts/types.d.ts.map +1 -0
  190. package/dist/prompts/types.js +5 -0
  191. package/dist/prompts/types.js.map +1 -0
  192. package/dist/runtime/admin-extra-ops.d.ts +15 -0
  193. package/dist/runtime/admin-extra-ops.d.ts.map +1 -0
  194. package/dist/runtime/admin-extra-ops.js +595 -0
  195. package/dist/runtime/admin-extra-ops.js.map +1 -0
  196. package/dist/runtime/admin-ops.d.ts +15 -0
  197. package/dist/runtime/admin-ops.d.ts.map +1 -0
  198. package/dist/runtime/admin-ops.js +329 -0
  199. package/dist/runtime/admin-ops.js.map +1 -0
  200. package/dist/runtime/capture-ops.d.ts +15 -0
  201. package/dist/runtime/capture-ops.d.ts.map +1 -0
  202. package/dist/runtime/capture-ops.js +363 -0
  203. package/dist/runtime/capture-ops.js.map +1 -0
  204. package/dist/runtime/cognee-sync-ops.d.ts +12 -0
  205. package/dist/runtime/cognee-sync-ops.d.ts.map +1 -0
  206. package/dist/runtime/cognee-sync-ops.js +55 -0
  207. package/dist/runtime/cognee-sync-ops.js.map +1 -0
  208. package/dist/runtime/core-ops.d.ts +9 -3
  209. package/dist/runtime/core-ops.d.ts.map +1 -1
  210. package/dist/runtime/core-ops.js +693 -10
  211. package/dist/runtime/core-ops.js.map +1 -1
  212. package/dist/runtime/curator-extra-ops.d.ts +9 -0
  213. package/dist/runtime/curator-extra-ops.d.ts.map +1 -0
  214. package/dist/runtime/curator-extra-ops.js +71 -0
  215. package/dist/runtime/curator-extra-ops.js.map +1 -0
  216. package/dist/runtime/domain-ops.d.ts.map +1 -1
  217. package/dist/runtime/domain-ops.js +61 -15
  218. package/dist/runtime/domain-ops.js.map +1 -1
  219. package/dist/runtime/grading-ops.d.ts +14 -0
  220. package/dist/runtime/grading-ops.d.ts.map +1 -0
  221. package/dist/runtime/grading-ops.js +105 -0
  222. package/dist/runtime/grading-ops.js.map +1 -0
  223. package/dist/runtime/intake-ops.d.ts +14 -0
  224. package/dist/runtime/intake-ops.d.ts.map +1 -0
  225. package/dist/runtime/intake-ops.js +110 -0
  226. package/dist/runtime/intake-ops.js.map +1 -0
  227. package/dist/runtime/loop-ops.d.ts +14 -0
  228. package/dist/runtime/loop-ops.d.ts.map +1 -0
  229. package/dist/runtime/loop-ops.js +251 -0
  230. package/dist/runtime/loop-ops.js.map +1 -0
  231. package/dist/runtime/memory-cross-project-ops.d.ts +12 -0
  232. package/dist/runtime/memory-cross-project-ops.d.ts.map +1 -0
  233. package/dist/runtime/memory-cross-project-ops.js +165 -0
  234. package/dist/runtime/memory-cross-project-ops.js.map +1 -0
  235. package/dist/runtime/memory-extra-ops.d.ts +13 -0
  236. package/dist/runtime/memory-extra-ops.d.ts.map +1 -0
  237. package/dist/runtime/memory-extra-ops.js +173 -0
  238. package/dist/runtime/memory-extra-ops.js.map +1 -0
  239. package/dist/runtime/orchestrate-ops.d.ts +17 -0
  240. package/dist/runtime/orchestrate-ops.d.ts.map +1 -0
  241. package/dist/runtime/orchestrate-ops.js +246 -0
  242. package/dist/runtime/orchestrate-ops.js.map +1 -0
  243. package/dist/runtime/planning-extra-ops.d.ts +25 -0
  244. package/dist/runtime/planning-extra-ops.d.ts.map +1 -0
  245. package/dist/runtime/planning-extra-ops.js +663 -0
  246. package/dist/runtime/planning-extra-ops.js.map +1 -0
  247. package/dist/runtime/playbook-ops.d.ts +14 -0
  248. package/dist/runtime/playbook-ops.d.ts.map +1 -0
  249. package/dist/runtime/playbook-ops.js +141 -0
  250. package/dist/runtime/playbook-ops.js.map +1 -0
  251. package/dist/runtime/project-ops.d.ts +15 -0
  252. package/dist/runtime/project-ops.d.ts.map +1 -0
  253. package/dist/runtime/project-ops.js +186 -0
  254. package/dist/runtime/project-ops.js.map +1 -0
  255. package/dist/runtime/runtime.d.ts.map +1 -1
  256. package/dist/runtime/runtime.js +65 -3
  257. package/dist/runtime/runtime.js.map +1 -1
  258. package/dist/runtime/types.d.ts +29 -0
  259. package/dist/runtime/types.d.ts.map +1 -1
  260. package/dist/runtime/vault-extra-ops.d.ts +10 -0
  261. package/dist/runtime/vault-extra-ops.d.ts.map +1 -0
  262. package/dist/runtime/vault-extra-ops.js +536 -0
  263. package/dist/runtime/vault-extra-ops.js.map +1 -0
  264. package/dist/telemetry/telemetry.d.ts +48 -0
  265. package/dist/telemetry/telemetry.d.ts.map +1 -0
  266. package/dist/telemetry/telemetry.js +87 -0
  267. package/dist/telemetry/telemetry.js.map +1 -0
  268. package/dist/vault/playbook.d.ts +34 -0
  269. package/dist/vault/playbook.d.ts.map +1 -0
  270. package/dist/vault/playbook.js +60 -0
  271. package/dist/vault/playbook.js.map +1 -0
  272. package/dist/vault/vault.d.ts +97 -4
  273. package/dist/vault/vault.d.ts.map +1 -1
  274. package/dist/vault/vault.js +424 -65
  275. package/dist/vault/vault.js.map +1 -1
  276. package/package.json +7 -3
  277. package/src/__tests__/admin-extra-ops.test.ts +467 -0
  278. package/src/__tests__/admin-ops.test.ts +271 -0
  279. package/src/__tests__/brain-intelligence.test.ts +205 -0
  280. package/src/__tests__/brain.test.ts +134 -3
  281. package/src/__tests__/capture-ops.test.ts +509 -0
  282. package/src/__tests__/cognee-integration.test.ts +80 -0
  283. package/src/__tests__/cognee-sync-manager.test.ts +103 -0
  284. package/src/__tests__/core-ops.test.ts +292 -2
  285. package/src/__tests__/curator-extra-ops.test.ts +381 -0
  286. package/src/__tests__/domain-ops.test.ts +66 -0
  287. package/src/__tests__/errors.test.ts +388 -0
  288. package/src/__tests__/governance.test.ts +522 -0
  289. package/src/__tests__/grading-ops.test.ts +361 -0
  290. package/src/__tests__/identity-manager.test.ts +243 -0
  291. package/src/__tests__/intake-pipeline.test.ts +162 -0
  292. package/src/__tests__/intent-router.test.ts +222 -0
  293. package/src/__tests__/logger.test.ts +200 -0
  294. package/src/__tests__/loop-ops.test.ts +469 -0
  295. package/src/__tests__/memory-cross-project-ops.test.ts +248 -0
  296. package/src/__tests__/memory-extra-ops.test.ts +352 -0
  297. package/src/__tests__/orchestrate-ops.test.ts +289 -0
  298. package/src/__tests__/persistence.test.ts +225 -0
  299. package/src/__tests__/planner.test.ts +416 -7
  300. package/src/__tests__/planning-extra-ops.test.ts +706 -0
  301. package/src/__tests__/playbook-registry.test.ts +326 -0
  302. package/src/__tests__/playbook-seeder.test.ts +163 -0
  303. package/src/__tests__/playbook.test.ts +389 -0
  304. package/src/__tests__/project-ops.test.ts +381 -0
  305. package/src/__tests__/template-manager.test.ts +222 -0
  306. package/src/__tests__/vault-extra-ops.test.ts +482 -0
  307. package/src/brain/brain.ts +185 -16
  308. package/src/brain/intelligence.ts +179 -10
  309. package/src/brain/types.ts +40 -2
  310. package/src/cognee/client.ts +18 -0
  311. package/src/cognee/sync-manager.ts +389 -0
  312. package/src/control/identity-manager.ts +354 -0
  313. package/src/control/intent-router.ts +326 -0
  314. package/src/control/types.ts +102 -0
  315. package/src/curator/curator.ts +295 -1
  316. package/src/errors/classify.ts +102 -0
  317. package/src/errors/index.ts +5 -0
  318. package/src/errors/retry.ts +132 -0
  319. package/src/errors/types.ts +81 -0
  320. package/src/governance/governance.ts +698 -0
  321. package/src/governance/index.ts +18 -0
  322. package/src/governance/types.ts +111 -0
  323. package/src/index.ts +213 -2
  324. package/src/intake/content-classifier.ts +146 -0
  325. package/src/intake/dedup-gate.ts +92 -0
  326. package/src/intake/intake-pipeline.ts +503 -0
  327. package/src/intake/types.ts +69 -0
  328. package/src/intelligence/loader.ts +1 -1
  329. package/src/intelligence/types.ts +3 -1
  330. package/src/logging/logger.ts +154 -0
  331. package/src/logging/types.ts +21 -0
  332. package/src/loop/loop-manager.ts +448 -0
  333. package/src/loop/types.ts +115 -0
  334. package/src/persistence/index.ts +7 -0
  335. package/src/persistence/sqlite-provider.ts +62 -0
  336. package/src/persistence/types.ts +44 -0
  337. package/src/planning/gap-analysis.ts +775 -0
  338. package/src/planning/gap-types.ts +61 -0
  339. package/src/planning/planner.ts +1273 -24
  340. package/src/playbooks/generic/brainstorming.ts +110 -0
  341. package/src/playbooks/generic/code-review.ts +181 -0
  342. package/src/playbooks/generic/subagent-execution.ts +74 -0
  343. package/src/playbooks/generic/systematic-debugging.ts +92 -0
  344. package/src/playbooks/generic/tdd.ts +75 -0
  345. package/src/playbooks/generic/verification.ts +79 -0
  346. package/src/playbooks/index.ts +27 -0
  347. package/src/playbooks/playbook-registry.ts +284 -0
  348. package/src/playbooks/playbook-seeder.ts +119 -0
  349. package/src/playbooks/playbook-types.ts +162 -0
  350. package/src/project/project-registry.ts +370 -0
  351. package/src/project/types.ts +31 -0
  352. package/src/prompts/index.ts +3 -0
  353. package/src/prompts/parser.ts +59 -0
  354. package/src/prompts/template-manager.ts +77 -0
  355. package/src/prompts/types.ts +28 -0
  356. package/src/runtime/admin-extra-ops.ts +652 -0
  357. package/src/runtime/admin-ops.ts +340 -0
  358. package/src/runtime/capture-ops.ts +404 -0
  359. package/src/runtime/cognee-sync-ops.ts +63 -0
  360. package/src/runtime/core-ops.ts +787 -9
  361. package/src/runtime/curator-extra-ops.ts +85 -0
  362. package/src/runtime/domain-ops.ts +67 -15
  363. package/src/runtime/grading-ops.ts +130 -0
  364. package/src/runtime/intake-ops.ts +126 -0
  365. package/src/runtime/loop-ops.ts +277 -0
  366. package/src/runtime/memory-cross-project-ops.ts +191 -0
  367. package/src/runtime/memory-extra-ops.ts +186 -0
  368. package/src/runtime/orchestrate-ops.ts +278 -0
  369. package/src/runtime/planning-extra-ops.ts +718 -0
  370. package/src/runtime/playbook-ops.ts +169 -0
  371. package/src/runtime/project-ops.ts +202 -0
  372. package/src/runtime/runtime.ts +77 -3
  373. package/src/runtime/types.ts +29 -0
  374. package/src/runtime/vault-extra-ops.ts +606 -0
  375. package/src/telemetry/telemetry.ts +118 -0
  376. package/src/vault/playbook.ts +87 -0
  377. package/src/vault/vault.ts +575 -98
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Intake operations — 4 ops for book/PDF ingestion.
3
+ *
4
+ * Ops: intake_ingest_book, intake_process, intake_status, intake_preview.
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Create the 4 intake operations.
9
+ *
10
+ * The pipeline is optional — when null, all ops return a graceful error.
11
+ */
12
+ export function createIntakeOps(pipeline) {
13
+ return [
14
+ // ─── Ingest Book ──────────────────────────────────────────────
15
+ {
16
+ name: 'intake_ingest_book',
17
+ description: 'Ingest a PDF book — parse, hash, chunk into fixed-size page windows, and create a resumable job.',
18
+ auth: 'write',
19
+ schema: z.object({
20
+ pdfPath: z.string().describe('Absolute path to the PDF file.'),
21
+ title: z.string().describe('Book title for citation and chunk labeling.'),
22
+ domain: z.string().describe('Knowledge domain (e.g., "design-systems", "accessibility").'),
23
+ author: z.string().optional().describe('Book author for metadata.'),
24
+ chunkPageSize: z.number().optional().describe('Number of pages per chunk. Defaults to 10.'),
25
+ tags: z
26
+ .array(z.string())
27
+ .optional()
28
+ .describe('Additional tags applied to all extracted entries.'),
29
+ }),
30
+ handler: async (params) => {
31
+ if (!pipeline) {
32
+ return { error: 'Intake pipeline not configured' };
33
+ }
34
+ const config = {
35
+ pdfPath: params.pdfPath,
36
+ title: params.title,
37
+ domain: params.domain,
38
+ author: params.author,
39
+ chunkPageSize: params.chunkPageSize,
40
+ tags: params.tags,
41
+ };
42
+ return pipeline.ingestBook(config);
43
+ },
44
+ },
45
+ // ─── Process Chunks ───────────────────────────────────────────
46
+ {
47
+ name: 'intake_process',
48
+ description: 'Process pending chunks for a job — extract text, classify via LLM, dedup, and store unique items in the vault.',
49
+ auth: 'write',
50
+ schema: z.object({
51
+ jobId: z.string().describe('Job ID returned from intake_ingest_book.'),
52
+ count: z
53
+ .number()
54
+ .optional()
55
+ .describe('Max number of chunks to process in this batch. Defaults to 5.'),
56
+ }),
57
+ handler: async (params) => {
58
+ if (!pipeline) {
59
+ return { error: 'Intake pipeline not configured' };
60
+ }
61
+ return pipeline.processChunks(params.jobId, params.count);
62
+ },
63
+ },
64
+ // ─── Status ───────────────────────────────────────────────────
65
+ {
66
+ name: 'intake_status',
67
+ description: 'Get intake job status. With jobId: returns job record and chunks. Without: lists all jobs.',
68
+ auth: 'read',
69
+ schema: z.object({
70
+ jobId: z.string().optional().describe('Job ID to inspect. Omit to list all jobs.'),
71
+ }),
72
+ handler: async (params) => {
73
+ if (!pipeline) {
74
+ return { error: 'Intake pipeline not configured' };
75
+ }
76
+ const jobId = params.jobId;
77
+ if (jobId) {
78
+ const job = pipeline.getJob(jobId);
79
+ if (!job) {
80
+ return { error: `Job not found: ${jobId}` };
81
+ }
82
+ const chunks = pipeline.getChunks(jobId);
83
+ return { job, chunks };
84
+ }
85
+ return { jobs: pipeline.listJobs() };
86
+ },
87
+ },
88
+ // ─── Preview ──────────────────────────────────────────────────
89
+ {
90
+ name: 'intake_preview',
91
+ description: 'Preview what the pipeline would extract from a page range — parses and classifies without storing.',
92
+ auth: 'read',
93
+ schema: z.object({
94
+ pdfPath: z.string().describe('Absolute path to the PDF file.'),
95
+ title: z.string().describe('Book title for citation context.'),
96
+ domain: z.string().describe('Knowledge domain for classification context.'),
97
+ pageStart: z.number().describe('First page of the range (1-indexed, inclusive).'),
98
+ pageEnd: z.number().describe('Last page of the range (1-indexed, inclusive).'),
99
+ }),
100
+ handler: async (params) => {
101
+ if (!pipeline) {
102
+ return { error: 'Intake pipeline not configured' };
103
+ }
104
+ const { pdfPath, title, domain, pageStart, pageEnd } = params;
105
+ return pipeline.preview({ pdfPath, title, domain }, pageStart, pageEnd);
106
+ },
107
+ },
108
+ ];
109
+ }
110
+ //# sourceMappingURL=intake-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intake-ops.js","sourceRoot":"","sources":["../../src/runtime/intake-ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAA+B;IAC7D,OAAO;QACL,iEAAiE;QACjE;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,kGAAkG;YACpG,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;gBACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;gBAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBACnE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;gBAC3F,IAAI,EAAE,CAAC;qBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,EAAE;qBACV,QAAQ,CAAC,mDAAmD,CAAC;aACjE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;gBACrD,CAAC;gBACD,MAAM,MAAM,GAAG;oBACb,OAAO,EAAE,MAAM,CAAC,OAAiB;oBACjC,KAAK,EAAE,MAAM,CAAC,KAAe;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAgB;oBAC/B,MAAM,EAAE,MAAM,CAAC,MAA4B;oBAC3C,aAAa,EAAE,MAAM,CAAC,aAAmC;oBACzD,IAAI,EAAE,MAAM,CAAC,IAA4B;iBAC1C,CAAC;gBACF,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;SACF;QAED,iEAAiE;QACjE;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACT,gHAAgH;YAClH,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;gBACtE,KAAK,EAAE,CAAC;qBACL,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,+DAA+D,CAAC;aAC7E,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;gBACrD,CAAC;gBACD,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,KAA2B,CAAC,CAAC;YAC5F,CAAC;SACF;QAED,iEAAiE;QACjE;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,4FAA4F;YAC9F,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;aACnF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;gBACrD,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAA2B,CAAC;gBACjD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,OAAO,EAAE,KAAK,EAAE,kBAAkB,KAAK,EAAE,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACzB,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACvC,CAAC;SACF;QAED,iEAAiE;QACjE;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACT,oGAAoG;YACtG,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;gBAC3E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;gBACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;aAC/E,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;gBACrD,CAAC;gBACD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAMtD,CAAC;gBACF,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Loop operations — 9 ops for iterative validation loops.
3
+ *
4
+ * Ops: loop_start, loop_iterate, loop_iterate_gate, loop_status,
5
+ * loop_cancel, loop_history, loop_is_active, loop_complete,
6
+ * loop_anomaly_check.
7
+ */
8
+ import type { OpDefinition } from '../facades/types.js';
9
+ import type { AgentRuntime } from './types.js';
10
+ /**
11
+ * Create the 9 loop operations for an agent runtime.
12
+ */
13
+ export declare function createLoopOps(runtime: AgentRuntime): OpDefinition[];
14
+ //# sourceMappingURL=loop-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/loop-ops.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+B/C;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAwOnE"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Loop operations — 9 ops for iterative validation loops.
3
+ *
4
+ * Ops: loop_start, loop_iterate, loop_iterate_gate, loop_status,
5
+ * loop_cancel, loop_history, loop_is_active, loop_complete,
6
+ * loop_anomaly_check.
7
+ */
8
+ import { z } from 'zod';
9
+ const loopModeSchema = z.enum([
10
+ 'token-migration',
11
+ 'contrast-fix',
12
+ 'component-build',
13
+ 'plan-iteration',
14
+ 'custom',
15
+ ]);
16
+ /**
17
+ * Default max iterations per mode.
18
+ */
19
+ const DEFAULT_MAX_ITERATIONS = {
20
+ 'token-migration': 20,
21
+ 'contrast-fix': 15,
22
+ 'component-build': 20,
23
+ 'plan-iteration': 10,
24
+ custom: 20,
25
+ };
26
+ /**
27
+ * Default target scores per mode.
28
+ */
29
+ const DEFAULT_TARGET_SCORES = {
30
+ 'token-migration': 95,
31
+ 'component-build': 90,
32
+ 'plan-iteration': 90,
33
+ };
34
+ /**
35
+ * Create the 9 loop operations for an agent runtime.
36
+ */
37
+ export function createLoopOps(runtime) {
38
+ const { loop } = runtime;
39
+ return [
40
+ {
41
+ name: 'loop_start',
42
+ description: 'Start an iterative validation loop. Modes: token-migration, contrast-fix, component-build, plan-iteration, custom.',
43
+ auth: 'write',
44
+ schema: z.object({
45
+ mode: loopModeSchema,
46
+ prompt: z.string().describe('Task description for the loop.'),
47
+ maxIterations: z
48
+ .number()
49
+ .optional()
50
+ .describe('Max iterations. Defaults vary by mode (10-20).'),
51
+ targetScore: z
52
+ .number()
53
+ .optional()
54
+ .describe('Target validation score (0-100). Defaults vary by mode.'),
55
+ targetGrade: z
56
+ .string()
57
+ .optional()
58
+ .describe('Target grade for plan-iteration mode (e.g., "A", "A+").'),
59
+ completionPromise: z
60
+ .string()
61
+ .optional()
62
+ .describe('Completion promise text — loop completes when this appears in output.'),
63
+ validationInstructions: z
64
+ .string()
65
+ .optional()
66
+ .describe('Validation instructions appended to the prompt each iteration.'),
67
+ intent: z
68
+ .string()
69
+ .optional()
70
+ .describe('Detected intent for brain session recording (e.g., "BUILD", "FIX").'),
71
+ }),
72
+ handler: async (params) => {
73
+ const mode = params.mode;
74
+ const prompt = params.prompt;
75
+ const maxIterations = params.maxIterations ?? DEFAULT_MAX_ITERATIONS[mode];
76
+ const targetScore = params.targetScore ?? DEFAULT_TARGET_SCORES[mode];
77
+ const state = loop.startLoop({
78
+ mode,
79
+ prompt,
80
+ maxIterations,
81
+ targetScore,
82
+ targetGrade: params.targetGrade,
83
+ completionPromise: params.completionPromise,
84
+ validationInstructions: params.validationInstructions,
85
+ intent: params.intent,
86
+ });
87
+ return {
88
+ started: true,
89
+ loopId: state.id,
90
+ mode,
91
+ maxIterations,
92
+ targetScore: targetScore ?? null,
93
+ };
94
+ },
95
+ },
96
+ {
97
+ name: 'loop_iterate',
98
+ description: 'Record a validation iteration result. If max iterations reached on a failing result, the loop auto-closes.',
99
+ auth: 'write',
100
+ schema: z.object({
101
+ passed: z.boolean().describe('Whether this iteration passed validation.'),
102
+ validationScore: z.number().optional().describe('Numeric validation score (0-100).'),
103
+ validationResult: z.string().optional().describe('Free-text validation result summary.'),
104
+ }),
105
+ handler: async (params) => {
106
+ const iteration = loop.iterate({
107
+ passed: params.passed,
108
+ validationScore: params.validationScore,
109
+ validationResult: params.validationResult,
110
+ });
111
+ const status = loop.getStatus();
112
+ return {
113
+ iteration: iteration.iteration,
114
+ passed: iteration.passed,
115
+ validationScore: iteration.validationScore ?? null,
116
+ loopActive: loop.isActive(),
117
+ loopStatus: status?.status ?? 'max-iterations',
118
+ };
119
+ },
120
+ },
121
+ {
122
+ name: 'loop_iterate_gate',
123
+ description: 'Gate-based loop iteration — accepts LLM output, scans for completion signals ' +
124
+ '(promise tags, heuristic detection), and returns allow/block decision. ' +
125
+ 'Primary method for Stop hook integration.',
126
+ auth: 'write',
127
+ schema: z.object({
128
+ lastOutput: z.string().describe('The LLM response to scan for completion signals.'),
129
+ knowledge: z
130
+ .object({
131
+ items: z.array(z.string()).optional(),
132
+ patternsApplied: z.array(z.string()).optional(),
133
+ antiPatternsAvoided: z.array(z.string()).optional(),
134
+ })
135
+ .optional()
136
+ .describe('Knowledge items discovered during this iteration.'),
137
+ durationMs: z
138
+ .number()
139
+ .optional()
140
+ .describe('Duration of this iteration in milliseconds (for anomaly detection).'),
141
+ }),
142
+ handler: async (params) => {
143
+ const decision = loop.iterateWithGate(params.lastOutput, params.knowledge, params.durationMs);
144
+ return decision;
145
+ },
146
+ },
147
+ {
148
+ name: 'loop_status',
149
+ description: 'Get current loop status, config, and iteration history.',
150
+ auth: 'read',
151
+ handler: async () => {
152
+ const status = loop.getStatus();
153
+ if (!status) {
154
+ return { active: false, loop: null };
155
+ }
156
+ return {
157
+ active: true,
158
+ loop: status,
159
+ };
160
+ },
161
+ },
162
+ {
163
+ name: 'loop_cancel',
164
+ description: 'Cancel the active loop.',
165
+ auth: 'write',
166
+ handler: async () => {
167
+ const cancelled = loop.cancelLoop();
168
+ return {
169
+ cancelled: true,
170
+ loopId: cancelled.id,
171
+ iterations: cancelled.iterations.length,
172
+ status: cancelled.status,
173
+ };
174
+ },
175
+ },
176
+ {
177
+ name: 'loop_history',
178
+ description: 'Get history of all completed, cancelled, and max-iterations loops.',
179
+ auth: 'read',
180
+ handler: async () => {
181
+ const history = loop.getHistory();
182
+ return {
183
+ count: history.length,
184
+ loops: history.map((l) => ({
185
+ id: l.id,
186
+ mode: l.config.mode,
187
+ prompt: l.config.prompt,
188
+ status: l.status,
189
+ iterations: l.iterations.length,
190
+ startedAt: l.startedAt,
191
+ completedAt: l.completedAt,
192
+ })),
193
+ };
194
+ },
195
+ },
196
+ {
197
+ name: 'loop_is_active',
198
+ description: 'Check if a validation loop is currently running.',
199
+ auth: 'read',
200
+ handler: async () => {
201
+ return { active: loop.isActive() };
202
+ },
203
+ },
204
+ {
205
+ name: 'loop_complete',
206
+ description: 'Mark the active loop as completed (validation passed).',
207
+ auth: 'write',
208
+ handler: async () => {
209
+ const completed = loop.completeLoop();
210
+ return {
211
+ completed: true,
212
+ loopId: completed.id,
213
+ iterations: completed.iterations.length,
214
+ status: completed.status,
215
+ };
216
+ },
217
+ },
218
+ {
219
+ name: 'loop_anomaly_check',
220
+ description: 'Check active loop iterations for anomalous patterns — fast iterations with low scores, repeated failures, no-progress loops.',
221
+ auth: 'read',
222
+ handler: async () => {
223
+ const status = loop.getStatus();
224
+ if (!status) {
225
+ return { active: false, anomalies: [], summary: 'No active loop' };
226
+ }
227
+ const { detectAnomaly } = await import('../loop/loop-manager.js');
228
+ const anomalies = [];
229
+ for (const iter of status.iterations) {
230
+ const warning = detectAnomaly(iter, status.config.mode);
231
+ if (warning)
232
+ anomalies.push(warning);
233
+ }
234
+ // Check for repeated failures (3+ consecutive non-passing iterations)
235
+ const recent = status.iterations.slice(-3);
236
+ if (recent.length >= 3 && recent.every((i) => !i.passed)) {
237
+ anomalies.push(`Warning: ${recent.length} consecutive failing iterations — consider cancelling or adjusting approach`);
238
+ }
239
+ return {
240
+ active: true,
241
+ loopId: status.id,
242
+ mode: status.config.mode,
243
+ totalIterations: status.iterations.length,
244
+ anomalies,
245
+ hasAnomalies: anomalies.length > 0,
246
+ };
247
+ },
248
+ },
249
+ ];
250
+ }
251
+ //# sourceMappingURL=loop-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-ops.js","sourceRoot":"","sources":["../../src/runtime/loop-ops.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5B,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;CACT,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,sBAAsB,GAA6B;IACvD,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,gBAAgB,EAAE,EAAE;IACpB,MAAM,EAAE,EAAE;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAsC;IAC/D,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,OAAO;QACL;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,oHAAoH;YACtH,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAC7D,aAAa,EAAE,CAAC;qBACb,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,gDAAgD,CAAC;gBAC7D,WAAW,EAAE,CAAC;qBACX,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,yDAAyD,CAAC;gBACtE,WAAW,EAAE,CAAC;qBACX,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,yDAAyD,CAAC;gBACtE,iBAAiB,EAAE,CAAC;qBACjB,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,uEAAuE,CAAC;gBACpF,sBAAsB,EAAE,CAAC;qBACtB,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,gEAAgE,CAAC;gBAC7E,MAAM,EAAE,CAAC;qBACN,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,qEAAqE,CAAC;aACnF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAgB,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;gBACvC,MAAM,aAAa,GAChB,MAAM,CAAC,aAAoC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,WAAW,GACd,MAAM,CAAC,WAAkC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC3B,IAAI;oBACJ,MAAM;oBACN,aAAa;oBACb,WAAW;oBACX,WAAW,EAAE,MAAM,CAAC,WAAiC;oBACrD,iBAAiB,EAAE,MAAM,CAAC,iBAAuC;oBACjE,sBAAsB,EAAE,MAAM,CAAC,sBAA4C;oBAC3E,MAAM,EAAE,MAAM,CAAC,MAA4B;iBAC5C,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK,CAAC,EAAE;oBAChB,IAAI;oBACJ,aAAa;oBACb,WAAW,EAAE,WAAW,IAAI,IAAI;iBACjC,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,4GAA4G;YAC9G,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;gBACzE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;gBACpF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;aACzF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAiB;oBAChC,eAAe,EAAE,MAAM,CAAC,eAAqC;oBAC7D,gBAAgB,EAAE,MAAM,CAAC,gBAAsC;iBAChE,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,eAAe,EAAE,SAAS,CAAC,eAAe,IAAI,IAAI;oBAClD,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;oBAC3B,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,gBAAgB;iBAC/C,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,+EAA+E;gBAC/E,yEAAyE;gBACzE,2CAA2C;YAC7C,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBACnF,SAAS,EAAE,CAAC;qBACT,MAAM,CAAC;oBACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;oBACrC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;oBAC/C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;iBACpD,CAAC;qBACD,QAAQ,EAAE;qBACV,QAAQ,CAAC,mDAAmD,CAAC;gBAChE,UAAU,EAAE,CAAC;qBACV,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,qEAAqE,CAAC;aACnF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACnC,MAAM,CAAC,UAAoB,EAC3B,MAAM,CAAC,SAAsC,EAC7C,MAAM,CAAC,UAAgC,CACxC,CAAC;gBACF,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACvC,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,IAAI;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,OAAO;oBACL,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,SAAS,CAAC,EAAE;oBACpB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;oBACvC,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,oEAAoE;YACjF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO;oBACL,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACzB,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;wBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;wBACvB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM;wBAC/B,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrC,CAAC;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,OAAO;oBACL,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,SAAS,CAAC,EAAE;oBACpB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;oBACvC,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,8HAA8H;YAChI,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACrE,CAAC;gBAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAa,EAAE,CAAC;gBAE/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACrC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,OAAO;wBAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAED,sEAAsE;gBACtE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,SAAS,CAAC,IAAI,CACZ,YAAY,MAAM,CAAC,MAAM,6EAA6E,CACvG,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,MAAM,CAAC,EAAE;oBACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;oBACxB,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;oBACzC,SAAS;oBACT,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;iBACnC,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Cross-project memory operations — 3 ops for sharing knowledge across linked projects.
3
+ *
4
+ * Ops: memory_promote_to_global, memory_configure, memory_cross_project_search.
5
+ */
6
+ import type { OpDefinition } from '../facades/types.js';
7
+ import type { AgentRuntime } from './types.js';
8
+ /**
9
+ * Create the 3 cross-project memory operations for an agent runtime.
10
+ */
11
+ export declare function createMemoryCrossProjectOps(runtime: AgentRuntime): OpDefinition[];
12
+ //# sourceMappingURL=memory-cross-project-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-cross-project-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/memory-cross-project-ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAiLjF"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Cross-project memory operations — 3 ops for sharing knowledge across linked projects.
3
+ *
4
+ * Ops: memory_promote_to_global, memory_configure, memory_cross_project_search.
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Create the 3 cross-project memory operations for an agent runtime.
9
+ */
10
+ export function createMemoryCrossProjectOps(runtime) {
11
+ const { vault, projectRegistry } = runtime;
12
+ return [
13
+ {
14
+ name: 'memory_promote_to_global',
15
+ description: 'Promote a vault entry to the global pool by adding a _global tag. Promoted entries surface in cross-project searches across all linked projects.',
16
+ auth: 'write',
17
+ schema: z.object({
18
+ entryId: z.string().describe('The vault entry ID to promote.'),
19
+ }),
20
+ handler: async (params) => {
21
+ const entryId = params.entryId;
22
+ const entry = vault.get(entryId);
23
+ if (!entry)
24
+ return { promoted: false, error: `Entry not found: ${entryId}` };
25
+ const tags = entry.tags ?? [];
26
+ if (tags.includes('_global')) {
27
+ return { promoted: false, entryId, message: 'Entry is already promoted to global.' };
28
+ }
29
+ vault.update(entryId, { tags: [...tags, '_global'] });
30
+ return { promoted: true, entryId, tags: [...tags, '_global'] };
31
+ },
32
+ },
33
+ {
34
+ name: 'memory_configure',
35
+ description: 'Configure cross-project memory settings for a project. Stores config in the project registry metadata.',
36
+ auth: 'admin',
37
+ schema: z.object({
38
+ projectPath: z.string().describe('Project path to configure.'),
39
+ crossProjectEnabled: z
40
+ .boolean()
41
+ .optional()
42
+ .describe('Enable/disable cross-project memory search.'),
43
+ extraPaths: z
44
+ .array(z.string())
45
+ .optional()
46
+ .describe('Additional project paths to include in cross-project searches.'),
47
+ }),
48
+ handler: async (params) => {
49
+ const projectPath = params.projectPath;
50
+ const project = projectRegistry.getByPath(projectPath);
51
+ if (!project) {
52
+ return { configured: false, error: `Project not registered: ${projectPath}` };
53
+ }
54
+ const currentMeta = project.metadata ?? {};
55
+ const memoryConfig = currentMeta.memoryConfig ?? {};
56
+ if (params.crossProjectEnabled !== undefined) {
57
+ memoryConfig.crossProjectEnabled = params.crossProjectEnabled;
58
+ }
59
+ if (params.extraPaths !== undefined) {
60
+ memoryConfig.extraPaths = params.extraPaths;
61
+ }
62
+ projectRegistry.register(projectPath, project.name, {
63
+ ...currentMeta,
64
+ memoryConfig,
65
+ });
66
+ return { configured: true, projectPath, memoryConfig };
67
+ },
68
+ },
69
+ {
70
+ name: 'memory_cross_project_search',
71
+ description: 'Search memories across the current project and all linked projects. Results weighted: current=1.0, global=0.9, linked=0.8. Requires cross-project search to be enabled.',
72
+ auth: 'read',
73
+ schema: z.object({
74
+ query: z.string().describe('Search query.'),
75
+ projectPath: z.string().describe('Current project path.'),
76
+ type: z
77
+ .enum(['session', 'lesson', 'preference'])
78
+ .optional()
79
+ .describe('Filter by memory type.'),
80
+ limit: z.number().optional().describe('Max results per project (default 10).'),
81
+ }),
82
+ handler: async (params) => {
83
+ const query = params.query;
84
+ const projectPath = params.projectPath;
85
+ const type = params.type;
86
+ const limit = params.limit ?? 10;
87
+ // Search current project (weight 1.0)
88
+ const currentResults = vault.searchMemories(query, { projectPath, type, limit });
89
+ const weightedResults = currentResults.map((m) => ({
90
+ memory: m,
91
+ weight: 1.0,
92
+ source: 'current',
93
+ }));
94
+ // Search for globally promoted entries (search broadly, then filter for _global tag)
95
+ const allResults = vault.search(query, { limit: limit * 3 });
96
+ const globalEntries = allResults
97
+ .filter((r) => r.entry.tags?.includes('_global'))
98
+ .slice(0, limit)
99
+ .map((r) => ({
100
+ entry: r.entry,
101
+ score: r.score,
102
+ weight: 0.9,
103
+ source: 'global',
104
+ }));
105
+ // Get linked projects and search their memories
106
+ const project = projectRegistry.getByPath(projectPath);
107
+ const linkedMemories = [];
108
+ if (project) {
109
+ const config = project.metadata?.memoryConfig ?? {};
110
+ const enabled = config.crossProjectEnabled !== false; // default enabled
111
+ if (enabled) {
112
+ const linked = projectRegistry.getLinkedProjects(project.id);
113
+ for (const { project: linkedProj } of linked) {
114
+ const results = vault.searchMemories(query, {
115
+ projectPath: linkedProj.path,
116
+ type,
117
+ limit: Math.ceil(limit / 2), // fewer results from linked projects
118
+ });
119
+ for (const m of results) {
120
+ linkedMemories.push({
121
+ memory: m,
122
+ weight: 0.8,
123
+ source: 'linked',
124
+ linkedProject: linkedProj.path,
125
+ });
126
+ }
127
+ }
128
+ // Also search extra paths
129
+ const extraPaths = config.extraPaths ?? [];
130
+ for (const extraPath of extraPaths) {
131
+ const results = vault.searchMemories(query, {
132
+ projectPath: extraPath,
133
+ type,
134
+ limit: Math.ceil(limit / 2),
135
+ });
136
+ for (const m of results) {
137
+ linkedMemories.push({
138
+ memory: m,
139
+ weight: 0.7,
140
+ source: 'linked',
141
+ linkedProject: extraPath,
142
+ });
143
+ }
144
+ }
145
+ }
146
+ }
147
+ // Deduplicate by memory ID
148
+ const seen = new Set(weightedResults.map((r) => r.memory.id));
149
+ const dedupedLinked = linkedMemories.filter((r) => {
150
+ if (seen.has(r.memory.id))
151
+ return false;
152
+ seen.add(r.memory.id);
153
+ return true;
154
+ });
155
+ return {
156
+ memories: weightedResults,
157
+ globalEntries,
158
+ linkedMemories: dedupedLinked,
159
+ totalResults: weightedResults.length + globalEntries.length + dedupedLinked.length,
160
+ };
161
+ },
162
+ },
163
+ ];
164
+ }
165
+ //# sourceMappingURL=memory-cross-project-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-cross-project-ops.js","sourceRoot":"","sources":["../../src/runtime/memory-cross-project-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Extended memory operations — 8 ops for advanced memory management.
3
+ *
4
+ * These complement the 4 base memory ops in core-ops.ts:
5
+ * memory_search, memory_capture, memory_list, session_capture
6
+ *
7
+ * New ops: memory_delete, memory_stats, memory_export, memory_import,
8
+ * memory_prune, memory_deduplicate, memory_topics, memory_by_project
9
+ */
10
+ import type { OpDefinition } from '../facades/types.js';
11
+ import type { AgentRuntime } from './types.js';
12
+ export declare function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[];
13
+ //# sourceMappingURL=memory-extra-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-extra-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/memory-extra-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CA2K1E"}