cognitive-core 0.2.0 → 0.2.2

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 (397) hide show
  1. package/.claude/settings.json +111 -2
  2. package/.sessionlog/settings.json +4 -0
  3. package/dist/atlas.d.ts +10 -0
  4. package/dist/atlas.d.ts.map +1 -1
  5. package/dist/atlas.js +65 -0
  6. package/dist/atlas.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +5 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/learning/index.d.ts +1 -1
  12. package/dist/learning/index.d.ts.map +1 -1
  13. package/dist/learning/index.js.map +1 -1
  14. package/dist/learning/pipeline.d.ts +4 -31
  15. package/dist/learning/pipeline.d.ts.map +1 -1
  16. package/dist/learning/pipeline.js +12 -64
  17. package/dist/learning/pipeline.js.map +1 -1
  18. package/dist/learning/unified-pipeline.d.ts +30 -0
  19. package/dist/learning/unified-pipeline.d.ts.map +1 -1
  20. package/dist/learning/unified-pipeline.js +207 -0
  21. package/dist/learning/unified-pipeline.js.map +1 -1
  22. package/dist/memory/candidate-retrieval.d.ts.map +1 -1
  23. package/dist/memory/candidate-retrieval.js +3 -1
  24. package/dist/memory/candidate-retrieval.js.map +1 -1
  25. package/dist/memory/curated-loader.d.ts +21 -4
  26. package/dist/memory/curated-loader.d.ts.map +1 -1
  27. package/dist/memory/curated-loader.js +53 -16
  28. package/dist/memory/curated-loader.js.map +1 -1
  29. package/dist/memory/index.d.ts +2 -1
  30. package/dist/memory/index.d.ts.map +1 -1
  31. package/dist/memory/index.js +3 -1
  32. package/dist/memory/index.js.map +1 -1
  33. package/dist/memory/playbook.d.ts +6 -0
  34. package/dist/memory/playbook.d.ts.map +1 -1
  35. package/dist/memory/playbook.js +15 -0
  36. package/dist/memory/playbook.js.map +1 -1
  37. package/dist/memory/source-resolver.d.ts +120 -0
  38. package/dist/memory/source-resolver.d.ts.map +1 -0
  39. package/dist/memory/source-resolver.js +300 -0
  40. package/dist/memory/source-resolver.js.map +1 -0
  41. package/dist/types/config.d.ts +141 -0
  42. package/dist/types/config.d.ts.map +1 -1
  43. package/dist/types/config.js +40 -0
  44. package/dist/types/config.js.map +1 -1
  45. package/dist/types/index.d.ts +1 -1
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/index.js +1 -1
  48. package/dist/types/index.js.map +1 -1
  49. package/dist/utils/error-classifier.js +8 -8
  50. package/dist/utils/error-classifier.js.map +1 -1
  51. package/dist/workspace/efficacy-toolkit.d.ts +164 -0
  52. package/dist/workspace/efficacy-toolkit.d.ts.map +1 -0
  53. package/dist/workspace/efficacy-toolkit.js +281 -0
  54. package/dist/workspace/efficacy-toolkit.js.map +1 -0
  55. package/dist/workspace/index.d.ts +2 -1
  56. package/dist/workspace/index.d.ts.map +1 -1
  57. package/dist/workspace/index.js +3 -1
  58. package/dist/workspace/index.js.map +1 -1
  59. package/dist/workspace/templates/index.d.ts +3 -0
  60. package/dist/workspace/templates/index.d.ts.map +1 -1
  61. package/dist/workspace/templates/index.js +6 -0
  62. package/dist/workspace/templates/index.js.map +1 -1
  63. package/dist/workspace/templates/playbook-decay-detection.d.ts +46 -0
  64. package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -0
  65. package/dist/workspace/templates/playbook-decay-detection.js +197 -0
  66. package/dist/workspace/templates/playbook-decay-detection.js.map +1 -0
  67. package/dist/workspace/templates/playbook-efficacy-audit.d.ts +46 -0
  68. package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -0
  69. package/dist/workspace/templates/playbook-efficacy-audit.js +160 -0
  70. package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -0
  71. package/dist/workspace/templates/playbook-lifecycle-review.d.ts +51 -0
  72. package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -0
  73. package/dist/workspace/templates/playbook-lifecycle-review.js +187 -0
  74. package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -0
  75. package/dist/workspace/types.d.ts +12 -54
  76. package/dist/workspace/types.d.ts.map +1 -1
  77. package/dist/workspace/types.js.map +1 -1
  78. package/package.json +8 -2
  79. package/playbooks/compound-engineering/adversarial-review.json +51 -0
  80. package/playbooks/compound-engineering/agent-native-architecture.json +59 -0
  81. package/playbooks/compound-engineering/agent-native-review.json +54 -0
  82. package/playbooks/compound-engineering/api-contract-review.json +52 -0
  83. package/playbooks/compound-engineering/brainstorm-requirements.json +55 -0
  84. package/playbooks/compound-engineering/bug-reproduction.json +62 -0
  85. package/playbooks/compound-engineering/confidence-calibration.json +49 -0
  86. package/playbooks/compound-engineering/correctness-review.json +49 -0
  87. package/playbooks/compound-engineering/data-migration-safety.json +59 -0
  88. package/playbooks/compound-engineering/deployment-verification.json +63 -0
  89. package/playbooks/compound-engineering/error-recovery-patterns.json +53 -0
  90. package/playbooks/compound-engineering/implementation-planning.json +64 -0
  91. package/playbooks/compound-engineering/issue-pattern-analysis.json +53 -0
  92. package/playbooks/compound-engineering/knowledge-compounding.json +63 -0
  93. package/playbooks/compound-engineering/learnings-research.json +54 -0
  94. package/playbooks/compound-engineering/maintainability-review.json +49 -0
  95. package/playbooks/compound-engineering/performance-review.json +54 -0
  96. package/playbooks/compound-engineering/plan-adversarial-review.json +56 -0
  97. package/playbooks/compound-engineering/plan-feasibility-review.json +56 -0
  98. package/playbooks/compound-engineering/project-standards-review.json +52 -0
  99. package/playbooks/compound-engineering/reliability-review.json +53 -0
  100. package/playbooks/compound-engineering/review-orchestration.json +64 -0
  101. package/playbooks/compound-engineering/security-review.json +54 -0
  102. package/playbooks/compound-engineering/systematic-execution.json +64 -0
  103. package/playbooks/compound-engineering/testing-review.json +50 -0
  104. package/src/atlas.ts +96 -0
  105. package/src/index.ts +27 -0
  106. package/src/learning/index.ts +1 -0
  107. package/src/learning/unified-pipeline.ts +271 -1
  108. package/src/memory/candidate-retrieval.ts +2 -1
  109. package/src/memory/curated-loader.ts +69 -16
  110. package/src/memory/index.ts +16 -0
  111. package/src/memory/playbook.ts +19 -0
  112. package/src/memory/source-resolver.ts +422 -0
  113. package/src/types/config.ts +46 -0
  114. package/src/types/index.ts +4 -0
  115. package/src/utils/error-classifier.ts +8 -8
  116. package/src/workspace/efficacy-toolkit.ts +496 -0
  117. package/src/workspace/index.ts +29 -0
  118. package/src/workspace/templates/index.ts +24 -0
  119. package/src/workspace/templates/playbook-decay-detection.ts +272 -0
  120. package/src/workspace/templates/playbook-efficacy-audit.ts +246 -0
  121. package/src/workspace/templates/playbook-lifecycle-review.ts +274 -0
  122. package/src/workspace/types.ts +22 -78
  123. package/tests/fixtures/behavioral-trajectories.ts +210 -0
  124. package/tests/integration/curated-sources-e2e.test.ts +502 -0
  125. package/tests/integration/pipeline-data-correctness.test.ts +794 -0
  126. package/tests/learning/meta-learner.test.ts +418 -0
  127. package/tests/learning/pipeline-memory-updates.test.ts +721 -0
  128. package/tests/learning/unified-pipeline-efficacy.test.ts +232 -0
  129. package/tests/memory/candidate-retrieval.test.ts +167 -0
  130. package/tests/memory/compound-engineering-seed.test.ts +338 -0
  131. package/tests/memory/curated-loader-extended.test.ts +225 -0
  132. package/tests/memory/meta.test.ts +399 -0
  133. package/tests/memory/playbook-quality-validation.test.ts +430 -0
  134. package/tests/memory/source-resolver.test.ts +700 -0
  135. package/tests/search/evaluator.test.ts +257 -0
  136. package/tests/search/verification-runner.test.ts +357 -0
  137. package/tests/utils/error-classifier.test.ts +149 -0
  138. package/tests/utils/trajectory-helpers.test.ts +163 -0
  139. package/tests/workspace/efficacy-toolkit.test.ts +404 -0
  140. package/tests/workspace/templates/playbook-efficacy.test.ts +377 -0
  141. package/.claude/settings.local.json +0 -11
  142. package/dist/learning/llm-extractor.d.ts +0 -88
  143. package/dist/learning/llm-extractor.d.ts.map +0 -1
  144. package/dist/learning/llm-extractor.js +0 -372
  145. package/dist/learning/llm-extractor.js.map +0 -1
  146. package/dist/learning/loop-coordinator.d.ts +0 -61
  147. package/dist/learning/loop-coordinator.d.ts.map +0 -1
  148. package/dist/learning/loop-coordinator.js +0 -96
  149. package/dist/learning/loop-coordinator.js.map +0 -1
  150. package/references/agent-workspace/CLAUDE.md +0 -74
  151. package/references/agent-workspace/README.md +0 -587
  152. package/references/agent-workspace/media/banner.png +0 -0
  153. package/references/agent-workspace/package-lock.json +0 -2061
  154. package/references/agent-workspace/package.json +0 -54
  155. package/references/agent-workspace/src/handle.ts +0 -122
  156. package/references/agent-workspace/src/index.ts +0 -32
  157. package/references/agent-workspace/src/manager.ts +0 -102
  158. package/references/agent-workspace/src/readers/json.ts +0 -71
  159. package/references/agent-workspace/src/readers/markdown.ts +0 -37
  160. package/references/agent-workspace/src/readers/raw.ts +0 -27
  161. package/references/agent-workspace/src/types.ts +0 -68
  162. package/references/agent-workspace/src/validation.ts +0 -93
  163. package/references/agent-workspace/src/writers/json.ts +0 -17
  164. package/references/agent-workspace/src/writers/markdown.ts +0 -27
  165. package/references/agent-workspace/src/writers/raw.ts +0 -22
  166. package/references/agent-workspace/tests/errors.test.ts +0 -652
  167. package/references/agent-workspace/tests/handle.test.ts +0 -144
  168. package/references/agent-workspace/tests/manager.test.ts +0 -124
  169. package/references/agent-workspace/tests/readers.test.ts +0 -205
  170. package/references/agent-workspace/tests/validation.test.ts +0 -196
  171. package/references/agent-workspace/tests/writers.test.ts +0 -108
  172. package/references/agent-workspace/tsconfig.json +0 -20
  173. package/references/agent-workspace/tsup.config.ts +0 -9
  174. package/references/minimem/.claude/settings.json +0 -7
  175. package/references/minimem/.sudocode/issues.jsonl +0 -18
  176. package/references/minimem/.sudocode/specs.jsonl +0 -1
  177. package/references/minimem/CLAUDE.md +0 -310
  178. package/references/minimem/README.md +0 -556
  179. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
  180. package/references/minimem/claude-plugin/.mcp.json +0 -7
  181. package/references/minimem/claude-plugin/README.md +0 -158
  182. package/references/minimem/claude-plugin/commands/recall.md +0 -47
  183. package/references/minimem/claude-plugin/commands/remember.md +0 -41
  184. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
  185. package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
  186. package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
  187. package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
  188. package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
  189. package/references/minimem/package-lock.json +0 -5373
  190. package/references/minimem/package.json +0 -60
  191. package/references/minimem/scripts/postbuild.js +0 -35
  192. package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
  193. package/references/minimem/src/__tests__/errors.test.ts +0 -265
  194. package/references/minimem/src/__tests__/helpers.ts +0 -199
  195. package/references/minimem/src/__tests__/internal.test.ts +0 -407
  196. package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
  197. package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
  198. package/references/minimem/src/__tests__/session.test.ts +0 -190
  199. package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
  200. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
  201. package/references/minimem/src/cli/commands/append.ts +0 -76
  202. package/references/minimem/src/cli/commands/config.ts +0 -262
  203. package/references/minimem/src/cli/commands/conflicts.ts +0 -413
  204. package/references/minimem/src/cli/commands/daemon.ts +0 -169
  205. package/references/minimem/src/cli/commands/index.ts +0 -12
  206. package/references/minimem/src/cli/commands/init.ts +0 -88
  207. package/references/minimem/src/cli/commands/mcp.ts +0 -177
  208. package/references/minimem/src/cli/commands/push-pull.ts +0 -213
  209. package/references/minimem/src/cli/commands/search.ts +0 -158
  210. package/references/minimem/src/cli/commands/status.ts +0 -84
  211. package/references/minimem/src/cli/commands/sync-init.ts +0 -290
  212. package/references/minimem/src/cli/commands/sync.ts +0 -70
  213. package/references/minimem/src/cli/commands/upsert.ts +0 -197
  214. package/references/minimem/src/cli/config.ts +0 -584
  215. package/references/minimem/src/cli/index.ts +0 -264
  216. package/references/minimem/src/cli/shared.ts +0 -161
  217. package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
  218. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
  219. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
  220. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
  221. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
  222. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
  223. package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
  224. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
  225. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
  226. package/references/minimem/src/cli/sync/central.ts +0 -292
  227. package/references/minimem/src/cli/sync/conflicts.ts +0 -204
  228. package/references/minimem/src/cli/sync/daemon.ts +0 -407
  229. package/references/minimem/src/cli/sync/detection.ts +0 -138
  230. package/references/minimem/src/cli/sync/index.ts +0 -107
  231. package/references/minimem/src/cli/sync/operations.ts +0 -373
  232. package/references/minimem/src/cli/sync/registry.ts +0 -279
  233. package/references/minimem/src/cli/sync/state.ts +0 -355
  234. package/references/minimem/src/cli/sync/validation.ts +0 -206
  235. package/references/minimem/src/cli/sync/watcher.ts +0 -234
  236. package/references/minimem/src/cli/version.ts +0 -34
  237. package/references/minimem/src/core/index.ts +0 -9
  238. package/references/minimem/src/core/indexer.ts +0 -628
  239. package/references/minimem/src/core/searcher.ts +0 -221
  240. package/references/minimem/src/db/schema.ts +0 -183
  241. package/references/minimem/src/db/sqlite-vec.ts +0 -24
  242. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
  243. package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
  244. package/references/minimem/src/embeddings/batch-openai.ts +0 -409
  245. package/references/minimem/src/embeddings/embeddings.ts +0 -434
  246. package/references/minimem/src/index.ts +0 -109
  247. package/references/minimem/src/internal.ts +0 -299
  248. package/references/minimem/src/minimem.ts +0 -1276
  249. package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
  250. package/references/minimem/src/search/graph.ts +0 -234
  251. package/references/minimem/src/search/hybrid.ts +0 -151
  252. package/references/minimem/src/search/search.ts +0 -256
  253. package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
  254. package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
  255. package/references/minimem/src/server/mcp.ts +0 -326
  256. package/references/minimem/src/server/tools.ts +0 -720
  257. package/references/minimem/src/session.ts +0 -460
  258. package/references/minimem/tsconfig.json +0 -19
  259. package/references/minimem/tsup.config.ts +0 -26
  260. package/references/minimem/vitest.config.ts +0 -24
  261. package/references/sessionlog/.husky/pre-commit +0 -1
  262. package/references/sessionlog/.lintstagedrc.json +0 -4
  263. package/references/sessionlog/.prettierignore +0 -4
  264. package/references/sessionlog/.prettierrc.json +0 -11
  265. package/references/sessionlog/LICENSE +0 -21
  266. package/references/sessionlog/README.md +0 -453
  267. package/references/sessionlog/eslint.config.js +0 -58
  268. package/references/sessionlog/package-lock.json +0 -3672
  269. package/references/sessionlog/package.json +0 -65
  270. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +0 -570
  271. package/references/sessionlog/src/__tests__/agent-registry.test.ts +0 -127
  272. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +0 -225
  273. package/references/sessionlog/src/__tests__/claude-generator.test.ts +0 -46
  274. package/references/sessionlog/src/__tests__/commit-msg.test.ts +0 -86
  275. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +0 -224
  276. package/references/sessionlog/src/__tests__/e2e-live.test.ts +0 -890
  277. package/references/sessionlog/src/__tests__/event-log.test.ts +0 -183
  278. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +0 -105
  279. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +0 -375
  280. package/references/sessionlog/src/__tests__/git-hooks.test.ts +0 -78
  281. package/references/sessionlog/src/__tests__/hook-managers.test.ts +0 -121
  282. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +0 -759
  283. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +0 -338
  284. package/references/sessionlog/src/__tests__/redaction.test.ts +0 -136
  285. package/references/sessionlog/src/__tests__/session-repo.test.ts +0 -353
  286. package/references/sessionlog/src/__tests__/session-store.test.ts +0 -166
  287. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +0 -466
  288. package/references/sessionlog/src/__tests__/skill-live.test.ts +0 -461
  289. package/references/sessionlog/src/__tests__/summarize.test.ts +0 -348
  290. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +0 -610
  291. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +0 -632
  292. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +0 -121
  293. package/references/sessionlog/src/__tests__/types.test.ts +0 -166
  294. package/references/sessionlog/src/__tests__/utils.test.ts +0 -333
  295. package/references/sessionlog/src/__tests__/validation.test.ts +0 -103
  296. package/references/sessionlog/src/__tests__/worktree.test.ts +0 -57
  297. package/references/sessionlog/src/agent/agents/claude-code.ts +0 -1089
  298. package/references/sessionlog/src/agent/agents/cursor.ts +0 -361
  299. package/references/sessionlog/src/agent/agents/gemini-cli.ts +0 -632
  300. package/references/sessionlog/src/agent/agents/opencode.ts +0 -540
  301. package/references/sessionlog/src/agent/registry.ts +0 -143
  302. package/references/sessionlog/src/agent/session-types.ts +0 -113
  303. package/references/sessionlog/src/agent/types.ts +0 -220
  304. package/references/sessionlog/src/cli.ts +0 -597
  305. package/references/sessionlog/src/commands/clean.ts +0 -133
  306. package/references/sessionlog/src/commands/disable.ts +0 -84
  307. package/references/sessionlog/src/commands/doctor.ts +0 -145
  308. package/references/sessionlog/src/commands/enable.ts +0 -202
  309. package/references/sessionlog/src/commands/explain.ts +0 -261
  310. package/references/sessionlog/src/commands/reset.ts +0 -105
  311. package/references/sessionlog/src/commands/resume.ts +0 -180
  312. package/references/sessionlog/src/commands/rewind.ts +0 -195
  313. package/references/sessionlog/src/commands/setup-ccweb.ts +0 -275
  314. package/references/sessionlog/src/commands/status.ts +0 -172
  315. package/references/sessionlog/src/config.ts +0 -165
  316. package/references/sessionlog/src/events/event-log.ts +0 -126
  317. package/references/sessionlog/src/git-operations.ts +0 -558
  318. package/references/sessionlog/src/hooks/git-hooks.ts +0 -165
  319. package/references/sessionlog/src/hooks/lifecycle.ts +0 -391
  320. package/references/sessionlog/src/index.ts +0 -650
  321. package/references/sessionlog/src/security/redaction.ts +0 -283
  322. package/references/sessionlog/src/session/state-machine.ts +0 -452
  323. package/references/sessionlog/src/store/checkpoint-store.ts +0 -509
  324. package/references/sessionlog/src/store/native-store.ts +0 -173
  325. package/references/sessionlog/src/store/provider-types.ts +0 -99
  326. package/references/sessionlog/src/store/session-store.ts +0 -266
  327. package/references/sessionlog/src/strategy/attribution.ts +0 -296
  328. package/references/sessionlog/src/strategy/common.ts +0 -207
  329. package/references/sessionlog/src/strategy/content-overlap.ts +0 -228
  330. package/references/sessionlog/src/strategy/manual-commit.ts +0 -988
  331. package/references/sessionlog/src/strategy/types.ts +0 -279
  332. package/references/sessionlog/src/summarize/claude-generator.ts +0 -115
  333. package/references/sessionlog/src/summarize/summarize.ts +0 -432
  334. package/references/sessionlog/src/types.ts +0 -508
  335. package/references/sessionlog/src/utils/chunk-files.ts +0 -49
  336. package/references/sessionlog/src/utils/commit-message.ts +0 -65
  337. package/references/sessionlog/src/utils/detect-agent.ts +0 -36
  338. package/references/sessionlog/src/utils/hook-managers.ts +0 -125
  339. package/references/sessionlog/src/utils/ide-tags.ts +0 -32
  340. package/references/sessionlog/src/utils/paths.ts +0 -79
  341. package/references/sessionlog/src/utils/preview-rewind.ts +0 -80
  342. package/references/sessionlog/src/utils/rewind-conflict.ts +0 -121
  343. package/references/sessionlog/src/utils/shadow-branch.ts +0 -109
  344. package/references/sessionlog/src/utils/string-utils.ts +0 -46
  345. package/references/sessionlog/src/utils/todo-extract.ts +0 -188
  346. package/references/sessionlog/src/utils/trailers.ts +0 -187
  347. package/references/sessionlog/src/utils/transcript-parse.ts +0 -177
  348. package/references/sessionlog/src/utils/transcript-timestamp.ts +0 -59
  349. package/references/sessionlog/src/utils/tree-ops.ts +0 -219
  350. package/references/sessionlog/src/utils/tty.ts +0 -72
  351. package/references/sessionlog/src/utils/validation.ts +0 -65
  352. package/references/sessionlog/src/utils/worktree.ts +0 -58
  353. package/references/sessionlog/src/wire-types.ts +0 -59
  354. package/references/sessionlog/templates/setup-env.sh +0 -153
  355. package/references/sessionlog/tsconfig.json +0 -18
  356. package/references/sessionlog/vitest.config.ts +0 -12
  357. package/references/skill-tree/.claude/settings.json +0 -6
  358. package/references/skill-tree/.sudocode/issues.jsonl +0 -19
  359. package/references/skill-tree/.sudocode/specs.jsonl +0 -3
  360. package/references/skill-tree/CLAUDE.md +0 -126
  361. package/references/skill-tree/README.md +0 -372
  362. package/references/skill-tree/docs/GAPS_v1.md +0 -221
  363. package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
  364. package/references/skill-tree/docs/TODOS.md +0 -91
  365. package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
  366. package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
  367. package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
  368. package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
  369. package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
  370. package/references/skill-tree/docs/scraper/README.md +0 -170
  371. package/references/skill-tree/examples/basic-usage.ts +0 -164
  372. package/references/skill-tree/package-lock.json +0 -1852
  373. package/references/skill-tree/package.json +0 -66
  374. package/references/skill-tree/scraper/README.md +0 -123
  375. package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
  376. package/references/skill-tree/scraper/docs/PLAN.md +0 -336
  377. package/references/skill-tree/scraper/drizzle.config.ts +0 -10
  378. package/references/skill-tree/scraper/package-lock.json +0 -6329
  379. package/references/skill-tree/scraper/package.json +0 -68
  380. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
  381. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
  382. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
  383. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
  384. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
  385. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
  386. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
  387. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
  388. package/references/skill-tree/scraper/tsup.config.ts +0 -14
  389. package/references/skill-tree/scraper/vitest.config.ts +0 -17
  390. package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
  391. package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
  392. package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
  393. package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
  394. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
  395. package/references/skill-tree/test/run-all.ts +0 -106
  396. package/references/skill-tree/test/utils.ts +0 -128
  397. package/references/skill-tree/vitest.config.ts +0 -16
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Playbook Lifecycle Review Template
3
+ *
4
+ * Portfolio-wide health assessment with lifecycle recommendations.
5
+ * Uses the efficacy toolkit's portfolio snapshot to give the agent
6
+ * a pre-computed view of the entire playbook portfolio, then asks
7
+ * for promotion, deprecation, merge, and evolution recommendations.
8
+ *
9
+ * This is the "skill designer" review step (inspired by MemSkill)
10
+ * that periodically evaluates the whole portfolio.
11
+ */
12
+
13
+ import type { WorkspaceHandle } from 'agent-workspace';
14
+ import type { Playbook } from '../../types/index.js';
15
+ import type { TaskAnnotation, PlaybookEffectivenessEntry } from '../../learning/effectiveness.js';
16
+ import type {
17
+ AgenticTaskTemplate,
18
+ AnalysisComplexity,
19
+ } from '../types.js';
20
+ import {
21
+ buildPortfolioSnapshot,
22
+ type PortfolioSnapshot,
23
+ } from '../efficacy-toolkit.js';
24
+
25
+ // ============================================================
26
+ // Input / Output Types
27
+ // ============================================================
28
+
29
+ export interface PlaybookLifecycleReviewInput {
30
+ playbooks: Playbook[];
31
+ annotations: TaskAnnotation[];
32
+ playbookEffectiveness: PlaybookEffectivenessEntry[];
33
+ unguidedSuccessRate: number;
34
+ trajectoryDomainMap: Map<string, string>;
35
+ /** Current core tier playbook IDs (from SkillLibrary) */
36
+ corePlaybookIds?: string[];
37
+ }
38
+
39
+ export interface PlaybookLifecycleReviewOutput {
40
+ /** Pre-computed portfolio snapshot */
41
+ snapshot: PortfolioSnapshot;
42
+ /** Agent's lifecycle recommendations */
43
+ recommendations: LifecycleRecommendation[];
44
+ /** Portfolio-level strategic insights */
45
+ insights: string[];
46
+ /** Priority-ordered action plan */
47
+ actionPlan: string[];
48
+ }
49
+
50
+ export interface LifecycleRecommendation {
51
+ playbookId: string;
52
+ playbookName: string;
53
+ currentState: 'active' | 'core' | 'stale' | 'underperforming';
54
+ proposedState: 'promote-to-core' | 'keep-active' | 'deprecate' | 'archive'
55
+ | 'merge' | 'evolve' | 'split';
56
+ rationale: string;
57
+ /** For merge: target playbook */
58
+ mergeTarget?: { id: string; name: string };
59
+ /** For evolve: suggested guidance changes */
60
+ evolutionNotes?: string;
61
+ priority: 'high' | 'medium' | 'low';
62
+ }
63
+
64
+ // ============================================================
65
+ // Template Implementation
66
+ // ============================================================
67
+
68
+ export const playbookLifecycleReviewTemplate: AgenticTaskTemplate<
69
+ PlaybookLifecycleReviewInput,
70
+ PlaybookLifecycleReviewOutput
71
+ > = {
72
+ taskType: 'playbook-lifecycle-review',
73
+ domain: 'meta-learning',
74
+ description: 'Portfolio-wide playbook health assessment with lifecycle recommendations',
75
+
76
+ assessComplexity(input: PlaybookLifecycleReviewInput): AnalysisComplexity {
77
+ if (input.playbooks.length === 0) return 'heuristic';
78
+ if (input.playbooks.length <= 3 && input.annotations.length < 10) return 'heuristic';
79
+ if (input.playbooks.length > 30) return 'thorough';
80
+ if (input.playbooks.length > 10) return 'standard';
81
+ return 'lightweight';
82
+ },
83
+
84
+ async heuristicFallback(input: PlaybookLifecycleReviewInput): Promise<PlaybookLifecycleReviewOutput> {
85
+ const snapshot = buildPortfolioSnapshot(
86
+ input.playbooks,
87
+ input.annotations,
88
+ input.playbookEffectiveness,
89
+ input.unguidedSuccessRate,
90
+ input.trajectoryDomainMap,
91
+ );
92
+
93
+ // Simple heuristic recommendations
94
+ const recommendations: LifecycleRecommendation[] = [];
95
+
96
+ for (const flag of snapshot.decaying) {
97
+ recommendations.push({
98
+ playbookId: flag.playbookId,
99
+ playbookName: flag.playbookName,
100
+ currentState: 'active',
101
+ proposedState: 'evolve',
102
+ rationale: flag.reason,
103
+ priority: 'high',
104
+ });
105
+ }
106
+
107
+ for (const flag of snapshot.stale) {
108
+ recommendations.push({
109
+ playbookId: flag.playbookId,
110
+ playbookName: flag.playbookName,
111
+ currentState: 'stale',
112
+ proposedState: 'archive',
113
+ rationale: flag.reason,
114
+ priority: 'medium',
115
+ });
116
+ }
117
+
118
+ return {
119
+ snapshot,
120
+ recommendations,
121
+ insights: [],
122
+ actionPlan: recommendations.map(r =>
123
+ `${r.proposedState} "${r.playbookName}" — ${r.rationale}`
124
+ ),
125
+ };
126
+ },
127
+
128
+ async prepareWorkspace(
129
+ input: PlaybookLifecycleReviewInput,
130
+ handle: WorkspaceHandle
131
+ ): Promise<void> {
132
+ const snapshot = buildPortfolioSnapshot(
133
+ input.playbooks,
134
+ input.annotations,
135
+ input.playbookEffectiveness,
136
+ input.unguidedSuccessRate,
137
+ input.trajectoryDomainMap,
138
+ );
139
+
140
+ // Portfolio snapshot — the core data
141
+ await handle.writeJson('input', 'portfolio-snapshot.json', snapshot);
142
+
143
+ // Per-playbook summaries for the agent to reference
144
+ const playbookSummaries = input.playbooks.map(pb => ({
145
+ id: pb.id,
146
+ name: pb.name,
147
+ confidence: pb.confidence,
148
+ successCount: pb.evolution.successCount,
149
+ failureCount: pb.evolution.failureCount,
150
+ successRate: pb.evolution.successCount + pb.evolution.failureCount > 0
151
+ ? pb.evolution.successCount / (pb.evolution.successCount + pb.evolution.failureCount)
152
+ : 0,
153
+ domains: pb.applicability.domains,
154
+ strategy: pb.guidance.strategy,
155
+ tacticsCount: pb.guidance.tactics.length,
156
+ refinementsCount: pb.evolution.refinements.length,
157
+ version: pb.evolution.version,
158
+ lastUsed: pb.evolution.lastUsed,
159
+ isCore: input.corePlaybookIds?.includes(pb.id) ?? false,
160
+ consolidationStrength: pb.evolution.consolidationStrength ?? 0,
161
+ }));
162
+
163
+ await handle.writeJson('input', 'playbook-summaries.json', playbookSummaries);
164
+
165
+ // Redundancy pairs (pre-computed by toolkit)
166
+ if (snapshot.redundant.length > 0) {
167
+ await handle.writeJson('input', 'redundancy-pairs.json', snapshot.redundant);
168
+ }
169
+ },
170
+
171
+ buildTaskPrompt(input: PlaybookLifecycleReviewInput): string {
172
+ return [
173
+ `Review the health of the entire playbook portfolio (${input.playbooks.length} playbooks).`,
174
+ '',
175
+ 'Read:',
176
+ '- input/portfolio-snapshot.json — Portfolio health metrics, flagged issues (decaying, stale, low adoption, redundant)',
177
+ '- input/playbook-summaries.json — Per-playbook summaries with confidence, success rates, domains',
178
+ '- input/redundancy-pairs.json — (if present) Playbook pairs with high content overlap',
179
+ '',
180
+ 'For each playbook, recommend a lifecycle action:',
181
+ '- **promote-to-core**: High confidence + success rate, proven across tasks',
182
+ '- **keep-active**: Performing well, no changes needed',
183
+ '- **evolve**: Decent foundation but guidance needs updating based on failure patterns',
184
+ '- **merge**: Two playbooks cover the same ground — merge into one stronger playbook',
185
+ '- **split**: One playbook covers too many domains — split into domain-specific variants',
186
+ '- **deprecate**: Low value, actively misleading, or superseded',
187
+ '- **archive**: No longer relevant but worth preserving for reference',
188
+ '',
189
+ 'Also provide:',
190
+ '- Strategic insights about the portfolio (coverage gaps, over-invested domains, etc.)',
191
+ '- A priority-ordered action plan (most impactful changes first)',
192
+ '',
193
+ 'Write to output/lifecycle-review.json:',
194
+ '```json',
195
+ '{',
196
+ ' "recommendations": [',
197
+ ' {',
198
+ ' "playbookId": "id",',
199
+ ' "playbookName": "name",',
200
+ ' "currentState": "active" | "core" | "stale" | "underperforming",',
201
+ ' "proposedState": "promote-to-core" | "keep-active" | "deprecate" | "archive" | "merge" | "evolve" | "split",',
202
+ ' "rationale": "why this change",',
203
+ ' "mergeTarget": { "id": "...", "name": "..." },',
204
+ ' "evolutionNotes": "optional: what to change in guidance",',
205
+ ' "priority": "high" | "medium" | "low"',
206
+ ' }',
207
+ ' ],',
208
+ ' "insights": ["insight1", "insight2"],',
209
+ ' "actionPlan": ["step1", "step2"]',
210
+ '}',
211
+ '```',
212
+ ].join('\n');
213
+ },
214
+
215
+ getSkills() { return []; },
216
+ getResources() { return []; },
217
+
218
+ outputConfig: {
219
+ files: [
220
+ {
221
+ path: 'lifecycle-review.json',
222
+ format: 'json' as const,
223
+ required: true,
224
+ description: 'Playbook lifecycle review results',
225
+ },
226
+ ],
227
+ },
228
+
229
+ async collectOutput(handle: WorkspaceHandle): Promise<PlaybookLifecycleReviewOutput> {
230
+ const raw = await handle.readJson('output', 'lifecycle-review.json') as Record<string, unknown>;
231
+ const snapshot = await handle.readJson('input', 'portfolio-snapshot.json') as PortfolioSnapshot;
232
+
233
+ const recommendations: LifecycleRecommendation[] = Array.isArray(raw.recommendations)
234
+ ? (raw.recommendations as Record<string, unknown>[]).map(r => {
235
+ const mergeTarget = r.mergeTarget as Record<string, unknown> | undefined;
236
+ return {
237
+ playbookId: String(r.playbookId ?? ''),
238
+ playbookName: String(r.playbookName ?? ''),
239
+ currentState: String(r.currentState ?? 'active') as LifecycleRecommendation['currentState'],
240
+ proposedState: String(r.proposedState ?? 'keep-active') as LifecycleRecommendation['proposedState'],
241
+ rationale: String(r.rationale ?? ''),
242
+ mergeTarget: mergeTarget
243
+ ? { id: String(mergeTarget.id ?? ''), name: String(mergeTarget.name ?? '') }
244
+ : undefined,
245
+ evolutionNotes: r.evolutionNotes ? String(r.evolutionNotes) : undefined,
246
+ priority: String(r.priority ?? 'medium') as LifecycleRecommendation['priority'],
247
+ };
248
+ })
249
+ : [];
250
+
251
+ return {
252
+ snapshot,
253
+ recommendations,
254
+ insights: Array.isArray(raw.insights) ? raw.insights.map(String) : [],
255
+ actionPlan: Array.isArray(raw.actionPlan) ? raw.actionPlan.map(String) : [],
256
+ };
257
+ },
258
+
259
+ async processOutput(): Promise<void> {
260
+ // Caller decides how to act on lifecycle recommendations
261
+ },
262
+
263
+ getComputeRequirements(_input, complexity) {
264
+ return {
265
+ mode: 'local' as const,
266
+ complexity,
267
+ timeout: complexity === 'thorough' ? 240_000 : 120_000,
268
+ };
269
+ },
270
+
271
+ agentType: 'claude-code',
272
+ timeout: 180_000,
273
+ captureToolCalls: true,
274
+ };
@@ -1,10 +1,16 @@
1
- import type { WorkspaceHandle, OutputSpec } from 'agent-workspace';
1
+ import type {
2
+ TaskTemplate,
3
+ TaskComplexity,
4
+ SkillSpec,
5
+ ResourceSpec as BaseResourceSpec,
6
+ } from 'agent-workspace';
2
7
  import type { MemorySystem, MemoryQueryResultV2 } from '../memory/system.js';
3
8
  import type { Trajectory } from '../types/index.js';
4
9
  import type { ComputeRequirements } from '../runtime/compute-provider.js';
5
10
 
6
11
  // Re-export agent-workspace types used by consumers
7
12
  export type { WorkspaceHandle, OutputSpec, OutputFileSpec, ValidationResult } from 'agent-workspace';
13
+ export type { TaskTemplate, TaskComplexity, SkillSpec, TaskRunner, TaskResult, AgentBackend, AgentSpawnConfig, AgentResult, TaskRunnerHooks, TaskRunnerConfig } from 'agent-workspace';
8
14
 
9
15
  // ============================================================
10
16
  // Agent Skills
@@ -12,13 +18,9 @@ export type { WorkspaceHandle, OutputSpec, OutputFileSpec, ValidationResult } fr
12
18
 
13
19
  /**
14
20
  * Skill to load into workspace skills/ directory.
15
- * Agent Skills open standard format (SKILL.md).
21
+ * Extends agent-workspace's SkillSpec with source tracking.
16
22
  */
17
- export interface AgentSkillSpec {
18
- /** Skill directory name */
19
- name: string;
20
- /** SKILL.md content */
21
- content: string;
23
+ export interface AgentSkillSpec extends SkillSpec {
22
24
  /** Source of this skill */
23
25
  source: 'playbook-conversion' | 'curated' | 'extracted';
24
26
  }
@@ -29,14 +31,9 @@ export interface AgentSkillSpec {
29
31
 
30
32
  /**
31
33
  * Supplementary resource to load into workspace resources/ directory.
34
+ * Extends agent-workspace's ResourceSpec with description.
32
35
  */
33
- export interface ResourceSpec {
34
- /** Path relative to resources/ directory */
35
- path: string;
36
- /** How to populate this resource */
37
- type: 'directory' | 'file' | 'symlink';
38
- /** Source path (for symlink/copy) or content (for file) */
39
- source: string;
36
+ export interface ResourceSpec extends BaseResourceSpec {
40
37
  /** Description for the agent */
41
38
  description?: string;
42
39
  }
@@ -46,13 +43,9 @@ export interface ResourceSpec {
46
43
  // ============================================================
47
44
 
48
45
  /**
49
- * Complexity level determines whether to use heuristic or agentic analysis.
46
+ * Backward-compatible alias for agent-workspace's TaskComplexity.
50
47
  */
51
- export type AnalysisComplexity =
52
- | 'heuristic' // Use heuristicFallback(), no agent needed
53
- | 'lightweight' // Agent with small budget, simple workspace
54
- | 'standard' // Agent with moderate budget, full workspace
55
- | 'thorough'; // Agent with large budget, full workspace, more time
48
+ export type AnalysisComplexity = TaskComplexity;
56
49
 
57
50
  // ============================================================
58
51
  // Processing Context
@@ -81,34 +74,14 @@ export interface ProcessingContext {
81
74
  /**
82
75
  * Declarative recipe for an agentic analysis task.
83
76
  *
77
+ * Extends agent-workspace's TaskTemplate with cognitive-core-specific hooks
78
+ * for memory injection, output processing, and compute requirements.
79
+ *
84
80
  * TInput: the typed input data for this analysis
85
81
  * TOutput: the typed output the agent produces
86
82
  */
87
- export interface AgenticTaskTemplate<TInput, TOutput> {
88
- /** Unique identifier for this task type */
89
- taskType: string;
90
-
91
- /** Domain for knowledge injection and meta-learning */
92
- domain: string;
93
-
94
- /** Human-readable description */
95
- description: string;
96
-
97
- // === WORKSPACE SETUP ===
98
-
99
- /**
100
- * Prepare the workspace filesystem from typed input.
101
- * Uses the WorkspaceHandle to write input files via typed I/O methods.
102
- */
103
- prepareWorkspace(input: TInput, handle: WorkspaceHandle): Promise<void>;
104
-
105
- /**
106
- * Build the task description for the agent.
107
- * Natural language prompt explaining what to do and what output to produce.
108
- */
109
- buildTaskPrompt(input: TInput): string;
110
-
111
- // === SKILLS ===
83
+ export interface AgenticTaskTemplate<TInput, TOutput> extends TaskTemplate<TInput, TOutput> {
84
+ // === SKILLS (override with source tracking) ===
112
85
 
113
86
  /**
114
87
  * Skills to load into the workspace skills/ directory.
@@ -116,14 +89,14 @@ export interface AgenticTaskTemplate<TInput, TOutput> {
116
89
  */
117
90
  getSkills(input: TInput): AgentSkillSpec[];
118
91
 
119
- // === RESOURCES ===
92
+ // === RESOURCES (override with description) ===
120
93
 
121
94
  /**
122
95
  * Supplementary resources for the workspace resources/ directory.
123
96
  */
124
97
  getResources(input: TInput): ResourceSpec[];
125
98
 
126
- // === KNOWLEDGE ===
99
+ // === KNOWLEDGE (cognitive-core extension) ===
127
100
 
128
101
  /**
129
102
  * Additional memory queries beyond the automatic domain-scoped query.
@@ -133,17 +106,7 @@ export interface AgenticTaskTemplate<TInput, TOutput> {
133
106
  memory: MemorySystem
134
107
  ): Promise<MemoryQueryResultV2>;
135
108
 
136
- // === OUTPUT ===
137
-
138
- /** Configuration defining the expected output shape */
139
- outputConfig: OutputSpec;
140
-
141
- /**
142
- * Read and validate agent output from workspace.
143
- * Uses the WorkspaceHandle to read output via typed I/O methods.
144
- * Returns typed output or throws if validation fails.
145
- */
146
- collectOutput(handle: WorkspaceHandle): Promise<TOutput>;
109
+ // === OUTPUT PROCESSING (cognitive-core extension) ===
147
110
 
148
111
  /**
149
112
  * Process the validated output — store results, accumulate for batch learning, etc.
@@ -154,31 +117,12 @@ export interface AgenticTaskTemplate<TInput, TOutput> {
154
117
  context: ProcessingContext
155
118
  ): Promise<void>;
156
119
 
157
- // === COMPLEXITY ASSESSMENT ===
158
-
159
- /**
160
- * Assess whether this input needs agentic analysis or heuristic fallback.
161
- */
162
- assessComplexity(input: TInput): AnalysisComplexity;
163
-
164
- /**
165
- * Heuristic fallback for simple cases.
166
- * Called when assessComplexity returns 'heuristic'.
167
- */
168
- heuristicFallback?(input: TInput): Promise<TOutput>;
169
-
170
120
  // === CONFIGURATION ===
171
121
 
172
- /** Agent type to spawn (default: 'claude-code') */
173
- agentType?: string;
174
-
175
- /** Timeout for the analysis agent (default: 120_000ms) */
176
- timeout?: number;
177
-
178
122
  /** Whether to capture detailed tool calls (default: true) */
179
123
  captureToolCalls?: boolean;
180
124
 
181
- // === COMPUTE ===
125
+ // === COMPUTE (cognitive-core extension) ===
182
126
 
183
127
  /**
184
128
  * Static compute requirements for this template.
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Story-based trajectory fixtures for behavioral tests.
3
+ *
4
+ * Each factory produces a realistic trajectory with semantically meaningful
5
+ * steps — the kind of thing an agent actually does when solving a task.
6
+ */
7
+
8
+ import { createTrajectory, type Trajectory } from '../../src/types/trajectory.js';
9
+ import { createTask } from '../../src/types/task.js';
10
+ import { createStep } from '../../src/types/step.js';
11
+ import { successOutcome, failureOutcome } from '../../src/types/outcome.js';
12
+
13
+ /**
14
+ * Successful "fix broken TypeScript import" trajectory.
15
+ * Steps: read file → identify wrong path → edit import → run tsc → pass.
16
+ */
17
+ export function makeTypescriptImportFix(variant: number): Trajectory {
18
+ const files = ['routes.ts', 'utils.ts', 'handler.ts', 'service.ts', 'controller.ts', 'middleware.ts'];
19
+ const file = files[variant % files.length];
20
+ return createTrajectory({
21
+ task: createTask({
22
+ domain: 'typescript',
23
+ description: `Fix broken TypeScript import in src/${file}`,
24
+ }),
25
+ steps: [
26
+ createStep({
27
+ thought: `Check the import statements in ${file}`,
28
+ action: `ReadFile src/${file}`,
29
+ observation: `import { UserService } from "./services/user"\n// TS2307: Cannot find module './services/user'`,
30
+ }),
31
+ createStep({
32
+ thought: 'The import path is missing the .js extension required by ESM',
33
+ action: `EditFile src/${file}`,
34
+ observation: `Updated: import { UserService } from "./services/user.js"`,
35
+ }),
36
+ createStep({
37
+ thought: 'Verify the fix compiles',
38
+ action: 'Bash tsc --noEmit',
39
+ observation: 'Compilation successful. No errors found.',
40
+ }),
41
+ ],
42
+ outcome: successOutcome(`Fixed ESM import extension in src/${file}`),
43
+ agentId: 'test-agent',
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Successful "fix Python type error" trajectory.
49
+ * Steps: read traceback → identify wrong type → edit function → run pytest → pass.
50
+ */
51
+ export function makePythonTypeFix(variant: number): Trajectory {
52
+ const files = ['api.py', 'models.py', 'views.py', 'serializers.py', 'utils.py'];
53
+ const file = files[variant % files.length];
54
+ return createTrajectory({
55
+ task: createTask({
56
+ domain: 'python',
57
+ description: `Fix Python type error in ${file}`,
58
+ }),
59
+ steps: [
60
+ createStep({
61
+ thought: `Read the failing file ${file}`,
62
+ action: `ReadFile ${file}`,
63
+ observation: `def process_items(items: list[str]) -> int:\n return items.count`,
64
+ }),
65
+ createStep({
66
+ thought: 'The function returns the method reference instead of calling it',
67
+ action: `EditFile ${file}`,
68
+ observation: `Updated: return items.count() # was missing parentheses`,
69
+ }),
70
+ createStep({
71
+ thought: 'Run the tests to verify',
72
+ action: 'Bash pytest -x',
73
+ observation: '5 passed in 0.3s',
74
+ }),
75
+ ],
76
+ outcome: successOutcome(`Fixed missing parentheses in ${file}`),
77
+ agentId: 'test-agent',
78
+ });
79
+ }
80
+
81
+ /**
82
+ * Failed "fix authentication bypass" trajectory.
83
+ * Steps: read auth code → attempt fix → tests still fail.
84
+ */
85
+ export function makeFailedAuthFix(errorDetail: string): Trajectory {
86
+ return createTrajectory({
87
+ task: createTask({
88
+ domain: 'security',
89
+ description: 'Fix authentication bypass vulnerability in auth middleware',
90
+ }),
91
+ steps: [
92
+ createStep({
93
+ thought: 'Read the auth middleware to understand the vulnerability',
94
+ action: 'ReadFile src/middleware/auth.ts',
95
+ observation: 'JWT token validation skips expiry check when token has admin role',
96
+ }),
97
+ createStep({
98
+ thought: 'Add expiry validation for all tokens regardless of role',
99
+ action: 'EditFile src/middleware/auth.ts',
100
+ observation: 'Added: if (isTokenExpired(token)) throw new AuthError("expired")',
101
+ }),
102
+ createStep({
103
+ thought: 'Run the security test suite',
104
+ action: 'Bash npm run test:security',
105
+ observation: `FAIL: ${errorDetail}`,
106
+ }),
107
+ ],
108
+ outcome: failureOutcome(errorDetail),
109
+ agentId: 'test-agent',
110
+ });
111
+ }
112
+
113
+ /**
114
+ * Successful Kubernetes deployment — completely different domain.
115
+ */
116
+ export function makeKubernetesDeploy(): Trajectory {
117
+ return createTrajectory({
118
+ task: createTask({
119
+ domain: 'devops',
120
+ description: 'Deploy updated API service to Kubernetes staging cluster',
121
+ }),
122
+ steps: [
123
+ createStep({
124
+ thought: 'Check current deployment status',
125
+ action: 'Bash kubectl get pods -n staging',
126
+ observation: 'api-service-7f8d9c 1/1 Running 0 12h',
127
+ }),
128
+ createStep({
129
+ thought: 'Apply the new deployment manifest',
130
+ action: 'Bash kubectl apply -f k8s/api-service.yaml',
131
+ observation: 'deployment.apps/api-service configured',
132
+ }),
133
+ createStep({
134
+ thought: 'Wait for rollout to complete',
135
+ action: 'Bash kubectl rollout status deployment/api-service -n staging',
136
+ observation: 'deployment "api-service" successfully rolled out',
137
+ }),
138
+ ],
139
+ outcome: successOutcome('Deployed api-service v2.3.1 to staging'),
140
+ agentId: 'test-agent',
141
+ });
142
+ }
143
+
144
+ /**
145
+ * Inefficient trajectory with many repeated read actions.
146
+ * Useful for testing reflexion critique of wasted steps.
147
+ */
148
+ export function makeInefficient(stepCount: number): Trajectory {
149
+ const steps = [];
150
+ for (let i = 0; i < stepCount; i++) {
151
+ steps.push(
152
+ createStep({
153
+ thought: `Check config again (attempt ${i + 1})`,
154
+ action: 'ReadFile src/config.ts',
155
+ observation: 'export const config = { debug: false, port: 3000 }',
156
+ }),
157
+ );
158
+ }
159
+ // Finally do the actual fix
160
+ steps.push(
161
+ createStep({
162
+ thought: 'After re-reading many times, change the debug flag',
163
+ action: 'EditFile src/config.ts',
164
+ observation: 'Updated: debug: true',
165
+ }),
166
+ );
167
+
168
+ return createTrajectory({
169
+ task: createTask({
170
+ domain: 'typescript',
171
+ description: 'Enable debug mode in application config',
172
+ }),
173
+ steps,
174
+ outcome: failureOutcome('Timed out after too many read operations'),
175
+ agentId: 'test-agent',
176
+ });
177
+ }
178
+
179
+ /**
180
+ * Successful trajectory with a specific solution description,
181
+ * useful for verifying causal edge extraction.
182
+ */
183
+ export function makeSuccessfulWithSolution(
184
+ domain: string,
185
+ description: string,
186
+ solution: string,
187
+ ): Trajectory {
188
+ return createTrajectory({
189
+ task: createTask({ domain, description }),
190
+ steps: [
191
+ createStep({
192
+ thought: 'Analyze the problem',
193
+ action: 'ReadFile src/main.ts',
194
+ observation: 'Found the issue',
195
+ }),
196
+ createStep({
197
+ thought: 'Apply the fix',
198
+ action: 'EditFile src/main.ts',
199
+ observation: 'File updated',
200
+ }),
201
+ createStep({
202
+ thought: 'Verify',
203
+ action: 'Bash npm test',
204
+ observation: 'All tests passed',
205
+ }),
206
+ ],
207
+ outcome: successOutcome(solution),
208
+ agentId: 'test-agent',
209
+ });
210
+ }