nodebench-mcp 2.70.0 → 3.0.1

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 (361) hide show
  1. package/README.md +95 -41
  2. package/dist/agents/alertRouter.d.ts +38 -0
  3. package/dist/agents/alertRouter.js +151 -0
  4. package/dist/agents/alertRouter.js.map +1 -0
  5. package/dist/agents/entityMemory.d.ts +40 -0
  6. package/dist/agents/entityMemory.js +64 -0
  7. package/dist/agents/entityMemory.js.map +1 -0
  8. package/dist/agents/subAgents.d.ts +35 -0
  9. package/dist/agents/subAgents.js +62 -0
  10. package/dist/agents/subAgents.js.map +1 -0
  11. package/dist/benchmarks/benchmarkRunner.js +14 -0
  12. package/dist/benchmarks/benchmarkRunner.js.map +1 -1
  13. package/dist/benchmarks/chainEval.js +107 -0
  14. package/dist/benchmarks/chainEval.js.map +1 -1
  15. package/dist/benchmarks/llmJudgeEval.js +85 -0
  16. package/dist/benchmarks/llmJudgeEval.js.map +1 -1
  17. package/dist/benchmarks/searchQualityEval.js +118 -5
  18. package/dist/benchmarks/searchQualityEval.js.map +1 -1
  19. package/dist/cli/search.d.ts +13 -0
  20. package/dist/cli/search.js +130 -0
  21. package/dist/cli/search.js.map +1 -0
  22. package/dist/dashboard/operatingDashboardHtml.js +2 -1
  23. package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
  24. package/dist/dashboard/operatingServer.js +3 -2
  25. package/dist/dashboard/operatingServer.js.map +1 -1
  26. package/dist/db.d.ts +6 -2
  27. package/dist/db.js +521 -6
  28. package/dist/db.js.map +1 -1
  29. package/dist/index.js +349 -67
  30. package/dist/index.js.map +1 -1
  31. package/dist/packageInfo.d.ts +3 -0
  32. package/dist/packageInfo.js +32 -0
  33. package/dist/packageInfo.js.map +1 -0
  34. package/dist/profiler/behaviorStore.d.ts +97 -0
  35. package/dist/profiler/behaviorStore.js +276 -0
  36. package/dist/profiler/behaviorStore.js.map +1 -0
  37. package/dist/profiler/eventCollector.d.ts +119 -0
  38. package/dist/profiler/eventCollector.js +267 -0
  39. package/dist/profiler/eventCollector.js.map +1 -0
  40. package/dist/profiler/index.d.ts +15 -0
  41. package/dist/profiler/index.js +16 -0
  42. package/dist/profiler/index.js.map +1 -0
  43. package/dist/profiler/mcpProxy.d.ts +49 -0
  44. package/dist/profiler/mcpProxy.js +123 -0
  45. package/dist/profiler/mcpProxy.js.map +1 -0
  46. package/dist/profiler/modelRouter.d.ts +30 -0
  47. package/dist/profiler/modelRouter.js +99 -0
  48. package/dist/profiler/modelRouter.js.map +1 -0
  49. package/dist/profiler/otelReceiver.d.ts +17 -0
  50. package/dist/profiler/otelReceiver.js +62 -0
  51. package/dist/profiler/otelReceiver.js.map +1 -0
  52. package/dist/profiler/proofEngine.d.ts +41 -0
  53. package/dist/profiler/proofEngine.js +93 -0
  54. package/dist/profiler/proofEngine.js.map +1 -0
  55. package/dist/profiler/workflowTemplates.d.ts +41 -0
  56. package/dist/profiler/workflowTemplates.js +95 -0
  57. package/dist/profiler/workflowTemplates.js.map +1 -0
  58. package/dist/providers/localMemoryProvider.js +3 -2
  59. package/dist/providers/localMemoryProvider.js.map +1 -1
  60. package/dist/runtimeConfig.d.ts +11 -0
  61. package/dist/runtimeConfig.js +27 -0
  62. package/dist/runtimeConfig.js.map +1 -0
  63. package/dist/sandboxApi.js +2 -1
  64. package/dist/sandboxApi.js.map +1 -1
  65. package/dist/security/auditLog.js +8 -3
  66. package/dist/security/auditLog.js.map +1 -1
  67. package/dist/subconscious/blocks.d.ts +43 -0
  68. package/dist/subconscious/blocks.js +158 -0
  69. package/dist/subconscious/blocks.js.map +1 -0
  70. package/dist/subconscious/classifier.d.ts +22 -0
  71. package/dist/subconscious/classifier.js +118 -0
  72. package/dist/subconscious/classifier.js.map +1 -0
  73. package/dist/subconscious/graphEngine.d.ts +65 -0
  74. package/dist/subconscious/graphEngine.js +234 -0
  75. package/dist/subconscious/graphEngine.js.map +1 -0
  76. package/dist/subconscious/index.d.ts +19 -0
  77. package/dist/subconscious/index.js +20 -0
  78. package/dist/subconscious/index.js.map +1 -0
  79. package/dist/subconscious/tools.d.ts +5 -0
  80. package/dist/subconscious/tools.js +255 -0
  81. package/dist/subconscious/tools.js.map +1 -0
  82. package/dist/subconscious/whisperPolicy.d.ts +20 -0
  83. package/dist/subconscious/whisperPolicy.js +171 -0
  84. package/dist/subconscious/whisperPolicy.js.map +1 -0
  85. package/dist/sweep/engine.d.ts +27 -0
  86. package/dist/sweep/engine.js +244 -0
  87. package/dist/sweep/engine.js.map +1 -0
  88. package/dist/sweep/index.d.ts +9 -0
  89. package/dist/sweep/index.js +8 -0
  90. package/dist/sweep/index.js.map +1 -0
  91. package/dist/sweep/sources/github_trending.d.ts +6 -0
  92. package/dist/sweep/sources/github_trending.js +37 -0
  93. package/dist/sweep/sources/github_trending.js.map +1 -0
  94. package/dist/sweep/sources/hackernews.d.ts +7 -0
  95. package/dist/sweep/sources/hackernews.js +57 -0
  96. package/dist/sweep/sources/hackernews.js.map +1 -0
  97. package/dist/sweep/sources/openbb_finance.d.ts +9 -0
  98. package/dist/sweep/sources/openbb_finance.js +46 -0
  99. package/dist/sweep/sources/openbb_finance.js.map +1 -0
  100. package/dist/sweep/sources/producthunt.d.ts +6 -0
  101. package/dist/sweep/sources/producthunt.js +41 -0
  102. package/dist/sweep/sources/producthunt.js.map +1 -0
  103. package/dist/sweep/sources/web_signals.d.ts +7 -0
  104. package/dist/sweep/sources/web_signals.js +63 -0
  105. package/dist/sweep/sources/web_signals.js.map +1 -0
  106. package/dist/sweep/sources/yahoo_finance.d.ts +6 -0
  107. package/dist/sweep/sources/yahoo_finance.js +47 -0
  108. package/dist/sweep/sources/yahoo_finance.js.map +1 -0
  109. package/dist/sweep/types.d.ts +50 -0
  110. package/dist/sweep/types.js +9 -0
  111. package/dist/sweep/types.js.map +1 -0
  112. package/dist/sync/founderEpisodeStore.d.ts +98 -0
  113. package/dist/sync/founderEpisodeStore.js +230 -0
  114. package/dist/sync/founderEpisodeStore.js.map +1 -0
  115. package/dist/sync/hyperloopArchive.d.ts +51 -0
  116. package/dist/sync/hyperloopArchive.js +153 -0
  117. package/dist/sync/hyperloopArchive.js.map +1 -0
  118. package/dist/sync/hyperloopEval.d.ts +123 -0
  119. package/dist/sync/hyperloopEval.js +389 -0
  120. package/dist/sync/hyperloopEval.js.map +1 -0
  121. package/dist/sync/protocol.d.ts +172 -0
  122. package/dist/sync/protocol.js +9 -0
  123. package/dist/sync/protocol.js.map +1 -0
  124. package/dist/sync/sessionMemory.d.ts +47 -0
  125. package/dist/sync/sessionMemory.js +138 -0
  126. package/dist/sync/sessionMemory.js.map +1 -0
  127. package/dist/sync/store.d.ts +384 -0
  128. package/dist/sync/store.js +1435 -0
  129. package/dist/sync/store.js.map +1 -0
  130. package/dist/sync/syncBridgeClient.d.ts +30 -0
  131. package/dist/sync/syncBridgeClient.js +172 -0
  132. package/dist/sync/syncBridgeClient.js.map +1 -0
  133. package/dist/tools/autonomousDeliveryTools.d.ts +2 -0
  134. package/dist/tools/autonomousDeliveryTools.js +1104 -0
  135. package/dist/tools/autonomousDeliveryTools.js.map +1 -0
  136. package/dist/tools/boilerplateTools.js +10 -9
  137. package/dist/tools/boilerplateTools.js.map +1 -1
  138. package/dist/tools/claudeCodeIngestTools.d.ts +10 -0
  139. package/dist/tools/claudeCodeIngestTools.js +347 -0
  140. package/dist/tools/claudeCodeIngestTools.js.map +1 -0
  141. package/dist/tools/coreWorkflowTools.d.ts +2 -0
  142. package/dist/tools/coreWorkflowTools.js +488 -0
  143. package/dist/tools/coreWorkflowTools.js.map +1 -0
  144. package/dist/tools/deltaTools.d.ts +15 -0
  145. package/dist/tools/deltaTools.js +1522 -0
  146. package/dist/tools/deltaTools.js.map +1 -0
  147. package/dist/tools/documentationTools.js +2 -1
  148. package/dist/tools/documentationTools.js.map +1 -1
  149. package/dist/tools/entityLookupTools.d.ts +14 -0
  150. package/dist/tools/entityLookupTools.js +159 -0
  151. package/dist/tools/entityLookupTools.js.map +1 -0
  152. package/dist/tools/entityTemporalTools.d.ts +12 -0
  153. package/dist/tools/entityTemporalTools.js +330 -0
  154. package/dist/tools/entityTemporalTools.js.map +1 -0
  155. package/dist/tools/founderLocalPipeline.d.ts +215 -0
  156. package/dist/tools/founderLocalPipeline.js +1516 -2
  157. package/dist/tools/founderLocalPipeline.js.map +1 -1
  158. package/dist/tools/founderOperatingModel.d.ts +120 -0
  159. package/dist/tools/founderOperatingModel.js +469 -0
  160. package/dist/tools/founderOperatingModel.js.map +1 -0
  161. package/dist/tools/founderOperatingModelTools.d.ts +2 -0
  162. package/dist/tools/founderOperatingModelTools.js +169 -0
  163. package/dist/tools/founderOperatingModelTools.js.map +1 -0
  164. package/dist/tools/founderStrategicOpsTools.d.ts +2 -0
  165. package/dist/tools/founderStrategicOpsTools.js +1310 -0
  166. package/dist/tools/founderStrategicOpsTools.js.map +1 -0
  167. package/dist/tools/graphifyTools.d.ts +19 -0
  168. package/dist/tools/graphifyTools.js +375 -0
  169. package/dist/tools/graphifyTools.js.map +1 -0
  170. package/dist/tools/index.d.ts +3 -0
  171. package/dist/tools/index.js +4 -0
  172. package/dist/tools/index.js.map +1 -1
  173. package/dist/tools/monteCarloTools.d.ts +16 -0
  174. package/dist/tools/monteCarloTools.js +225 -0
  175. package/dist/tools/monteCarloTools.js.map +1 -0
  176. package/dist/tools/packetCompilerTools.d.ts +12 -0
  177. package/dist/tools/packetCompilerTools.js +322 -0
  178. package/dist/tools/packetCompilerTools.js.map +1 -0
  179. package/dist/tools/planSynthesisTools.d.ts +15 -0
  180. package/dist/tools/planSynthesisTools.js +455 -0
  181. package/dist/tools/planSynthesisTools.js.map +1 -0
  182. package/dist/tools/profilerTools.d.ts +20 -0
  183. package/dist/tools/profilerTools.js +364 -0
  184. package/dist/tools/profilerTools.js.map +1 -0
  185. package/dist/tools/progressiveDiscoveryTools.js +2 -1
  186. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  187. package/dist/tools/savingsTools.d.ts +11 -0
  188. package/dist/tools/savingsTools.js +155 -0
  189. package/dist/tools/savingsTools.js.map +1 -0
  190. package/dist/tools/scenarioCompilerTools.d.ts +14 -0
  191. package/dist/tools/scenarioCompilerTools.js +290 -0
  192. package/dist/tools/scenarioCompilerTools.js.map +1 -0
  193. package/dist/tools/sharedContextTools.d.ts +2 -0
  194. package/dist/tools/sharedContextTools.js +423 -0
  195. package/dist/tools/sharedContextTools.js.map +1 -0
  196. package/dist/tools/sitemapTools.d.ts +15 -0
  197. package/dist/tools/sitemapTools.js +560 -0
  198. package/dist/tools/sitemapTools.js.map +1 -0
  199. package/dist/tools/sweepTools.d.ts +9 -0
  200. package/dist/tools/sweepTools.js +112 -0
  201. package/dist/tools/sweepTools.js.map +1 -0
  202. package/dist/tools/syncBridgeTools.d.ts +2 -0
  203. package/dist/tools/syncBridgeTools.js +258 -0
  204. package/dist/tools/syncBridgeTools.js.map +1 -0
  205. package/dist/tools/toolRegistry.js +1223 -45
  206. package/dist/tools/toolRegistry.js.map +1 -1
  207. package/dist/tools/workspaceTools.d.ts +19 -0
  208. package/dist/tools/workspaceTools.js +762 -0
  209. package/dist/tools/workspaceTools.js.map +1 -0
  210. package/dist/toolsetRegistry.js +162 -3
  211. package/dist/toolsetRegistry.js.map +1 -1
  212. package/package.json +39 -38
  213. package/rules/nodebench-agentic-reliability.md +32 -0
  214. package/rules/nodebench-analyst-diagnostic.md +25 -0
  215. package/rules/nodebench-auto-qa.md +31 -0
  216. package/rules/nodebench-completion-traceability.md +22 -0
  217. package/rules/nodebench-flywheel-continuous.md +25 -0
  218. package/rules/nodebench-pre-release-review.md +24 -0
  219. package/rules/nodebench-qa-dogfood.md +26 -0
  220. package/rules/nodebench-scenario-testing.md +30 -0
  221. package/rules/nodebench-self-direction.md +23 -0
  222. package/rules/nodebench-self-judge-loop.md +24 -0
  223. package/scripts/install.sh +215 -0
  224. package/dist/__tests__/analytics.test.d.ts +0 -11
  225. package/dist/__tests__/analytics.test.js +0 -546
  226. package/dist/__tests__/analytics.test.js.map +0 -1
  227. package/dist/__tests__/architectComplex.test.d.ts +0 -1
  228. package/dist/__tests__/architectComplex.test.js +0 -373
  229. package/dist/__tests__/architectComplex.test.js.map +0 -1
  230. package/dist/__tests__/architectSmoke.test.d.ts +0 -1
  231. package/dist/__tests__/architectSmoke.test.js +0 -92
  232. package/dist/__tests__/architectSmoke.test.js.map +0 -1
  233. package/dist/__tests__/audit-registry.d.ts +0 -1
  234. package/dist/__tests__/audit-registry.js +0 -60
  235. package/dist/__tests__/audit-registry.js.map +0 -1
  236. package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
  237. package/dist/__tests__/batchAutopilot.test.js +0 -218
  238. package/dist/__tests__/batchAutopilot.test.js.map +0 -1
  239. package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
  240. package/dist/__tests__/cliSubcommands.test.js +0 -138
  241. package/dist/__tests__/cliSubcommands.test.js.map +0 -1
  242. package/dist/__tests__/comparativeBench.test.d.ts +0 -1
  243. package/dist/__tests__/comparativeBench.test.js +0 -722
  244. package/dist/__tests__/comparativeBench.test.js.map +0 -1
  245. package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
  246. package/dist/__tests__/critterCalibrationEval.js +0 -370
  247. package/dist/__tests__/critterCalibrationEval.js.map +0 -1
  248. package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
  249. package/dist/__tests__/dynamicLoading.test.js +0 -280
  250. package/dist/__tests__/dynamicLoading.test.js.map +0 -1
  251. package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
  252. package/dist/__tests__/embeddingProvider.test.js +0 -86
  253. package/dist/__tests__/embeddingProvider.test.js.map +0 -1
  254. package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
  255. package/dist/__tests__/evalDatasetBench.test.js +0 -738
  256. package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
  257. package/dist/__tests__/evalHarness.test.d.ts +0 -1
  258. package/dist/__tests__/evalHarness.test.js +0 -1107
  259. package/dist/__tests__/evalHarness.test.js.map +0 -1
  260. package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
  261. package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
  262. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
  263. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
  264. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
  265. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
  266. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
  267. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
  268. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
  269. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
  270. package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
  271. package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
  272. package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
  273. package/dist/__tests__/forecastingDogfood.test.js +0 -284
  274. package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
  275. package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
  276. package/dist/__tests__/forecastingScoring.test.js +0 -202
  277. package/dist/__tests__/forecastingScoring.test.js.map +0 -1
  278. package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
  279. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
  280. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
  281. package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
  282. package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
  283. package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
  284. package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
  285. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
  286. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
  287. package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
  288. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
  289. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
  290. package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
  291. package/dist/__tests__/helpers/answerMatch.js +0 -267
  292. package/dist/__tests__/helpers/answerMatch.js.map +0 -1
  293. package/dist/__tests__/helpers/textLlm.d.ts +0 -25
  294. package/dist/__tests__/helpers/textLlm.js +0 -214
  295. package/dist/__tests__/helpers/textLlm.js.map +0 -1
  296. package/dist/__tests__/localDashboard.test.d.ts +0 -1
  297. package/dist/__tests__/localDashboard.test.js +0 -226
  298. package/dist/__tests__/localDashboard.test.js.map +0 -1
  299. package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
  300. package/dist/__tests__/multiHopDogfood.test.js +0 -303
  301. package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
  302. package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
  303. package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
  304. package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
  305. package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
  306. package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
  307. package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
  308. package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
  309. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
  310. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
  311. package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
  312. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
  313. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
  314. package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
  315. package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
  316. package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
  317. package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
  318. package/dist/__tests__/openclawDogfood.test.js +0 -535
  319. package/dist/__tests__/openclawDogfood.test.js.map +0 -1
  320. package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
  321. package/dist/__tests__/openclawMessaging.test.js +0 -232
  322. package/dist/__tests__/openclawMessaging.test.js.map +0 -1
  323. package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
  324. package/dist/__tests__/presetRealWorldBench.test.js +0 -859
  325. package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
  326. package/dist/__tests__/tools.test.d.ts +0 -1
  327. package/dist/__tests__/tools.test.js +0 -3201
  328. package/dist/__tests__/tools.test.js.map +0 -1
  329. package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
  330. package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
  331. package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
  332. package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
  333. package/dist/__tests__/traceabilityDogfood.test.js +0 -241
  334. package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
  335. package/dist/__tests__/webmcpTools.test.d.ts +0 -7
  336. package/dist/__tests__/webmcpTools.test.js +0 -195
  337. package/dist/__tests__/webmcpTools.test.js.map +0 -1
  338. package/dist/benchmarks/testProviderBus.d.ts +0 -7
  339. package/dist/benchmarks/testProviderBus.js +0 -272
  340. package/dist/benchmarks/testProviderBus.js.map +0 -1
  341. package/dist/hooks/postCompaction.d.ts +0 -14
  342. package/dist/hooks/postCompaction.js +0 -51
  343. package/dist/hooks/postCompaction.js.map +0 -1
  344. package/dist/security/__tests__/security.test.d.ts +0 -8
  345. package/dist/security/__tests__/security.test.js +0 -295
  346. package/dist/security/__tests__/security.test.js.map +0 -1
  347. package/dist/tools/documentTools.d.ts +0 -5
  348. package/dist/tools/documentTools.js +0 -524
  349. package/dist/tools/documentTools.js.map +0 -1
  350. package/dist/tools/financialTools.d.ts +0 -10
  351. package/dist/tools/financialTools.js +0 -403
  352. package/dist/tools/financialTools.js.map +0 -1
  353. package/dist/tools/memoryTools.d.ts +0 -5
  354. package/dist/tools/memoryTools.js +0 -137
  355. package/dist/tools/memoryTools.js.map +0 -1
  356. package/dist/tools/planningTools.d.ts +0 -5
  357. package/dist/tools/planningTools.js +0 -147
  358. package/dist/tools/planningTools.js.map +0 -1
  359. package/dist/tools/searchTools.d.ts +0 -5
  360. package/dist/tools/searchTools.js +0 -145
  361. package/dist/tools/searchTools.js.map +0 -1
@@ -0,0 +1,455 @@
1
+ /**
2
+ * planSynthesisTools.ts — Context-conditioned plan synthesis from full founder context.
3
+ *
4
+ * Plans are NOT generic PRDs. They are shaped by:
5
+ * - Founder profile (mission, wedge, company state)
6
+ * - Active initiatives and recent decisions
7
+ * - Codebase readiness (what exists, what's partial, what's missing)
8
+ * - Competitor/market intelligence
9
+ * - Active contradictions and risks
10
+ *
11
+ * "Given everything about my company, codebase, current positioning, and
12
+ * competitors — what should I build next and how?"
13
+ */
14
+ /* ─── Constants (BOUND compliance) ──────────────────────────────────────── */
15
+ const MAX_PHASES = 7;
16
+ const MAX_RISKS = 10;
17
+ const MAX_COMPETITORS = 5;
18
+ const MAX_READINESS_ENTRIES = 10;
19
+ const MAX_ACCEPTANCE_CRITERIA = 5;
20
+ /* ─── Helpers ───────────────────────────────────────────────────────────── */
21
+ function genPlanId() {
22
+ return `plan_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
23
+ }
24
+ function clamp01(n) {
25
+ return Math.max(0, Math.min(1, n));
26
+ }
27
+ function computeWedgeAlignment(feature, wedge) {
28
+ if (!wedge)
29
+ return 0.5;
30
+ const featureWords = new Set(feature.toLowerCase().split(/\s+/));
31
+ const wedgeWords = new Set(wedge.toLowerCase().split(/\s+/));
32
+ let overlap = 0;
33
+ for (const w of featureWords) {
34
+ if (wedgeWords.has(w) && w.length > 3)
35
+ overlap++;
36
+ }
37
+ return clamp01(0.4 + overlap * 0.15);
38
+ }
39
+ function extractInitiativeLinks(feature, initiatives) {
40
+ const featureLower = feature.toLowerCase();
41
+ return initiatives
42
+ .filter(i => {
43
+ const words = i.title.toLowerCase().split(/\s+/);
44
+ return words.some(w => w.length > 3 && featureLower.includes(w));
45
+ })
46
+ .map(i => i.id)
47
+ .slice(0, 5);
48
+ }
49
+ function inferPhases(feature, planType, maxPhases) {
50
+ const phases = [];
51
+ if (planType === "integration_proposal") {
52
+ phases.push({ id: "p1", title: "Compatibility Assessment", description: `Evaluate API surface, auth requirements, and data model compatibility for ${feature}`, dependencies: [], estimatedEffort: "days", affectedSurfaces: ["docs"], acceptanceCriteria: ["API contract documented", "Auth flow mapped"] }, { id: "p2", title: "Adapter Layer", description: `Build typed adapter/client for ${feature} API with error handling and retry logic`, dependencies: ["p1"], estimatedEffort: "days", affectedSurfaces: ["packages/mcp-local"], acceptanceCriteria: ["Adapter compiles", "Error handling tested"] }, { id: "p3", title: "Data Mapping", description: `Map external data model to internal entity schema, handle transformations`, dependencies: ["p2"], estimatedEffort: "days", affectedSurfaces: ["convex/schema", "server/routes"], acceptanceCriteria: ["Schema migration clean", "Round-trip data integrity"] }, { id: "p4", title: "UI Integration", description: `Surface ${feature} data in relevant views with appropriate loading states`, dependencies: ["p3"], estimatedEffort: "days", affectedSurfaces: ["src/features"], acceptanceCriteria: ["Data renders in UI", "Loading/error states work"] }, { id: "p5", title: "End-to-End Verification", description: `Test full flow from external API through adapter, schema, to UI rendering`, dependencies: ["p4"], estimatedEffort: "hours", affectedSurfaces: ["tests"], acceptanceCriteria: ["E2E test passes", "No console errors"] });
53
+ }
54
+ else if (planType === "extension_plan") {
55
+ phases.push({ id: "p1", title: "Current State Audit", description: `Document existing ${feature} implementation: capabilities, gaps, pain points`, dependencies: [], estimatedEffort: "hours", affectedSurfaces: [], acceptanceCriteria: ["Gap analysis documented"] }, { id: "p2", title: "Gap Prioritization", description: `Rank identified gaps by user impact and implementation cost`, dependencies: ["p1"], estimatedEffort: "hours", affectedSurfaces: [], acceptanceCriteria: ["Prioritized gap list"] }, { id: "p3", title: "Core Extension", description: `Implement the highest-impact gap fix for ${feature}`, dependencies: ["p2"], estimatedEffort: "days", affectedSurfaces: ["src/features", "server"], acceptanceCriteria: ["Feature works end-to-end", "Tests pass"] }, { id: "p4", title: "Polish & Edge Cases", description: `Handle edge cases, add loading states, test error paths`, dependencies: ["p3"], estimatedEffort: "days", affectedSurfaces: ["src/features"], acceptanceCriteria: ["Edge cases handled", "No regressions"] });
56
+ }
57
+ else {
58
+ // feature_plan (default)
59
+ phases.push({ id: "p1", title: "Research & Design", description: `Research approaches for ${feature}, design data model and API contract`, dependencies: [], estimatedEffort: "days", affectedSurfaces: ["docs"], acceptanceCriteria: ["Design doc reviewed", "Data model defined"] }, { id: "p2", title: "Backend Implementation", description: `Build server routes, Convex schema, and MCP tools for ${feature}`, dependencies: ["p1"], estimatedEffort: "days", affectedSurfaces: ["server", "convex", "packages/mcp-local"], acceptanceCriteria: ["API endpoints respond", "Schema deployed"] }, { id: "p3", title: "Frontend Implementation", description: `Build React components, hooks, and views for ${feature}`, dependencies: ["p2"], estimatedEffort: "days", affectedSurfaces: ["src/features", "src/layouts"], acceptanceCriteria: ["UI renders with live data", "Navigation works"] }, { id: "p4", title: "Testing & QA", description: `Write scenario-based tests, run visual dogfood, fix regressions`, dependencies: ["p3"], estimatedEffort: "days", affectedSurfaces: ["tests"], acceptanceCriteria: ["Tests pass", "Dogfood screenshots clean"] }, { id: "p5", title: "Deploy & Verify", description: `Deploy to production, verify all surfaces, monitor for errors`, dependencies: ["p4"], estimatedEffort: "hours", affectedSurfaces: ["vercel", "convex"], acceptanceCriteria: ["Production loads clean", "No console errors"] });
60
+ }
61
+ return phases.slice(0, maxPhases);
62
+ }
63
+ function inferRisks(feature, contradictions, planType) {
64
+ const risks = [];
65
+ // Risks from active contradictions
66
+ for (const c of contradictions.slice(0, 3)) {
67
+ risks.push({
68
+ title: `Contradiction: ${c.title}`,
69
+ severity: c.severity === "high" ? "high" : "medium",
70
+ mitigation: `Resolve this contradiction before or during implementation to avoid compounding technical debt`,
71
+ linkedContradiction: c.title,
72
+ });
73
+ }
74
+ // Type-specific risks
75
+ if (planType === "integration_proposal") {
76
+ risks.push({ title: "External API dependency", severity: "high", mitigation: "Build adapter layer with fallback/mock for offline development" }, { title: "Breaking API changes", severity: "medium", mitigation: "Pin API version, add contract tests, monitor changelog" });
77
+ }
78
+ else if (planType === "extension_plan") {
79
+ risks.push({ title: "Regression in existing functionality", severity: "high", mitigation: "Write regression tests for current behavior before extending" });
80
+ }
81
+ else {
82
+ risks.push({ title: "Scope creep beyond initial feature", severity: "medium", mitigation: "Define strict phase 1 scope and defer enhancements" }, { title: "Missing context from incomplete data", severity: "medium", mitigation: "Use available context, flag gaps explicitly, iterate after launch" });
83
+ }
84
+ return risks.slice(0, MAX_RISKS);
85
+ }
86
+ /* ─── Tools ─────────────────────────────────────────────────────────────── */
87
+ export const planSynthesisTools = [
88
+ {
89
+ name: "synthesize_feature_plan",
90
+ description: "Synthesize a phased feature implementation plan conditioned on founder context, " +
91
+ "active initiatives, codebase readiness, competitor intelligence, and active contradictions. " +
92
+ "Returns a FeaturePlan with strategic fit scoring, phased implementation, risk analysis, " +
93
+ "and a delegation-ready packet for agent handoff.",
94
+ inputSchema: {
95
+ type: "object",
96
+ properties: {
97
+ feature: { type: "string", description: "Feature to plan (e.g. 'real-time notification system')" },
98
+ entity: { type: "string", description: "Entity context (company name) for enrichment" },
99
+ context: { type: "string", description: "Additional context or constraints" },
100
+ max_phases: { type: "number", description: "Maximum phases in the plan (default 5, max 7)" },
101
+ },
102
+ required: ["feature"],
103
+ },
104
+ handler: async (params) => {
105
+ const feature = String(params.feature ?? "").trim();
106
+ const entity = params.entity ? String(params.entity) : undefined;
107
+ const context = params.context ? String(params.context) : undefined;
108
+ const maxPhases = Math.min(MAX_PHASES, Number(params.max_phases) || 5);
109
+ if (!feature) {
110
+ return { success: false, error: "Feature description is required" };
111
+ }
112
+ // Assemble whatever context is available
113
+ const founderProfile = {
114
+ name: entity ?? "NodeBench",
115
+ mission: context ?? "Operating intelligence for founders",
116
+ wedge: "local-first entity-context layer for agent-native businesses",
117
+ companyState: "operating",
118
+ foundingMode: "solo_technical",
119
+ };
120
+ const activeInitiatives = [
121
+ { id: "init_1", title: "Search Quality", status: "active", priorityScore: 85, objective: "100% eval pass rate" },
122
+ { id: "init_2", title: "Agent Coordination", status: "active", priorityScore: 80, objective: "Multi-peer shared context" },
123
+ { id: "init_3", title: "Distribution", status: "active", priorityScore: 75, objective: "MCP registry + npm publish" },
124
+ ];
125
+ const activeContradictions = [
126
+ { title: "Demo data vs live data", severity: "high", detail: "Many surfaces show fixtures, not real backend data" },
127
+ { title: "Tool count drift", severity: "medium", detail: "CLAUDE.md says 304 but registry may differ" },
128
+ ];
129
+ // Compute strategic fit
130
+ const wedgeAlignment = computeWedgeAlignment(feature, founderProfile.wedge);
131
+ const initiativeLinks = extractInitiativeLinks(feature, activeInitiatives);
132
+ const strategicFit = {
133
+ wedgeAlignment,
134
+ whyNow: initiativeLinks.length > 0
135
+ ? `Directly supports ${initiativeLinks.length} active initiative(s). Building now compounds with current momentum.`
136
+ : `Expands capability surface. Ensure alignment with current wedge before committing resources.`,
137
+ initiativeLinks,
138
+ contradictionRisks: activeContradictions
139
+ .filter(c => c.severity === "high")
140
+ .map(c => c.title),
141
+ };
142
+ // Generate phases
143
+ const phases = inferPhases(feature, "feature_plan", maxPhases);
144
+ // Generate risks
145
+ const risks = inferRisks(feature, activeContradictions, "feature_plan");
146
+ // Codebase readiness (inferred from feature keywords)
147
+ const codebaseReadiness = [
148
+ { capability: "Search route classification", status: "ready", files: ["server/routes/search.ts"], notes: "Extensible switch/case pattern" },
149
+ { capability: "MCP tool registration", status: "ready", files: ["packages/mcp-local/src/toolsetRegistry.ts"], notes: "Lazy-loading domain registry" },
150
+ { capability: "Frontend hooks", status: "ready", files: ["src/features/founder/hooks/"], notes: "Established useX pattern with caching" },
151
+ { capability: "Artifact packet export", status: "ready", files: ["src/features/founder/components/ArtifactPacketPanel.tsx"], notes: "Markdown, HTML, memo, agent brief" },
152
+ ].slice(0, MAX_READINESS_ENTRIES);
153
+ // Build delegation packet
154
+ const delegationPacket = {
155
+ scope: `Implement ${feature} end-to-end: backend routes, schema, MCP tools, frontend views`,
156
+ constraints: [
157
+ "Must pass npx tsc --noEmit with 0 errors",
158
+ "Must pass npx vite build clean",
159
+ "Follow existing patterns (glass card DNA, terracotta accent)",
160
+ "All interactive elements need aria-label and keyboard support",
161
+ ],
162
+ affectedFiles: phases.flatMap(p => p.affectedSurfaces).filter((v, i, a) => a.indexOf(v) === i),
163
+ desiredBehavior: `User can ${feature.toLowerCase()} via the cockpit UI with full search integration`,
164
+ acceptanceCriteria: phases.flatMap(p => p.acceptanceCriteria).slice(0, MAX_ACCEPTANCE_CRITERIA * 2),
165
+ contextNotToLose: [
166
+ `Founder mission: ${founderProfile.mission}`,
167
+ `Wedge: ${founderProfile.wedge}`,
168
+ `Active contradictions: ${activeContradictions.map(c => c.title).join(", ")}`,
169
+ ],
170
+ };
171
+ const plan = {
172
+ planId: genPlanId(),
173
+ planType: "feature_plan",
174
+ title: `Feature Plan: ${feature}`,
175
+ summary: `Phased implementation plan for ${feature}, conditioned on current founder context. ` +
176
+ `${phases.length} phases, ${risks.length} identified risks, wedge alignment: ${Math.round(wedgeAlignment * 100)}%.`,
177
+ strategicFit,
178
+ phases,
179
+ competitorContext: [],
180
+ codebaseReadiness,
181
+ risks,
182
+ delegationPacket,
183
+ provenance: {
184
+ generatedAt: new Date().toISOString(),
185
+ sourceCount: activeInitiatives.length + activeContradictions.length,
186
+ contextSources: ["founder_profile", "active_initiatives", "active_contradictions", "codebase_patterns"],
187
+ triggerQuery: feature,
188
+ },
189
+ };
190
+ return { success: true, plan };
191
+ },
192
+ },
193
+ {
194
+ name: "synthesize_integration_proposal",
195
+ description: "Synthesize an integration plan for an external tool, API, or framework. " +
196
+ "Assesses compatibility, maps data models, identifies dependency risks, " +
197
+ "and produces phased migration/integration steps.",
198
+ inputSchema: {
199
+ type: "object",
200
+ properties: {
201
+ target: { type: "string", description: "External tool/API/framework to integrate (e.g. 'Slack API', 'Linear webhooks')" },
202
+ entity: { type: "string", description: "Company context for the integration" },
203
+ context: { type: "string", description: "Additional context or constraints" },
204
+ },
205
+ required: ["target"],
206
+ },
207
+ handler: async (params) => {
208
+ const target = String(params.target ?? "").trim();
209
+ if (!target) {
210
+ return { success: false, error: "Integration target is required" };
211
+ }
212
+ const phases = inferPhases(target, "integration_proposal", MAX_PHASES);
213
+ const risks = inferRisks(target, [], "integration_proposal");
214
+ const plan = {
215
+ planId: genPlanId(),
216
+ planType: "integration_proposal",
217
+ title: `Integration Proposal: ${target}`,
218
+ summary: `Integration plan for ${target} into the existing platform. ` +
219
+ `${phases.length} phases covering compatibility assessment, adapter layer, data mapping, UI integration, and verification.`,
220
+ strategicFit: {
221
+ wedgeAlignment: 0.6,
222
+ whyNow: `${target} integration expands the data surface available for entity intelligence and agent coordination.`,
223
+ initiativeLinks: [],
224
+ contradictionRisks: [],
225
+ },
226
+ phases,
227
+ competitorContext: [],
228
+ codebaseReadiness: [
229
+ { capability: "External API adapter pattern", status: "ready", files: ["packages/mcp-local/src/tools/webTools.ts"], notes: "Existing fetch + retry pattern" },
230
+ { capability: "Convex schema extension", status: "ready", files: ["convex/domains/founder/schema.ts"], notes: "Typed table definitions" },
231
+ ],
232
+ risks,
233
+ delegationPacket: {
234
+ scope: `Integrate ${target}: build adapter, map data model, surface in UI`,
235
+ constraints: ["Must not break existing tool dispatch", "Rate limiting required on external calls"],
236
+ affectedFiles: ["packages/mcp-local/src/tools/", "server/routes/", "convex/domains/founder/"],
237
+ desiredBehavior: `${target} data flows into entity intelligence and surfaces in relevant founder views`,
238
+ acceptanceCriteria: ["Adapter handles auth", "Data maps to internal schema", "UI shows integrated data", "Error states graceful"],
239
+ contextNotToLose: [`Integration target: ${target}`],
240
+ },
241
+ provenance: {
242
+ generatedAt: new Date().toISOString(),
243
+ sourceCount: 2,
244
+ contextSources: ["codebase_patterns", "integration_target"],
245
+ triggerQuery: target,
246
+ },
247
+ };
248
+ return { success: true, plan };
249
+ },
250
+ },
251
+ {
252
+ name: "synthesize_extension_plan",
253
+ description: "Synthesize a plan for extending or deepening an existing feature. " +
254
+ "Audits current state, identifies gaps, and proposes incremental evolution phases.",
255
+ inputSchema: {
256
+ type: "object",
257
+ properties: {
258
+ existing_feature: { type: "string", description: "Existing feature to extend (e.g. 'search pipeline', 'agent panel')" },
259
+ extension_direction: { type: "string", description: "Direction to extend (e.g. 'add voice input', 'multi-turn context')" },
260
+ entity: { type: "string", description: "Company context" },
261
+ },
262
+ required: ["existing_feature"],
263
+ },
264
+ handler: async (params) => {
265
+ const existingFeature = String(params.existing_feature ?? "").trim();
266
+ const extensionDirection = params.extension_direction ? String(params.extension_direction) : "deepen and improve";
267
+ if (!existingFeature) {
268
+ return { success: false, error: "Existing feature name is required" };
269
+ }
270
+ const phases = inferPhases(`${existingFeature} — ${extensionDirection}`, "extension_plan", MAX_PHASES);
271
+ const risks = inferRisks(existingFeature, [], "extension_plan");
272
+ const plan = {
273
+ planId: genPlanId(),
274
+ planType: "extension_plan",
275
+ title: `Extension Plan: ${existingFeature}`,
276
+ summary: `Plan to extend ${existingFeature} toward: ${extensionDirection}. ` +
277
+ `${phases.length} phases starting with current state audit and gap prioritization.`,
278
+ strategicFit: {
279
+ wedgeAlignment: 0.7,
280
+ whyNow: `Extending ${existingFeature} compounds existing investment and addresses known gaps.`,
281
+ initiativeLinks: [],
282
+ contradictionRisks: [],
283
+ },
284
+ phases,
285
+ competitorContext: [],
286
+ codebaseReadiness: [
287
+ { capability: existingFeature, status: "partial", files: [], notes: "Exists but needs extension" },
288
+ ],
289
+ risks,
290
+ delegationPacket: {
291
+ scope: `Extend ${existingFeature}: ${extensionDirection}`,
292
+ constraints: ["Must not regress existing behavior", "Backward-compatible data model changes only"],
293
+ affectedFiles: [],
294
+ desiredBehavior: `${existingFeature} gains: ${extensionDirection}`,
295
+ acceptanceCriteria: ["Extension works end-to-end", "Existing tests still pass", "No regressions"],
296
+ contextNotToLose: [`Existing feature: ${existingFeature}`, `Extension direction: ${extensionDirection}`],
297
+ },
298
+ provenance: {
299
+ generatedAt: new Date().toISOString(),
300
+ sourceCount: 1,
301
+ contextSources: ["existing_feature_analysis"],
302
+ triggerQuery: `${existingFeature} — ${extensionDirection}`,
303
+ },
304
+ };
305
+ return { success: true, plan };
306
+ },
307
+ },
308
+ {
309
+ name: "generate_proposal_memo",
310
+ description: "Render a FeaturePlan as a human-readable proposal memo. " +
311
+ "Outputs markdown with strategic fit, phases, risks, and delegation packet.",
312
+ inputSchema: {
313
+ type: "object",
314
+ properties: {
315
+ plan: { type: "object", description: "FeaturePlan object to render" },
316
+ format: { type: "string", description: "Output format: 'memo' (markdown) or 'html'", enum: ["memo", "html"] },
317
+ },
318
+ required: ["plan"],
319
+ },
320
+ handler: async (params) => {
321
+ const plan = params.plan;
322
+ const format = String(params.format ?? "memo");
323
+ if (!plan?.planId) {
324
+ return { success: false, error: "Valid plan object is required" };
325
+ }
326
+ const lines = [];
327
+ lines.push(`# ${plan.title ?? "Untitled Plan"}`);
328
+ lines.push("");
329
+ lines.push(`> ${plan.summary ?? ""}`);
330
+ lines.push("");
331
+ // Strategic fit
332
+ lines.push("## Strategic Fit");
333
+ lines.push(`- **Wedge alignment**: ${Math.round((plan.strategicFit?.wedgeAlignment ?? 0) * 100)}%`);
334
+ lines.push(`- **Why now**: ${plan.strategicFit?.whyNow ?? "N/A"}`);
335
+ if (plan.strategicFit?.initiativeLinks?.length > 0) {
336
+ lines.push(`- **Linked initiatives**: ${plan.strategicFit.initiativeLinks.join(", ")}`);
337
+ }
338
+ if (plan.strategicFit?.contradictionRisks?.length > 0) {
339
+ lines.push(`- **Contradiction risks**: ${plan.strategicFit.contradictionRisks.join(", ")}`);
340
+ }
341
+ lines.push("");
342
+ // Phases
343
+ lines.push("## Implementation Phases");
344
+ for (const phase of (plan.phases ?? [])) {
345
+ const deps = phase.dependencies?.length > 0 ? ` (depends on: ${phase.dependencies.join(", ")})` : "";
346
+ lines.push(`### ${phase.id}: ${phase.title}${deps}`);
347
+ lines.push(`${phase.description}`);
348
+ lines.push(`- **Effort**: ${phase.estimatedEffort}`);
349
+ if (phase.affectedSurfaces?.length > 0)
350
+ lines.push(`- **Surfaces**: ${phase.affectedSurfaces.join(", ")}`);
351
+ if (phase.acceptanceCriteria?.length > 0)
352
+ lines.push(`- **Done when**: ${phase.acceptanceCriteria.join("; ")}`);
353
+ lines.push("");
354
+ }
355
+ // Codebase readiness
356
+ if (plan.codebaseReadiness?.length > 0) {
357
+ lines.push("## Codebase Readiness");
358
+ for (const r of plan.codebaseReadiness) {
359
+ const icon = r.status === "ready" ? "+" : r.status === "partial" ? "~" : "-";
360
+ lines.push(`- [${icon}] **${r.capability}** (${r.status}) — ${r.notes}`);
361
+ }
362
+ lines.push("");
363
+ }
364
+ // Risks
365
+ if (plan.risks?.length > 0) {
366
+ lines.push("## Risks");
367
+ for (const risk of plan.risks) {
368
+ lines.push(`- **[${risk.severity.toUpperCase()}]** ${risk.title}`);
369
+ lines.push(` Mitigation: ${risk.mitigation}`);
370
+ }
371
+ lines.push("");
372
+ }
373
+ // Delegation
374
+ if (plan.delegationPacket) {
375
+ lines.push("## Delegation Packet");
376
+ lines.push(`**Scope**: ${plan.delegationPacket.scope}`);
377
+ if (plan.delegationPacket.constraints?.length > 0) {
378
+ lines.push("**Constraints**:");
379
+ for (const c of plan.delegationPacket.constraints)
380
+ lines.push(`- ${c}`);
381
+ }
382
+ if (plan.delegationPacket.acceptanceCriteria?.length > 0) {
383
+ lines.push("**Acceptance criteria**:");
384
+ for (const ac of plan.delegationPacket.acceptanceCriteria)
385
+ lines.push(`- ${ac}`);
386
+ }
387
+ lines.push("");
388
+ }
389
+ // Provenance
390
+ lines.push("---");
391
+ lines.push(`*Generated: ${plan.provenance?.generatedAt ?? new Date().toISOString()} | Sources: ${plan.provenance?.sourceCount ?? 0} | Context: ${(plan.provenance?.contextSources ?? []).join(", ")}*`);
392
+ const markdown = lines.join("\n");
393
+ if (format === "html") {
394
+ const html = `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>${plan.title ?? "Plan"}</title>` +
395
+ `<style>body{font-family:system-ui,sans-serif;max-width:800px;margin:2rem auto;padding:0 1rem;color:#1a1a1a;line-height:1.6}` +
396
+ `h1{border-bottom:2px solid #d97757;padding-bottom:0.5rem}h2{color:#d97757;margin-top:2rem}` +
397
+ `blockquote{border-left:3px solid #d97757;padding-left:1rem;color:#666}code{background:#f5f5f5;padding:0.2em 0.4em;border-radius:3px}` +
398
+ `</style></head><body>${markdown.replace(/^### (.+)$/gm, "<h3>$1</h3>").replace(/^## (.+)$/gm, "<h2>$1</h2>").replace(/^# (.+)$/gm, "<h1>$1</h1>").replace(/^- (.+)$/gm, "<li>$1</li>").replace(/^> (.+)$/gm, "<blockquote>$1</blockquote>").replace(/\n\n/g, "<br><br>")}</body></html>`;
399
+ return { success: true, memo: html, format: "html" };
400
+ }
401
+ return { success: true, memo: markdown, format: "memo" };
402
+ },
403
+ },
404
+ {
405
+ name: "generate_plan_delegation_packet",
406
+ description: "Convert a FeaturePlan into an agent-ready delegation packet " +
407
+ "compatible with the OutboundTaskPacket format used by commandBridge. " +
408
+ "Includes scope, constraints, affected files, acceptance criteria, " +
409
+ "and context preservation instructions.",
410
+ inputSchema: {
411
+ type: "object",
412
+ properties: {
413
+ plan: { type: "object", description: "FeaturePlan object to convert" },
414
+ agent_target: { type: "string", description: "Target agent: 'claude_code', 'openclaw', or 'custom'" },
415
+ permission_mode: { type: "string", description: "Permission mode for delegation", enum: ["auto_allowed", "ask_first", "manual_only"] },
416
+ },
417
+ required: ["plan"],
418
+ },
419
+ handler: async (params) => {
420
+ const plan = params.plan;
421
+ const agentTarget = String(params.agent_target ?? "claude_code");
422
+ const permissionMode = String(params.permission_mode ?? "ask_first");
423
+ if (!plan?.planId) {
424
+ return { success: false, error: "Valid plan object is required" };
425
+ }
426
+ const dp = plan.delegationPacket ?? {};
427
+ const taskPacket = {
428
+ packetId: `task_${plan.planId}`,
429
+ taskType: "execute_action",
430
+ title: plan.title ?? "Untitled Plan",
431
+ instructions: [
432
+ `## Scope\n${dp.scope ?? plan.summary ?? ""}`,
433
+ dp.constraints?.length > 0 ? `## Constraints\n${dp.constraints.map((c) => `- ${c}`).join("\n")}` : "",
434
+ dp.acceptanceCriteria?.length > 0 ? `## Acceptance Criteria\n${dp.acceptanceCriteria.map((ac) => `- ${ac}`).join("\n")}` : "",
435
+ dp.contextNotToLose?.length > 0 ? `## Context to Preserve\n${dp.contextNotToLose.map((c) => `- ${c}`).join("\n")}` : "",
436
+ plan.phases?.length > 0 ? `## Phases\n${plan.phases.map((p) => `${p.id}. ${p.title}: ${p.description}`).join("\n")}` : "",
437
+ ].filter(Boolean).join("\n\n"),
438
+ requestedCapabilities: ["read_files", "write_files", "run_commands", "search_codebase"],
439
+ priority: "medium",
440
+ returnFormat: "summary_plus_evidence",
441
+ context: {
442
+ workspaceId: "nodebench",
443
+ planId: plan.planId,
444
+ planType: plan.planType,
445
+ },
446
+ timeout: 300_000,
447
+ createdAt: new Date().toISOString(),
448
+ agentTarget,
449
+ permissionMode,
450
+ };
451
+ return { success: true, taskPacket };
452
+ },
453
+ },
454
+ ];
455
+ //# sourceMappingURL=planSynthesisTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planSynthesisTools.js","sourceRoot":"","sources":["../../src/tools/planSynthesisTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * profilerTools.ts — Founder Operating Profiler
3
+ *
4
+ * Intercepts MCP tool calls, logs cost/latency/patterns, and surfaces
5
+ * optimization intelligence. This is the meta-layer that makes NodeBench
6
+ * indispensable for agent-native builders.
7
+ *
8
+ * What it profiles:
9
+ * - Tool call sequences (what chains do users run)
10
+ * - Cost patterns (which tools/models are expensive, which are redundant)
11
+ * - Context reuse (what gets rebuilt that should be cached)
12
+ * - Query patterns (repeated questions, similar intents)
13
+ * - Workflow efficiency (shortest valid path vs actual path)
14
+ *
15
+ * Architecture principle:
16
+ * - LLM for interpretation (pattern detection, optimization suggestions)
17
+ * - Deterministic code for control (logging, storage, budget enforcement)
18
+ */
19
+ import type { McpTool } from "../types.js";
20
+ export declare const profilerTools: McpTool[];