cognitive-core 0.0.2 → 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 (329) hide show
  1. package/README.md +302 -116
  2. package/SKILL.md +193 -0
  3. package/dist/agents/index.d.ts +3 -0
  4. package/dist/agents/index.d.ts.map +1 -0
  5. package/dist/agents/index.js +5 -0
  6. package/dist/agents/index.js.map +1 -0
  7. package/dist/agents/mock-provider.d.ts +23 -0
  8. package/dist/agents/mock-provider.d.ts.map +1 -0
  9. package/dist/agents/mock-provider.js +71 -0
  10. package/dist/agents/mock-provider.js.map +1 -0
  11. package/dist/agents/types.d.ts +98 -0
  12. package/dist/agents/types.d.ts.map +1 -0
  13. package/dist/agents/types.js +44 -0
  14. package/dist/agents/types.js.map +1 -0
  15. package/dist/atlas.d.ts +196 -0
  16. package/dist/atlas.d.ts.map +1 -0
  17. package/dist/atlas.js +373 -0
  18. package/dist/atlas.js.map +1 -0
  19. package/dist/bin/cognitive-core.d.ts +18 -0
  20. package/dist/bin/cognitive-core.d.ts.map +1 -0
  21. package/dist/bin/cognitive-core.js +419 -0
  22. package/dist/bin/cognitive-core.js.map +1 -0
  23. package/dist/embeddings/bm25.d.ts +104 -0
  24. package/dist/embeddings/bm25.d.ts.map +1 -0
  25. package/dist/embeddings/bm25.js +264 -0
  26. package/dist/embeddings/bm25.js.map +1 -0
  27. package/dist/embeddings/index.d.ts +12 -0
  28. package/dist/embeddings/index.d.ts.map +1 -0
  29. package/dist/embeddings/index.js +16 -0
  30. package/dist/embeddings/index.js.map +1 -0
  31. package/dist/embeddings/manager.d.ts +112 -0
  32. package/dist/embeddings/manager.d.ts.map +1 -0
  33. package/dist/embeddings/manager.js +215 -0
  34. package/dist/embeddings/manager.js.map +1 -0
  35. package/dist/embeddings/provider.d.ts +101 -0
  36. package/dist/embeddings/provider.d.ts.map +1 -0
  37. package/dist/embeddings/provider.js +232 -0
  38. package/dist/embeddings/provider.js.map +1 -0
  39. package/dist/embeddings/vector-store.d.ts +101 -0
  40. package/dist/embeddings/vector-store.d.ts.map +1 -0
  41. package/dist/embeddings/vector-store.js +256 -0
  42. package/dist/embeddings/vector-store.js.map +1 -0
  43. package/dist/factory.d.ts +193 -0
  44. package/dist/factory.d.ts.map +1 -0
  45. package/dist/factory.js +109 -0
  46. package/dist/factory.js.map +1 -0
  47. package/dist/index.d.ts +30 -453
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -509
  50. package/dist/index.js.map +1 -0
  51. package/dist/learning/analyzer.d.ts +110 -0
  52. package/dist/learning/analyzer.d.ts.map +1 -0
  53. package/dist/learning/analyzer.js +213 -0
  54. package/dist/learning/analyzer.js.map +1 -0
  55. package/dist/learning/effectiveness.d.ts +158 -0
  56. package/dist/learning/effectiveness.d.ts.map +1 -0
  57. package/dist/learning/effectiveness.js +251 -0
  58. package/dist/learning/effectiveness.js.map +1 -0
  59. package/dist/learning/index.d.ts +8 -0
  60. package/dist/learning/index.d.ts.map +1 -0
  61. package/dist/learning/index.js +11 -0
  62. package/dist/learning/index.js.map +1 -0
  63. package/dist/learning/llm-extractor.d.ts +88 -0
  64. package/dist/learning/llm-extractor.d.ts.map +1 -0
  65. package/dist/learning/llm-extractor.js +372 -0
  66. package/dist/learning/llm-extractor.js.map +1 -0
  67. package/dist/learning/meta-learner.d.ts +80 -0
  68. package/dist/learning/meta-learner.d.ts.map +1 -0
  69. package/dist/learning/meta-learner.js +355 -0
  70. package/dist/learning/meta-learner.js.map +1 -0
  71. package/dist/learning/pipeline.d.ts +65 -0
  72. package/dist/learning/pipeline.d.ts.map +1 -0
  73. package/dist/learning/pipeline.js +170 -0
  74. package/dist/learning/pipeline.js.map +1 -0
  75. package/dist/learning/playbook-extractor.d.ts +113 -0
  76. package/dist/learning/playbook-extractor.d.ts.map +1 -0
  77. package/dist/learning/playbook-extractor.js +523 -0
  78. package/dist/learning/playbook-extractor.js.map +1 -0
  79. package/dist/learning/usage-inference.d.ts +82 -0
  80. package/dist/learning/usage-inference.d.ts.map +1 -0
  81. package/dist/learning/usage-inference.js +261 -0
  82. package/dist/learning/usage-inference.js.map +1 -0
  83. package/dist/mcp/index.d.ts +6 -0
  84. package/dist/mcp/index.d.ts.map +1 -0
  85. package/dist/mcp/index.js +6 -0
  86. package/dist/mcp/index.js.map +1 -0
  87. package/dist/mcp/playbook-server.d.ts +120 -0
  88. package/dist/mcp/playbook-server.d.ts.map +1 -0
  89. package/dist/mcp/playbook-server.js +427 -0
  90. package/dist/mcp/playbook-server.js.map +1 -0
  91. package/dist/memory/curated-loader.d.ts +62 -0
  92. package/dist/memory/curated-loader.d.ts.map +1 -0
  93. package/dist/memory/curated-loader.js +106 -0
  94. package/dist/memory/curated-loader.js.map +1 -0
  95. package/dist/memory/experience.d.ts +122 -0
  96. package/dist/memory/experience.d.ts.map +1 -0
  97. package/dist/memory/experience.js +392 -0
  98. package/dist/memory/experience.js.map +1 -0
  99. package/dist/memory/index.d.ts +6 -0
  100. package/dist/memory/index.d.ts.map +1 -0
  101. package/dist/memory/index.js +9 -0
  102. package/dist/memory/index.js.map +1 -0
  103. package/dist/memory/meta.d.ts +90 -0
  104. package/dist/memory/meta.d.ts.map +1 -0
  105. package/dist/memory/meta.js +362 -0
  106. package/dist/memory/meta.js.map +1 -0
  107. package/dist/memory/playbook.d.ts +133 -0
  108. package/dist/memory/playbook.d.ts.map +1 -0
  109. package/dist/memory/playbook.js +357 -0
  110. package/dist/memory/playbook.js.map +1 -0
  111. package/dist/memory/system.d.ts +167 -0
  112. package/dist/memory/system.d.ts.map +1 -0
  113. package/dist/memory/system.js +383 -0
  114. package/dist/memory/system.js.map +1 -0
  115. package/dist/runtime/backends/acp.d.ts +67 -0
  116. package/dist/runtime/backends/acp.d.ts.map +1 -0
  117. package/dist/runtime/backends/acp.js +290 -0
  118. package/dist/runtime/backends/acp.js.map +1 -0
  119. package/dist/runtime/backends/index.d.ts +5 -0
  120. package/dist/runtime/backends/index.d.ts.map +1 -0
  121. package/dist/runtime/backends/index.js +6 -0
  122. package/dist/runtime/backends/index.js.map +1 -0
  123. package/dist/runtime/backends/mock.d.ts +67 -0
  124. package/dist/runtime/backends/mock.d.ts.map +1 -0
  125. package/dist/runtime/backends/mock.js +153 -0
  126. package/dist/runtime/backends/mock.js.map +1 -0
  127. package/dist/runtime/backends/subprocess.d.ts +56 -0
  128. package/dist/runtime/backends/subprocess.d.ts.map +1 -0
  129. package/dist/runtime/backends/subprocess.js +260 -0
  130. package/dist/runtime/backends/subprocess.js.map +1 -0
  131. package/dist/runtime/flows/learning.d.ts +73 -0
  132. package/dist/runtime/flows/learning.d.ts.map +1 -0
  133. package/dist/runtime/flows/learning.js +116 -0
  134. package/dist/runtime/flows/learning.js.map +1 -0
  135. package/dist/runtime/flows/validation.d.ts +122 -0
  136. package/dist/runtime/flows/validation.d.ts.map +1 -0
  137. package/dist/runtime/flows/validation.js +223 -0
  138. package/dist/runtime/flows/validation.js.map +1 -0
  139. package/dist/runtime/index.d.ts +6 -0
  140. package/dist/runtime/index.d.ts.map +1 -0
  141. package/dist/runtime/index.js +8 -0
  142. package/dist/runtime/index.js.map +1 -0
  143. package/dist/runtime/manager.d.ts +116 -0
  144. package/dist/runtime/manager.d.ts.map +1 -0
  145. package/dist/runtime/manager.js +416 -0
  146. package/dist/runtime/manager.js.map +1 -0
  147. package/dist/runtime/types.d.ts +138 -0
  148. package/dist/runtime/types.d.ts.map +1 -0
  149. package/dist/runtime/types.js +2 -0
  150. package/dist/runtime/types.js.map +1 -0
  151. package/dist/search/evaluator.d.ts +102 -0
  152. package/dist/search/evaluator.d.ts.map +1 -0
  153. package/dist/search/evaluator.js +352 -0
  154. package/dist/search/evaluator.js.map +1 -0
  155. package/dist/search/index.d.ts +7 -0
  156. package/dist/search/index.d.ts.map +1 -0
  157. package/dist/search/index.js +11 -0
  158. package/dist/search/index.js.map +1 -0
  159. package/dist/search/refinement-loop.d.ts +73 -0
  160. package/dist/search/refinement-loop.d.ts.map +1 -0
  161. package/dist/search/refinement-loop.js +245 -0
  162. package/dist/search/refinement-loop.js.map +1 -0
  163. package/dist/search/refinement-types.d.ts +154 -0
  164. package/dist/search/refinement-types.d.ts.map +1 -0
  165. package/dist/search/refinement-types.js +99 -0
  166. package/dist/search/refinement-types.js.map +1 -0
  167. package/dist/search/router.d.ts +61 -0
  168. package/dist/search/router.d.ts.map +1 -0
  169. package/dist/search/router.js +197 -0
  170. package/dist/search/router.js.map +1 -0
  171. package/dist/search/solver.d.ts +75 -0
  172. package/dist/search/solver.d.ts.map +1 -0
  173. package/dist/search/solver.js +216 -0
  174. package/dist/search/solver.js.map +1 -0
  175. package/dist/search/verification-runner.d.ts +125 -0
  176. package/dist/search/verification-runner.d.ts.map +1 -0
  177. package/dist/search/verification-runner.js +440 -0
  178. package/dist/search/verification-runner.js.map +1 -0
  179. package/dist/surfacing/index.d.ts +2 -0
  180. package/dist/surfacing/index.d.ts.map +1 -0
  181. package/dist/surfacing/index.js +2 -0
  182. package/dist/surfacing/index.js.map +1 -0
  183. package/dist/surfacing/skill-library.d.ts +158 -0
  184. package/dist/surfacing/skill-library.d.ts.map +1 -0
  185. package/dist/surfacing/skill-library.js +429 -0
  186. package/dist/surfacing/skill-library.js.map +1 -0
  187. package/dist/types/config.d.ts +1113 -0
  188. package/dist/types/config.d.ts.map +1 -0
  189. package/dist/types/config.js +274 -0
  190. package/dist/types/config.js.map +1 -0
  191. package/dist/types/index.d.ts +9 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +14 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/memory.d.ts +339 -0
  196. package/dist/types/memory.d.ts.map +1 -0
  197. package/dist/types/memory.js +207 -0
  198. package/dist/types/memory.js.map +1 -0
  199. package/dist/types/meta.d.ts +146 -0
  200. package/dist/types/meta.d.ts.map +1 -0
  201. package/dist/types/meta.js +51 -0
  202. package/dist/types/meta.js.map +1 -0
  203. package/dist/types/outcome.d.ts +42 -0
  204. package/dist/types/outcome.d.ts.map +1 -0
  205. package/dist/types/outcome.js +50 -0
  206. package/dist/types/outcome.js.map +1 -0
  207. package/dist/types/playbook.d.ts +119 -0
  208. package/dist/types/playbook.d.ts.map +1 -0
  209. package/dist/types/playbook.js +71 -0
  210. package/dist/types/playbook.js.map +1 -0
  211. package/dist/types/step.d.ts +44 -0
  212. package/dist/types/step.d.ts.map +1 -0
  213. package/dist/types/step.js +32 -0
  214. package/dist/types/step.js.map +1 -0
  215. package/dist/types/task.d.ts +91 -0
  216. package/dist/types/task.d.ts.map +1 -0
  217. package/dist/types/task.js +39 -0
  218. package/dist/types/task.js.map +1 -0
  219. package/dist/types/trajectory.d.ts +221 -0
  220. package/dist/types/trajectory.d.ts.map +1 -0
  221. package/dist/types/trajectory.js +60 -0
  222. package/dist/types/trajectory.js.map +1 -0
  223. package/dist/utils/index.d.ts +4 -0
  224. package/dist/utils/index.d.ts.map +1 -0
  225. package/dist/utils/index.js +4 -0
  226. package/dist/utils/index.js.map +1 -0
  227. package/dist/utils/similarity.d.ts +31 -0
  228. package/dist/utils/similarity.d.ts.map +1 -0
  229. package/dist/utils/similarity.js +107 -0
  230. package/dist/utils/similarity.js.map +1 -0
  231. package/dist/utils/storage.d.ts +106 -0
  232. package/dist/utils/storage.d.ts.map +1 -0
  233. package/dist/utils/storage.js +203 -0
  234. package/dist/utils/storage.js.map +1 -0
  235. package/dist/utils/validation.d.ts +129 -0
  236. package/dist/utils/validation.d.ts.map +1 -0
  237. package/dist/utils/validation.js +171 -0
  238. package/dist/utils/validation.js.map +1 -0
  239. package/package.json +50 -34
  240. package/scripts/migrate-to-playbooks.ts +307 -0
  241. package/src/agents/index.ts +14 -0
  242. package/src/agents/mock-provider.ts +93 -0
  243. package/src/agents/types.ts +137 -0
  244. package/src/atlas.ts +560 -0
  245. package/src/bin/cognitive-core.ts +470 -0
  246. package/src/embeddings/bm25.ts +337 -0
  247. package/src/embeddings/index.ts +39 -0
  248. package/src/embeddings/manager.ts +288 -0
  249. package/src/embeddings/provider.ts +311 -0
  250. package/src/embeddings/vector-store.ts +353 -0
  251. package/src/factory.ts +263 -0
  252. package/src/index.ts +246 -0
  253. package/src/learning/analyzer.ts +335 -0
  254. package/src/learning/effectiveness.ts +428 -0
  255. package/src/learning/index.ts +58 -0
  256. package/src/learning/llm-extractor.ts +542 -0
  257. package/src/learning/meta-learner.ts +516 -0
  258. package/src/learning/pipeline.ts +244 -0
  259. package/src/learning/playbook-extractor.ts +702 -0
  260. package/src/learning/usage-inference.ts +372 -0
  261. package/src/mcp/index.ts +12 -0
  262. package/src/mcp/playbook-server.ts +565 -0
  263. package/src/memory/curated-loader.ts +160 -0
  264. package/src/memory/experience.ts +515 -0
  265. package/src/memory/index.ts +27 -0
  266. package/src/memory/meta.ts +506 -0
  267. package/src/memory/playbook.ts +493 -0
  268. package/src/memory/system.ts +551 -0
  269. package/src/runtime/backends/acp.ts +378 -0
  270. package/src/runtime/backends/index.ts +24 -0
  271. package/src/runtime/backends/mock.ts +218 -0
  272. package/src/runtime/backends/subprocess.ts +356 -0
  273. package/src/runtime/flows/learning.ts +183 -0
  274. package/src/runtime/flows/validation.ts +381 -0
  275. package/src/runtime/index.ts +53 -0
  276. package/src/runtime/manager.ts +541 -0
  277. package/src/runtime/types.ts +157 -0
  278. package/src/search/evaluator.ts +474 -0
  279. package/src/search/index.ts +59 -0
  280. package/src/search/refinement-loop.ts +363 -0
  281. package/src/search/refinement-types.ts +159 -0
  282. package/src/search/router.ts +261 -0
  283. package/src/search/solver.ts +303 -0
  284. package/src/search/verification-runner.ts +570 -0
  285. package/src/surfacing/index.ts +6 -0
  286. package/src/surfacing/skill-library.ts +594 -0
  287. package/src/types/config.ts +333 -0
  288. package/src/types/index.ts +130 -0
  289. package/src/types/memory.ts +270 -0
  290. package/src/types/meta.ts +218 -0
  291. package/src/types/outcome.ts +66 -0
  292. package/src/types/playbook.ts +196 -0
  293. package/src/types/step.ts +40 -0
  294. package/src/types/task.ts +52 -0
  295. package/src/types/trajectory.ts +80 -0
  296. package/src/utils/index.ts +38 -0
  297. package/src/utils/similarity.ts +139 -0
  298. package/src/utils/storage.ts +249 -0
  299. package/src/utils/validation.ts +286 -0
  300. package/tests/embeddings/bm25.test.ts +130 -0
  301. package/tests/embeddings/manager.test.ts +205 -0
  302. package/tests/integration/atlas.test.ts +266 -0
  303. package/tests/integration/e2e.test.ts +929 -0
  304. package/tests/learning/analyzer.test.ts +426 -0
  305. package/tests/learning/effectiveness.test.ts +542 -0
  306. package/tests/learning/pipeline.test.ts +176 -0
  307. package/tests/learning/playbook-extractor-provenance.test.ts +114 -0
  308. package/tests/learning/usage-inference.test.ts +254 -0
  309. package/tests/mcp/playbook-server.test.ts +252 -0
  310. package/tests/memory/experience.test.ts +198 -0
  311. package/tests/memory/playbook.test.ts +338 -0
  312. package/tests/memory/provenance.test.ts +639 -0
  313. package/tests/memory/system.test.ts +325 -0
  314. package/tests/runtime/agent-manager.test.ts +512 -0
  315. package/tests/runtime/mock-backend.test.ts +248 -0
  316. package/tests/search/refinement-loop.test.ts +468 -0
  317. package/tests/search/refinement.test.ts +267 -0
  318. package/tests/search/router.test.ts +427 -0
  319. package/tests/surfacing/skill-library.test.ts +292 -0
  320. package/tests/types/outcome.test.ts +147 -0
  321. package/tests/types/step.test.ts +133 -0
  322. package/tests/types/task.test.ts +158 -0
  323. package/tests/types/trajectory.test.ts +253 -0
  324. package/tests/utils/similarity.test.ts +188 -0
  325. package/tests/utils/validation.test.ts +252 -0
  326. package/tsconfig.json +25 -0
  327. package/vitest.config.ts +22 -0
  328. package/dist/index.d.mts +0 -466
  329. package/dist/index.mjs +0 -478
@@ -0,0 +1,440 @@
1
+ /**
2
+ * Verification Runner
3
+ *
4
+ * Provides common verification patterns for evaluating solutions:
5
+ * - Command execution (bash/shell)
6
+ * - Test runner integration
7
+ * - Code linting/type checking
8
+ * - Custom verification functions
9
+ *
10
+ * Used with SolutionEvaluator to verify trajectory outcomes.
11
+ */
12
+ import { execSync, spawn } from 'child_process';
13
+ /**
14
+ * Common test runner configurations
15
+ */
16
+ export const TestRunners = {
17
+ /** Node.js test runners */
18
+ vitest: (testPath) => ({
19
+ command: `npx vitest run ${testPath ?? ''} --reporter=json`,
20
+ timeout: 60000,
21
+ successOnZeroExit: true,
22
+ issueExtractor: extractVitestIssues,
23
+ }),
24
+ jest: (testPath) => ({
25
+ command: `npx jest ${testPath ?? ''} --json`,
26
+ timeout: 60000,
27
+ successOnZeroExit: true,
28
+ issueExtractor: extractJestIssues,
29
+ }),
30
+ mocha: (testPath) => ({
31
+ command: `npx mocha ${testPath ?? ''} --reporter json`,
32
+ timeout: 60000,
33
+ successOnZeroExit: true,
34
+ }),
35
+ /** Python test runners */
36
+ pytest: (testPath) => ({
37
+ command: `python -m pytest ${testPath ?? ''} --tb=short -q`,
38
+ timeout: 60000,
39
+ successOnZeroExit: true,
40
+ failurePattern: /FAILED|ERROR/,
41
+ issueExtractor: extractPytestIssues,
42
+ }),
43
+ /** Go test runner */
44
+ goTest: (testPath) => ({
45
+ command: `go test ${testPath ?? './...'} -v`,
46
+ timeout: 60000,
47
+ successOnZeroExit: true,
48
+ failurePattern: /--- FAIL:|FAIL\s+\w+/,
49
+ }),
50
+ /** Rust test runner */
51
+ cargoTest: (testPath) => ({
52
+ command: `cargo test ${testPath ?? ''} -- --nocapture`,
53
+ timeout: 120000,
54
+ successOnZeroExit: true,
55
+ failurePattern: /test .+ \.\.\. FAILED/,
56
+ }),
57
+ /** TypeScript type checking */
58
+ typescript: () => ({
59
+ command: 'npx tsc --noEmit',
60
+ timeout: 60000,
61
+ successOnZeroExit: true,
62
+ issueExtractor: extractTypescriptIssues,
63
+ }),
64
+ /** ESLint */
65
+ eslint: (path) => ({
66
+ command: `npx eslint ${path ?? '.'} --format json`,
67
+ timeout: 30000,
68
+ successOnZeroExit: true,
69
+ issueExtractor: extractEslintIssues,
70
+ }),
71
+ };
72
+ /**
73
+ * VerificationRunner - Executes verification commands and parses results
74
+ */
75
+ export class VerificationRunner {
76
+ defaultCwd;
77
+ defaultTimeout;
78
+ defaultEnv;
79
+ constructor(options) {
80
+ this.defaultCwd = options?.cwd ?? process.cwd();
81
+ this.defaultTimeout = options?.timeout ?? 30000;
82
+ this.defaultEnv = options?.env ?? {};
83
+ }
84
+ /**
85
+ * Create a verification function from a command configuration
86
+ */
87
+ createVerifier(config) {
88
+ return async (trajectory, task) => {
89
+ // Interpolate command with trajectory/task values
90
+ const command = this.interpolateCommand(config.command, trajectory, task);
91
+ // Run the command
92
+ const result = await this.runCommand(command, {
93
+ cwd: config.cwd ?? this.defaultCwd,
94
+ env: { ...this.defaultEnv, ...config.env },
95
+ timeout: config.timeout ?? this.defaultTimeout,
96
+ });
97
+ // Determine success
98
+ let passed = false;
99
+ const combinedOutput = result.stdout + '\n' + result.stderr;
100
+ if (result.timedOut) {
101
+ passed = false;
102
+ }
103
+ else if (config.successOnZeroExit !== false && result.exitCode === 0) {
104
+ // Check success pattern if provided
105
+ if (config.successPattern) {
106
+ passed = config.successPattern.test(combinedOutput);
107
+ }
108
+ else {
109
+ passed = true;
110
+ }
111
+ }
112
+ else if (config.failurePattern) {
113
+ passed = !config.failurePattern.test(combinedOutput);
114
+ }
115
+ // Extract issues
116
+ let issues = [];
117
+ if (config.issueExtractor) {
118
+ issues = config.issueExtractor(combinedOutput, result.exitCode);
119
+ }
120
+ else if (!passed) {
121
+ // Default issue extraction
122
+ issues = this.extractDefaultIssues(combinedOutput, result.exitCode);
123
+ }
124
+ // Calculate confidence based on clarity of result
125
+ const confidence = result.timedOut
126
+ ? 0.5
127
+ : (config.successPattern || config.failurePattern || config.issueExtractor)
128
+ ? 0.9
129
+ : 0.7;
130
+ return {
131
+ passed,
132
+ confidence,
133
+ issues: issues.map((issue) => ({
134
+ type: issue.type,
135
+ description: issue.description,
136
+ severity: issue.severity,
137
+ })),
138
+ details: result.timedOut
139
+ ? 'Verification timed out'
140
+ : `Exit code: ${result.exitCode}\n${combinedOutput.slice(0, 2000)}`,
141
+ };
142
+ };
143
+ }
144
+ /**
145
+ * Run a command and capture output
146
+ */
147
+ async runCommand(command, options) {
148
+ return new Promise((resolve) => {
149
+ const cwd = options.cwd ?? this.defaultCwd;
150
+ const timeout = options.timeout ?? this.defaultTimeout;
151
+ const env = { ...process.env, ...this.defaultEnv, ...options.env };
152
+ let stdout = '';
153
+ let stderr = '';
154
+ let timedOut = false;
155
+ const child = spawn(command, {
156
+ shell: true,
157
+ cwd,
158
+ env,
159
+ });
160
+ const timer = setTimeout(() => {
161
+ timedOut = true;
162
+ child.kill('SIGTERM');
163
+ // Force kill after 5 seconds if still running
164
+ setTimeout(() => child.kill('SIGKILL'), 5000);
165
+ }, timeout);
166
+ child.stdout.on('data', (data) => {
167
+ stdout += data.toString();
168
+ });
169
+ child.stderr.on('data', (data) => {
170
+ stderr += data.toString();
171
+ });
172
+ child.on('close', (code) => {
173
+ clearTimeout(timer);
174
+ resolve({
175
+ stdout,
176
+ stderr,
177
+ exitCode: code ?? (timedOut ? 124 : 1),
178
+ timedOut,
179
+ });
180
+ });
181
+ child.on('error', (error) => {
182
+ clearTimeout(timer);
183
+ resolve({
184
+ stdout,
185
+ stderr: stderr + '\n' + error.message,
186
+ exitCode: 1,
187
+ timedOut: false,
188
+ });
189
+ });
190
+ });
191
+ }
192
+ /**
193
+ * Run a command synchronously (for simple checks)
194
+ */
195
+ runCommandSync(command, options) {
196
+ const cwd = options?.cwd ?? this.defaultCwd;
197
+ const timeout = options?.timeout ?? this.defaultTimeout;
198
+ const env = { ...process.env, ...this.defaultEnv, ...options?.env };
199
+ try {
200
+ const output = execSync(command, {
201
+ cwd,
202
+ env,
203
+ timeout,
204
+ encoding: 'utf-8',
205
+ stdio: ['pipe', 'pipe', 'pipe'],
206
+ });
207
+ return {
208
+ stdout: output,
209
+ stderr: '',
210
+ exitCode: 0,
211
+ timedOut: false,
212
+ };
213
+ }
214
+ catch (error) {
215
+ const timedOut = error.killed && error.signal === 'SIGTERM';
216
+ return {
217
+ stdout: error.stdout?.toString() ?? '',
218
+ stderr: error.stderr?.toString() ?? error.message,
219
+ exitCode: error.status ?? 1,
220
+ timedOut,
221
+ };
222
+ }
223
+ }
224
+ /**
225
+ * Interpolate command with trajectory/task values
226
+ */
227
+ interpolateCommand(command, trajectory, task) {
228
+ return command
229
+ .replace(/\{\{taskId\}\}/g, task.id)
230
+ .replace(/\{\{domain\}\}/g, task.domain ?? '')
231
+ .replace(/\{\{trajectoryId\}\}/g, trajectory.id)
232
+ .replace(/\{\{solution\}\}/g, typeof trajectory.outcome.solution === 'string'
233
+ ? trajectory.outcome.solution
234
+ : '');
235
+ }
236
+ /**
237
+ * Extract default issues from output
238
+ */
239
+ extractDefaultIssues(output, exitCode) {
240
+ const issues = [];
241
+ if (exitCode !== 0) {
242
+ // Look for common error patterns
243
+ const errorMatch = output.match(/(?:error|Error|ERROR)[:\s]+(.+?)(?:\n|$)/);
244
+ const failMatch = output.match(/(?:fail|Fail|FAIL)[:\s]+(.+?)(?:\n|$)/);
245
+ if (errorMatch) {
246
+ issues.push({
247
+ type: 'error',
248
+ description: errorMatch[1].slice(0, 200),
249
+ severity: 'critical',
250
+ });
251
+ }
252
+ else if (failMatch) {
253
+ issues.push({
254
+ type: 'incorrect',
255
+ description: failMatch[1].slice(0, 200),
256
+ severity: 'major',
257
+ });
258
+ }
259
+ else {
260
+ issues.push({
261
+ type: 'error',
262
+ description: `Command failed with exit code ${exitCode}`,
263
+ severity: 'major',
264
+ });
265
+ }
266
+ }
267
+ return issues;
268
+ }
269
+ /**
270
+ * Create a composite verifier that runs multiple verifications
271
+ */
272
+ createCompositeVerifier(configs) {
273
+ const verifiers = configs.map((config) => this.createVerifier(config));
274
+ return async (trajectory, task) => {
275
+ const results = [];
276
+ for (const verifier of verifiers) {
277
+ const result = await verifier(trajectory, task);
278
+ results.push(result);
279
+ // Fail fast on critical failure
280
+ if (!result.passed && result.issues?.some((i) => i.severity === 'critical')) {
281
+ break;
282
+ }
283
+ }
284
+ // Aggregate results
285
+ const allPassed = results.every((r) => r.passed);
286
+ const avgConfidence = results.reduce((sum, r) => sum + r.confidence, 0) / results.length;
287
+ const allIssues = results.flatMap((r) => r.issues ?? []);
288
+ const details = results.map((r) => r.details).filter(Boolean).join('\n---\n');
289
+ return {
290
+ passed: allPassed,
291
+ confidence: avgConfidence,
292
+ issues: allIssues,
293
+ details,
294
+ };
295
+ };
296
+ }
297
+ }
298
+ /**
299
+ * Create a verification runner
300
+ */
301
+ export function createVerificationRunner(options) {
302
+ return new VerificationRunner(options);
303
+ }
304
+ // Issue extractors for common test runners
305
+ function extractVitestIssues(output, _exitCode) {
306
+ const issues = [];
307
+ try {
308
+ // Try to parse JSON output
309
+ const jsonMatch = output.match(/\{[\s\S]*"testResults"[\s\S]*\}/);
310
+ if (jsonMatch) {
311
+ const data = JSON.parse(jsonMatch[0]);
312
+ for (const testResult of data.testResults ?? []) {
313
+ for (const assertion of testResult.assertionResults ?? []) {
314
+ if (assertion.status === 'failed') {
315
+ issues.push({
316
+ type: 'incorrect',
317
+ description: `${assertion.fullName}: ${assertion.failureMessages?.[0]?.slice(0, 200) ?? 'Failed'}`,
318
+ severity: 'major',
319
+ file: testResult.name,
320
+ });
321
+ }
322
+ }
323
+ }
324
+ }
325
+ }
326
+ catch {
327
+ // Fall back to pattern matching
328
+ const failureMatches = output.matchAll(/FAIL\s+(.+?)\n.*?(\d+)\s+failed/g);
329
+ for (const match of failureMatches) {
330
+ issues.push({
331
+ type: 'incorrect',
332
+ description: `Test suite failed: ${match[1]}`,
333
+ severity: 'major',
334
+ file: match[1],
335
+ });
336
+ }
337
+ }
338
+ return issues;
339
+ }
340
+ function extractJestIssues(output, _exitCode) {
341
+ const issues = [];
342
+ try {
343
+ const jsonMatch = output.match(/\{[\s\S]*"testResults"[\s\S]*\}/);
344
+ if (jsonMatch) {
345
+ const data = JSON.parse(jsonMatch[0]);
346
+ for (const testResult of data.testResults ?? []) {
347
+ for (const assertion of testResult.assertionResults ?? []) {
348
+ if (assertion.status === 'failed') {
349
+ issues.push({
350
+ type: 'incorrect',
351
+ description: `${assertion.fullName}: ${assertion.failureMessages?.[0]?.slice(0, 200) ?? 'Failed'}`,
352
+ severity: 'major',
353
+ file: testResult.name,
354
+ });
355
+ }
356
+ }
357
+ }
358
+ }
359
+ }
360
+ catch {
361
+ const failureMatches = output.matchAll(/● (.+)/g);
362
+ for (const match of failureMatches) {
363
+ issues.push({
364
+ type: 'incorrect',
365
+ description: match[1].slice(0, 200),
366
+ severity: 'major',
367
+ });
368
+ }
369
+ }
370
+ return issues;
371
+ }
372
+ function extractPytestIssues(output, _exitCode) {
373
+ const issues = [];
374
+ // Match pytest failure lines
375
+ const failureMatches = output.matchAll(/FAILED\s+(.+?)(?:::|$)/g);
376
+ for (const match of failureMatches) {
377
+ issues.push({
378
+ type: 'incorrect',
379
+ description: `Test failed: ${match[1]}`,
380
+ severity: 'major',
381
+ });
382
+ }
383
+ // Match pytest errors
384
+ const errorMatches = output.matchAll(/ERROR\s+(.+?)(?:\n|$)/g);
385
+ for (const match of errorMatches) {
386
+ issues.push({
387
+ type: 'error',
388
+ description: match[1].slice(0, 200),
389
+ severity: 'critical',
390
+ });
391
+ }
392
+ return issues;
393
+ }
394
+ function extractTypescriptIssues(output, _exitCode) {
395
+ const issues = [];
396
+ // Match TypeScript error format: file(line,col): error TS####: message
397
+ const errorMatches = output.matchAll(/(.+?)\((\d+),\d+\):\s+error\s+TS\d+:\s+(.+?)(?:\n|$)/g);
398
+ for (const match of errorMatches) {
399
+ issues.push({
400
+ type: 'error',
401
+ description: match[3].slice(0, 200),
402
+ severity: 'critical',
403
+ file: match[1],
404
+ line: parseInt(match[2], 10),
405
+ });
406
+ }
407
+ return issues;
408
+ }
409
+ function extractEslintIssues(output, _exitCode) {
410
+ const issues = [];
411
+ try {
412
+ const data = JSON.parse(output);
413
+ for (const file of data) {
414
+ for (const message of file.messages ?? []) {
415
+ const severity = message.severity === 2 ? 'major' : 'minor';
416
+ issues.push({
417
+ type: message.fatal ? 'error' : 'incorrect',
418
+ description: `${message.ruleId}: ${message.message}`,
419
+ severity,
420
+ file: file.filePath,
421
+ line: message.line,
422
+ });
423
+ }
424
+ }
425
+ }
426
+ catch {
427
+ // ESLint output wasn't JSON
428
+ const errorMatches = output.matchAll(/(\d+):\d+\s+error\s+(.+?)\s+(\S+)/g);
429
+ for (const match of errorMatches) {
430
+ issues.push({
431
+ type: 'error',
432
+ description: `${match[3]}: ${match[2]}`,
433
+ severity: 'major',
434
+ line: parseInt(match[1], 10),
435
+ });
436
+ }
437
+ }
438
+ return issues;
439
+ }
440
+ //# sourceMappingURL=verification-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-runner.js","sourceRoot":"","sources":["../../src/search/verification-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { SkillLibrary, createSkillLibrary, type AgentSkills, type TierRefreshResult, } from './skill-library.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surfacing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SkillLibrary, createSkillLibrary, } from './skill-library.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surfacing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Skill Library
3
+ * Tiered surfacing of playbooks for agent consumption
4
+ *
5
+ * Tiers:
6
+ * 1. Core Skills - Always in system prompt (highest confidence)
7
+ * 2. Domain Skills - Loaded when domain matches
8
+ * 3. Contextual - Injected based on task query
9
+ * 4. On-Demand - Available via MCP tool
10
+ */
11
+ import type { Task, Playbook, SkillLibraryConfig } from '../types/index.js';
12
+ import type { PlaybookLibrary } from '../memory/playbook.js';
13
+ /**
14
+ * Skills organized for agent context
15
+ */
16
+ export interface AgentSkills {
17
+ /** Core skills - always included */
18
+ core: Playbook[];
19
+ /** Domain-specific skills */
20
+ domain: Playbook[];
21
+ /** Task-specific contextual playbooks */
22
+ contextual: Playbook[];
23
+ /** Estimated token count */
24
+ totalTokenEstimate: number;
25
+ }
26
+ /**
27
+ * Result of refreshing skill tiers
28
+ */
29
+ export interface TierRefreshResult {
30
+ /** Playbook IDs promoted to core */
31
+ promoted: string[];
32
+ /** Playbook IDs demoted from core */
33
+ demoted: string[];
34
+ /** Current core skill count */
35
+ coreCount: number;
36
+ /** Domain skill counts */
37
+ domainCounts: Record<string, number>;
38
+ }
39
+ /**
40
+ * Skill Library
41
+ * Manages tiered access to playbooks for agent consumption
42
+ */
43
+ export declare class SkillLibrary {
44
+ private playbooks;
45
+ private config;
46
+ private coreSkills;
47
+ private domainSkills;
48
+ private lastRefresh;
49
+ private consecutiveFailures;
50
+ constructor(playbooks: PlaybookLibrary, config?: Partial<SkillLibraryConfig>);
51
+ /**
52
+ * Merge configuration with defaults
53
+ */
54
+ private mergeConfig;
55
+ /**
56
+ * Refresh skill tiers based on current playbook state
57
+ * Called periodically or after significant learning
58
+ */
59
+ refreshTiers(): Promise<TierRefreshResult>;
60
+ /**
61
+ * Check if a playbook qualifies for core skill status
62
+ */
63
+ private meetsPromotionCriteria;
64
+ /**
65
+ * Check if a core skill should be demoted
66
+ */
67
+ private meetsDemotionCriteria;
68
+ /**
69
+ * Get skills for agent system prompt
70
+ * Returns tiered skills based on task context
71
+ */
72
+ getSkillsForAgent(task: Task, options?: {
73
+ includeCore?: boolean;
74
+ includeDomain?: boolean;
75
+ includeContextual?: boolean;
76
+ }): Promise<AgentSkills>;
77
+ /**
78
+ * Estimate token count for playbooks
79
+ */
80
+ private estimateTokens;
81
+ /**
82
+ * Format skills for system prompt injection
83
+ */
84
+ formatForSystemPrompt(skills: AgentSkills): string;
85
+ /**
86
+ * Format a single playbook for prompt
87
+ */
88
+ private formatPlaybookForPrompt;
89
+ /**
90
+ * Record playbook usage outcome (inferred from trajectory)
91
+ * Called by learning pipeline after trajectory analysis
92
+ */
93
+ recordOutcome(playbookId: string, trajectoryId: string, success: boolean, context?: string): Promise<void>;
94
+ /**
95
+ * Get promotion candidates
96
+ */
97
+ getPromotionCandidates(): Promise<Playbook[]>;
98
+ /**
99
+ * Get demotion candidates
100
+ */
101
+ getDemotionCandidates(): Promise<Playbook[]>;
102
+ /**
103
+ * Get current core skills
104
+ */
105
+ getCoreSkills(): Playbook[];
106
+ /**
107
+ * Get domain skills
108
+ */
109
+ getDomainSkills(domain: string): Playbook[];
110
+ /**
111
+ * Get all domains with skills
112
+ */
113
+ getDomains(): string[];
114
+ /**
115
+ * Get statistics
116
+ */
117
+ getStats(): {
118
+ coreSkillCount: number;
119
+ domainSkillCounts: Record<string, number>;
120
+ lastRefresh: Date | null;
121
+ consecutiveFailures: Record<string, number>;
122
+ };
123
+ /**
124
+ * Get consecutive failure count for a playbook
125
+ */
126
+ getConsecutiveFailures(playbookId: string): number;
127
+ /**
128
+ * Reset consecutive failures for a playbook
129
+ */
130
+ resetConsecutiveFailures(playbookId: string): void;
131
+ /**
132
+ * Get all playbooks at risk of demotion
133
+ */
134
+ getAtRiskPlaybooks(): Array<{
135
+ playbook: Playbook;
136
+ consecutiveFailures: number;
137
+ failuresUntilDemotion: number;
138
+ }>;
139
+ /**
140
+ * Apply time-based decay to consecutive failures
141
+ * Reduces failure counts for playbooks that haven't been used recently
142
+ * @param decayAmount Amount to reduce failure count by (default: 1)
143
+ */
144
+ applyFailureDecay(decayAmount?: number): void;
145
+ /**
146
+ * Export consecutive failure state for persistence
147
+ */
148
+ exportFailureState(): Record<string, number>;
149
+ /**
150
+ * Import consecutive failure state from persistence
151
+ */
152
+ importFailureState(state: Record<string, number>): void;
153
+ }
154
+ /**
155
+ * Create a skill library
156
+ */
157
+ export declare function createSkillLibrary(playbooks: PlaybookLibrary, config?: Partial<SkillLibraryConfig>): SkillLibrary;
158
+ //# sourceMappingURL=skill-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-library.d.ts","sourceRoot":"","sources":["../../src/surfacing/skill-library.ts"],"names":[],"mappings":"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"}