conatus 0.1.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 (1059) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -0
  3. package/dist/adapter-layer.d.ts +67 -0
  4. package/dist/adapter-layer.d.ts.map +1 -0
  5. package/dist/adapter-layer.js +50 -0
  6. package/dist/adapter-layer.js.map +1 -0
  7. package/dist/adapters/a2a-adapter.d.ts +49 -0
  8. package/dist/adapters/a2a-adapter.d.ts.map +1 -0
  9. package/dist/adapters/a2a-adapter.js +211 -0
  10. package/dist/adapters/a2a-adapter.js.map +1 -0
  11. package/dist/adapters/a2a-client.d.ts +28 -0
  12. package/dist/adapters/a2a-client.d.ts.map +1 -0
  13. package/dist/adapters/a2a-client.js +178 -0
  14. package/dist/adapters/a2a-client.js.map +1 -0
  15. package/dist/adapters/browser-use-cli.d.ts +19 -0
  16. package/dist/adapters/browser-use-cli.d.ts.map +1 -0
  17. package/dist/adapters/browser-use-cli.js +112 -0
  18. package/dist/adapters/browser-use-cli.js.map +1 -0
  19. package/dist/adapters/claude-api.d.ts +10 -0
  20. package/dist/adapters/claude-api.d.ts.map +1 -0
  21. package/dist/adapters/claude-api.js +63 -0
  22. package/dist/adapters/claude-api.js.map +1 -0
  23. package/dist/adapters/claude-code-cli.d.ts +14 -0
  24. package/dist/adapters/claude-code-cli.d.ts.map +1 -0
  25. package/dist/adapters/claude-code-cli.js +99 -0
  26. package/dist/adapters/claude-code-cli.js.map +1 -0
  27. package/dist/adapters/file-existence-datasource.d.ts +16 -0
  28. package/dist/adapters/file-existence-datasource.d.ts.map +1 -0
  29. package/dist/adapters/file-existence-datasource.js +71 -0
  30. package/dist/adapters/file-existence-datasource.js.map +1 -0
  31. package/dist/adapters/github-issue-datasource.d.ts +45 -0
  32. package/dist/adapters/github-issue-datasource.d.ts.map +1 -0
  33. package/dist/adapters/github-issue-datasource.js +329 -0
  34. package/dist/adapters/github-issue-datasource.js.map +1 -0
  35. package/dist/adapters/github-issue.d.ts +87 -0
  36. package/dist/adapters/github-issue.d.ts.map +1 -0
  37. package/dist/adapters/github-issue.js +497 -0
  38. package/dist/adapters/github-issue.js.map +1 -0
  39. package/dist/adapters/openai-codex.d.ts +26 -0
  40. package/dist/adapters/openai-codex.d.ts.map +1 -0
  41. package/dist/adapters/openai-codex.js +112 -0
  42. package/dist/adapters/openai-codex.js.map +1 -0
  43. package/dist/adapters/shell-datasource.d.ts +36 -0
  44. package/dist/adapters/shell-datasource.d.ts.map +1 -0
  45. package/dist/adapters/shell-datasource.js +138 -0
  46. package/dist/adapters/shell-datasource.js.map +1 -0
  47. package/dist/capability-detector.d.ts +124 -0
  48. package/dist/capability-detector.d.ts.map +1 -0
  49. package/dist/capability-detector.js +576 -0
  50. package/dist/capability-detector.js.map +1 -0
  51. package/dist/character-config.d.ts +34 -0
  52. package/dist/character-config.d.ts.map +1 -0
  53. package/dist/character-config.js +53 -0
  54. package/dist/character-config.js.map +1 -0
  55. package/dist/cli/cli-logger.d.ts +3 -0
  56. package/dist/cli/cli-logger.d.ts.map +1 -0
  57. package/dist/cli/cli-logger.js +12 -0
  58. package/dist/cli/cli-logger.js.map +1 -0
  59. package/dist/cli/commands/config.d.ts +12 -0
  60. package/dist/cli/commands/config.d.ts.map +1 -0
  61. package/dist/cli/commands/config.js +345 -0
  62. package/dist/cli/commands/config.js.map +1 -0
  63. package/dist/cli/commands/daemon.d.ts +6 -0
  64. package/dist/cli/commands/daemon.d.ts.map +1 -0
  65. package/dist/cli/commands/daemon.js +99 -0
  66. package/dist/cli/commands/daemon.js.map +1 -0
  67. package/dist/cli/commands/goal-raw.d.ts +7 -0
  68. package/dist/cli/commands/goal-raw.d.ts.map +1 -0
  69. package/dist/cli/commands/goal-raw.js +93 -0
  70. package/dist/cli/commands/goal-raw.js.map +1 -0
  71. package/dist/cli/commands/goal-utils.d.ts +41 -0
  72. package/dist/cli/commands/goal-utils.d.ts.map +1 -0
  73. package/dist/cli/commands/goal-utils.js +184 -0
  74. package/dist/cli/commands/goal-utils.js.map +1 -0
  75. package/dist/cli/commands/goal.d.ts +22 -0
  76. package/dist/cli/commands/goal.d.ts.map +1 -0
  77. package/dist/cli/commands/goal.js +382 -0
  78. package/dist/cli/commands/goal.js.map +1 -0
  79. package/dist/cli/commands/plugin.d.ts +9 -0
  80. package/dist/cli/commands/plugin.d.ts.map +1 -0
  81. package/dist/cli/commands/plugin.js +336 -0
  82. package/dist/cli/commands/plugin.js.map +1 -0
  83. package/dist/cli/commands/report.d.ts +3 -0
  84. package/dist/cli/commands/report.d.ts.map +1 -0
  85. package/dist/cli/commands/report.js +29 -0
  86. package/dist/cli/commands/report.js.map +1 -0
  87. package/dist/cli/commands/run.d.ts +10 -0
  88. package/dist/cli/commands/run.d.ts.map +1 -0
  89. package/dist/cli/commands/run.js +159 -0
  90. package/dist/cli/commands/run.js.map +1 -0
  91. package/dist/cli/commands/suggest.d.ts +7 -0
  92. package/dist/cli/commands/suggest.d.ts.map +1 -0
  93. package/dist/cli/commands/suggest.js +466 -0
  94. package/dist/cli/commands/suggest.js.map +1 -0
  95. package/dist/cli/ensure-api-key.d.ts +14 -0
  96. package/dist/cli/ensure-api-key.d.ts.map +1 -0
  97. package/dist/cli/ensure-api-key.js +28 -0
  98. package/dist/cli/ensure-api-key.js.map +1 -0
  99. package/dist/cli/setup.d.ts +18 -0
  100. package/dist/cli/setup.d.ts.map +1 -0
  101. package/dist/cli/setup.js +147 -0
  102. package/dist/cli/setup.js.map +1 -0
  103. package/dist/cli/utils.d.ts +9 -0
  104. package/dist/cli/utils.d.ts.map +1 -0
  105. package/dist/cli/utils.js +113 -0
  106. package/dist/cli/utils.js.map +1 -0
  107. package/dist/cli-runner.d.ts +32 -0
  108. package/dist/cli-runner.d.ts.map +1 -0
  109. package/dist/cli-runner.js +467 -0
  110. package/dist/cli-runner.js.map +1 -0
  111. package/dist/codex-llm-client.d.ts +47 -0
  112. package/dist/codex-llm-client.d.ts.map +1 -0
  113. package/dist/codex-llm-client.js +193 -0
  114. package/dist/codex-llm-client.js.map +1 -0
  115. package/dist/context-provider.d.ts +16 -0
  116. package/dist/context-provider.d.ts.map +1 -0
  117. package/dist/context-provider.js +107 -0
  118. package/dist/context-provider.js.map +1 -0
  119. package/dist/context-providers/workspace-context.d.ts +8 -0
  120. package/dist/context-providers/workspace-context.d.ts.map +1 -0
  121. package/dist/context-providers/workspace-context.js +217 -0
  122. package/dist/context-providers/workspace-context.js.map +1 -0
  123. package/dist/core/suggest/repo-context.d.ts +8 -0
  124. package/dist/core/suggest/repo-context.d.ts.map +1 -0
  125. package/dist/core/suggest/repo-context.js +154 -0
  126. package/dist/core/suggest/repo-context.js.map +1 -0
  127. package/dist/core-loop.d.ts +63 -0
  128. package/dist/core-loop.d.ts.map +1 -0
  129. package/dist/core-loop.js +521 -0
  130. package/dist/core-loop.js.map +1 -0
  131. package/dist/cross-goal-portfolio.d.ts +153 -0
  132. package/dist/cross-goal-portfolio.d.ts.map +1 -0
  133. package/dist/cross-goal-portfolio.js +790 -0
  134. package/dist/cross-goal-portfolio.js.map +1 -0
  135. package/dist/curiosity-engine.d.ts +177 -0
  136. package/dist/curiosity-engine.d.ts.map +1 -0
  137. package/dist/curiosity-engine.js +736 -0
  138. package/dist/curiosity-engine.js.map +1 -0
  139. package/dist/daemon-runner.d.ts +109 -0
  140. package/dist/daemon-runner.d.ts.map +1 -0
  141. package/dist/daemon-runner.js +389 -0
  142. package/dist/daemon-runner.js.map +1 -0
  143. package/dist/data-source-adapter.d.ts +42 -0
  144. package/dist/data-source-adapter.d.ts.map +1 -0
  145. package/dist/data-source-adapter.js +223 -0
  146. package/dist/data-source-adapter.js.map +1 -0
  147. package/dist/drive/drive-scorer.d.ts +96 -0
  148. package/dist/drive/drive-scorer.d.ts.map +1 -0
  149. package/dist/drive/drive-scorer.js +240 -0
  150. package/dist/drive/drive-scorer.js.map +1 -0
  151. package/dist/drive/drive-system.d.ts +99 -0
  152. package/dist/drive/drive-system.d.ts.map +1 -0
  153. package/dist/drive/drive-system.js +344 -0
  154. package/dist/drive/drive-system.js.map +1 -0
  155. package/dist/drive/gap-calculator.d.ts +80 -0
  156. package/dist/drive/gap-calculator.d.ts.map +1 -0
  157. package/dist/drive/gap-calculator.js +219 -0
  158. package/dist/drive/gap-calculator.js.map +1 -0
  159. package/dist/drive/reward-log.d.ts +51 -0
  160. package/dist/drive/reward-log.d.ts.map +1 -0
  161. package/dist/drive/reward-log.js +48 -0
  162. package/dist/drive/reward-log.js.map +1 -0
  163. package/dist/drive/satisficing-helpers.d.ts +28 -0
  164. package/dist/drive/satisficing-helpers.d.ts.map +1 -0
  165. package/dist/drive/satisficing-helpers.js +111 -0
  166. package/dist/drive/satisficing-helpers.js.map +1 -0
  167. package/dist/drive/satisficing-judge.d.ts +140 -0
  168. package/dist/drive/satisficing-judge.d.ts.map +1 -0
  169. package/dist/drive/satisficing-judge.js +432 -0
  170. package/dist/drive/satisficing-judge.js.map +1 -0
  171. package/dist/drive/satisficing-propagation.d.ts +30 -0
  172. package/dist/drive/satisficing-propagation.d.ts.map +1 -0
  173. package/dist/drive/satisficing-propagation.js +196 -0
  174. package/dist/drive/satisficing-propagation.js.map +1 -0
  175. package/dist/drive/stall-detector.d.ts +113 -0
  176. package/dist/drive/stall-detector.d.ts.map +1 -0
  177. package/dist/drive/stall-detector.js +378 -0
  178. package/dist/drive/stall-detector.js.map +1 -0
  179. package/dist/drive-scorer.d.ts +96 -0
  180. package/dist/drive-scorer.d.ts.map +1 -0
  181. package/dist/drive-scorer.js +235 -0
  182. package/dist/drive-scorer.js.map +1 -0
  183. package/dist/drive-system.d.ts +92 -0
  184. package/dist/drive-system.d.ts.map +1 -0
  185. package/dist/drive-system.js +325 -0
  186. package/dist/drive-system.js.map +1 -0
  187. package/dist/embedding-client.d.ts +49 -0
  188. package/dist/embedding-client.d.ts.map +1 -0
  189. package/dist/embedding-client.js +141 -0
  190. package/dist/embedding-client.js.map +1 -0
  191. package/dist/ethics-gate.d.ts +70 -0
  192. package/dist/ethics-gate.d.ts.map +1 -0
  193. package/dist/ethics-gate.js +567 -0
  194. package/dist/ethics-gate.js.map +1 -0
  195. package/dist/event-server.d.ts +23 -0
  196. package/dist/event-server.d.ts.map +1 -0
  197. package/dist/event-server.js +69 -0
  198. package/dist/event-server.js.map +1 -0
  199. package/dist/execution/adapter-layer.d.ts +88 -0
  200. package/dist/execution/adapter-layer.d.ts.map +1 -0
  201. package/dist/execution/adapter-layer.js +123 -0
  202. package/dist/execution/adapter-layer.js.map +1 -0
  203. package/dist/execution/checkpoint-manager.d.ts +49 -0
  204. package/dist/execution/checkpoint-manager.d.ts.map +1 -0
  205. package/dist/execution/checkpoint-manager.js +143 -0
  206. package/dist/execution/checkpoint-manager.js.map +1 -0
  207. package/dist/execution/context-budget.d.ts +35 -0
  208. package/dist/execution/context-budget.d.ts.map +1 -0
  209. package/dist/execution/context-budget.js +73 -0
  210. package/dist/execution/context-budget.js.map +1 -0
  211. package/dist/execution/dimension-selector.d.ts +22 -0
  212. package/dist/execution/dimension-selector.d.ts.map +1 -0
  213. package/dist/execution/dimension-selector.js +57 -0
  214. package/dist/execution/dimension-selector.js.map +1 -0
  215. package/dist/execution/impact-analyzer.d.ts +24 -0
  216. package/dist/execution/impact-analyzer.d.ts.map +1 -0
  217. package/dist/execution/impact-analyzer.js +88 -0
  218. package/dist/execution/impact-analyzer.js.map +1 -0
  219. package/dist/execution/parallel-executor.d.ts +35 -0
  220. package/dist/execution/parallel-executor.d.ts.map +1 -0
  221. package/dist/execution/parallel-executor.js +162 -0
  222. package/dist/execution/parallel-executor.js.map +1 -0
  223. package/dist/execution/pipeline-executor.d.ts +54 -0
  224. package/dist/execution/pipeline-executor.d.ts.map +1 -0
  225. package/dist/execution/pipeline-executor.js +250 -0
  226. package/dist/execution/pipeline-executor.js.map +1 -0
  227. package/dist/execution/reflection-generator.d.ts +24 -0
  228. package/dist/execution/reflection-generator.d.ts.map +1 -0
  229. package/dist/execution/reflection-generator.js +143 -0
  230. package/dist/execution/reflection-generator.js.map +1 -0
  231. package/dist/execution/result-reconciler.d.ts +23 -0
  232. package/dist/execution/result-reconciler.d.ts.map +1 -0
  233. package/dist/execution/result-reconciler.js +109 -0
  234. package/dist/execution/result-reconciler.js.map +1 -0
  235. package/dist/execution/session-manager.d.ts +182 -0
  236. package/dist/execution/session-manager.d.ts.map +1 -0
  237. package/dist/execution/session-manager.js +506 -0
  238. package/dist/execution/session-manager.js.map +1 -0
  239. package/dist/execution/task-approval-check.d.ts +9 -0
  240. package/dist/execution/task-approval-check.d.ts.map +1 -0
  241. package/dist/execution/task-approval-check.js +14 -0
  242. package/dist/execution/task-approval-check.js.map +1 -0
  243. package/dist/execution/task-approval.d.ts +37 -0
  244. package/dist/execution/task-approval.d.ts.map +1 -0
  245. package/dist/execution/task-approval.js +147 -0
  246. package/dist/execution/task-approval.js.map +1 -0
  247. package/dist/execution/task-execution-types.d.ts +14 -0
  248. package/dist/execution/task-execution-types.d.ts.map +1 -0
  249. package/dist/execution/task-execution-types.js +2 -0
  250. package/dist/execution/task-execution-types.js.map +1 -0
  251. package/dist/execution/task-executor.d.ts +30 -0
  252. package/dist/execution/task-executor.d.ts.map +1 -0
  253. package/dist/execution/task-executor.js +196 -0
  254. package/dist/execution/task-executor.js.map +1 -0
  255. package/dist/execution/task-generation.d.ts +154 -0
  256. package/dist/execution/task-generation.d.ts.map +1 -0
  257. package/dist/execution/task-generation.js +406 -0
  258. package/dist/execution/task-generation.js.map +1 -0
  259. package/dist/execution/task-health-check.d.ts +38 -0
  260. package/dist/execution/task-health-check.d.ts.map +1 -0
  261. package/dist/execution/task-health-check.js +66 -0
  262. package/dist/execution/task-health-check.js.map +1 -0
  263. package/dist/execution/task-lifecycle.d.ts +122 -0
  264. package/dist/execution/task-lifecycle.d.ts.map +1 -0
  265. package/dist/execution/task-lifecycle.js +303 -0
  266. package/dist/execution/task-lifecycle.js.map +1 -0
  267. package/dist/execution/task-pipeline-cycle.d.ts +45 -0
  268. package/dist/execution/task-pipeline-cycle.d.ts.map +1 -0
  269. package/dist/execution/task-pipeline-cycle.js +134 -0
  270. package/dist/execution/task-pipeline-cycle.js.map +1 -0
  271. package/dist/execution/task-prompt-builder.d.ts +9 -0
  272. package/dist/execution/task-prompt-builder.d.ts.map +1 -0
  273. package/dist/execution/task-prompt-builder.js +165 -0
  274. package/dist/execution/task-prompt-builder.js.map +1 -0
  275. package/dist/execution/task-verifier.d.ts +112 -0
  276. package/dist/execution/task-verifier.d.ts.map +1 -0
  277. package/dist/execution/task-verifier.js +782 -0
  278. package/dist/execution/task-verifier.js.map +1 -0
  279. package/dist/gap-calculator.d.ts +80 -0
  280. package/dist/gap-calculator.d.ts.map +1 -0
  281. package/dist/gap-calculator.js +218 -0
  282. package/dist/gap-calculator.js.map +1 -0
  283. package/dist/goal/goal-decomposer.d.ts +30 -0
  284. package/dist/goal/goal-decomposer.d.ts.map +1 -0
  285. package/dist/goal/goal-decomposer.js +167 -0
  286. package/dist/goal/goal-decomposer.js.map +1 -0
  287. package/dist/goal/goal-dependency-graph.d.ts +119 -0
  288. package/dist/goal/goal-dependency-graph.d.ts.map +1 -0
  289. package/dist/goal/goal-dependency-graph.js +322 -0
  290. package/dist/goal/goal-dependency-graph.js.map +1 -0
  291. package/dist/goal/goal-negotiator.d.ts +66 -0
  292. package/dist/goal/goal-negotiator.d.ts.map +1 -0
  293. package/dist/goal/goal-negotiator.js +260 -0
  294. package/dist/goal/goal-negotiator.js.map +1 -0
  295. package/dist/goal/goal-suggest.d.ts +85 -0
  296. package/dist/goal/goal-suggest.d.ts.map +1 -0
  297. package/dist/goal/goal-suggest.js +178 -0
  298. package/dist/goal/goal-suggest.js.map +1 -0
  299. package/dist/goal/goal-tree-manager.d.ts +71 -0
  300. package/dist/goal/goal-tree-manager.d.ts.map +1 -0
  301. package/dist/goal/goal-tree-manager.js +580 -0
  302. package/dist/goal/goal-tree-manager.js.map +1 -0
  303. package/dist/goal/goal-tree-pruner.d.ts +25 -0
  304. package/dist/goal/goal-tree-pruner.d.ts.map +1 -0
  305. package/dist/goal/goal-tree-pruner.js +93 -0
  306. package/dist/goal/goal-tree-pruner.js.map +1 -0
  307. package/dist/goal/goal-tree-quality.d.ts +22 -0
  308. package/dist/goal/goal-tree-quality.d.ts.map +1 -0
  309. package/dist/goal/goal-tree-quality.js +183 -0
  310. package/dist/goal/goal-tree-quality.js.map +1 -0
  311. package/dist/goal/goal-validation.d.ts +20 -0
  312. package/dist/goal/goal-validation.d.ts.map +1 -0
  313. package/dist/goal/goal-validation.js +93 -0
  314. package/dist/goal/goal-validation.js.map +1 -0
  315. package/dist/goal/negotiator-context.d.ts +13 -0
  316. package/dist/goal/negotiator-context.d.ts.map +1 -0
  317. package/dist/goal/negotiator-context.js +119 -0
  318. package/dist/goal/negotiator-context.js.map +1 -0
  319. package/dist/goal/negotiator-prompts.d.ts +31 -0
  320. package/dist/goal/negotiator-prompts.d.ts.map +1 -0
  321. package/dist/goal/negotiator-prompts.js +65 -0
  322. package/dist/goal/negotiator-prompts.js.map +1 -0
  323. package/dist/goal/negotiator-steps.d.ts +59 -0
  324. package/dist/goal/negotiator-steps.d.ts.map +1 -0
  325. package/dist/goal/negotiator-steps.js +269 -0
  326. package/dist/goal/negotiator-steps.js.map +1 -0
  327. package/dist/goal/state-aggregator.d.ts +89 -0
  328. package/dist/goal/state-aggregator.d.ts.map +1 -0
  329. package/dist/goal/state-aggregator.js +292 -0
  330. package/dist/goal/state-aggregator.js.map +1 -0
  331. package/dist/goal/tree-loop-orchestrator.d.ts +79 -0
  332. package/dist/goal/tree-loop-orchestrator.d.ts.map +1 -0
  333. package/dist/goal/tree-loop-orchestrator.js +230 -0
  334. package/dist/goal/tree-loop-orchestrator.js.map +1 -0
  335. package/dist/goal-dependency-graph.d.ts +112 -0
  336. package/dist/goal-dependency-graph.d.ts.map +1 -0
  337. package/dist/goal-dependency-graph.js +291 -0
  338. package/dist/goal-dependency-graph.js.map +1 -0
  339. package/dist/goal-negotiator.d.ts +109 -0
  340. package/dist/goal-negotiator.d.ts.map +1 -0
  341. package/dist/goal-negotiator.js +1044 -0
  342. package/dist/goal-negotiator.js.map +1 -0
  343. package/dist/goal-tree-manager.d.ts +120 -0
  344. package/dist/goal-tree-manager.d.ts.map +1 -0
  345. package/dist/goal-tree-manager.js +954 -0
  346. package/dist/goal-tree-manager.js.map +1 -0
  347. package/dist/guardrail-runner.d.ts +29 -0
  348. package/dist/guardrail-runner.d.ts.map +1 -0
  349. package/dist/guardrail-runner.js +81 -0
  350. package/dist/guardrail-runner.js.map +1 -0
  351. package/dist/index.d.ts +95 -0
  352. package/dist/index.d.ts.map +1 -0
  353. package/dist/index.js +75 -0
  354. package/dist/index.js.map +1 -0
  355. package/dist/knowledge/drive-score-adapter.d.ts +39 -0
  356. package/dist/knowledge/drive-score-adapter.d.ts.map +1 -0
  357. package/dist/knowledge/drive-score-adapter.js +32 -0
  358. package/dist/knowledge/drive-score-adapter.js.map +1 -0
  359. package/dist/knowledge/embedding-client.d.ts +49 -0
  360. package/dist/knowledge/embedding-client.d.ts.map +1 -0
  361. package/dist/knowledge/embedding-client.js +141 -0
  362. package/dist/knowledge/embedding-client.js.map +1 -0
  363. package/dist/knowledge/knowledge-decisions.d.ts +41 -0
  364. package/dist/knowledge/knowledge-decisions.d.ts.map +1 -0
  365. package/dist/knowledge/knowledge-decisions.js +191 -0
  366. package/dist/knowledge/knowledge-decisions.js.map +1 -0
  367. package/dist/knowledge/knowledge-graph.d.ts +74 -0
  368. package/dist/knowledge/knowledge-graph.d.ts.map +1 -0
  369. package/dist/knowledge/knowledge-graph.js +207 -0
  370. package/dist/knowledge/knowledge-graph.js.map +1 -0
  371. package/dist/knowledge/knowledge-manager.d.ts +138 -0
  372. package/dist/knowledge/knowledge-manager.d.ts.map +1 -0
  373. package/dist/knowledge/knowledge-manager.js +497 -0
  374. package/dist/knowledge/knowledge-manager.js.map +1 -0
  375. package/dist/knowledge/knowledge-revalidation.d.ts +27 -0
  376. package/dist/knowledge/knowledge-revalidation.d.ts.map +1 -0
  377. package/dist/knowledge/knowledge-revalidation.js +130 -0
  378. package/dist/knowledge/knowledge-revalidation.js.map +1 -0
  379. package/dist/knowledge/knowledge-search.d.ts +49 -0
  380. package/dist/knowledge/knowledge-search.d.ts.map +1 -0
  381. package/dist/knowledge/knowledge-search.js +108 -0
  382. package/dist/knowledge/knowledge-search.js.map +1 -0
  383. package/dist/knowledge/knowledge-transfer-prompts.d.ts +45 -0
  384. package/dist/knowledge/knowledge-transfer-prompts.d.ts.map +1 -0
  385. package/dist/knowledge/knowledge-transfer-prompts.js +72 -0
  386. package/dist/knowledge/knowledge-transfer-prompts.js.map +1 -0
  387. package/dist/knowledge/knowledge-transfer.d.ts +148 -0
  388. package/dist/knowledge/knowledge-transfer.d.ts.map +1 -0
  389. package/dist/knowledge/knowledge-transfer.js +718 -0
  390. package/dist/knowledge/knowledge-transfer.js.map +1 -0
  391. package/dist/knowledge/learning-cross-goal.d.ts +19 -0
  392. package/dist/knowledge/learning-cross-goal.d.ts.map +1 -0
  393. package/dist/knowledge/learning-cross-goal.js +173 -0
  394. package/dist/knowledge/learning-cross-goal.js.map +1 -0
  395. package/dist/knowledge/learning-feedback.d.ts +26 -0
  396. package/dist/knowledge/learning-feedback.d.ts.map +1 -0
  397. package/dist/knowledge/learning-feedback.js +183 -0
  398. package/dist/knowledge/learning-feedback.js.map +1 -0
  399. package/dist/knowledge/learning-pipeline-prompts.d.ts +134 -0
  400. package/dist/knowledge/learning-pipeline-prompts.d.ts.map +1 -0
  401. package/dist/knowledge/learning-pipeline-prompts.js +103 -0
  402. package/dist/knowledge/learning-pipeline-prompts.js.map +1 -0
  403. package/dist/knowledge/learning-pipeline.d.ts +108 -0
  404. package/dist/knowledge/learning-pipeline.d.ts.map +1 -0
  405. package/dist/knowledge/learning-pipeline.js +467 -0
  406. package/dist/knowledge/learning-pipeline.js.map +1 -0
  407. package/dist/knowledge/memory-compression.d.ts +44 -0
  408. package/dist/knowledge/memory-compression.d.ts.map +1 -0
  409. package/dist/knowledge/memory-compression.js +289 -0
  410. package/dist/knowledge/memory-compression.js.map +1 -0
  411. package/dist/knowledge/memory-distill.d.ts +31 -0
  412. package/dist/knowledge/memory-distill.d.ts.map +1 -0
  413. package/dist/knowledge/memory-distill.js +170 -0
  414. package/dist/knowledge/memory-distill.js.map +1 -0
  415. package/dist/knowledge/memory-index.d.ts +11 -0
  416. package/dist/knowledge/memory-index.d.ts.map +1 -0
  417. package/dist/knowledge/memory-index.js +134 -0
  418. package/dist/knowledge/memory-index.js.map +1 -0
  419. package/dist/knowledge/memory-lifecycle.d.ts +172 -0
  420. package/dist/knowledge/memory-lifecycle.d.ts.map +1 -0
  421. package/dist/knowledge/memory-lifecycle.js +398 -0
  422. package/dist/knowledge/memory-lifecycle.js.map +1 -0
  423. package/dist/knowledge/memory-persistence.d.ts +30 -0
  424. package/dist/knowledge/memory-persistence.d.ts.map +1 -0
  425. package/dist/knowledge/memory-persistence.js +120 -0
  426. package/dist/knowledge/memory-persistence.js.map +1 -0
  427. package/dist/knowledge/memory-phases.d.ts +14 -0
  428. package/dist/knowledge/memory-phases.d.ts.map +1 -0
  429. package/dist/knowledge/memory-phases.js +14 -0
  430. package/dist/knowledge/memory-phases.js.map +1 -0
  431. package/dist/knowledge/memory-query.d.ts +4 -0
  432. package/dist/knowledge/memory-query.d.ts.map +1 -0
  433. package/dist/knowledge/memory-query.js +64 -0
  434. package/dist/knowledge/memory-query.js.map +1 -0
  435. package/dist/knowledge/memory-selection.d.ts +80 -0
  436. package/dist/knowledge/memory-selection.d.ts.map +1 -0
  437. package/dist/knowledge/memory-selection.js +356 -0
  438. package/dist/knowledge/memory-selection.js.map +1 -0
  439. package/dist/knowledge/memory-stats.d.ts +7 -0
  440. package/dist/knowledge/memory-stats.d.ts.map +1 -0
  441. package/dist/knowledge/memory-stats.js +162 -0
  442. package/dist/knowledge/memory-stats.js.map +1 -0
  443. package/dist/knowledge/memory-tier.d.ts +47 -0
  444. package/dist/knowledge/memory-tier.d.ts.map +1 -0
  445. package/dist/knowledge/memory-tier.js +212 -0
  446. package/dist/knowledge/memory-tier.js.map +1 -0
  447. package/dist/knowledge/transfer-trust.d.ts +40 -0
  448. package/dist/knowledge/transfer-trust.d.ts.map +1 -0
  449. package/dist/knowledge/transfer-trust.js +137 -0
  450. package/dist/knowledge/transfer-trust.js.map +1 -0
  451. package/dist/knowledge/vector-index.d.ts +65 -0
  452. package/dist/knowledge/vector-index.d.ts.map +1 -0
  453. package/dist/knowledge/vector-index.js +153 -0
  454. package/dist/knowledge/vector-index.js.map +1 -0
  455. package/dist/knowledge-graph.d.ts +70 -0
  456. package/dist/knowledge-graph.d.ts.map +1 -0
  457. package/dist/knowledge-graph.js +194 -0
  458. package/dist/knowledge-graph.js.map +1 -0
  459. package/dist/knowledge-manager.d.ts +110 -0
  460. package/dist/knowledge-manager.d.ts.map +1 -0
  461. package/dist/knowledge-manager.js +544 -0
  462. package/dist/knowledge-manager.js.map +1 -0
  463. package/dist/knowledge-transfer.d.ts +101 -0
  464. package/dist/knowledge-transfer.d.ts.map +1 -0
  465. package/dist/knowledge-transfer.js +484 -0
  466. package/dist/knowledge-transfer.js.map +1 -0
  467. package/dist/learning-pipeline.d.ts +107 -0
  468. package/dist/learning-pipeline.d.ts.map +1 -0
  469. package/dist/learning-pipeline.js +840 -0
  470. package/dist/learning-pipeline.js.map +1 -0
  471. package/dist/llm/base-llm-client.d.ts +20 -0
  472. package/dist/llm/base-llm-client.d.ts.map +1 -0
  473. package/dist/llm/base-llm-client.js +48 -0
  474. package/dist/llm/base-llm-client.js.map +1 -0
  475. package/dist/llm/codex-llm-client.d.ts +41 -0
  476. package/dist/llm/codex-llm-client.d.ts.map +1 -0
  477. package/dist/llm/codex-llm-client.js +188 -0
  478. package/dist/llm/codex-llm-client.js.map +1 -0
  479. package/dist/llm/llm-client.d.ts +54 -0
  480. package/dist/llm/llm-client.d.ts.map +1 -0
  481. package/dist/llm/llm-client.js +148 -0
  482. package/dist/llm/llm-client.js.map +1 -0
  483. package/dist/llm/ollama-client.d.ts +24 -0
  484. package/dist/llm/ollama-client.d.ts.map +1 -0
  485. package/dist/llm/ollama-client.js +94 -0
  486. package/dist/llm/ollama-client.js.map +1 -0
  487. package/dist/llm/openai-client.d.ts +34 -0
  488. package/dist/llm/openai-client.d.ts.map +1 -0
  489. package/dist/llm/openai-client.js +140 -0
  490. package/dist/llm/openai-client.js.map +1 -0
  491. package/dist/llm/provider-config.d.ts +55 -0
  492. package/dist/llm/provider-config.d.ts.map +1 -0
  493. package/dist/llm/provider-config.js +136 -0
  494. package/dist/llm/provider-config.js.map +1 -0
  495. package/dist/llm/provider-factory.d.ts +25 -0
  496. package/dist/llm/provider-factory.d.ts.map +1 -0
  497. package/dist/llm/provider-factory.js +111 -0
  498. package/dist/llm/provider-factory.js.map +1 -0
  499. package/dist/llm-client.d.ts +65 -0
  500. package/dist/llm-client.d.ts.map +1 -0
  501. package/dist/llm-client.js +151 -0
  502. package/dist/llm-client.js.map +1 -0
  503. package/dist/logger.d.ts +30 -0
  504. package/dist/logger.d.ts.map +1 -0
  505. package/dist/logger.js +121 -0
  506. package/dist/logger.js.map +1 -0
  507. package/dist/loop/core-loop-capability.d.ts +19 -0
  508. package/dist/loop/core-loop-capability.d.ts.map +1 -0
  509. package/dist/loop/core-loop-capability.js +107 -0
  510. package/dist/loop/core-loop-capability.js.map +1 -0
  511. package/dist/loop/core-loop-learning.d.ts +34 -0
  512. package/dist/loop/core-loop-learning.d.ts.map +1 -0
  513. package/dist/loop/core-loop-learning.js +78 -0
  514. package/dist/loop/core-loop-learning.js.map +1 -0
  515. package/dist/loop/core-loop-phases-b.d.ts +25 -0
  516. package/dist/loop/core-loop-phases-b.d.ts.map +1 -0
  517. package/dist/loop/core-loop-phases-b.js +510 -0
  518. package/dist/loop/core-loop-phases-b.js.map +1 -0
  519. package/dist/loop/core-loop-phases.d.ts +40 -0
  520. package/dist/loop/core-loop-phases.d.ts.map +1 -0
  521. package/dist/loop/core-loop-phases.js +228 -0
  522. package/dist/loop/core-loop-phases.js.map +1 -0
  523. package/dist/loop/core-loop-types.d.ts +202 -0
  524. package/dist/loop/core-loop-types.d.ts.map +1 -0
  525. package/dist/loop/core-loop-types.js +38 -0
  526. package/dist/loop/core-loop-types.js.map +1 -0
  527. package/dist/loop/tree-loop-runner.d.ts +24 -0
  528. package/dist/loop/tree-loop-runner.d.ts.map +1 -0
  529. package/dist/loop/tree-loop-runner.js +116 -0
  530. package/dist/loop/tree-loop-runner.js.map +1 -0
  531. package/dist/memory-lifecycle.d.ts +244 -0
  532. package/dist/memory-lifecycle.d.ts.map +1 -0
  533. package/dist/memory-lifecycle.js +1328 -0
  534. package/dist/memory-lifecycle.js.map +1 -0
  535. package/dist/notification-dispatcher.d.ts +36 -0
  536. package/dist/notification-dispatcher.d.ts.map +1 -0
  537. package/dist/notification-dispatcher.js +363 -0
  538. package/dist/notification-dispatcher.js.map +1 -0
  539. package/dist/observation/capability-dependencies.d.ts +45 -0
  540. package/dist/observation/capability-dependencies.d.ts.map +1 -0
  541. package/dist/observation/capability-dependencies.js +208 -0
  542. package/dist/observation/capability-dependencies.js.map +1 -0
  543. package/dist/observation/capability-detector.d.ts +72 -0
  544. package/dist/observation/capability-detector.d.ts.map +1 -0
  545. package/dist/observation/capability-detector.js +372 -0
  546. package/dist/observation/capability-detector.js.map +1 -0
  547. package/dist/observation/capability-registry.d.ts +48 -0
  548. package/dist/observation/capability-registry.d.ts.map +1 -0
  549. package/dist/observation/capability-registry.js +131 -0
  550. package/dist/observation/capability-registry.js.map +1 -0
  551. package/dist/observation/context-provider.d.ts +39 -0
  552. package/dist/observation/context-provider.d.ts.map +1 -0
  553. package/dist/observation/context-provider.js +177 -0
  554. package/dist/observation/context-provider.js.map +1 -0
  555. package/dist/observation/data-source-adapter.d.ts +42 -0
  556. package/dist/observation/data-source-adapter.d.ts.map +1 -0
  557. package/dist/observation/data-source-adapter.js +227 -0
  558. package/dist/observation/data-source-adapter.js.map +1 -0
  559. package/dist/observation/observation-apply.d.ts +18 -0
  560. package/dist/observation/observation-apply.d.ts.map +1 -0
  561. package/dist/observation/observation-apply.js +138 -0
  562. package/dist/observation/observation-apply.js.map +1 -0
  563. package/dist/observation/observation-datasource.d.ts +21 -0
  564. package/dist/observation/observation-datasource.d.ts.map +1 -0
  565. package/dist/observation/observation-datasource.js +96 -0
  566. package/dist/observation/observation-datasource.js.map +1 -0
  567. package/dist/observation/observation-engine.d.ts +156 -0
  568. package/dist/observation/observation-engine.d.ts.map +1 -0
  569. package/dist/observation/observation-engine.js +359 -0
  570. package/dist/observation/observation-engine.js.map +1 -0
  571. package/dist/observation/observation-helpers.d.ts +112 -0
  572. package/dist/observation/observation-helpers.d.ts.map +1 -0
  573. package/dist/observation/observation-helpers.js +173 -0
  574. package/dist/observation/observation-helpers.js.map +1 -0
  575. package/dist/observation/observation-llm.d.ts +46 -0
  576. package/dist/observation/observation-llm.d.ts.map +1 -0
  577. package/dist/observation/observation-llm.js +220 -0
  578. package/dist/observation/observation-llm.js.map +1 -0
  579. package/dist/observation/observation-task.d.ts +29 -0
  580. package/dist/observation/observation-task.d.ts.map +1 -0
  581. package/dist/observation/observation-task.js +51 -0
  582. package/dist/observation/observation-task.js.map +1 -0
  583. package/dist/observation/workspace-context.d.ts +8 -0
  584. package/dist/observation/workspace-context.d.ts.map +1 -0
  585. package/dist/observation/workspace-context.js +229 -0
  586. package/dist/observation/workspace-context.js.map +1 -0
  587. package/dist/observation-engine.d.ts +218 -0
  588. package/dist/observation-engine.d.ts.map +1 -0
  589. package/dist/observation-engine.js +711 -0
  590. package/dist/observation-engine.js.map +1 -0
  591. package/dist/ollama-client.d.ts +30 -0
  592. package/dist/ollama-client.d.ts.map +1 -0
  593. package/dist/ollama-client.js +112 -0
  594. package/dist/ollama-client.js.map +1 -0
  595. package/dist/openai-client.d.ts +40 -0
  596. package/dist/openai-client.d.ts.map +1 -0
  597. package/dist/openai-client.js +155 -0
  598. package/dist/openai-client.js.map +1 -0
  599. package/dist/pid-manager.d.ts +18 -0
  600. package/dist/pid-manager.d.ts.map +1 -0
  601. package/dist/pid-manager.js +64 -0
  602. package/dist/pid-manager.js.map +1 -0
  603. package/dist/portfolio-manager.d.ts +147 -0
  604. package/dist/portfolio-manager.d.ts.map +1 -0
  605. package/dist/portfolio-manager.js +371 -0
  606. package/dist/portfolio-manager.js.map +1 -0
  607. package/dist/portfolio-rebalance.d.ts +75 -0
  608. package/dist/portfolio-rebalance.d.ts.map +1 -0
  609. package/dist/portfolio-rebalance.js +254 -0
  610. package/dist/portfolio-rebalance.js.map +1 -0
  611. package/dist/prompt/context-assembler.d.ts +70 -0
  612. package/dist/prompt/context-assembler.d.ts.map +1 -0
  613. package/dist/prompt/context-assembler.js +346 -0
  614. package/dist/prompt/context-assembler.js.map +1 -0
  615. package/dist/prompt/formatters.d.ts +49 -0
  616. package/dist/prompt/formatters.d.ts.map +1 -0
  617. package/dist/prompt/formatters.js +136 -0
  618. package/dist/prompt/formatters.js.map +1 -0
  619. package/dist/prompt/gateway.d.ts +30 -0
  620. package/dist/prompt/gateway.d.ts.map +1 -0
  621. package/dist/prompt/gateway.js +43 -0
  622. package/dist/prompt/gateway.js.map +1 -0
  623. package/dist/prompt/index.d.ts +12 -0
  624. package/dist/prompt/index.d.ts.map +1 -0
  625. package/dist/prompt/index.js +9 -0
  626. package/dist/prompt/index.js.map +1 -0
  627. package/dist/prompt/purposes/capability.d.ts +64 -0
  628. package/dist/prompt/purposes/capability.d.ts.map +1 -0
  629. package/dist/prompt/purposes/capability.js +38 -0
  630. package/dist/prompt/purposes/capability.js.map +1 -0
  631. package/dist/prompt/purposes/checkpoint.d.ts +22 -0
  632. package/dist/prompt/purposes/checkpoint.d.ts.map +1 -0
  633. package/dist/prompt/purposes/checkpoint.js +17 -0
  634. package/dist/prompt/purposes/checkpoint.js.map +1 -0
  635. package/dist/prompt/purposes/curiosity.d.ts +41 -0
  636. package/dist/prompt/purposes/curiosity.d.ts.map +1 -0
  637. package/dist/prompt/purposes/curiosity.js +20 -0
  638. package/dist/prompt/purposes/curiosity.js.map +1 -0
  639. package/dist/prompt/purposes/dependency.d.ts +34 -0
  640. package/dist/prompt/purposes/dependency.d.ts.map +1 -0
  641. package/dist/prompt/purposes/dependency.js +21 -0
  642. package/dist/prompt/purposes/dependency.js.map +1 -0
  643. package/dist/prompt/purposes/ethics.d.ts +47 -0
  644. package/dist/prompt/purposes/ethics.d.ts.map +1 -0
  645. package/dist/prompt/purposes/ethics.js +89 -0
  646. package/dist/prompt/purposes/ethics.js.map +1 -0
  647. package/dist/prompt/purposes/final-migration.d.ts +15 -0
  648. package/dist/prompt/purposes/final-migration.d.ts.map +1 -0
  649. package/dist/prompt/purposes/final-migration.js +15 -0
  650. package/dist/prompt/purposes/final-migration.js.map +1 -0
  651. package/dist/prompt/purposes/goal-decomposition.d.ts +46 -0
  652. package/dist/prompt/purposes/goal-decomposition.d.ts.map +1 -0
  653. package/dist/prompt/purposes/goal-decomposition.js +20 -0
  654. package/dist/prompt/purposes/goal-decomposition.js.map +1 -0
  655. package/dist/prompt/purposes/goal-quality.d.ts +61 -0
  656. package/dist/prompt/purposes/goal-quality.d.ts.map +1 -0
  657. package/dist/prompt/purposes/goal-quality.js +37 -0
  658. package/dist/prompt/purposes/goal-quality.js.map +1 -0
  659. package/dist/prompt/purposes/index.d.ts +29 -0
  660. package/dist/prompt/purposes/index.d.ts.map +1 -0
  661. package/dist/prompt/purposes/index.js +320 -0
  662. package/dist/prompt/purposes/index.js.map +1 -0
  663. package/dist/prompt/purposes/knowledge-transfer.d.ts +81 -0
  664. package/dist/prompt/purposes/knowledge-transfer.d.ts.map +1 -0
  665. package/dist/prompt/purposes/knowledge-transfer.js +33 -0
  666. package/dist/prompt/purposes/knowledge-transfer.js.map +1 -0
  667. package/dist/prompt/purposes/knowledge.d.ts +88 -0
  668. package/dist/prompt/purposes/knowledge.d.ts.map +1 -0
  669. package/dist/prompt/purposes/knowledge.js +59 -0
  670. package/dist/prompt/purposes/knowledge.js.map +1 -0
  671. package/dist/prompt/purposes/learning.d.ts +70 -0
  672. package/dist/prompt/purposes/learning.d.ts.map +1 -0
  673. package/dist/prompt/purposes/learning.js +32 -0
  674. package/dist/prompt/purposes/learning.js.map +1 -0
  675. package/dist/prompt/purposes/memory-distill.d.ts +75 -0
  676. package/dist/prompt/purposes/memory-distill.d.ts.map +1 -0
  677. package/dist/prompt/purposes/memory-distill.js +27 -0
  678. package/dist/prompt/purposes/memory-distill.js.map +1 -0
  679. package/dist/prompt/purposes/observation.d.ts +25 -0
  680. package/dist/prompt/purposes/observation.d.ts.map +1 -0
  681. package/dist/prompt/purposes/observation.js +17 -0
  682. package/dist/prompt/purposes/observation.js.map +1 -0
  683. package/dist/prompt/purposes/strategy-template.d.ts +57 -0
  684. package/dist/prompt/purposes/strategy-template.d.ts.map +1 -0
  685. package/dist/prompt/purposes/strategy-template.js +31 -0
  686. package/dist/prompt/purposes/strategy-template.js.map +1 -0
  687. package/dist/prompt/purposes/strategy.d.ts +41 -0
  688. package/dist/prompt/purposes/strategy.d.ts.map +1 -0
  689. package/dist/prompt/purposes/strategy.js +19 -0
  690. package/dist/prompt/purposes/strategy.js.map +1 -0
  691. package/dist/prompt/purposes/task-generation.d.ts +26 -0
  692. package/dist/prompt/purposes/task-generation.d.ts.map +1 -0
  693. package/dist/prompt/purposes/task-generation.js +22 -0
  694. package/dist/prompt/purposes/task-generation.js.map +1 -0
  695. package/dist/prompt/purposes/verification.d.ts +25 -0
  696. package/dist/prompt/purposes/verification.d.ts.map +1 -0
  697. package/dist/prompt/purposes/verification.js +17 -0
  698. package/dist/prompt/purposes/verification.js.map +1 -0
  699. package/dist/prompt/slot-definitions 2.d.ts +33 -0
  700. package/dist/prompt/slot-definitions 2.d.ts.map +1 -0
  701. package/dist/prompt/slot-definitions 2.js +332 -0
  702. package/dist/prompt/slot-definitions 2.js.map +1 -0
  703. package/dist/prompt/slot-definitions.d.ts +33 -0
  704. package/dist/prompt/slot-definitions.d.ts.map +1 -0
  705. package/dist/prompt/slot-definitions.js +383 -0
  706. package/dist/prompt/slot-definitions.js.map +1 -0
  707. package/dist/provider-config.d.ts +43 -0
  708. package/dist/provider-config.d.ts.map +1 -0
  709. package/dist/provider-config.js +131 -0
  710. package/dist/provider-config.js.map +1 -0
  711. package/dist/provider-factory.d.ts +23 -0
  712. package/dist/provider-factory.d.ts.map +1 -0
  713. package/dist/provider-factory.js +83 -0
  714. package/dist/provider-factory.js.map +1 -0
  715. package/dist/reporting-engine.d.ts +58 -0
  716. package/dist/reporting-engine.d.ts.map +1 -0
  717. package/dist/reporting-engine.js +592 -0
  718. package/dist/reporting-engine.js.map +1 -0
  719. package/dist/runtime/daemon-runner.d.ts +147 -0
  720. package/dist/runtime/daemon-runner.d.ts.map +1 -0
  721. package/dist/runtime/daemon-runner.js +549 -0
  722. package/dist/runtime/daemon-runner.js.map +1 -0
  723. package/dist/runtime/event-server.d.ts +50 -0
  724. package/dist/runtime/event-server.d.ts.map +1 -0
  725. package/dist/runtime/event-server.js +192 -0
  726. package/dist/runtime/event-server.js.map +1 -0
  727. package/dist/runtime/logger.d.ts +57 -0
  728. package/dist/runtime/logger.d.ts.map +1 -0
  729. package/dist/runtime/logger.js +254 -0
  730. package/dist/runtime/logger.js.map +1 -0
  731. package/dist/runtime/notification-dispatcher.d.ts +49 -0
  732. package/dist/runtime/notification-dispatcher.d.ts.map +1 -0
  733. package/dist/runtime/notification-dispatcher.js +444 -0
  734. package/dist/runtime/notification-dispatcher.js.map +1 -0
  735. package/dist/runtime/notifier-registry.d.ts +26 -0
  736. package/dist/runtime/notifier-registry.d.ts.map +1 -0
  737. package/dist/runtime/notifier-registry.js +36 -0
  738. package/dist/runtime/notifier-registry.js.map +1 -0
  739. package/dist/runtime/pid-manager.d.ts +18 -0
  740. package/dist/runtime/pid-manager.d.ts.map +1 -0
  741. package/dist/runtime/pid-manager.js +61 -0
  742. package/dist/runtime/pid-manager.js.map +1 -0
  743. package/dist/runtime/plugin-loader.d.ts +78 -0
  744. package/dist/runtime/plugin-loader.d.ts.map +1 -0
  745. package/dist/runtime/plugin-loader.js +349 -0
  746. package/dist/runtime/plugin-loader.js.map +1 -0
  747. package/dist/satisficing-judge.d.ts +113 -0
  748. package/dist/satisficing-judge.d.ts.map +1 -0
  749. package/dist/satisficing-judge.js +592 -0
  750. package/dist/satisficing-judge.js.map +1 -0
  751. package/dist/session-manager.d.ts +159 -0
  752. package/dist/session-manager.d.ts.map +1 -0
  753. package/dist/session-manager.js +458 -0
  754. package/dist/session-manager.js.map +1 -0
  755. package/dist/stall-detector.d.ts +100 -0
  756. package/dist/stall-detector.d.ts.map +1 -0
  757. package/dist/stall-detector.js +306 -0
  758. package/dist/stall-detector.js.map +1 -0
  759. package/dist/state-aggregator.d.ts +89 -0
  760. package/dist/state-aggregator.d.ts.map +1 -0
  761. package/dist/state-aggregator.js +290 -0
  762. package/dist/state-aggregator.js.map +1 -0
  763. package/dist/state-manager.d.ts +121 -0
  764. package/dist/state-manager.d.ts.map +1 -0
  765. package/dist/state-manager.js +547 -0
  766. package/dist/state-manager.js.map +1 -0
  767. package/dist/strategy/cross-goal-portfolio.d.ts +118 -0
  768. package/dist/strategy/cross-goal-portfolio.d.ts.map +1 -0
  769. package/dist/strategy/cross-goal-portfolio.js +431 -0
  770. package/dist/strategy/cross-goal-portfolio.js.map +1 -0
  771. package/dist/strategy/portfolio-allocation.d.ts +36 -0
  772. package/dist/strategy/portfolio-allocation.d.ts.map +1 -0
  773. package/dist/strategy/portfolio-allocation.js +215 -0
  774. package/dist/strategy/portfolio-allocation.js.map +1 -0
  775. package/dist/strategy/portfolio-momentum.d.ts +11 -0
  776. package/dist/strategy/portfolio-momentum.d.ts.map +1 -0
  777. package/dist/strategy/portfolio-momentum.js +64 -0
  778. package/dist/strategy/portfolio-momentum.js.map +1 -0
  779. package/dist/strategy/portfolio-scheduling.d.ts +25 -0
  780. package/dist/strategy/portfolio-scheduling.d.ts.map +1 -0
  781. package/dist/strategy/portfolio-scheduling.js +133 -0
  782. package/dist/strategy/portfolio-scheduling.js.map +1 -0
  783. package/dist/strategy/strategy-helpers.d.ts +109 -0
  784. package/dist/strategy/strategy-helpers.d.ts.map +1 -0
  785. package/dist/strategy/strategy-helpers.js +125 -0
  786. package/dist/strategy/strategy-helpers.js.map +1 -0
  787. package/dist/strategy/strategy-manager-base.d.ts +95 -0
  788. package/dist/strategy/strategy-manager-base.d.ts.map +1 -0
  789. package/dist/strategy/strategy-manager-base.js +363 -0
  790. package/dist/strategy/strategy-manager-base.js.map +1 -0
  791. package/dist/strategy/strategy-manager.d.ts +65 -0
  792. package/dist/strategy/strategy-manager.d.ts.map +1 -0
  793. package/dist/strategy/strategy-manager.js +226 -0
  794. package/dist/strategy/strategy-manager.js.map +1 -0
  795. package/dist/strategy/strategy-template-registry.d.ts +84 -0
  796. package/dist/strategy/strategy-template-registry.d.ts.map +1 -0
  797. package/dist/strategy/strategy-template-registry.js +350 -0
  798. package/dist/strategy/strategy-template-registry.js.map +1 -0
  799. package/dist/strategy-manager.d.ts +128 -0
  800. package/dist/strategy-manager.d.ts.map +1 -0
  801. package/dist/strategy-manager.js +579 -0
  802. package/dist/strategy-manager.js.map +1 -0
  803. package/dist/strategy-template-registry.d.ts +80 -0
  804. package/dist/strategy-template-registry.d.ts.map +1 -0
  805. package/dist/strategy-template-registry.js +320 -0
  806. package/dist/strategy-template-registry.js.map +1 -0
  807. package/dist/task-lifecycle.d.ts +167 -0
  808. package/dist/task-lifecycle.d.ts.map +1 -0
  809. package/dist/task-lifecycle.js +1161 -0
  810. package/dist/task-lifecycle.js.map +1 -0
  811. package/dist/traits/character-config.d.ts +34 -0
  812. package/dist/traits/character-config.d.ts.map +1 -0
  813. package/dist/traits/character-config.js +53 -0
  814. package/dist/traits/character-config.js.map +1 -0
  815. package/dist/traits/curiosity-engine.d.ts +185 -0
  816. package/dist/traits/curiosity-engine.d.ts.map +1 -0
  817. package/dist/traits/curiosity-engine.js +530 -0
  818. package/dist/traits/curiosity-engine.js.map +1 -0
  819. package/dist/traits/curiosity-proposals.d.ts +38 -0
  820. package/dist/traits/curiosity-proposals.d.ts.map +1 -0
  821. package/dist/traits/curiosity-proposals.js +259 -0
  822. package/dist/traits/curiosity-proposals.js.map +1 -0
  823. package/dist/traits/curiosity-transfer.d.ts +27 -0
  824. package/dist/traits/curiosity-transfer.d.ts.map +1 -0
  825. package/dist/traits/curiosity-transfer.js +50 -0
  826. package/dist/traits/curiosity-transfer.js.map +1 -0
  827. package/dist/traits/ethics-gate.d.ts +72 -0
  828. package/dist/traits/ethics-gate.d.ts.map +1 -0
  829. package/dist/traits/ethics-gate.js +591 -0
  830. package/dist/traits/ethics-gate.js.map +1 -0
  831. package/dist/traits/trust-manager.d.ts +90 -0
  832. package/dist/traits/trust-manager.d.ts.map +1 -0
  833. package/dist/traits/trust-manager.js +276 -0
  834. package/dist/traits/trust-manager.js.map +1 -0
  835. package/dist/tree-loop-orchestrator.d.ts +79 -0
  836. package/dist/tree-loop-orchestrator.d.ts.map +1 -0
  837. package/dist/tree-loop-orchestrator.js +225 -0
  838. package/dist/tree-loop-orchestrator.js.map +1 -0
  839. package/dist/trust-manager.d.ts +67 -0
  840. package/dist/trust-manager.d.ts.map +1 -0
  841. package/dist/trust-manager.js +201 -0
  842. package/dist/trust-manager.js.map +1 -0
  843. package/dist/tui/actions.d.ts +38 -0
  844. package/dist/tui/actions.d.ts.map +1 -0
  845. package/dist/tui/actions.js +229 -0
  846. package/dist/tui/actions.js.map +1 -0
  847. package/dist/tui/app.d.ts +24 -0
  848. package/dist/tui/app.d.ts.map +1 -0
  849. package/dist/tui/app.js +159 -0
  850. package/dist/tui/app.js.map +1 -0
  851. package/dist/tui/approval-overlay.d.ts +8 -0
  852. package/dist/tui/approval-overlay.d.ts.map +1 -0
  853. package/dist/tui/approval-overlay.js +20 -0
  854. package/dist/tui/approval-overlay.js.map +1 -0
  855. package/dist/tui/chat.d.ts +15 -0
  856. package/dist/tui/chat.d.ts.map +1 -0
  857. package/dist/tui/chat.js +196 -0
  858. package/dist/tui/chat.js.map +1 -0
  859. package/dist/tui/dashboard.d.ts +9 -0
  860. package/dist/tui/dashboard.d.ts.map +1 -0
  861. package/dist/tui/dashboard.js +69 -0
  862. package/dist/tui/dashboard.js.map +1 -0
  863. package/dist/tui/entry.d.ts +3 -0
  864. package/dist/tui/entry.d.ts.map +1 -0
  865. package/dist/tui/entry.js +222 -0
  866. package/dist/tui/entry.js.map +1 -0
  867. package/dist/tui/fuzzy.d.ts +22 -0
  868. package/dist/tui/fuzzy.d.ts.map +1 -0
  869. package/dist/tui/fuzzy.js +66 -0
  870. package/dist/tui/fuzzy.js.map +1 -0
  871. package/dist/tui/help-overlay.d.ts +6 -0
  872. package/dist/tui/help-overlay.d.ts.map +1 -0
  873. package/dist/tui/help-overlay.js +12 -0
  874. package/dist/tui/help-overlay.js.map +1 -0
  875. package/dist/tui/intent-recognizer.d.ts +19 -0
  876. package/dist/tui/intent-recognizer.d.ts.map +1 -0
  877. package/dist/tui/intent-recognizer.js +125 -0
  878. package/dist/tui/intent-recognizer.js.map +1 -0
  879. package/dist/tui/markdown-renderer.d.ts +37 -0
  880. package/dist/tui/markdown-renderer.d.ts.map +1 -0
  881. package/dist/tui/markdown-renderer.js +220 -0
  882. package/dist/tui/markdown-renderer.js.map +1 -0
  883. package/dist/tui/report-view.d.ts +6 -0
  884. package/dist/tui/report-view.d.ts.map +1 -0
  885. package/dist/tui/report-view.js +79 -0
  886. package/dist/tui/report-view.js.map +1 -0
  887. package/dist/tui/use-loop.d.ts +54 -0
  888. package/dist/tui/use-loop.d.ts.map +1 -0
  889. package/dist/tui/use-loop.js +185 -0
  890. package/dist/tui/use-loop.js.map +1 -0
  891. package/dist/types/a2a.d.ts +972 -0
  892. package/dist/types/a2a.d.ts.map +1 -0
  893. package/dist/types/a2a.js +130 -0
  894. package/dist/types/a2a.js.map +1 -0
  895. package/dist/types/capability.d.ts +292 -0
  896. package/dist/types/capability.d.ts.map +1 -0
  897. package/dist/types/capability.js +53 -0
  898. package/dist/types/capability.js.map +1 -0
  899. package/dist/types/character.d.ts +20 -0
  900. package/dist/types/character.d.ts.map +1 -0
  901. package/dist/types/character.js +10 -0
  902. package/dist/types/character.js.map +1 -0
  903. package/dist/types/checkpoint.d.ts +109 -0
  904. package/dist/types/checkpoint.d.ts.map +1 -0
  905. package/dist/types/checkpoint.js +27 -0
  906. package/dist/types/checkpoint.js.map +1 -0
  907. package/dist/types/core.d.ts +175 -0
  908. package/dist/types/core.d.ts.map +1 -0
  909. package/dist/types/core.js +154 -0
  910. package/dist/types/core.js.map +1 -0
  911. package/dist/types/cross-portfolio.d.ts +378 -0
  912. package/dist/types/cross-portfolio.d.ts.map +1 -0
  913. package/dist/types/cross-portfolio.js +155 -0
  914. package/dist/types/cross-portfolio.js.map +1 -0
  915. package/dist/types/curiosity.d.ts +443 -0
  916. package/dist/types/curiosity.d.ts.map +1 -0
  917. package/dist/types/curiosity.js +86 -0
  918. package/dist/types/curiosity.js.map +1 -0
  919. package/dist/types/daemon.d.ts +111 -0
  920. package/dist/types/daemon.d.ts.map +1 -0
  921. package/dist/types/daemon.js +37 -0
  922. package/dist/types/daemon.js.map +1 -0
  923. package/dist/types/data-source.d.ts +311 -0
  924. package/dist/types/data-source.d.ts.map +1 -0
  925. package/dist/types/data-source.js +53 -0
  926. package/dist/types/data-source.js.map +1 -0
  927. package/dist/types/dependency.d.ts +108 -0
  928. package/dist/types/dependency.d.ts.map +1 -0
  929. package/dist/types/dependency.js +21 -0
  930. package/dist/types/dependency.js.map +1 -0
  931. package/dist/types/drive.d.ts +194 -0
  932. package/dist/types/drive.d.ts.map +1 -0
  933. package/dist/types/drive.js +77 -0
  934. package/dist/types/drive.js.map +1 -0
  935. package/dist/types/embedding.d.ts +59 -0
  936. package/dist/types/embedding.d.ts.map +1 -0
  937. package/dist/types/embedding.js +22 -0
  938. package/dist/types/embedding.js.map +1 -0
  939. package/dist/types/ethics.d.ts +169 -0
  940. package/dist/types/ethics.d.ts.map +1 -0
  941. package/dist/types/ethics.js +47 -0
  942. package/dist/types/ethics.js.map +1 -0
  943. package/dist/types/gap.d.ts +146 -0
  944. package/dist/types/gap.d.ts.map +1 -0
  945. package/dist/types/gap.js +41 -0
  946. package/dist/types/gap.js.map +1 -0
  947. package/dist/types/goal-tree.d.ts +180 -0
  948. package/dist/types/goal-tree.d.ts.map +1 -0
  949. package/dist/types/goal-tree.js +73 -0
  950. package/dist/types/goal-tree.js.map +1 -0
  951. package/dist/types/goal.d.ts +1233 -0
  952. package/dist/types/goal.d.ts.map +1 -0
  953. package/dist/types/goal.js +119 -0
  954. package/dist/types/goal.js.map +1 -0
  955. package/dist/types/guardrail.d.ts +104 -0
  956. package/dist/types/guardrail.d.ts.map +1 -0
  957. package/dist/types/guardrail.js +34 -0
  958. package/dist/types/guardrail.js.map +1 -0
  959. package/dist/types/index.d.ts +31 -0
  960. package/dist/types/index.d.ts.map +1 -0
  961. package/dist/types/index.js +31 -0
  962. package/dist/types/index.js.map +1 -0
  963. package/dist/types/knowledge.d.ts +402 -0
  964. package/dist/types/knowledge.d.ts.map +1 -0
  965. package/dist/types/knowledge.js +116 -0
  966. package/dist/types/knowledge.js.map +1 -0
  967. package/dist/types/learning.d.ts +292 -0
  968. package/dist/types/learning.d.ts.map +1 -0
  969. package/dist/types/learning.js +120 -0
  970. package/dist/types/learning.js.map +1 -0
  971. package/dist/types/memory-lifecycle.d.ts +617 -0
  972. package/dist/types/memory-lifecycle.d.ts.map +1 -0
  973. package/dist/types/memory-lifecycle.js +159 -0
  974. package/dist/types/memory-lifecycle.js.map +1 -0
  975. package/dist/types/negotiation.d.ts +450 -0
  976. package/dist/types/negotiation.d.ts.map +1 -0
  977. package/dist/types/negotiation.js +84 -0
  978. package/dist/types/negotiation.js.map +1 -0
  979. package/dist/types/notification.d.ts +879 -0
  980. package/dist/types/notification.d.ts.map +1 -0
  981. package/dist/types/notification.js +75 -0
  982. package/dist/types/notification.js.map +1 -0
  983. package/dist/types/pipeline.d.ts +191 -0
  984. package/dist/types/pipeline.d.ts.map +1 -0
  985. package/dist/types/pipeline.js +62 -0
  986. package/dist/types/pipeline.js.map +1 -0
  987. package/dist/types/plugin.d.ts +335 -0
  988. package/dist/types/plugin.d.ts.map +1 -0
  989. package/dist/types/plugin.js +61 -0
  990. package/dist/types/plugin.js.map +1 -0
  991. package/dist/types/portfolio.d.ts +146 -0
  992. package/dist/types/portfolio.d.ts.map +1 -0
  993. package/dist/types/portfolio.js +55 -0
  994. package/dist/types/portfolio.js.map +1 -0
  995. package/dist/types/reflection.d.ts +34 -0
  996. package/dist/types/reflection.d.ts.map +1 -0
  997. package/dist/types/reflection.js +14 -0
  998. package/dist/types/reflection.js.map +1 -0
  999. package/dist/types/report.d.ts +205 -0
  1000. package/dist/types/report.d.ts.map +1 -0
  1001. package/dist/types/report.js +59 -0
  1002. package/dist/types/report.js.map +1 -0
  1003. package/dist/types/satisficing.d.ts +130 -0
  1004. package/dist/types/satisficing.d.ts.map +1 -0
  1005. package/dist/types/satisficing.js +54 -0
  1006. package/dist/types/satisficing.js.map +1 -0
  1007. package/dist/types/session.d.ts +95 -0
  1008. package/dist/types/session.d.ts.map +1 -0
  1009. package/dist/types/session.js +36 -0
  1010. package/dist/types/session.js.map +1 -0
  1011. package/dist/types/stall.d.ts +68 -0
  1012. package/dist/types/stall.d.ts.map +1 -0
  1013. package/dist/types/stall.js +28 -0
  1014. package/dist/types/stall.js.map +1 -0
  1015. package/dist/types/state.d.ts +245 -0
  1016. package/dist/types/state.d.ts.map +1 -0
  1017. package/dist/types/state.js +36 -0
  1018. package/dist/types/state.js.map +1 -0
  1019. package/dist/types/strategy.d.ts +541 -0
  1020. package/dist/types/strategy.d.ts.map +1 -0
  1021. package/dist/types/strategy.js +55 -0
  1022. package/dist/types/strategy.js.map +1 -0
  1023. package/dist/types/suggest.d.ts +92 -0
  1024. package/dist/types/suggest.d.ts.map +1 -0
  1025. package/dist/types/suggest.js +15 -0
  1026. package/dist/types/suggest.js.map +1 -0
  1027. package/dist/types/task-group.d.ts +231 -0
  1028. package/dist/types/task-group.d.ts.map +1 -0
  1029. package/dist/types/task-group.js +14 -0
  1030. package/dist/types/task-group.js.map +1 -0
  1031. package/dist/types/task.d.ts +258 -0
  1032. package/dist/types/task.d.ts.map +1 -0
  1033. package/dist/types/task.js +66 -0
  1034. package/dist/types/task.js.map +1 -0
  1035. package/dist/types/trust.d.ts +126 -0
  1036. package/dist/types/trust.d.ts.map +1 -0
  1037. package/dist/types/trust.js +38 -0
  1038. package/dist/types/trust.js.map +1 -0
  1039. package/dist/utils/errors.d.ts +17 -0
  1040. package/dist/utils/errors.d.ts.map +1 -0
  1041. package/dist/utils/errors.js +34 -0
  1042. package/dist/utils/errors.js.map +1 -0
  1043. package/dist/utils/json-io.d.ts +28 -0
  1044. package/dist/utils/json-io.d.ts.map +1 -0
  1045. package/dist/utils/json-io.js +71 -0
  1046. package/dist/utils/json-io.js.map +1 -0
  1047. package/dist/utils/paths.d.ts +14 -0
  1048. package/dist/utils/paths.d.ts.map +1 -0
  1049. package/dist/utils/paths.js +38 -0
  1050. package/dist/utils/paths.js.map +1 -0
  1051. package/dist/utils/sleep.d.ts +2 -0
  1052. package/dist/utils/sleep.d.ts.map +1 -0
  1053. package/dist/utils/sleep.js +4 -0
  1054. package/dist/utils/sleep.js.map +1 -0
  1055. package/dist/vector-index.d.ts +39 -0
  1056. package/dist/vector-index.d.ts.map +1 -0
  1057. package/dist/vector-index.js +111 -0
  1058. package/dist/vector-index.js.map +1 -0
  1059. package/package.json +78 -0
@@ -0,0 +1,840 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { z } from "zod";
3
+ import { extractJSON } from "./llm/llm-client.js";
4
+ import { LearningTriggerSchema, LearnedPatternSchema, LearnedPatternTypeEnum, FeedbackEntrySchema, LearningPipelineConfigSchema, StructuralFeedbackSchema, StructuralFeedbackTypeEnum, CrossGoalPatternSchema, } from "./types/learning.js";
5
+ // ─── LLM Response Schemas ───
6
+ const TripletSchema = z.object({
7
+ state_context: z.string(),
8
+ action_taken: z.string(),
9
+ outcome: z.string(),
10
+ gap_delta: z.number(),
11
+ });
12
+ const TripletsResponseSchema = z.object({
13
+ triplets: z.array(TripletSchema),
14
+ });
15
+ const PatternItemSchema = z.object({
16
+ description: z.string(),
17
+ pattern_type: LearnedPatternTypeEnum,
18
+ action_group: z.string(),
19
+ applicable_domains: z.array(z.string()).default([]),
20
+ occurrence_count: z.number().int().min(0),
21
+ consistent_count: z.number().int().min(0),
22
+ total_count: z.number().int().min(1),
23
+ is_specific: z.boolean(),
24
+ });
25
+ const PatternsResponseSchema = z.object({
26
+ patterns: z.array(PatternItemSchema),
27
+ });
28
+ // ─── Prompt Builders ───
29
+ function buildExtractionPrompt(trigger, logs) {
30
+ return `Analyze the experience logs for goal "${trigger.goal_id}" and extract state→action→outcome triplets.
31
+
32
+ Trigger type: ${trigger.type}
33
+ Context: ${trigger.context}
34
+ Timestamp: ${trigger.timestamp}
35
+
36
+ Experience logs:
37
+ ${JSON.stringify(logs, null, 2)}
38
+
39
+ Extract concrete triplets describing what happened. Each triplet must include:
40
+ - state_context: the observable state when the action was taken
41
+ - action_taken: a specific, concrete action that was executed
42
+ - outcome: what actually happened as a result
43
+ - gap_delta: change in goal gap (-1.0 to 1.0, negative means gap reduced/improved)
44
+
45
+ IMPORTANT: Only include triplets where action_taken describes a specific, concrete action.
46
+ Examples of ACCEPTED actions: "reduced task scope to 3 steps", "added prerequisite check at start", "estimated effort at 1.5x"
47
+ Examples of REJECTED actions: "did something better", "made improvements", "tried harder"
48
+
49
+ Output JSON:
50
+ {
51
+ "triplets": [
52
+ {
53
+ "state_context": "<specific state description>",
54
+ "action_taken": "<concrete specific action>",
55
+ "outcome": "<measurable outcome>",
56
+ "gap_delta": <number -1.0 to 1.0>
57
+ }
58
+ ]
59
+ }
60
+
61
+ Return ONLY the JSON object, no other text.`;
62
+ }
63
+ function buildPatternizationPrompt(triplets) {
64
+ return `Analyze the following state→action→outcome triplets and identify repeating patterns.
65
+
66
+ Triplets:
67
+ ${JSON.stringify(triplets, null, 2)}
68
+
69
+ For each group of similar actions, create a pattern entry. Each pattern must have:
70
+ - description: a concrete, actionable description (must specify what to do exactly)
71
+ - pattern_type: one of "observation_accuracy", "strategy_selection", "scope_sizing", "task_generation"
72
+ - action_group: the common action theme across the grouped triplets
73
+ - applicable_domains: list of domains where this pattern applies (infer from context)
74
+ - occurrence_count: how many triplets have this action group
75
+ - consistent_count: how many of those triplets showed consistent outcome direction (all improving or all worsening)
76
+ - total_count: total number of triplets analyzed
77
+ - is_specific: true if description is concrete enough to act on directly (false for vague descriptions like "do better")
78
+
79
+ Pattern type mapping:
80
+ - "observation_accuracy": patterns about how well observations matched reality
81
+ - "strategy_selection": patterns about which strategies worked/failed in which contexts
82
+ - "scope_sizing": patterns about task scope, size, or granularity
83
+ - "task_generation": patterns about task structure, format, or prerequisites
84
+
85
+ Only include patterns where is_specific = true AND occurrence_count >= 2.
86
+
87
+ Output JSON:
88
+ {
89
+ "patterns": [
90
+ {
91
+ "description": "<concrete actionable description>",
92
+ "pattern_type": "<type>",
93
+ "action_group": "<common action theme>",
94
+ "applicable_domains": ["<domain1>"],
95
+ "occurrence_count": <int>,
96
+ "consistent_count": <int>,
97
+ "total_count": <int>,
98
+ "is_specific": <boolean>
99
+ }
100
+ ]
101
+ }
102
+
103
+ Return ONLY the JSON object, no other text.`;
104
+ }
105
+ // ─── LearningPipeline ───
106
+ /**
107
+ * LearningPipeline extracts patterns from goal execution logs and
108
+ * applies feedback to future iterations via SessionManager context injection.
109
+ *
110
+ * File layout:
111
+ * <base>/learning/<goal_id>_logs.json
112
+ * <base>/learning/<goal_id>_patterns.json
113
+ * <base>/learning/<goal_id>_feedback.json
114
+ */
115
+ export class LearningPipeline {
116
+ llmClient;
117
+ vectorIndex;
118
+ stateManager;
119
+ config;
120
+ constructor(llmClient, vectorIndex, stateManager, config) {
121
+ this.llmClient = llmClient;
122
+ this.vectorIndex = vectorIndex;
123
+ this.stateManager = stateManager;
124
+ this.config = config ?? LearningPipelineConfigSchema.parse({});
125
+ }
126
+ // ─── Trigger Handlers ───
127
+ /**
128
+ * Called when a goal dimension reaches a milestone threshold.
129
+ */
130
+ async onMilestoneReached(goalId, milestoneContext) {
131
+ const trigger = LearningTriggerSchema.parse({
132
+ type: "milestone_reached",
133
+ goal_id: goalId,
134
+ context: milestoneContext,
135
+ timestamp: new Date().toISOString(),
136
+ });
137
+ const patterns = await this.analyzeLogs(trigger);
138
+ if (patterns.length > 0) {
139
+ this.generateFeedback(patterns);
140
+ }
141
+ return patterns;
142
+ }
143
+ /**
144
+ * Called when a stall is detected for a goal.
145
+ */
146
+ async onStallDetected(goalId, stallInfo) {
147
+ const trigger = LearningTriggerSchema.parse({
148
+ type: "stall_detected",
149
+ goal_id: goalId,
150
+ context: JSON.stringify(stallInfo),
151
+ timestamp: new Date().toISOString(),
152
+ });
153
+ const patterns = await this.analyzeLogs(trigger);
154
+ if (patterns.length > 0) {
155
+ this.generateFeedback(patterns);
156
+ }
157
+ return patterns;
158
+ }
159
+ /**
160
+ * Called during periodic review of a goal.
161
+ */
162
+ async onPeriodicReview(goalId) {
163
+ const trigger = LearningTriggerSchema.parse({
164
+ type: "periodic_review",
165
+ goal_id: goalId,
166
+ context: `Periodic review at ${new Date().toISOString()}`,
167
+ timestamp: new Date().toISOString(),
168
+ });
169
+ const patterns = await this.analyzeLogs(trigger);
170
+ if (patterns.length > 0) {
171
+ this.generateFeedback(patterns);
172
+ }
173
+ return patterns;
174
+ }
175
+ /**
176
+ * Called when a goal is marked as completed.
177
+ * Also triggers cross-goal pattern sharing if enabled.
178
+ */
179
+ async onGoalCompleted(goalId) {
180
+ const trigger = LearningTriggerSchema.parse({
181
+ type: "goal_completed",
182
+ goal_id: goalId,
183
+ context: `Goal ${goalId} completed at ${new Date().toISOString()}`,
184
+ timestamp: new Date().toISOString(),
185
+ });
186
+ const patterns = await this.analyzeLogs(trigger);
187
+ if (patterns.length > 0) {
188
+ this.generateFeedback(patterns);
189
+ // Share patterns across goals if enabled
190
+ if (this.config.cross_goal_sharing_enabled) {
191
+ for (const pattern of patterns) {
192
+ try {
193
+ await this.sharePatternAcrossGoals(pattern.pattern_id);
194
+ }
195
+ catch {
196
+ // non-fatal: sharing failure should not block completion handling
197
+ }
198
+ }
199
+ }
200
+ }
201
+ return patterns;
202
+ }
203
+ // ─── Analysis Pipeline ───
204
+ /**
205
+ * Core analysis pipeline: reads logs, extracts triplets via LLM,
206
+ * detects patterns, filters by confidence, and persists results.
207
+ */
208
+ async analyzeLogs(trigger) {
209
+ // 1. Load experience logs
210
+ const logsKey = `learning/${trigger.goal_id}_logs.json`;
211
+ const rawLogs = this.stateManager.readRaw(logsKey);
212
+ if (!rawLogs) {
213
+ return [];
214
+ }
215
+ // 2. Stage 1: Extract triplets via LLM
216
+ let triplets;
217
+ try {
218
+ const extractionPrompt = buildExtractionPrompt(trigger, rawLogs);
219
+ const extractionResponse = await this.llmClient.sendMessage([{ role: "user", content: extractionPrompt }], { max_tokens: 2048 });
220
+ const extractionJson = extractJSON(extractionResponse.content);
221
+ const extractionRaw = JSON.parse(extractionJson);
222
+ const extractionParsed = TripletsResponseSchema.parse(extractionRaw);
223
+ triplets = extractionParsed.triplets;
224
+ }
225
+ catch {
226
+ // LLM failure or parse failure — return empty (non-fatal)
227
+ return [];
228
+ }
229
+ if (triplets.length === 0) {
230
+ return [];
231
+ }
232
+ // 3. Stage 2: Patternize triplets via LLM
233
+ let patternItems;
234
+ try {
235
+ const patternizationPrompt = buildPatternizationPrompt(triplets);
236
+ const patternizationResponse = await this.llmClient.sendMessage([{ role: "user", content: patternizationPrompt }], { max_tokens: 2048 });
237
+ const patternizationJson = extractJSON(patternizationResponse.content);
238
+ const patternizationRaw = JSON.parse(patternizationJson);
239
+ const patternizationParsed = PatternsResponseSchema.parse(patternizationRaw);
240
+ patternItems = patternizationParsed.patterns.filter((p) => p.is_specific);
241
+ }
242
+ catch {
243
+ // LLM failure or parse failure — return empty (non-fatal)
244
+ return [];
245
+ }
246
+ // 4. Compute confidence (TypeScript-side) and filter
247
+ const now = new Date().toISOString();
248
+ const newPatterns = [];
249
+ for (const item of patternItems) {
250
+ const occurrenceFrequency = item.occurrence_count / item.total_count;
251
+ const resultConsistency = item.occurrence_count > 0
252
+ ? item.consistent_count / item.occurrence_count
253
+ : 0;
254
+ const confidence = occurrenceFrequency * resultConsistency;
255
+ if (confidence < this.config.min_confidence_threshold) {
256
+ continue;
257
+ }
258
+ const pattern = LearnedPatternSchema.parse({
259
+ pattern_id: `pat_${randomUUID()}`,
260
+ type: item.pattern_type,
261
+ description: item.description,
262
+ confidence,
263
+ evidence_count: item.occurrence_count,
264
+ source_goal_ids: [trigger.goal_id],
265
+ applicable_domains: item.applicable_domains,
266
+ embedding_id: null,
267
+ created_at: now,
268
+ last_applied_at: null,
269
+ });
270
+ newPatterns.push(pattern);
271
+ }
272
+ if (newPatterns.length === 0) {
273
+ return [];
274
+ }
275
+ // 5. Merge with existing patterns (respecting max_patterns_per_goal)
276
+ const existing = this.getPatterns(trigger.goal_id);
277
+ const merged = [...existing, ...newPatterns];
278
+ // If over limit, remove lowest-confidence patterns
279
+ if (merged.length > this.config.max_patterns_per_goal) {
280
+ merged.sort((a, b) => b.confidence - a.confidence);
281
+ merged.splice(this.config.max_patterns_per_goal);
282
+ }
283
+ this.savePatterns(trigger.goal_id, merged);
284
+ // 6. Register embeddings in VectorIndex if available
285
+ if (this.vectorIndex !== null) {
286
+ for (const pattern of newPatterns) {
287
+ try {
288
+ const entry = await this.vectorIndex.add(pattern.pattern_id, pattern.description, {
289
+ pattern_id: pattern.pattern_id,
290
+ type: pattern.type,
291
+ goal_id: trigger.goal_id,
292
+ confidence: pattern.confidence,
293
+ });
294
+ // Update pattern with embedding_id
295
+ const updatedPatterns = this.getPatterns(trigger.goal_id).map((p) => p.pattern_id === pattern.pattern_id
296
+ ? { ...p, embedding_id: entry.id }
297
+ : p);
298
+ this.savePatterns(trigger.goal_id, updatedPatterns);
299
+ }
300
+ catch {
301
+ // non-fatal: embedding failure should not block pattern registration
302
+ }
303
+ }
304
+ }
305
+ return newPatterns;
306
+ }
307
+ /**
308
+ * Generate FeedbackEntry objects from learned patterns.
309
+ * Maps each pattern type to a target step and persists the feedback.
310
+ */
311
+ generateFeedback(patterns) {
312
+ const targetStepMap = {
313
+ observation_accuracy: "observation",
314
+ strategy_selection: "strategy",
315
+ scope_sizing: "task",
316
+ task_generation: "task",
317
+ };
318
+ const now = new Date().toISOString();
319
+ const entries = patterns.map((pattern, index) => {
320
+ const targetStep = targetStepMap[pattern.type];
321
+ return FeedbackEntrySchema.parse({
322
+ feedback_id: `fb_${Date.now()}_${index}`,
323
+ pattern_id: pattern.pattern_id,
324
+ target_step: targetStep,
325
+ adjustment: pattern.description,
326
+ applied_at: now,
327
+ effect_observed: null,
328
+ });
329
+ });
330
+ // Group by goal: patterns share source_goal_ids[0] as the owner
331
+ const byGoal = new Map();
332
+ for (let i = 0; i < patterns.length; i++) {
333
+ const pattern = patterns[i];
334
+ const entry = entries[i];
335
+ const goalId = pattern.source_goal_ids[0];
336
+ if (!goalId)
337
+ continue;
338
+ const existing = byGoal.get(goalId) ?? [];
339
+ existing.push(entry);
340
+ byGoal.set(goalId, existing);
341
+ }
342
+ for (const [goalId, newEntries] of byGoal) {
343
+ const existing = this.getFeedbackEntries(goalId);
344
+ this.saveFeedbackEntries(goalId, [...existing, ...newEntries]);
345
+ }
346
+ return entries;
347
+ }
348
+ /**
349
+ * Return adjustment strings for a given goal and target step.
350
+ * Returns at most 3 entries sorted by confidence descending.
351
+ */
352
+ applyFeedback(goalId, step) {
353
+ const allEntries = this.getFeedbackEntries(goalId);
354
+ const stepEntries = allEntries.filter((e) => e.target_step === step);
355
+ // Enrich with pattern confidence for sorting
356
+ const patterns = this.getPatterns(goalId);
357
+ const patternConfidenceMap = new Map(patterns.map((p) => [p.pattern_id, p.confidence]));
358
+ const enriched = stepEntries.map((e) => ({
359
+ entry: e,
360
+ confidence: patternConfidenceMap.get(e.pattern_id) ?? 0,
361
+ }));
362
+ // Sort by confidence descending, take top 3
363
+ enriched.sort((a, b) => b.confidence - a.confidence);
364
+ const top3 = enriched.slice(0, 3);
365
+ return top3.map((e) => e.entry.adjustment);
366
+ }
367
+ /**
368
+ * Share a pattern from its source goal to similar goals in the VectorIndex.
369
+ * Only runs if vectorIndex is available and cross_goal_sharing_enabled.
370
+ */
371
+ async sharePatternAcrossGoals(patternId) {
372
+ if (!this.vectorIndex || !this.config.cross_goal_sharing_enabled) {
373
+ return;
374
+ }
375
+ // Find the pattern across all goals
376
+ const allGoalIds = this.stateManager.listGoalIds();
377
+ let sourcePattern = null;
378
+ let sourceGoalId = null;
379
+ for (const goalId of allGoalIds) {
380
+ const patterns = this.getPatterns(goalId);
381
+ const found = patterns.find((p) => p.pattern_id === patternId);
382
+ if (found) {
383
+ sourcePattern = found;
384
+ sourceGoalId = goalId;
385
+ break;
386
+ }
387
+ }
388
+ if (!sourcePattern || !sourceGoalId) {
389
+ return;
390
+ }
391
+ // Search for similar goals using the pattern description
392
+ let similarResults;
393
+ try {
394
+ similarResults = await this.vectorIndex.search(sourcePattern.description, 10, 0.7);
395
+ }
396
+ catch {
397
+ // non-fatal
398
+ return;
399
+ }
400
+ // Filter to goal-level entries only (metadata.goal_id present but different from source)
401
+ const targetGoalIds = new Set();
402
+ for (const result of similarResults) {
403
+ const entry = this.vectorIndex.getEntry(result.id);
404
+ if (!entry)
405
+ continue;
406
+ const metaGoalId = entry.metadata?.["goal_id"];
407
+ if (metaGoalId && metaGoalId !== sourceGoalId) {
408
+ targetGoalIds.add(metaGoalId);
409
+ }
410
+ }
411
+ // Share to each target goal with confidence discount
412
+ for (const targetGoalId of targetGoalIds) {
413
+ const targetPatterns = this.getPatterns(targetGoalId);
414
+ // Duplicate check: skip if same pattern_id already in target
415
+ const alreadyShared = targetPatterns.some((p) => p.pattern_id === patternId);
416
+ if (alreadyShared)
417
+ continue;
418
+ // Apply confidence discount
419
+ const transferredConfidence = sourcePattern.confidence * 0.7;
420
+ // Skip if transferred confidence is below threshold
421
+ if (transferredConfidence < this.config.min_confidence_threshold) {
422
+ continue;
423
+ }
424
+ const sharedPattern = LearnedPatternSchema.parse({
425
+ ...sourcePattern,
426
+ pattern_id: `pat_${randomUUID()}`, // New ID for the shared copy
427
+ confidence: transferredConfidence,
428
+ source_goal_ids: [...sourcePattern.source_goal_ids, sourceGoalId],
429
+ created_at: new Date().toISOString(),
430
+ last_applied_at: null,
431
+ embedding_id: null,
432
+ });
433
+ const updatedTargetPatterns = [...targetPatterns, sharedPattern];
434
+ // Respect max_patterns_per_goal limit
435
+ if (updatedTargetPatterns.length > this.config.max_patterns_per_goal) {
436
+ updatedTargetPatterns.sort((a, b) => b.confidence - a.confidence);
437
+ updatedTargetPatterns.splice(this.config.max_patterns_per_goal);
438
+ }
439
+ this.savePatterns(targetGoalId, updatedTargetPatterns);
440
+ }
441
+ }
442
+ // ─── Persistence ───
443
+ /**
444
+ * Load learned patterns for a goal. Returns empty array if not found.
445
+ */
446
+ getPatterns(goalId) {
447
+ const raw = this.stateManager.readRaw(`learning/${goalId}_patterns.json`);
448
+ if (!raw || !Array.isArray(raw))
449
+ return [];
450
+ try {
451
+ return raw.map((item) => LearnedPatternSchema.parse(item));
452
+ }
453
+ catch {
454
+ return [];
455
+ }
456
+ }
457
+ /**
458
+ * Persist learned patterns for a goal.
459
+ */
460
+ savePatterns(goalId, patterns) {
461
+ this.stateManager.writeRaw(`learning/${goalId}_patterns.json`, patterns);
462
+ }
463
+ /**
464
+ * Load feedback entries for a goal. Returns empty array if not found.
465
+ */
466
+ getFeedbackEntries(goalId) {
467
+ const raw = this.stateManager.readRaw(`learning/${goalId}_feedback.json`);
468
+ if (!raw || !Array.isArray(raw))
469
+ return [];
470
+ try {
471
+ return raw.map((item) => FeedbackEntrySchema.parse(item));
472
+ }
473
+ catch {
474
+ return [];
475
+ }
476
+ }
477
+ /**
478
+ * Persist feedback entries for a goal.
479
+ */
480
+ saveFeedbackEntries(goalId, entries) {
481
+ this.stateManager.writeRaw(`learning/${goalId}_feedback.json`, entries);
482
+ }
483
+ // ─── Structural Feedback (Phase 2) ───
484
+ /**
485
+ * Record a structural feedback entry for a goal/iteration.
486
+ * Validates with Zod and persists via StateManager.
487
+ */
488
+ recordStructuralFeedback(feedback) {
489
+ const validated = StructuralFeedbackSchema.parse(feedback);
490
+ const existing = this.getStructuralFeedback(validated.goalId);
491
+ existing.push(validated);
492
+ this.stateManager.writeRaw(`learning/${validated.goalId}_structural_feedback.json`, existing);
493
+ }
494
+ /**
495
+ * Load structural feedback for a goal.
496
+ */
497
+ getStructuralFeedback(goalId) {
498
+ const raw = this.stateManager.readRaw(`learning/${goalId}_structural_feedback.json`);
499
+ if (!raw || !Array.isArray(raw))
500
+ return [];
501
+ try {
502
+ return raw.map((item) => StructuralFeedbackSchema.parse(item));
503
+ }
504
+ catch {
505
+ return [];
506
+ }
507
+ }
508
+ /**
509
+ * Aggregate structural feedback for a goal, optionally filtered by type.
510
+ * Calculates averageDelta, recent trend (last 10 vs previous 10), and worst area.
511
+ */
512
+ aggregateFeedback(goalId, feedbackType) {
513
+ const all = this.getStructuralFeedback(goalId);
514
+ const types = feedbackType
515
+ ? [feedbackType]
516
+ : StructuralFeedbackTypeEnum.options;
517
+ const results = [];
518
+ for (const type of types) {
519
+ const entries = all.filter((f) => f.feedbackType === type);
520
+ if (entries.length === 0)
521
+ continue;
522
+ const totalCount = entries.length;
523
+ const averageDelta = entries.reduce((sum, e) => sum + e.delta, 0) / totalCount;
524
+ // Sort by timestamp for trend calculation
525
+ const sorted = [...entries].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
526
+ // Compare last 10 vs previous 10
527
+ const recent = sorted.slice(-10);
528
+ const previous = sorted.slice(-20, -10);
529
+ let recentTrend = "stable";
530
+ if (previous.length > 0 && recent.length > 0) {
531
+ const recentAvg = recent.reduce((sum, e) => sum + e.delta, 0) / recent.length;
532
+ const prevAvg = previous.reduce((sum, e) => sum + e.delta, 0) / previous.length;
533
+ const diff = recentAvg - prevAvg;
534
+ if (diff > 0.05) {
535
+ recentTrend = "improving";
536
+ }
537
+ else if (diff < -0.05) {
538
+ recentTrend = "degrading";
539
+ }
540
+ }
541
+ // Worst area: find the context key or dimension with lowest average delta
542
+ const areaDeltas = new Map();
543
+ for (const entry of entries) {
544
+ // Use context keys as area identifiers; fall back to iterationId
545
+ const areaKeys = Object.keys(entry.context);
546
+ if (areaKeys.length > 0) {
547
+ for (const key of areaKeys) {
548
+ const existing = areaDeltas.get(key) ?? [];
549
+ existing.push(entry.delta);
550
+ areaDeltas.set(key, existing);
551
+ }
552
+ }
553
+ else {
554
+ const existing = areaDeltas.get(entry.iterationId) ?? [];
555
+ existing.push(entry.delta);
556
+ areaDeltas.set(entry.iterationId, existing);
557
+ }
558
+ }
559
+ let worstArea = "unknown";
560
+ let worstAvg = Infinity;
561
+ for (const [area, deltas] of areaDeltas) {
562
+ const avg = deltas.reduce((s, d) => s + d, 0) / deltas.length;
563
+ if (avg < worstAvg) {
564
+ worstAvg = avg;
565
+ worstArea = area;
566
+ }
567
+ }
568
+ results.push({
569
+ feedbackType: type,
570
+ totalCount,
571
+ averageDelta,
572
+ recentTrend,
573
+ worstArea,
574
+ });
575
+ }
576
+ return results;
577
+ }
578
+ /**
579
+ * Analyze feedback history and suggest parameter adjustments.
580
+ * Only suggests when basedOnFeedbackCount >= 5 and confidence >= 0.6.
581
+ */
582
+ autoTuneParameters(goalId) {
583
+ const all = this.getStructuralFeedback(goalId);
584
+ const suggestions = [];
585
+ const typeGroups = new Map();
586
+ for (const entry of all) {
587
+ const existing = typeGroups.get(entry.feedbackType) ?? [];
588
+ existing.push(entry);
589
+ typeGroups.set(entry.feedbackType, existing);
590
+ }
591
+ for (const [type, entries] of typeGroups) {
592
+ if (entries.length < 5)
593
+ continue;
594
+ const avgDelta = entries.reduce((sum, e) => sum + e.delta, 0) / entries.length;
595
+ // Confidence based on consistency: proportion with same sign as average
596
+ const sameSign = entries.filter((e) => avgDelta >= 0 ? e.delta >= 0 : e.delta < 0).length;
597
+ const confidence = sameSign / entries.length;
598
+ if (confidence < 0.6)
599
+ continue;
600
+ switch (type) {
601
+ case "observation_accuracy": {
602
+ // Suggest confidence threshold adjustment
603
+ // Negative avgDelta = observations were overconfident → raise threshold
604
+ // Positive avgDelta = observations were too conservative → lower threshold
605
+ const currentValue = this.config.min_confidence_threshold;
606
+ const adjustment = avgDelta < 0 ? 0.05 : -0.05;
607
+ const suggestedValue = Math.min(1, Math.max(0, currentValue + adjustment));
608
+ suggestions.push({
609
+ parameterId: `param_confidence_threshold_${goalId}`,
610
+ parameterName: "min_confidence_threshold",
611
+ currentValue,
612
+ suggestedValue,
613
+ confidence,
614
+ basedOnFeedbackCount: entries.length,
615
+ feedbackType: type,
616
+ });
617
+ break;
618
+ }
619
+ case "strategy_selection": {
620
+ // Suggest strategy weight change
621
+ // Negative avgDelta = strategies underperformed → increase exploration weight
622
+ // Positive avgDelta = strategies performed well → increase exploitation weight
623
+ const currentValue = 0.5; // default strategy weight
624
+ const suggestedValue = avgDelta < 0 ? 0.3 : 0.7;
625
+ suggestions.push({
626
+ parameterId: `param_strategy_weight_${goalId}`,
627
+ parameterName: "strategy_exploitation_weight",
628
+ currentValue,
629
+ suggestedValue,
630
+ confidence,
631
+ basedOnFeedbackCount: entries.length,
632
+ feedbackType: type,
633
+ });
634
+ break;
635
+ }
636
+ case "scope_sizing": {
637
+ // Suggest task granularity change
638
+ // Negative avgDelta = tasks were too large → reduce granularity
639
+ // Positive avgDelta = tasks were appropriately sized → maintain or increase
640
+ const currentValue = 1.0; // default granularity multiplier
641
+ const suggestedValue = avgDelta < 0 ? 0.7 : 1.2;
642
+ suggestions.push({
643
+ parameterId: `param_task_granularity_${goalId}`,
644
+ parameterName: "task_granularity_multiplier",
645
+ currentValue,
646
+ suggestedValue,
647
+ confidence,
648
+ basedOnFeedbackCount: entries.length,
649
+ feedbackType: type,
650
+ });
651
+ break;
652
+ }
653
+ case "task_generation": {
654
+ // Suggest prompt/template change weight
655
+ // Negative avgDelta = templates were ineffective → suggest template refresh
656
+ // Positive avgDelta = templates were effective → reinforce current template
657
+ const currentValue = 0.5; // default template reuse weight
658
+ const suggestedValue = avgDelta < 0 ? 0.2 : 0.8;
659
+ suggestions.push({
660
+ parameterId: `param_template_reuse_${goalId}`,
661
+ parameterName: "task_template_reuse_weight",
662
+ currentValue,
663
+ suggestedValue,
664
+ confidence,
665
+ basedOnFeedbackCount: entries.length,
666
+ feedbackType: type,
667
+ });
668
+ break;
669
+ }
670
+ }
671
+ }
672
+ return suggestions;
673
+ }
674
+ // ─── Cross-Goal Pattern Extraction ───
675
+ /**
676
+ * Extract cross-goal patterns by analyzing structural feedback across multiple goals.
677
+ * A pattern is identified when the same feedbackType appears with similar delta values
678
+ * (within ±0.2) across 2 or more goals.
679
+ */
680
+ extractCrossGoalPatterns(goalIds) {
681
+ if (goalIds.length < 2) {
682
+ return [];
683
+ }
684
+ // Collect all structural feedback grouped by feedbackType
685
+ const byType = new Map();
686
+ for (const goalId of goalIds) {
687
+ const feedbacks = this.getStructuralFeedback(goalId);
688
+ for (const fb of feedbacks) {
689
+ const existing = byType.get(fb.feedbackType) ?? [];
690
+ existing.push({ goalId, feedback: fb });
691
+ byType.set(fb.feedbackType, existing);
692
+ }
693
+ }
694
+ const patterns = [];
695
+ const now = new Date().toISOString();
696
+ for (const [feedbackType, entries] of byType) {
697
+ if (entries.length < 2)
698
+ continue;
699
+ // Group entries by similar delta values (within ±0.2)
700
+ const clustered = [];
701
+ for (const entry of entries) {
702
+ const delta = entry.feedback.delta;
703
+ let placed = false;
704
+ for (const cluster of clustered) {
705
+ if (Math.abs(cluster.representative - delta) <= 0.2) {
706
+ cluster.members.push(entry);
707
+ // Update representative as mean
708
+ cluster.representative =
709
+ cluster.members.reduce((sum, m) => sum + m.feedback.delta, 0) / cluster.members.length;
710
+ placed = true;
711
+ break;
712
+ }
713
+ }
714
+ if (!placed) {
715
+ clustered.push({ representative: delta, members: [entry] });
716
+ }
717
+ }
718
+ // Only keep clusters where 2+ distinct goals are represented
719
+ for (const cluster of clustered) {
720
+ const goalSet = new Set(cluster.members.map((m) => m.goalId));
721
+ if (goalSet.size < 2)
722
+ continue;
723
+ const avgDelta = cluster.representative;
724
+ const patternType = avgDelta < -0.05
725
+ ? "success"
726
+ : avgDelta > 0.05
727
+ ? "failure"
728
+ : "optimization";
729
+ const sourceGoalIds = Array.from(goalSet);
730
+ const occurrenceCount = cluster.members.length;
731
+ const confidence = goalSet.size / goalIds.length;
732
+ // Build suggested action from feedbackType
733
+ const suggestedAction = this._buildSuggestedAction(feedbackType, avgDelta);
734
+ // Build applicable conditions from context keys
735
+ const conditionSet = new Set();
736
+ for (const m of cluster.members) {
737
+ for (const key of Object.keys(m.feedback.context)) {
738
+ conditionSet.add(key);
739
+ }
740
+ }
741
+ const applicableConditions = Array.from(conditionSet);
742
+ const description = `${feedbackType} pattern: avg delta=${avgDelta.toFixed(2)} observed across ${sourceGoalIds.length} goals`;
743
+ const pattern = CrossGoalPatternSchema.parse({
744
+ id: `cgp_${randomUUID()}`,
745
+ patternType,
746
+ description,
747
+ sourceGoalIds,
748
+ feedbackType,
749
+ confidence,
750
+ applicableConditions,
751
+ suggestedAction,
752
+ occurrenceCount,
753
+ lastObserved: now,
754
+ });
755
+ patterns.push(pattern);
756
+ }
757
+ }
758
+ return patterns;
759
+ }
760
+ /**
761
+ * Apply cross-goal patterns to target goals as feedback insights.
762
+ * For each target goal, patterns whose applicableConditions match the goal's
763
+ * feedback context keys are applied.
764
+ */
765
+ sharePatternsAcrossGoals(patterns, targetGoalIds) {
766
+ let patternsShared = 0;
767
+ const newPatterns = [];
768
+ const affectedGoals = new Set();
769
+ for (const targetGoalId of targetGoalIds) {
770
+ // Gather context keys from existing structural feedback
771
+ const existingFeedback = this.getStructuralFeedback(targetGoalId);
772
+ const existingContextKeys = new Set();
773
+ for (const fb of existingFeedback) {
774
+ for (const key of Object.keys(fb.context)) {
775
+ existingContextKeys.add(key);
776
+ }
777
+ }
778
+ for (const pattern of patterns) {
779
+ // Skip if target goal is already a source
780
+ if (pattern.sourceGoalIds.includes(targetGoalId)) {
781
+ continue;
782
+ }
783
+ // Check if applicableConditions match: either no conditions (universal)
784
+ // or at least one condition key exists in the target's context
785
+ const conditionsMatch = pattern.applicableConditions.length === 0 ||
786
+ pattern.applicableConditions.some((c) => existingContextKeys.has(c));
787
+ if (!conditionsMatch) {
788
+ continue;
789
+ }
790
+ // Generate a synthetic StructuralFeedback entry to represent this shared pattern
791
+ const syntheticFeedback = StructuralFeedbackSchema.parse({
792
+ id: `sf_shared_${randomUUID()}`,
793
+ goalId: targetGoalId,
794
+ iterationId: `shared_from_cross_goal_pattern_${pattern.id}`,
795
+ feedbackType: pattern.feedbackType,
796
+ expected: pattern.suggestedAction,
797
+ actual: pattern.description,
798
+ delta: pattern.patternType === "success" ? -0.1 : pattern.patternType === "failure" ? 0.1 : 0,
799
+ timestamp: new Date().toISOString(),
800
+ context: {
801
+ cross_goal_pattern_id: pattern.id,
802
+ source_goal_count: pattern.sourceGoalIds.length,
803
+ },
804
+ });
805
+ this.recordStructuralFeedback(syntheticFeedback);
806
+ patternsShared++;
807
+ affectedGoals.add(targetGoalId);
808
+ newPatterns.push(pattern);
809
+ }
810
+ }
811
+ return {
812
+ patternsExtracted: patterns.length,
813
+ patternsShared,
814
+ targetGoalIds: Array.from(affectedGoals),
815
+ newPatterns,
816
+ };
817
+ }
818
+ // ─── Private helpers ───
819
+ _buildSuggestedAction(feedbackType, avgDelta) {
820
+ switch (feedbackType) {
821
+ case "observation_accuracy":
822
+ return avgDelta < 0
823
+ ? "Improve observation accuracy by cross-checking with data sources"
824
+ : "Maintain current observation approach";
825
+ case "strategy_selection":
826
+ return avgDelta < 0
827
+ ? "Switch to incremental strategy to reduce risk"
828
+ : "Continue current strategy selection";
829
+ case "scope_sizing":
830
+ return avgDelta < 0
831
+ ? "Reduce task scope to smaller units"
832
+ : "Increase task scope for efficiency";
833
+ case "task_generation":
834
+ return avgDelta < 0
835
+ ? "Refine task generation templates"
836
+ : "Reinforce current task generation approach";
837
+ }
838
+ }
839
+ }
840
+ //# sourceMappingURL=learning-pipeline.js.map