@stackmemoryai/stackmemory 0.5.59 → 0.5.62

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 (652) hide show
  1. package/README.md +105 -1
  2. package/dist/scripts/initialize.js +68 -1
  3. package/dist/scripts/initialize.js.map +2 -2
  4. package/dist/src/cli/claude-sm.js +130 -50
  5. package/dist/src/cli/claude-sm.js.map +2 -2
  6. package/dist/src/cli/index.js +18 -3
  7. package/dist/src/cli/index.js.map +3 -3
  8. package/dist/src/core/extensions/custom-tools.js +567 -0
  9. package/dist/src/core/extensions/custom-tools.js.map +7 -0
  10. package/dist/src/core/extensions/index.js +55 -0
  11. package/dist/src/core/extensions/index.js.map +7 -0
  12. package/dist/src/core/extensions/loader.js +709 -0
  13. package/dist/src/core/extensions/loader.js.map +7 -0
  14. package/dist/src/core/extensions/plugin-system.js +506 -0
  15. package/dist/src/core/extensions/plugin-system.js.map +7 -0
  16. package/dist/src/core/extensions/provider-adapter.js +617 -0
  17. package/dist/src/core/extensions/provider-adapter.js.map +7 -0
  18. package/dist/src/core/extensions/sandbox-runtime.js +664 -0
  19. package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
  20. package/dist/src/core/retrieval/index.js +2 -0
  21. package/dist/src/core/retrieval/index.js.map +2 -2
  22. package/dist/src/core/retrieval/privacy-filter.js +129 -0
  23. package/dist/src/core/retrieval/privacy-filter.js.map +7 -0
  24. package/dist/src/core/retrieval/unified-context-assembler.js +273 -0
  25. package/dist/src/core/retrieval/unified-context-assembler.js.map +7 -0
  26. package/dist/src/core/storage/chromadb-adapter.js +32 -6
  27. package/dist/src/core/storage/chromadb-adapter.js.map +2 -2
  28. package/dist/src/hooks/diffmem-hooks.js +377 -0
  29. package/dist/src/hooks/diffmem-hooks.js.map +7 -0
  30. package/dist/src/integrations/diffmem/client.js +209 -0
  31. package/dist/src/integrations/diffmem/client.js.map +7 -0
  32. package/dist/src/integrations/diffmem/config.js +15 -0
  33. package/dist/src/integrations/diffmem/config.js.map +7 -0
  34. package/dist/{core/session → src/integrations/diffmem}/index.js +5 -8
  35. package/dist/src/integrations/diffmem/index.js.map +7 -0
  36. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js +456 -0
  37. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js.map +7 -0
  38. package/dist/src/integrations/mcp/server.js +121 -0
  39. package/dist/src/integrations/mcp/server.js.map +2 -2
  40. package/dist/src/skills/repo-ingestion-skill.js +35 -12
  41. package/dist/src/skills/repo-ingestion-skill.js.map +2 -2
  42. package/package.json +13 -7
  43. package/scripts/background-sync-manager.js +145 -83
  44. package/scripts/claude-sm-autostart.js +17 -12
  45. package/scripts/gepa/README.md +275 -0
  46. package/scripts/gepa/config.json +53 -0
  47. package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
  48. package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
  49. package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
  50. package/scripts/gepa/generations/gen-000/baseline.md +124 -0
  51. package/scripts/gepa/hooks/auto-optimize.js +494 -0
  52. package/scripts/gepa/hooks/eval-tracker.js +203 -0
  53. package/scripts/gepa/hooks/reflect.js +311 -0
  54. package/scripts/gepa/optimize.js +611 -0
  55. package/scripts/gepa/state.json +14 -0
  56. package/scripts/initialize.ts +83 -1
  57. package/scripts/test-pre-publish-quick.sh +1 -1
  58. package/dist/agents/core/agent-task-manager.js +0 -527
  59. package/dist/agents/core/agent-task-manager.js.map +0 -7
  60. package/dist/agents/testing-agent.js +0 -614
  61. package/dist/agents/testing-agent.js.map +0 -7
  62. package/dist/agents/verifiers/base-verifier.js +0 -133
  63. package/dist/agents/verifiers/base-verifier.js.map +0 -7
  64. package/dist/agents/verifiers/formatter-verifier.js +0 -130
  65. package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
  66. package/dist/agents/verifiers/llm-judge.js +0 -252
  67. package/dist/agents/verifiers/llm-judge.js.map +0 -7
  68. package/dist/cli/auto-detect.js +0 -321
  69. package/dist/cli/auto-detect.js.map +0 -7
  70. package/dist/cli/browser-test.js +0 -33
  71. package/dist/cli/browser-test.js.map +0 -7
  72. package/dist/cli/claude-sm-danger.js +0 -21
  73. package/dist/cli/claude-sm-danger.js.map +0 -7
  74. package/dist/cli/claude-sm.js +0 -1156
  75. package/dist/cli/claude-sm.js.map +0 -7
  76. package/dist/cli/codex-sm-danger.js +0 -21
  77. package/dist/cli/codex-sm-danger.js.map +0 -7
  78. package/dist/cli/codex-sm.js +0 -349
  79. package/dist/cli/codex-sm.js.map +0 -7
  80. package/dist/cli/commands/api.js +0 -232
  81. package/dist/cli/commands/api.js.map +0 -7
  82. package/dist/cli/commands/auto-background.js +0 -180
  83. package/dist/cli/commands/auto-background.js.map +0 -7
  84. package/dist/cli/commands/cleanup-processes.js +0 -68
  85. package/dist/cli/commands/cleanup-processes.js.map +0 -7
  86. package/dist/cli/commands/clear.js +0 -202
  87. package/dist/cli/commands/clear.js.map +0 -7
  88. package/dist/cli/commands/config.js +0 -445
  89. package/dist/cli/commands/config.js.map +0 -7
  90. package/dist/cli/commands/context-rehydrate.js +0 -751
  91. package/dist/cli/commands/context-rehydrate.js.map +0 -7
  92. package/dist/cli/commands/context.js +0 -343
  93. package/dist/cli/commands/context.js.map +0 -7
  94. package/dist/cli/commands/daemon.js +0 -392
  95. package/dist/cli/commands/daemon.js.map +0 -7
  96. package/dist/cli/commands/dashboard.js +0 -210
  97. package/dist/cli/commands/dashboard.js.map +0 -7
  98. package/dist/cli/commands/db.js +0 -147
  99. package/dist/cli/commands/db.js.map +0 -7
  100. package/dist/cli/commands/decision.js +0 -266
  101. package/dist/cli/commands/decision.js.map +0 -7
  102. package/dist/cli/commands/discovery.js +0 -279
  103. package/dist/cli/commands/discovery.js.map +0 -7
  104. package/dist/cli/commands/handoff.js +0 -624
  105. package/dist/cli/commands/handoff.js.map +0 -7
  106. package/dist/cli/commands/hooks.js +0 -298
  107. package/dist/cli/commands/hooks.js.map +0 -7
  108. package/dist/cli/commands/linear-unified.js +0 -353
  109. package/dist/cli/commands/linear-unified.js.map +0 -7
  110. package/dist/cli/commands/linear.js +0 -529
  111. package/dist/cli/commands/linear.js.map +0 -7
  112. package/dist/cli/commands/log.js +0 -169
  113. package/dist/cli/commands/log.js.map +0 -7
  114. package/dist/cli/commands/login.js +0 -172
  115. package/dist/cli/commands/login.js.map +0 -7
  116. package/dist/cli/commands/migrate.js +0 -240
  117. package/dist/cli/commands/migrate.js.map +0 -7
  118. package/dist/cli/commands/model.js +0 -533
  119. package/dist/cli/commands/model.js.map +0 -7
  120. package/dist/cli/commands/monitor.js +0 -313
  121. package/dist/cli/commands/monitor.js.map +0 -7
  122. package/dist/cli/commands/onboard.js +0 -536
  123. package/dist/cli/commands/onboard.js.map +0 -7
  124. package/dist/cli/commands/projects.js +0 -199
  125. package/dist/cli/commands/projects.js.map +0 -7
  126. package/dist/cli/commands/quality.js +0 -413
  127. package/dist/cli/commands/quality.js.map +0 -7
  128. package/dist/cli/commands/ralph.js +0 -909
  129. package/dist/cli/commands/ralph.js.map +0 -7
  130. package/dist/cli/commands/retrieval.js +0 -248
  131. package/dist/cli/commands/retrieval.js.map +0 -7
  132. package/dist/cli/commands/search.js +0 -173
  133. package/dist/cli/commands/search.js.map +0 -7
  134. package/dist/cli/commands/service.js +0 -749
  135. package/dist/cli/commands/service.js.map +0 -7
  136. package/dist/cli/commands/session.js +0 -200
  137. package/dist/cli/commands/session.js.map +0 -7
  138. package/dist/cli/commands/settings.js +0 -306
  139. package/dist/cli/commands/settings.js.map +0 -7
  140. package/dist/cli/commands/setup.js +0 -701
  141. package/dist/cli/commands/setup.js.map +0 -7
  142. package/dist/cli/commands/shell.js +0 -249
  143. package/dist/cli/commands/shell.js.map +0 -7
  144. package/dist/cli/commands/signup.js +0 -50
  145. package/dist/cli/commands/signup.js.map +0 -7
  146. package/dist/cli/commands/skills.js +0 -470
  147. package/dist/cli/commands/skills.js.map +0 -7
  148. package/dist/cli/commands/sms-notify.js +0 -795
  149. package/dist/cli/commands/sms-notify.js.map +0 -7
  150. package/dist/cli/commands/storage-tier.js +0 -183
  151. package/dist/cli/commands/storage-tier.js.map +0 -7
  152. package/dist/cli/commands/storage.js +0 -360
  153. package/dist/cli/commands/storage.js.map +0 -7
  154. package/dist/cli/commands/sweep.js +0 -249
  155. package/dist/cli/commands/sweep.js.map +0 -7
  156. package/dist/cli/commands/tasks.js +0 -213
  157. package/dist/cli/commands/tasks.js.map +0 -7
  158. package/dist/cli/commands/test.js +0 -286
  159. package/dist/cli/commands/test.js.map +0 -7
  160. package/dist/cli/commands/workflow.js +0 -142
  161. package/dist/cli/commands/workflow.js.map +0 -7
  162. package/dist/cli/commands/worktree.js +0 -319
  163. package/dist/cli/commands/worktree.js.map +0 -7
  164. package/dist/cli/index.js +0 -594
  165. package/dist/cli/index.js.map +0 -7
  166. package/dist/cli/opencode-sm.js +0 -448
  167. package/dist/cli/opencode-sm.js.map +0 -7
  168. package/dist/cli/utils/viewer.js +0 -96
  169. package/dist/cli/utils/viewer.js.map +0 -7
  170. package/dist/core/analytics/team-analytics.js +0 -378
  171. package/dist/core/analytics/team-analytics.js.map +0 -7
  172. package/dist/core/config/config-manager.js +0 -398
  173. package/dist/core/config/config-manager.js.map +0 -7
  174. package/dist/core/config/feature-flags.js +0 -76
  175. package/dist/core/config/feature-flags.js.map +0 -7
  176. package/dist/core/config/storage-config.js +0 -115
  177. package/dist/core/config/storage-config.js.map +0 -7
  178. package/dist/core/config/types.js +0 -144
  179. package/dist/core/config/types.js.map +0 -7
  180. package/dist/core/context/auto-context.js +0 -80
  181. package/dist/core/context/auto-context.js.map +0 -7
  182. package/dist/core/context/dual-stack-manager.js +0 -870
  183. package/dist/core/context/dual-stack-manager.js.map +0 -7
  184. package/dist/core/context/enhanced-rehydration.js +0 -994
  185. package/dist/core/context/enhanced-rehydration.js.map +0 -7
  186. package/dist/core/context/frame-database.js +0 -479
  187. package/dist/core/context/frame-database.js.map +0 -7
  188. package/dist/core/context/frame-digest.js +0 -250
  189. package/dist/core/context/frame-digest.js.map +0 -7
  190. package/dist/core/context/frame-handoff-manager.js +0 -778
  191. package/dist/core/context/frame-handoff-manager.js.map +0 -7
  192. package/dist/core/context/frame-lifecycle-hooks.js +0 -119
  193. package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
  194. package/dist/core/context/frame-manager.js +0 -1069
  195. package/dist/core/context/frame-manager.js.map +0 -7
  196. package/dist/core/context/frame-recovery.js +0 -302
  197. package/dist/core/context/frame-recovery.js.map +0 -7
  198. package/dist/core/context/frame-stack.js +0 -314
  199. package/dist/core/context/frame-stack.js.map +0 -7
  200. package/dist/core/context/frame-types.js +0 -5
  201. package/dist/core/context/frame-types.js.map +0 -7
  202. package/dist/core/context/incremental-gc.js +0 -290
  203. package/dist/core/context/incremental-gc.js.map +0 -7
  204. package/dist/core/context/index.js +0 -25
  205. package/dist/core/context/index.js.map +0 -7
  206. package/dist/core/context/model-aware-compaction.js +0 -623
  207. package/dist/core/context/model-aware-compaction.js.map +0 -7
  208. package/dist/core/context/permission-manager.js +0 -185
  209. package/dist/core/context/permission-manager.js.map +0 -7
  210. package/dist/core/context/recursive-context-manager.js +0 -592
  211. package/dist/core/context/recursive-context-manager.js.map +0 -7
  212. package/dist/core/context/refactored-frame-manager.js +0 -754
  213. package/dist/core/context/refactored-frame-manager.js.map +0 -7
  214. package/dist/core/context/shared-context-layer.js +0 -621
  215. package/dist/core/context/shared-context-layer.js.map +0 -7
  216. package/dist/core/context/stack-merge-resolver.js +0 -749
  217. package/dist/core/context/stack-merge-resolver.js.map +0 -7
  218. package/dist/core/context/validation.js +0 -130
  219. package/dist/core/context/validation.js.map +0 -7
  220. package/dist/core/database/batch-operations.js +0 -384
  221. package/dist/core/database/batch-operations.js.map +0 -7
  222. package/dist/core/database/connection-pool.js +0 -330
  223. package/dist/core/database/connection-pool.js.map +0 -7
  224. package/dist/core/database/database-adapter.js +0 -60
  225. package/dist/core/database/database-adapter.js.map +0 -7
  226. package/dist/core/database/migration-manager.js +0 -614
  227. package/dist/core/database/migration-manager.js.map +0 -7
  228. package/dist/core/database/paradedb-adapter.js +0 -990
  229. package/dist/core/database/paradedb-adapter.js.map +0 -7
  230. package/dist/core/database/query-cache.js +0 -298
  231. package/dist/core/database/query-cache.js.map +0 -7
  232. package/dist/core/database/query-router.js +0 -430
  233. package/dist/core/database/query-router.js.map +0 -7
  234. package/dist/core/database/sqlite-adapter.js +0 -738
  235. package/dist/core/database/sqlite-adapter.js.map +0 -7
  236. package/dist/core/digest/enhanced-hybrid-digest.js +0 -277
  237. package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
  238. package/dist/core/digest/frame-digest-integration.js +0 -176
  239. package/dist/core/digest/frame-digest-integration.js.map +0 -7
  240. package/dist/core/digest/hybrid-digest-generator.js +0 -553
  241. package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
  242. package/dist/core/digest/index.js +0 -9
  243. package/dist/core/digest/index.js.map +0 -7
  244. package/dist/core/digest/types.js +0 -25
  245. package/dist/core/digest/types.js.map +0 -7
  246. package/dist/core/errors/error-utils.js +0 -208
  247. package/dist/core/errors/error-utils.js.map +0 -7
  248. package/dist/core/errors/index.js +0 -521
  249. package/dist/core/errors/index.js.map +0 -7
  250. package/dist/core/errors/recovery.js +0 -269
  251. package/dist/core/errors/recovery.js.map +0 -7
  252. package/dist/core/execution/parallel-executor.js +0 -258
  253. package/dist/core/execution/parallel-executor.js.map +0 -7
  254. package/dist/core/frame/workflow-templates.js +0 -319
  255. package/dist/core/frame/workflow-templates.js.map +0 -7
  256. package/dist/core/merge/conflict-detector.js +0 -431
  257. package/dist/core/merge/conflict-detector.js.map +0 -7
  258. package/dist/core/merge/index.js +0 -9
  259. package/dist/core/merge/index.js.map +0 -7
  260. package/dist/core/merge/resolution-engine.js +0 -558
  261. package/dist/core/merge/resolution-engine.js.map +0 -7
  262. package/dist/core/merge/stack-diff.js +0 -532
  263. package/dist/core/merge/stack-diff.js.map +0 -7
  264. package/dist/core/merge/unified-merge-resolver.js +0 -303
  265. package/dist/core/merge/unified-merge-resolver.js.map +0 -7
  266. package/dist/core/models/fallback-monitor.js +0 -232
  267. package/dist/core/models/fallback-monitor.js.map +0 -7
  268. package/dist/core/models/model-router.js +0 -340
  269. package/dist/core/models/model-router.js.map +0 -7
  270. package/dist/core/monitoring/error-handler.js +0 -49
  271. package/dist/core/monitoring/error-handler.js.map +0 -7
  272. package/dist/core/monitoring/logger.js +0 -202
  273. package/dist/core/monitoring/logger.js.map +0 -7
  274. package/dist/core/monitoring/metrics.js +0 -172
  275. package/dist/core/monitoring/metrics.js.map +0 -7
  276. package/dist/core/monitoring/progress-tracker.js +0 -189
  277. package/dist/core/monitoring/progress-tracker.js.map +0 -7
  278. package/dist/core/monitoring/session-monitor.js +0 -300
  279. package/dist/core/monitoring/session-monitor.js.map +0 -7
  280. package/dist/core/performance/context-cache.js +0 -273
  281. package/dist/core/performance/context-cache.js.map +0 -7
  282. package/dist/core/performance/index.js +0 -11
  283. package/dist/core/performance/index.js.map +0 -7
  284. package/dist/core/performance/lazy-context-loader.js +0 -327
  285. package/dist/core/performance/lazy-context-loader.js.map +0 -7
  286. package/dist/core/performance/monitor.js +0 -221
  287. package/dist/core/performance/monitor.js.map +0 -7
  288. package/dist/core/performance/optimized-frame-context.js +0 -345
  289. package/dist/core/performance/optimized-frame-context.js.map +0 -7
  290. package/dist/core/performance/performance-benchmark.js +0 -277
  291. package/dist/core/performance/performance-benchmark.js.map +0 -7
  292. package/dist/core/performance/performance-profiler.js +0 -370
  293. package/dist/core/performance/performance-profiler.js.map +0 -7
  294. package/dist/core/performance/streaming-jsonl-parser.js +0 -195
  295. package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
  296. package/dist/core/persistence/postgres-adapter.js +0 -349
  297. package/dist/core/persistence/postgres-adapter.js.map +0 -7
  298. package/dist/core/projects/project-isolation.js +0 -201
  299. package/dist/core/projects/project-isolation.js.map +0 -7
  300. package/dist/core/projects/project-manager.js +0 -697
  301. package/dist/core/projects/project-manager.js.map +0 -7
  302. package/dist/core/query/query-parser.js +0 -370
  303. package/dist/core/query/query-parser.js.map +0 -7
  304. package/dist/core/query/query-templates.js +0 -321
  305. package/dist/core/query/query-templates.js.map +0 -7
  306. package/dist/core/retrieval/context-retriever.js +0 -479
  307. package/dist/core/retrieval/context-retriever.js.map +0 -7
  308. package/dist/core/retrieval/graph-retrieval.js +0 -662
  309. package/dist/core/retrieval/graph-retrieval.js.map +0 -7
  310. package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
  311. package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
  312. package/dist/core/retrieval/index.js +0 -8
  313. package/dist/core/retrieval/index.js.map +0 -7
  314. package/dist/core/retrieval/llm-context-retrieval.js +0 -613
  315. package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
  316. package/dist/core/retrieval/llm-provider.js +0 -151
  317. package/dist/core/retrieval/llm-provider.js.map +0 -7
  318. package/dist/core/retrieval/retrieval-audit.js +0 -236
  319. package/dist/core/retrieval/retrieval-audit.js.map +0 -7
  320. package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
  321. package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
  322. package/dist/core/retrieval/summary-generator.js +0 -589
  323. package/dist/core/retrieval/summary-generator.js.map +0 -7
  324. package/dist/core/retrieval/types.js +0 -21
  325. package/dist/core/retrieval/types.js.map +0 -7
  326. package/dist/core/security/index.js +0 -35
  327. package/dist/core/security/index.js.map +0 -7
  328. package/dist/core/security/input-sanitizer.js +0 -321
  329. package/dist/core/security/input-sanitizer.js.map +0 -7
  330. package/dist/core/session/clear-survival.js +0 -465
  331. package/dist/core/session/clear-survival.js.map +0 -7
  332. package/dist/core/session/enhanced-handoff.js +0 -792
  333. package/dist/core/session/enhanced-handoff.js.map +0 -7
  334. package/dist/core/session/handoff-generator.js +0 -343
  335. package/dist/core/session/handoff-generator.js.map +0 -7
  336. package/dist/core/session/index.js.map +0 -7
  337. package/dist/core/session/session-manager.js +0 -347
  338. package/dist/core/session/session-manager.js.map +0 -7
  339. package/dist/core/skills/index.js +0 -7
  340. package/dist/core/skills/index.js.map +0 -7
  341. package/dist/core/skills/skill-storage.js +0 -764
  342. package/dist/core/skills/skill-storage.js.map +0 -7
  343. package/dist/core/skills/types.js +0 -193
  344. package/dist/core/skills/types.js.map +0 -7
  345. package/dist/core/storage/chromadb-adapter.js +0 -354
  346. package/dist/core/storage/chromadb-adapter.js.map +0 -7
  347. package/dist/core/storage/infinite-storage.js +0 -510
  348. package/dist/core/storage/infinite-storage.js.map +0 -7
  349. package/dist/core/storage/railway-optimized-storage.js +0 -591
  350. package/dist/core/storage/railway-optimized-storage.js.map +0 -7
  351. package/dist/core/storage/remote-storage.js +0 -489
  352. package/dist/core/storage/remote-storage.js.map +0 -7
  353. package/dist/core/storage/two-tier-storage.js +0 -766
  354. package/dist/core/storage/two-tier-storage.js.map +0 -7
  355. package/dist/core/trace/cli-trace-wrapper.js +0 -132
  356. package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
  357. package/dist/core/trace/db-trace-wrapper.js +0 -247
  358. package/dist/core/trace/db-trace-wrapper.js.map +0 -7
  359. package/dist/core/trace/debug-trace.js +0 -417
  360. package/dist/core/trace/debug-trace.js.map +0 -7
  361. package/dist/core/trace/index.js +0 -109
  362. package/dist/core/trace/index.js.map +0 -7
  363. package/dist/core/trace/linear-api-wrapper.js +0 -178
  364. package/dist/core/trace/linear-api-wrapper.js.map +0 -7
  365. package/dist/core/trace/trace-demo.js +0 -154
  366. package/dist/core/trace/trace-demo.js.map +0 -7
  367. package/dist/core/trace/trace-detector.demo.js +0 -142
  368. package/dist/core/trace/trace-detector.demo.js.map +0 -7
  369. package/dist/core/trace/trace-detector.js +0 -528
  370. package/dist/core/trace/trace-detector.js.map +0 -7
  371. package/dist/core/trace/trace-store.js +0 -345
  372. package/dist/core/trace/trace-store.js.map +0 -7
  373. package/dist/core/trace/types.js +0 -77
  374. package/dist/core/trace/types.js.map +0 -7
  375. package/dist/core/utils/async-mutex.js +0 -114
  376. package/dist/core/utils/async-mutex.js.map +0 -7
  377. package/dist/core/utils/compression.js +0 -83
  378. package/dist/core/utils/compression.js.map +0 -7
  379. package/dist/core/utils/update-checker.js +0 -218
  380. package/dist/core/utils/update-checker.js.map +0 -7
  381. package/dist/core/worktree/worktree-manager.js +0 -465
  382. package/dist/core/worktree/worktree-manager.js.map +0 -7
  383. package/dist/daemon/daemon-config.js +0 -149
  384. package/dist/daemon/daemon-config.js.map +0 -7
  385. package/dist/daemon/services/context-service.js +0 -122
  386. package/dist/daemon/services/context-service.js.map +0 -7
  387. package/dist/daemon/services/linear-service.js +0 -136
  388. package/dist/daemon/services/linear-service.js.map +0 -7
  389. package/dist/daemon/session-daemon.js +0 -312
  390. package/dist/daemon/session-daemon.js.map +0 -7
  391. package/dist/daemon/unified-daemon.js +0 -276
  392. package/dist/daemon/unified-daemon.js.map +0 -7
  393. package/dist/features/analytics/api/analytics-api.js +0 -287
  394. package/dist/features/analytics/api/analytics-api.js.map +0 -7
  395. package/dist/features/analytics/core/analytics-service.js +0 -282
  396. package/dist/features/analytics/core/analytics-service.js.map +0 -7
  397. package/dist/features/analytics/index.js +0 -18
  398. package/dist/features/analytics/index.js.map +0 -7
  399. package/dist/features/analytics/queries/metrics-queries.js +0 -277
  400. package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
  401. package/dist/features/analytics/types/metrics.js +0 -5
  402. package/dist/features/analytics/types/metrics.js.map +0 -7
  403. package/dist/features/browser/browser-mcp.js +0 -492
  404. package/dist/features/browser/browser-mcp.js.map +0 -7
  405. package/dist/features/sweep/index.js +0 -20
  406. package/dist/features/sweep/index.js.map +0 -7
  407. package/dist/features/sweep/prediction-client.js +0 -155
  408. package/dist/features/sweep/prediction-client.js.map +0 -7
  409. package/dist/features/sweep/prompt-builder.js +0 -85
  410. package/dist/features/sweep/prompt-builder.js.map +0 -7
  411. package/dist/features/sweep/pty-wrapper.js +0 -171
  412. package/dist/features/sweep/pty-wrapper.js.map +0 -7
  413. package/dist/features/sweep/state-watcher.js +0 -87
  414. package/dist/features/sweep/state-watcher.js.map +0 -7
  415. package/dist/features/sweep/status-bar.js +0 -88
  416. package/dist/features/sweep/status-bar.js.map +0 -7
  417. package/dist/features/sweep/sweep-server-manager.js +0 -226
  418. package/dist/features/sweep/sweep-server-manager.js.map +0 -7
  419. package/dist/features/sweep/tab-interceptor.js +0 -38
  420. package/dist/features/sweep/tab-interceptor.js.map +0 -7
  421. package/dist/features/sweep/types.js +0 -18
  422. package/dist/features/sweep/types.js.map +0 -7
  423. package/dist/features/tasks/linear-task-manager.js +0 -487
  424. package/dist/features/tasks/linear-task-manager.js.map +0 -7
  425. package/dist/features/tasks/task-aware-context.js +0 -410
  426. package/dist/features/tasks/task-aware-context.js.map +0 -7
  427. package/dist/features/tui/simple-monitor.js +0 -116
  428. package/dist/features/tui/simple-monitor.js.map +0 -7
  429. package/dist/features/tui/swarm-monitor.js +0 -648
  430. package/dist/features/tui/swarm-monitor.js.map +0 -7
  431. package/dist/features/web/client/stores/task-store.js +0 -26
  432. package/dist/features/web/client/stores/task-store.js.map +0 -7
  433. package/dist/features/web/server/index.js +0 -194
  434. package/dist/features/web/server/index.js.map +0 -7
  435. package/dist/hooks/auto-background.js +0 -151
  436. package/dist/hooks/auto-background.js.map +0 -7
  437. package/dist/hooks/claude-code-whatsapp-hook.js +0 -197
  438. package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
  439. package/dist/hooks/config.js +0 -150
  440. package/dist/hooks/config.js.map +0 -7
  441. package/dist/hooks/daemon.js +0 -364
  442. package/dist/hooks/daemon.js.map +0 -7
  443. package/dist/hooks/events.js +0 -58
  444. package/dist/hooks/events.js.map +0 -7
  445. package/dist/hooks/index.js +0 -12
  446. package/dist/hooks/index.js.map +0 -7
  447. package/dist/hooks/linear-task-picker.js +0 -186
  448. package/dist/hooks/linear-task-picker.js.map +0 -7
  449. package/dist/hooks/schemas.js +0 -197
  450. package/dist/hooks/schemas.js.map +0 -7
  451. package/dist/hooks/secure-fs.js +0 -49
  452. package/dist/hooks/secure-fs.js.map +0 -7
  453. package/dist/hooks/security-logger.js +0 -155
  454. package/dist/hooks/security-logger.js.map +0 -7
  455. package/dist/hooks/session-summary.js +0 -222
  456. package/dist/hooks/session-summary.js.map +0 -7
  457. package/dist/hooks/sms-action-runner.js +0 -371
  458. package/dist/hooks/sms-action-runner.js.map +0 -7
  459. package/dist/hooks/sms-notify.js +0 -506
  460. package/dist/hooks/sms-notify.js.map +0 -7
  461. package/dist/hooks/sms-watcher.js +0 -93
  462. package/dist/hooks/sms-watcher.js.map +0 -7
  463. package/dist/hooks/sms-webhook.js +0 -555
  464. package/dist/hooks/sms-webhook.js.map +0 -7
  465. package/dist/hooks/whatsapp-commands.js +0 -479
  466. package/dist/hooks/whatsapp-commands.js.map +0 -7
  467. package/dist/hooks/whatsapp-scheduler.js +0 -317
  468. package/dist/hooks/whatsapp-scheduler.js.map +0 -7
  469. package/dist/hooks/whatsapp-sync.js +0 -409
  470. package/dist/hooks/whatsapp-sync.js.map +0 -7
  471. package/dist/index.js +0 -25
  472. package/dist/index.js.map +0 -7
  473. package/dist/integrations/anthropic/client.js +0 -263
  474. package/dist/integrations/anthropic/client.js.map +0 -7
  475. package/dist/integrations/claude-code/agent-bridge.js +0 -768
  476. package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
  477. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -459
  478. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  479. package/dist/integrations/claude-code/lifecycle-hooks.js +0 -254
  480. package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  481. package/dist/integrations/claude-code/post-task-hooks.js +0 -545
  482. package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
  483. package/dist/integrations/claude-code/subagent-client-stub.js +0 -20
  484. package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
  485. package/dist/integrations/claude-code/subagent-client.js +0 -511
  486. package/dist/integrations/claude-code/subagent-client.js.map +0 -7
  487. package/dist/integrations/claude-code/task-coordinator.js +0 -360
  488. package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
  489. package/dist/integrations/linear/auth.js +0 -337
  490. package/dist/integrations/linear/auth.js.map +0 -7
  491. package/dist/integrations/linear/auto-sync.js +0 -258
  492. package/dist/integrations/linear/auto-sync.js.map +0 -7
  493. package/dist/integrations/linear/client.js +0 -634
  494. package/dist/integrations/linear/client.js.map +0 -7
  495. package/dist/integrations/linear/config.js +0 -130
  496. package/dist/integrations/linear/config.js.map +0 -7
  497. package/dist/integrations/linear/migration.js +0 -361
  498. package/dist/integrations/linear/migration.js.map +0 -7
  499. package/dist/integrations/linear/oauth-server.js +0 -454
  500. package/dist/integrations/linear/oauth-server.js.map +0 -7
  501. package/dist/integrations/linear/rest-client.js +0 -213
  502. package/dist/integrations/linear/rest-client.js.map +0 -7
  503. package/dist/integrations/linear/sync-manager.js +0 -236
  504. package/dist/integrations/linear/sync-manager.js.map +0 -7
  505. package/dist/integrations/linear/sync-service.js +0 -231
  506. package/dist/integrations/linear/sync-service.js.map +0 -7
  507. package/dist/integrations/linear/sync.js +0 -782
  508. package/dist/integrations/linear/sync.js.map +0 -7
  509. package/dist/integrations/linear/types.js +0 -5
  510. package/dist/integrations/linear/types.js.map +0 -7
  511. package/dist/integrations/linear/unified-sync.js +0 -589
  512. package/dist/integrations/linear/unified-sync.js.map +0 -7
  513. package/dist/integrations/linear/webhook-handler.js +0 -219
  514. package/dist/integrations/linear/webhook-handler.js.map +0 -7
  515. package/dist/integrations/linear/webhook-server.js +0 -218
  516. package/dist/integrations/linear/webhook-server.js.map +0 -7
  517. package/dist/integrations/linear/webhook.js +0 -291
  518. package/dist/integrations/linear/webhook.js.map +0 -7
  519. package/dist/integrations/mcp/handlers/code-execution-handlers.js +0 -266
  520. package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  521. package/dist/integrations/mcp/handlers/context-handlers.js +0 -257
  522. package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
  523. package/dist/integrations/mcp/handlers/discovery-handlers.js +0 -497
  524. package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  525. package/dist/integrations/mcp/handlers/index.js +0 -166
  526. package/dist/integrations/mcp/handlers/index.js.map +0 -7
  527. package/dist/integrations/mcp/handlers/linear-handlers.js +0 -247
  528. package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  529. package/dist/integrations/mcp/handlers/skill-handlers.js +0 -529
  530. package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  531. package/dist/integrations/mcp/handlers/task-handlers.js +0 -239
  532. package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
  533. package/dist/integrations/mcp/handlers/trace-handlers.js +0 -308
  534. package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  535. package/dist/integrations/mcp/index.js +0 -23
  536. package/dist/integrations/mcp/index.js.map +0 -7
  537. package/dist/integrations/mcp/middleware/tool-scoring.js +0 -356
  538. package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  539. package/dist/integrations/mcp/refactored-server.js +0 -374
  540. package/dist/integrations/mcp/refactored-server.js.map +0 -7
  541. package/dist/integrations/mcp/remote-server.js +0 -682
  542. package/dist/integrations/mcp/remote-server.js.map +0 -7
  543. package/dist/integrations/mcp/schemas.js +0 -147
  544. package/dist/integrations/mcp/schemas.js.map +0 -7
  545. package/dist/integrations/mcp/server.js +0 -1975
  546. package/dist/integrations/mcp/server.js.map +0 -7
  547. package/dist/integrations/mcp/tool-definitions-code.js +0 -125
  548. package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
  549. package/dist/integrations/mcp/tool-definitions.js +0 -702
  550. package/dist/integrations/mcp/tool-definitions.js.map +0 -7
  551. package/dist/integrations/mcp/trace-test.js +0 -48
  552. package/dist/integrations/mcp/trace-test.js.map +0 -7
  553. package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
  554. package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
  555. package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
  556. package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
  557. package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
  558. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
  559. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -860
  560. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  561. package/dist/integrations/ralph/context/context-budget-manager.js +0 -301
  562. package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
  563. package/dist/integrations/ralph/context/stackmemory-context-loader.js +0 -360
  564. package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  565. package/dist/integrations/ralph/coordination/enhanced-coordination.js +0 -410
  566. package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  567. package/dist/integrations/ralph/index.js +0 -18
  568. package/dist/integrations/ralph/index.js.map +0 -7
  569. package/dist/integrations/ralph/learning/pattern-learner.js +0 -401
  570. package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
  571. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js +0 -448
  572. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  573. package/dist/integrations/ralph/monitoring/swarm-dashboard.js +0 -294
  574. package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  575. package/dist/integrations/ralph/monitoring/swarm-registry.js +0 -108
  576. package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  577. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -463
  578. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  579. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -400
  580. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  581. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js +0 -473
  582. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  583. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js +0 -388
  584. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  585. package/dist/integrations/ralph/performance/performance-optimizer.js +0 -358
  586. package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  587. package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
  588. package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
  589. package/dist/integrations/ralph/recovery/crash-recovery.js +0 -462
  590. package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  591. package/dist/integrations/ralph/state/state-reconciler.js +0 -404
  592. package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
  593. package/dist/integrations/ralph/swarm/git-workflow-manager.js +0 -428
  594. package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  595. package/dist/integrations/ralph/swarm/swarm-coordinator.js +0 -996
  596. package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  597. package/dist/integrations/ralph/types.js +0 -5
  598. package/dist/integrations/ralph/types.js.map +0 -7
  599. package/dist/integrations/ralph/visualization/ralph-debugger.js +0 -585
  600. package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  601. package/dist/mcp/stackmemory-mcp-server.js +0 -554
  602. package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
  603. package/dist/middleware/exponential-rate-limiter.js +0 -289
  604. package/dist/middleware/exponential-rate-limiter.js.map +0 -7
  605. package/dist/models/user.model.js +0 -358
  606. package/dist/models/user.model.js.map +0 -7
  607. package/dist/servers/production/auth-middleware.js +0 -528
  608. package/dist/servers/production/auth-middleware.js.map +0 -7
  609. package/dist/servers/railway/config.js +0 -55
  610. package/dist/servers/railway/config.js.map +0 -7
  611. package/dist/servers/railway/index-enhanced.js +0 -160
  612. package/dist/servers/railway/index-enhanced.js.map +0 -7
  613. package/dist/servers/railway/index.js +0 -1349
  614. package/dist/servers/railway/index.js.map +0 -7
  615. package/dist/servers/railway/simple.js +0 -64
  616. package/dist/servers/railway/simple.js.map +0 -7
  617. package/dist/servers/railway/storage-test.js +0 -459
  618. package/dist/servers/railway/storage-test.js.map +0 -7
  619. package/dist/services/config-service.js +0 -65
  620. package/dist/services/config-service.js.map +0 -7
  621. package/dist/services/context-service.js +0 -194
  622. package/dist/services/context-service.js.map +0 -7
  623. package/dist/skills/api-discovery.js +0 -354
  624. package/dist/skills/api-discovery.js.map +0 -7
  625. package/dist/skills/api-skill.js +0 -475
  626. package/dist/skills/api-skill.js.map +0 -7
  627. package/dist/skills/claude-skills.js +0 -1061
  628. package/dist/skills/claude-skills.js.map +0 -7
  629. package/dist/skills/dashboard-launcher.js +0 -216
  630. package/dist/skills/dashboard-launcher.js.map +0 -7
  631. package/dist/skills/recursive-agent-orchestrator.js +0 -575
  632. package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
  633. package/dist/skills/repo-ingestion-skill.js +0 -609
  634. package/dist/skills/repo-ingestion-skill.js.map +0 -7
  635. package/dist/skills/security-secrets-scanner.js +0 -284
  636. package/dist/skills/security-secrets-scanner.js.map +0 -7
  637. package/dist/skills/unified-rlm-orchestrator.js +0 -404
  638. package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
  639. package/dist/types/task.js +0 -5
  640. package/dist/types/task.js.map +0 -7
  641. package/dist/utils/env.js +0 -50
  642. package/dist/utils/env.js.map +0 -7
  643. package/dist/utils/formatting.js +0 -62
  644. package/dist/utils/formatting.js.map +0 -7
  645. package/dist/utils/process-cleanup.js +0 -136
  646. package/dist/utils/process-cleanup.js.map +0 -7
  647. package/dist/validation/schemas.js +0 -222
  648. package/dist/validation/schemas.js.map +0 -7
  649. /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
  650. /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
  651. /package/dist/{core → src/integrations/diffmem}/types.js +0 -0
  652. /package/dist/{core → src/integrations/diffmem}/types.js.map +0 -0
@@ -1,511 +0,0 @@
1
- import { fileURLToPath as __fileURLToPath } from 'url';
2
- import { dirname as __pathDirname } from 'path';
3
- const __filename = __fileURLToPath(import.meta.url);
4
- const __dirname = __pathDirname(__filename);
5
- import { logger } from "../../core/monitoring/logger.js";
6
- import { exec } from "child_process";
7
- import { promisify } from "util";
8
- import * as fs from "fs";
9
- import * as path from "path";
10
- import * as os from "os";
11
- const execAsync = promisify(exec);
12
- class ClaudeCodeSubagentClient {
13
- tempDir;
14
- activeSubagents = /* @__PURE__ */ new Map();
15
- mockMode;
16
- constructor(mockMode = true) {
17
- this.mockMode = mockMode;
18
- this.tempDir = path.join(os.tmpdir(), "stackmemory-rlm");
19
- if (!fs.existsSync(this.tempDir)) {
20
- fs.mkdirSync(this.tempDir, { recursive: true });
21
- }
22
- logger.info("Claude Code Subagent Client initialized", {
23
- tempDir: this.tempDir,
24
- mockMode: this.mockMode
25
- });
26
- }
27
- /**
28
- * Execute a subagent task using Claude Code's Task tool
29
- * This will spawn a new Claude instance with specific instructions
30
- */
31
- async executeSubagent(request) {
32
- const startTime = Date.now();
33
- const subagentId = `${request.type}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
34
- logger.info(`Spawning ${request.type} subagent`, {
35
- subagentId,
36
- task: request.task.slice(0, 100),
37
- mockMode: this.mockMode
38
- });
39
- if (this.mockMode) {
40
- return this.getMockResponse(request, startTime, subagentId);
41
- }
42
- try {
43
- const prompt = this.buildSubagentPrompt(request);
44
- const contextFile = path.join(this.tempDir, `${subagentId}-context.json`);
45
- await fs.promises.writeFile(
46
- contextFile,
47
- JSON.stringify(request.context, null, 2)
48
- );
49
- const resultFile = path.join(this.tempDir, `${subagentId}-result.json`);
50
- const taskCommand = this.buildTaskCommand(request, prompt, contextFile, resultFile);
51
- const result = await this.executeTaskTool(taskCommand, request.timeout);
52
- let subagentResult = {};
53
- if (fs.existsSync(resultFile)) {
54
- const resultContent = await fs.promises.readFile(resultFile, "utf-8");
55
- try {
56
- subagentResult = JSON.parse(resultContent);
57
- } catch (e) {
58
- subagentResult = { rawOutput: resultContent };
59
- }
60
- }
61
- this.cleanup(subagentId);
62
- return {
63
- success: true,
64
- result: subagentResult,
65
- output: result.stdout,
66
- duration: Date.now() - startTime,
67
- subagentType: request.type,
68
- tokens: this.estimateTokens(prompt + JSON.stringify(subagentResult))
69
- };
70
- } catch (error) {
71
- logger.error(`Subagent execution failed: ${request.type}`, { error, subagentId });
72
- return {
73
- success: false,
74
- result: null,
75
- error: error.message,
76
- duration: Date.now() - startTime,
77
- subagentType: request.type
78
- };
79
- }
80
- }
81
- /**
82
- * Execute multiple subagents in parallel
83
- */
84
- async executeParallel(requests) {
85
- logger.info(`Executing ${requests.length} subagents in parallel`);
86
- const promises = requests.map((request) => this.executeSubagent(request));
87
- const results = await Promise.allSettled(promises);
88
- return results.map((result, index) => {
89
- if (result.status === "fulfilled") {
90
- return result.value;
91
- } else {
92
- return {
93
- success: false,
94
- result: null,
95
- error: result.reason?.message || "Unknown error",
96
- duration: 0,
97
- subagentType: requests[index].type
98
- };
99
- }
100
- });
101
- }
102
- /**
103
- * Build subagent prompt based on type
104
- */
105
- buildSubagentPrompt(request) {
106
- const prompts = {
107
- planning: `You are a Planning Subagent. Your role is to decompose complex tasks into manageable subtasks.
108
-
109
- Task: ${request.task}
110
-
111
- Instructions:
112
- 1. Analyze the task and identify all components
113
- 2. Create a dependency graph of subtasks
114
- 3. Assign appropriate agent types to each subtask
115
- 4. Consider parallel execution opportunities
116
- 5. Include comprehensive testing at each stage
117
-
118
- Context is available in the provided file.
119
-
120
- Output a JSON structure with the task decomposition.`,
121
- code: `You are a Code Generation Subagent. Your role is to implement high-quality, production-ready code.
122
-
123
- Task: ${request.task}
124
-
125
- Instructions:
126
- 1. Write clean, maintainable code
127
- 2. Follow project conventions (check context)
128
- 3. Include comprehensive error handling
129
- 4. Add clear comments for complex logic
130
- 5. Ensure code is testable
131
-
132
- Context and requirements are in the provided file.
133
-
134
- Output the implementation code.`,
135
- testing: `You are a Testing Subagent specializing in comprehensive test generation.
136
-
137
- Task: ${request.task}
138
-
139
- Instructions:
140
- 1. Generate unit tests for all functions/methods
141
- 2. Create integration tests for API endpoints
142
- 3. Add E2E tests for critical user flows
143
- 4. Include edge cases and error scenarios
144
- 5. Ensure high code coverage (aim for 100%)
145
- 6. Validate that all tests pass
146
-
147
- Context and code to test are in the provided file.
148
-
149
- Output a complete test suite.`,
150
- linting: `You are a Linting Subagent ensuring code quality and standards.
151
-
152
- Task: ${request.task}
153
-
154
- Instructions:
155
- 1. Check for syntax errors and type issues
156
- 2. Verify code formatting and style
157
- 3. Identify security vulnerabilities
158
- 4. Find performance anti-patterns
159
- 5. Detect unused imports and dead code
160
- 6. Provide specific fixes for each issue
161
-
162
- Code to analyze is in the context file.
163
-
164
- Output a JSON report with issues and fixes.`,
165
- review: `You are a Code Review Subagent performing thorough multi-stage reviews.
166
-
167
- Task: ${request.task}
168
-
169
- Instructions:
170
- 1. Evaluate architecture and design patterns
171
- 2. Assess code quality and maintainability
172
- 3. Check performance implications
173
- 4. Review security considerations
174
- 5. Verify test coverage adequacy
175
- 6. Suggest specific improvements with examples
176
- 7. Rate quality on a 0-1 scale
177
-
178
- Code and context are in the provided file.
179
-
180
- Output a detailed review with quality score and improvements.`,
181
- improve: `You are an Improvement Subagent enhancing code based on reviews.
182
-
183
- Task: ${request.task}
184
-
185
- Instructions:
186
- 1. Implement all suggested improvements
187
- 2. Refactor for better architecture
188
- 3. Optimize performance bottlenecks
189
- 4. Enhance error handling
190
- 5. Improve code clarity and documentation
191
- 6. Add missing test cases
192
- 7. Ensure backward compatibility
193
-
194
- Review feedback and code are in the context file.
195
-
196
- Output the improved code.`,
197
- context: `You are a Context Retrieval Subagent finding relevant information.
198
-
199
- Task: ${request.task}
200
-
201
- Instructions:
202
- 1. Search project codebase for relevant code
203
- 2. Find similar implementations
204
- 3. Locate relevant documentation
205
- 4. Identify dependencies and patterns
206
- 5. Retrieve best practices
207
-
208
- Search parameters are in the context file.
209
-
210
- Output relevant context snippets.`,
211
- publish: `You are a Publishing Subagent handling releases and deployments.
212
-
213
- Task: ${request.task}
214
-
215
- Instructions:
216
- 1. Prepare package for publishing
217
- 2. Update version numbers
218
- 3. Generate changelog
219
- 4. Create GitHub release
220
- 5. Publish to NPM if applicable
221
- 6. Update documentation
222
-
223
- Release details are in the context file.
224
-
225
- Output the release plan and commands.`
226
- };
227
- return request.systemPrompt || prompts[request.type] || prompts.planning;
228
- }
229
- /**
230
- * Build Task tool command
231
- * This creates a command that Claude Code's Task tool can execute
232
- */
233
- buildTaskCommand(request, prompt, contextFile, resultFile) {
234
- const scriptContent = `
235
- #!/bin/bash
236
- # Subagent execution script for ${request.type}
237
-
238
- # Read context
239
- CONTEXT=$(cat "${contextFile}")
240
-
241
- # Execute task based on type
242
- case "${request.type}" in
243
- "testing")
244
- # For testing subagent, actually run tests
245
- echo "Generating and running tests..."
246
- # The subagent will generate test files and run them
247
- ;;
248
- "linting")
249
- # For linting subagent, run actual linters
250
- echo "Running linters..."
251
- npm run lint || true
252
- ;;
253
- "code")
254
- # For code generation, create implementation files
255
- echo "Generating implementation..."
256
- ;;
257
- *)
258
- # Default behavior
259
- echo "Executing ${request.type} task..."
260
- ;;
261
- esac
262
-
263
- # Write result
264
- echo '{"status": "completed", "type": "${request.type}"}' > "${resultFile}"
265
- `;
266
- const scriptFile = path.join(this.tempDir, `${request.type}-script.sh`);
267
- fs.writeFileSync(scriptFile, scriptContent);
268
- fs.chmodSync(scriptFile, "755");
269
- return scriptFile;
270
- }
271
- /**
272
- * Execute via Task tool (simulated for now)
273
- * In production, this would use Claude Code's actual Task tool API
274
- */
275
- async executeTaskTool(command, timeout) {
276
- try {
277
- const result = await execAsync(command, {
278
- timeout: timeout || 3e5,
279
- // 5 minutes default
280
- maxBuffer: 10 * 1024 * 1024
281
- // 10MB buffer
282
- });
283
- return result;
284
- } catch (error) {
285
- if (error.killed || error.signal === "SIGTERM") {
286
- throw new Error(`Subagent timeout after ${timeout}ms`);
287
- }
288
- throw error;
289
- }
290
- }
291
- /**
292
- * Get mock response for testing
293
- */
294
- async getMockResponse(request, startTime, subagentId) {
295
- await new Promise((resolve) => setTimeout(resolve, Math.random() * 20 + 10));
296
- const mockResponses = {
297
- planning: {
298
- tasks: [
299
- { id: "task-1", name: "Analyze requirements", type: "analysis" },
300
- { id: "task-2", name: "Design solution", type: "design" },
301
- { id: "task-3", name: "Implement solution", type: "implementation" }
302
- ],
303
- dependencies: [],
304
- estimated_time: 300
305
- },
306
- code: {
307
- implementation: `function greetUser(name: string): string {
308
- if (!name || typeof name !== 'string') {
309
- throw new Error('Invalid name parameter');
310
- }
311
- return \`Hello, \${name}!\`;
312
- }`,
313
- files_modified: ["src/greet.ts"],
314
- lines_added: 6,
315
- lines_removed: 0
316
- },
317
- testing: {
318
- tests: [
319
- {
320
- name: "greetUser should return greeting",
321
- code: `test('greetUser should return greeting', () => {
322
- expect(greetUser('Alice')).toBe('Hello, Alice!');
323
- });`,
324
- type: "unit"
325
- }
326
- ],
327
- coverage: { lines: 100, branches: 100, functions: 100 }
328
- },
329
- linting: {
330
- issues: [],
331
- fixes: [],
332
- passed: true
333
- },
334
- review: {
335
- quality: 0.85,
336
- issues: [
337
- "Consider adding JSDoc comments",
338
- "Could add more edge case tests"
339
- ],
340
- suggestions: [
341
- "Add documentation for the function",
342
- "Consider adding internationalization support",
343
- "Add performance tests for large inputs"
344
- ],
345
- improvements: []
346
- },
347
- improve: {
348
- improved_code: `/**
349
- * Greets a user with their name
350
- * @param name - The name of the user to greet
351
- * @returns A greeting message
352
- * @throws {Error} If name is invalid
353
- */
354
- function greetUser(name: string): string {
355
- if (!name || typeof name !== 'string') {
356
- throw new Error('Invalid name parameter: name must be a non-empty string');
357
- }
358
- return \`Hello, \${name}!\`;
359
- }`,
360
- changes_made: [
361
- "Added JSDoc documentation",
362
- "Improved error message"
363
- ]
364
- },
365
- context: {
366
- relevant_files: ["src/greet.ts", "test/greet.test.ts"],
367
- patterns: ["greeting functions", "input validation"],
368
- dependencies: []
369
- },
370
- publish: {
371
- version: "1.0.0",
372
- changelog: "Initial release",
373
- published: false,
374
- reason: "Mock mode - no actual publishing"
375
- }
376
- };
377
- const result = mockResponses[request.type] || {};
378
- return {
379
- success: true,
380
- result,
381
- output: `Mock ${request.type} subagent completed successfully`,
382
- duration: Date.now() - startTime,
383
- subagentType: request.type,
384
- tokens: this.estimateTokens(JSON.stringify(result))
385
- };
386
- }
387
- /**
388
- * Estimate token usage
389
- */
390
- estimateTokens(text) {
391
- return Math.ceil(text.length / 4);
392
- }
393
- /**
394
- * Cleanup temporary files
395
- */
396
- cleanup(subagentId) {
397
- const patterns = [
398
- `${subagentId}-context.json`,
399
- `${subagentId}-result.json`,
400
- `${subagentId}-script.sh`
401
- ];
402
- for (const pattern of patterns) {
403
- const filePath = path.join(this.tempDir, pattern);
404
- if (fs.existsSync(filePath)) {
405
- try {
406
- fs.unlinkSync(filePath);
407
- } catch (e) {
408
- }
409
- }
410
- }
411
- }
412
- /**
413
- * Create a mock Task tool response for development
414
- * This simulates what Claude Code's Task tool would return
415
- */
416
- async mockTaskToolExecution(request) {
417
- const startTime = Date.now();
418
- await new Promise((resolve) => setTimeout(resolve, 1e3 + Math.random() * 2e3));
419
- const mockResponses = {
420
- planning: {
421
- tasks: [
422
- { id: "1", type: "analyze", description: "Analyze requirements" },
423
- { id: "2", type: "implement", description: "Implement solution" },
424
- { id: "3", type: "test", description: "Test implementation" },
425
- { id: "4", type: "review", description: "Review and improve" }
426
- ],
427
- dependencies: { "2": ["1"], "3": ["2"], "4": ["3"] }
428
- },
429
- code: {
430
- implementation: `
431
- export class Solution {
432
- constructor(private config: any) {}
433
-
434
- async execute(input: string): Promise<string> {
435
- // Implementation generated by Code subagent
436
- return this.process(input);
437
- }
438
-
439
- private process(input: string): string {
440
- return \`Processed: \${input}\`;
441
- }
442
- }`,
443
- files: ["src/solution.ts"]
444
- },
445
- testing: {
446
- tests: `
447
- describe('Solution', () => {
448
- it('should process input correctly', () => {
449
- const solution = new Solution({});
450
- const result = solution.execute('test');
451
- expect(result).toBe('Processed: test');
452
- });
453
-
454
- it('should handle edge cases', () => {
455
- // Edge case tests
456
- });
457
- });`,
458
- coverage: { lines: 95, branches: 88, functions: 100 }
459
- },
460
- review: {
461
- quality: 0.82,
462
- issues: [
463
- { severity: "high", message: "Missing error handling" },
464
- { severity: "medium", message: "Could improve type safety" }
465
- ],
466
- suggestions: [
467
- "Add try-catch blocks",
468
- "Use stricter TypeScript types",
469
- "Add input validation"
470
- ]
471
- }
472
- };
473
- return {
474
- success: true,
475
- result: mockResponses[request.type] || { status: "completed" },
476
- output: `Mock ${request.type} subagent completed successfully`,
477
- duration: Date.now() - startTime,
478
- subagentType: request.type,
479
- tokens: Math.floor(Math.random() * 5e3) + 1e3
480
- };
481
- }
482
- /**
483
- * Get active subagent statistics
484
- */
485
- getStats() {
486
- return {
487
- activeSubagents: this.activeSubagents.size,
488
- tempDir: this.tempDir
489
- };
490
- }
491
- /**
492
- * Cleanup all resources
493
- */
494
- async cleanupAll() {
495
- for (const [id, controller] of this.activeSubagents) {
496
- controller.abort();
497
- }
498
- this.activeSubagents.clear();
499
- if (fs.existsSync(this.tempDir)) {
500
- const files = await fs.promises.readdir(this.tempDir);
501
- for (const file of files) {
502
- await fs.promises.unlink(path.join(this.tempDir, file));
503
- }
504
- }
505
- logger.info("Claude Code Subagent Client cleaned up");
506
- }
507
- }
508
- export {
509
- ClaudeCodeSubagentClient
510
- };
511
- //# sourceMappingURL=subagent-client.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/integrations/claude-code/subagent-client.ts"],
4
- "sourcesContent": ["/**\n * Claude Code Subagent Client\n * \n * Uses Claude Code's Task tool to spawn subagents instead of direct API calls\n * This leverages the Claude Code Max plan for unlimited subagent execution\n */\n\nimport { logger } from '../../core/monitoring/logger.js';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as os from 'os';\n\nconst execAsync = promisify(exec);\n\nexport interface SubagentRequest {\n type: 'planning' | 'code' | 'testing' | 'linting' | 'review' | 'improve' | 'context' | 'publish';\n task: string;\n context: Record<string, any>;\n systemPrompt?: string;\n files?: string[];\n timeout?: number;\n}\n\nexport interface SubagentResponse {\n success: boolean;\n result: any;\n output?: string;\n error?: string;\n tokens?: number;\n duration: number;\n subagentType: string;\n}\n\n/**\n * Claude Code Subagent Client\n * Spawns subagents using Claude Code's Task tool\n */\nexport class ClaudeCodeSubagentClient {\n private tempDir: string;\n private activeSubagents: Map<string, AbortController> = new Map();\n private mockMode: boolean;\n \n constructor(mockMode: boolean = true) { // Default to mock mode for testing\n this.mockMode = mockMode;\n \n // Create temp directory for subagent communication\n this.tempDir = path.join(os.tmpdir(), 'stackmemory-rlm');\n if (!fs.existsSync(this.tempDir)) {\n fs.mkdirSync(this.tempDir, { recursive: true });\n }\n \n logger.info('Claude Code Subagent Client initialized', {\n tempDir: this.tempDir,\n mockMode: this.mockMode,\n });\n }\n \n /**\n * Execute a subagent task using Claude Code's Task tool\n * This will spawn a new Claude instance with specific instructions\n */\n async executeSubagent(request: SubagentRequest): Promise<SubagentResponse> {\n const startTime = Date.now();\n const subagentId = `${request.type}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n \n logger.info(`Spawning ${request.type} subagent`, {\n subagentId,\n task: request.task.slice(0, 100),\n mockMode: this.mockMode,\n });\n \n // Return mock responses for testing\n if (this.mockMode) {\n return this.getMockResponse(request, startTime, subagentId);\n }\n \n try {\n // Create subagent prompt based on type\n const prompt = this.buildSubagentPrompt(request);\n \n // Write context to temp file for large contexts\n const contextFile = path.join(this.tempDir, `${subagentId}-context.json`);\n await fs.promises.writeFile(\n contextFile,\n JSON.stringify(request.context, null, 2)\n );\n \n // Create result file path\n const resultFile = path.join(this.tempDir, `${subagentId}-result.json`);\n \n // Build the Task tool command\n // The Task tool will spawn a new Claude instance with the specified prompt\n const taskCommand = this.buildTaskCommand(request, prompt, contextFile, resultFile);\n \n // Execute via Claude Code's Task tool\n const result = await this.executeTaskTool(taskCommand, request.timeout);\n \n // Read result from file\n let subagentResult: any = {};\n if (fs.existsSync(resultFile)) {\n const resultContent = await fs.promises.readFile(resultFile, 'utf-8');\n try {\n subagentResult = JSON.parse(resultContent);\n } catch (e) {\n subagentResult = { rawOutput: resultContent };\n }\n }\n \n // Cleanup temp files\n this.cleanup(subagentId);\n \n return {\n success: true,\n result: subagentResult,\n output: result.stdout,\n duration: Date.now() - startTime,\n subagentType: request.type,\n tokens: this.estimateTokens(prompt + JSON.stringify(subagentResult)),\n };\n \n } catch (error: any) {\n logger.error(`Subagent execution failed: ${request.type}`, { error, subagentId });\n \n return {\n success: false,\n result: null,\n error: error.message,\n duration: Date.now() - startTime,\n subagentType: request.type,\n };\n }\n }\n \n /**\n * Execute multiple subagents in parallel\n */\n async executeParallel(requests: SubagentRequest[]): Promise<SubagentResponse[]> {\n logger.info(`Executing ${requests.length} subagents in parallel`);\n \n const promises = requests.map(request => this.executeSubagent(request));\n const results = await Promise.allSettled(promises);\n \n return results.map((result, index) => {\n if (result.status === 'fulfilled') {\n return result.value;\n } else {\n return {\n success: false,\n result: null,\n error: result.reason?.message || 'Unknown error',\n duration: 0,\n subagentType: requests[index].type,\n };\n }\n });\n }\n \n /**\n * Build subagent prompt based on type\n */\n private buildSubagentPrompt(request: SubagentRequest): string {\n const prompts: Record<string, string> = {\n planning: `You are a Planning Subagent. Your role is to decompose complex tasks into manageable subtasks.\n \n Task: ${request.task}\n \n Instructions:\n 1. Analyze the task and identify all components\n 2. Create a dependency graph of subtasks\n 3. Assign appropriate agent types to each subtask\n 4. Consider parallel execution opportunities\n 5. Include comprehensive testing at each stage\n \n Context is available in the provided file.\n \n Output a JSON structure with the task decomposition.`,\n \n code: `You are a Code Generation Subagent. Your role is to implement high-quality, production-ready code.\n \n Task: ${request.task}\n \n Instructions:\n 1. Write clean, maintainable code\n 2. Follow project conventions (check context)\n 3. Include comprehensive error handling\n 4. Add clear comments for complex logic\n 5. Ensure code is testable\n \n Context and requirements are in the provided file.\n \n Output the implementation code.`,\n \n testing: `You are a Testing Subagent specializing in comprehensive test generation.\n \n Task: ${request.task}\n \n Instructions:\n 1. Generate unit tests for all functions/methods\n 2. Create integration tests for API endpoints\n 3. Add E2E tests for critical user flows\n 4. Include edge cases and error scenarios\n 5. Ensure high code coverage (aim for 100%)\n 6. Validate that all tests pass\n \n Context and code to test are in the provided file.\n \n Output a complete test suite.`,\n \n linting: `You are a Linting Subagent ensuring code quality and standards.\n \n Task: ${request.task}\n \n Instructions:\n 1. Check for syntax errors and type issues\n 2. Verify code formatting and style\n 3. Identify security vulnerabilities\n 4. Find performance anti-patterns\n 5. Detect unused imports and dead code\n 6. Provide specific fixes for each issue\n \n Code to analyze is in the context file.\n \n Output a JSON report with issues and fixes.`,\n \n review: `You are a Code Review Subagent performing thorough multi-stage reviews.\n \n Task: ${request.task}\n \n Instructions:\n 1. Evaluate architecture and design patterns\n 2. Assess code quality and maintainability\n 3. Check performance implications\n 4. Review security considerations\n 5. Verify test coverage adequacy\n 6. Suggest specific improvements with examples\n 7. Rate quality on a 0-1 scale\n \n Code and context are in the provided file.\n \n Output a detailed review with quality score and improvements.`,\n \n improve: `You are an Improvement Subagent enhancing code based on reviews.\n \n Task: ${request.task}\n \n Instructions:\n 1. Implement all suggested improvements\n 2. Refactor for better architecture\n 3. Optimize performance bottlenecks\n 4. Enhance error handling\n 5. Improve code clarity and documentation\n 6. Add missing test cases\n 7. Ensure backward compatibility\n \n Review feedback and code are in the context file.\n \n Output the improved code.`,\n \n context: `You are a Context Retrieval Subagent finding relevant information.\n \n Task: ${request.task}\n \n Instructions:\n 1. Search project codebase for relevant code\n 2. Find similar implementations\n 3. Locate relevant documentation\n 4. Identify dependencies and patterns\n 5. Retrieve best practices\n \n Search parameters are in the context file.\n \n Output relevant context snippets.`,\n \n publish: `You are a Publishing Subagent handling releases and deployments.\n \n Task: ${request.task}\n \n Instructions:\n 1. Prepare package for publishing\n 2. Update version numbers\n 3. Generate changelog\n 4. Create GitHub release\n 5. Publish to NPM if applicable\n 6. Update documentation\n \n Release details are in the context file.\n \n Output the release plan and commands.`,\n };\n \n return request.systemPrompt || prompts[request.type] || prompts.planning;\n }\n \n /**\n * Build Task tool command\n * This creates a command that Claude Code's Task tool can execute\n */\n private buildTaskCommand(\n request: SubagentRequest,\n prompt: string,\n contextFile: string,\n resultFile: string\n ): string {\n // Create a script that the subagent will execute\n const scriptContent = `\n#!/bin/bash\n# Subagent execution script for ${request.type}\n\n# Read context\nCONTEXT=$(cat \"${contextFile}\")\n\n# Execute task based on type\ncase \"${request.type}\" in\n \"testing\")\n # For testing subagent, actually run tests\n echo \"Generating and running tests...\"\n # The subagent will generate test files and run them\n ;;\n \"linting\")\n # For linting subagent, run actual linters\n echo \"Running linters...\"\n npm run lint || true\n ;;\n \"code\")\n # For code generation, create implementation files\n echo \"Generating implementation...\"\n ;;\n *)\n # Default behavior\n echo \"Executing ${request.type} task...\"\n ;;\nesac\n\n# Write result\necho '{\"status\": \"completed\", \"type\": \"${request.type}\"}' > \"${resultFile}\"\n`;\n \n const scriptFile = path.join(this.tempDir, `${request.type}-script.sh`);\n fs.writeFileSync(scriptFile, scriptContent);\n fs.chmodSync(scriptFile, '755');\n \n // Return the command that Task tool will execute\n // In practice, this would trigger Claude Code's Task tool\n return scriptFile;\n }\n \n /**\n * Execute via Task tool (simulated for now)\n * In production, this would use Claude Code's actual Task tool API\n */\n private async executeTaskTool(\n command: string,\n timeout?: number\n ): Promise<{ stdout: string; stderr: string }> {\n try {\n // In production, this would call Claude Code's Task tool\n // For now, we simulate with a subprocess\n const result = await execAsync(command, {\n timeout: timeout || 300000, // 5 minutes default\n maxBuffer: 10 * 1024 * 1024, // 10MB buffer\n });\n \n return result;\n } catch (error: any) {\n if (error.killed || error.signal === 'SIGTERM') {\n throw new Error(`Subagent timeout after ${timeout}ms`);\n }\n throw error;\n }\n }\n \n /**\n * Get mock response for testing\n */\n private async getMockResponse(\n request: SubagentRequest, \n startTime: number, \n subagentId: string\n ): Promise<SubagentResponse> {\n // Simulate some processing time\n await new Promise(resolve => setTimeout(resolve, Math.random() * 20 + 10));\n \n const mockResponses: Record<string, any> = {\n planning: {\n tasks: [\n { id: 'task-1', name: 'Analyze requirements', type: 'analysis' },\n { id: 'task-2', name: 'Design solution', type: 'design' },\n { id: 'task-3', name: 'Implement solution', type: 'implementation' },\n ],\n dependencies: [],\n estimated_time: 300,\n },\n \n code: {\n implementation: `function greetUser(name: string): string {\n if (!name || typeof name !== 'string') {\n throw new Error('Invalid name parameter');\n }\n return \\`Hello, \\${name}!\\`;\n}`,\n files_modified: ['src/greet.ts'],\n lines_added: 6,\n lines_removed: 0,\n },\n \n testing: {\n tests: [\n {\n name: 'greetUser should return greeting',\n code: `test('greetUser should return greeting', () => {\n expect(greetUser('Alice')).toBe('Hello, Alice!');\n});`,\n type: 'unit',\n },\n ],\n coverage: { lines: 100, branches: 100, functions: 100 },\n },\n \n linting: {\n issues: [],\n fixes: [],\n passed: true,\n },\n \n review: {\n quality: 0.85,\n issues: [\n 'Consider adding JSDoc comments',\n 'Could add more edge case tests',\n ],\n suggestions: [\n 'Add documentation for the function',\n 'Consider adding internationalization support',\n 'Add performance tests for large inputs',\n ],\n improvements: [],\n },\n \n improve: {\n improved_code: `/**\n * Greets a user with their name\n * @param name - The name of the user to greet\n * @returns A greeting message\n * @throws {Error} If name is invalid\n */\nfunction greetUser(name: string): string {\n if (!name || typeof name !== 'string') {\n throw new Error('Invalid name parameter: name must be a non-empty string');\n }\n return \\`Hello, \\${name}!\\`;\n}`,\n changes_made: [\n 'Added JSDoc documentation',\n 'Improved error message',\n ],\n },\n \n context: {\n relevant_files: ['src/greet.ts', 'test/greet.test.ts'],\n patterns: ['greeting functions', 'input validation'],\n dependencies: [],\n },\n \n publish: {\n version: '1.0.0',\n changelog: 'Initial release',\n published: false,\n reason: 'Mock mode - no actual publishing',\n },\n };\n \n const result = mockResponses[request.type] || {};\n \n return {\n success: true,\n result,\n output: `Mock ${request.type} subagent completed successfully`,\n duration: Date.now() - startTime,\n subagentType: request.type,\n tokens: this.estimateTokens(JSON.stringify(result)),\n };\n }\n \n /**\n * Estimate token usage\n */\n private estimateTokens(text: string): number {\n // Rough estimation: 1 token \u2248 4 characters\n return Math.ceil(text.length / 4);\n }\n \n /**\n * Cleanup temporary files\n */\n private cleanup(subagentId: string): void {\n const patterns = [\n `${subagentId}-context.json`,\n `${subagentId}-result.json`,\n `${subagentId}-script.sh`,\n ];\n \n for (const pattern of patterns) {\n const filePath = path.join(this.tempDir, pattern);\n if (fs.existsSync(filePath)) {\n try {\n fs.unlinkSync(filePath);\n } catch (e) {\n // Ignore cleanup errors\n }\n }\n }\n }\n \n /**\n * Create a mock Task tool response for development\n * This simulates what Claude Code's Task tool would return\n */\n async mockTaskToolExecution(request: SubagentRequest): Promise<SubagentResponse> {\n const startTime = Date.now();\n \n // Simulate processing delay\n await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 2000));\n \n // Generate mock responses based on subagent type\n const mockResponses: Record<string, any> = {\n planning: {\n tasks: [\n { id: '1', type: 'analyze', description: 'Analyze requirements' },\n { id: '2', type: 'implement', description: 'Implement solution' },\n { id: '3', type: 'test', description: 'Test implementation' },\n { id: '4', type: 'review', description: 'Review and improve' },\n ],\n dependencies: { '2': ['1'], '3': ['2'], '4': ['3'] },\n },\n code: {\n implementation: `\nexport class Solution {\n constructor(private config: any) {}\n \n async execute(input: string): Promise<string> {\n // Implementation generated by Code subagent\n return this.process(input);\n }\n \n private process(input: string): string {\n return \\`Processed: \\${input}\\`;\n }\n}`,\n files: ['src/solution.ts'],\n },\n testing: {\n tests: `\ndescribe('Solution', () => {\n it('should process input correctly', () => {\n const solution = new Solution({});\n const result = solution.execute('test');\n expect(result).toBe('Processed: test');\n });\n \n it('should handle edge cases', () => {\n // Edge case tests\n });\n});`,\n coverage: { lines: 95, branches: 88, functions: 100 },\n },\n review: {\n quality: 0.82,\n issues: [\n { severity: 'high', message: 'Missing error handling' },\n { severity: 'medium', message: 'Could improve type safety' },\n ],\n suggestions: [\n 'Add try-catch blocks',\n 'Use stricter TypeScript types',\n 'Add input validation',\n ],\n },\n };\n \n return {\n success: true,\n result: mockResponses[request.type] || { status: 'completed' },\n output: `Mock ${request.type} subagent completed successfully`,\n duration: Date.now() - startTime,\n subagentType: request.type,\n tokens: Math.floor(Math.random() * 5000) + 1000,\n };\n }\n \n /**\n * Get active subagent statistics\n */\n getStats() {\n return {\n activeSubagents: this.activeSubagents.size,\n tempDir: this.tempDir,\n };\n }\n \n /**\n * Cleanup all resources\n */\n async cleanupAll(): Promise<void> {\n // Abort all active subagents\n for (const [id, controller] of this.activeSubagents) {\n controller.abort();\n }\n this.activeSubagents.clear();\n \n // Clean temp directory\n if (fs.existsSync(this.tempDir)) {\n const files = await fs.promises.readdir(this.tempDir);\n for (const file of files) {\n await fs.promises.unlink(path.join(this.tempDir, file));\n }\n }\n \n logger.info('Claude Code Subagent Client cleaned up');\n }\n}"],
5
- "mappings": "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",
6
- "names": []
7
- }