@stackmemoryai/stackmemory 0.5.58 → 0.5.61

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 (932) hide show
  1. package/README.md +105 -1
  2. package/dist/scripts/benchmark-performance.js +48 -0
  3. package/dist/scripts/benchmark-performance.js.map +7 -0
  4. package/dist/scripts/check-redis.js +42 -0
  5. package/dist/scripts/check-redis.js.map +7 -0
  6. package/dist/scripts/initialize.js +116 -0
  7. package/dist/scripts/initialize.js.map +7 -0
  8. package/dist/scripts/list-linear-tasks.js +124 -0
  9. package/dist/scripts/list-linear-tasks.js.map +7 -0
  10. package/dist/scripts/measure-handoff-impact.js +340 -0
  11. package/dist/scripts/measure-handoff-impact.js.map +7 -0
  12. package/dist/scripts/query-chromadb.js +160 -0
  13. package/dist/scripts/query-chromadb.js.map +7 -0
  14. package/dist/scripts/show-linear-summary.js +119 -0
  15. package/dist/scripts/show-linear-summary.js.map +7 -0
  16. package/dist/scripts/simple-swarm-demo.js +90 -0
  17. package/dist/scripts/simple-swarm-demo.js.map +7 -0
  18. package/dist/scripts/status.js +155 -0
  19. package/dist/scripts/status.js.map +7 -0
  20. package/dist/scripts/test-chromadb-sync.js +192 -0
  21. package/dist/scripts/test-chromadb-sync.js.map +7 -0
  22. package/dist/scripts/test-ralph-iteration-fix.js +86 -0
  23. package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
  24. package/dist/scripts/test-ralph-iterations.js +121 -0
  25. package/dist/scripts/test-ralph-iterations.js.map +7 -0
  26. package/dist/scripts/test-redis-storage.js +389 -0
  27. package/dist/scripts/test-redis-storage.js.map +7 -0
  28. package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
  29. package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
  30. package/dist/scripts/test-swarm-fixes.js +125 -0
  31. package/dist/scripts/test-swarm-fixes.js.map +7 -0
  32. package/dist/scripts/test-swarm-tui.js +23 -0
  33. package/dist/scripts/test-swarm-tui.js.map +7 -0
  34. package/dist/scripts/test-tui-shortcuts.js +52 -0
  35. package/dist/scripts/test-tui-shortcuts.js.map +7 -0
  36. package/dist/scripts/validate-tui-shortcuts.js +60 -0
  37. package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
  38. package/dist/src/agents/core/agent-task-manager.js.map +7 -0
  39. package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
  40. package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
  41. package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
  42. package/dist/src/cli/auto-detect.js.map +7 -0
  43. package/dist/src/cli/claude-sm-danger.js.map +7 -0
  44. package/dist/src/cli/claude-sm.js +1236 -0
  45. package/dist/src/cli/claude-sm.js.map +7 -0
  46. package/dist/src/cli/codex-sm-danger.js.map +7 -0
  47. package/dist/src/cli/codex-sm.js.map +7 -0
  48. package/dist/src/cli/commands/api.js.map +7 -0
  49. package/dist/src/cli/commands/auto-background.js.map +7 -0
  50. package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
  51. package/dist/src/cli/commands/clear.js.map +7 -0
  52. package/dist/src/cli/commands/config.js.map +7 -0
  53. package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
  54. package/dist/src/cli/commands/context.js.map +7 -0
  55. package/dist/src/cli/commands/daemon.js.map +7 -0
  56. package/dist/src/cli/commands/dashboard.js.map +7 -0
  57. package/dist/src/cli/commands/db.js.map +7 -0
  58. package/dist/src/cli/commands/decision.js.map +7 -0
  59. package/dist/src/cli/commands/discovery.js.map +7 -0
  60. package/dist/src/cli/commands/handoff.js.map +7 -0
  61. package/dist/src/cli/commands/hooks.js.map +7 -0
  62. package/dist/src/cli/commands/linear.js.map +7 -0
  63. package/dist/src/cli/commands/log.js.map +7 -0
  64. package/dist/src/cli/commands/login.js.map +7 -0
  65. package/dist/src/cli/commands/migrate.js.map +7 -0
  66. package/dist/src/cli/commands/model.js.map +7 -0
  67. package/dist/src/cli/commands/onboard.js.map +7 -0
  68. package/dist/src/cli/commands/projects.js.map +7 -0
  69. package/dist/src/cli/commands/ralph.js.map +7 -0
  70. package/dist/src/cli/commands/retrieval.js.map +7 -0
  71. package/dist/src/cli/commands/search.js +173 -0
  72. package/dist/src/cli/commands/search.js.map +7 -0
  73. package/dist/src/cli/commands/service.js.map +7 -0
  74. package/dist/src/cli/commands/session.js.map +7 -0
  75. package/dist/src/cli/commands/settings.js.map +7 -0
  76. package/dist/src/cli/commands/setup.js.map +7 -0
  77. package/dist/src/cli/commands/shell.js.map +7 -0
  78. package/dist/src/cli/commands/signup.js.map +7 -0
  79. package/dist/src/cli/commands/skills.js.map +7 -0
  80. package/dist/src/cli/commands/sms-notify.js.map +7 -0
  81. package/dist/src/cli/commands/storage-tier.js.map +7 -0
  82. package/dist/src/cli/commands/sweep.js.map +7 -0
  83. package/dist/src/cli/commands/tasks.js.map +7 -0
  84. package/dist/src/cli/commands/worktree.js.map +7 -0
  85. package/dist/src/cli/index.js +609 -0
  86. package/dist/src/cli/index.js.map +7 -0
  87. package/dist/src/cli/opencode-sm.js.map +7 -0
  88. package/dist/src/cli/utils/viewer.js.map +7 -0
  89. package/dist/src/core/config/config-manager.js.map +7 -0
  90. package/dist/src/core/config/feature-flags.js.map +7 -0
  91. package/dist/src/core/config/storage-config.js.map +7 -0
  92. package/dist/src/core/config/types.js.map +7 -0
  93. package/dist/src/core/context/auto-context.js.map +7 -0
  94. package/dist/src/core/context/dual-stack-manager.js.map +7 -0
  95. package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
  96. package/dist/src/core/context/frame-database.js.map +7 -0
  97. package/dist/src/core/context/frame-digest.js.map +7 -0
  98. package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
  99. package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
  100. package/dist/src/core/context/frame-recovery.js.map +7 -0
  101. package/dist/src/core/context/frame-stack.js.map +7 -0
  102. package/dist/src/core/context/index.js.map +7 -0
  103. package/dist/src/core/context/permission-manager.js.map +7 -0
  104. package/dist/src/core/context/recursive-context-manager.js.map +7 -0
  105. package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
  106. package/dist/src/core/context/shared-context-layer.js.map +7 -0
  107. package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
  108. package/dist/src/core/context/validation.js.map +7 -0
  109. package/dist/src/core/database/batch-operations.js.map +7 -0
  110. package/dist/src/core/database/connection-pool.js.map +7 -0
  111. package/dist/src/core/database/database-adapter.js.map +7 -0
  112. package/dist/src/core/database/migration-manager.js.map +7 -0
  113. package/dist/src/core/database/query-cache.js.map +7 -0
  114. package/dist/src/core/database/query-router.js.map +7 -0
  115. package/dist/src/core/database/sqlite-adapter.js +738 -0
  116. package/dist/src/core/database/sqlite-adapter.js.map +7 -0
  117. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
  118. package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
  119. package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
  120. package/dist/src/core/digest/index.js.map +7 -0
  121. package/dist/src/core/digest/types.js.map +7 -0
  122. package/dist/src/core/errors/error-utils.js +208 -0
  123. package/dist/src/core/errors/error-utils.js.map +7 -0
  124. package/dist/src/core/errors/index.js +521 -0
  125. package/dist/src/core/errors/index.js.map +7 -0
  126. package/dist/src/core/errors/recovery.js.map +7 -0
  127. package/dist/src/core/execution/parallel-executor.js.map +7 -0
  128. package/dist/src/core/extensions/custom-tools.js +567 -0
  129. package/dist/src/core/extensions/custom-tools.js.map +7 -0
  130. package/dist/src/core/extensions/index.js +55 -0
  131. package/dist/src/core/extensions/index.js.map +7 -0
  132. package/dist/src/core/extensions/loader.js +709 -0
  133. package/dist/src/core/extensions/loader.js.map +7 -0
  134. package/dist/src/core/extensions/plugin-system.js +506 -0
  135. package/dist/src/core/extensions/plugin-system.js.map +7 -0
  136. package/dist/src/core/extensions/provider-adapter.js +617 -0
  137. package/dist/src/core/extensions/provider-adapter.js.map +7 -0
  138. package/dist/src/core/extensions/sandbox-runtime.js +664 -0
  139. package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
  140. package/dist/src/core/frame/workflow-templates.js.map +7 -0
  141. package/dist/src/core/merge/conflict-detector.js.map +7 -0
  142. package/dist/src/core/merge/index.js.map +7 -0
  143. package/dist/src/core/merge/resolution-engine.js.map +7 -0
  144. package/dist/src/core/merge/stack-diff.js.map +7 -0
  145. package/dist/src/core/merge/unified-merge-resolver.js +303 -0
  146. package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
  147. package/dist/src/core/models/fallback-monitor.js.map +7 -0
  148. package/dist/src/core/models/model-router.js.map +7 -0
  149. package/dist/src/core/monitoring/error-handler.js.map +7 -0
  150. package/dist/src/core/monitoring/logger.js +202 -0
  151. package/dist/src/core/monitoring/logger.js.map +7 -0
  152. package/dist/src/core/monitoring/metrics.js.map +7 -0
  153. package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
  154. package/dist/src/core/monitoring/session-monitor.js.map +7 -0
  155. package/dist/src/core/performance/context-cache.js.map +7 -0
  156. package/dist/src/core/performance/index.js.map +7 -0
  157. package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
  158. package/dist/src/core/performance/monitor.js.map +7 -0
  159. package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
  160. package/dist/src/core/performance/performance-benchmark.js.map +7 -0
  161. package/dist/src/core/performance/performance-profiler.js.map +7 -0
  162. package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
  163. package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
  164. package/dist/src/core/projects/project-isolation.js.map +7 -0
  165. package/dist/src/core/projects/project-manager.js.map +7 -0
  166. package/dist/src/core/query/query-parser.js.map +7 -0
  167. package/dist/src/core/query/query-templates.js.map +7 -0
  168. package/dist/src/core/retrieval/context-retriever.js.map +7 -0
  169. package/dist/src/core/retrieval/index.js.map +7 -0
  170. package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
  171. package/dist/src/core/retrieval/llm-provider.js.map +7 -0
  172. package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
  173. package/dist/src/core/retrieval/summary-generator.js.map +7 -0
  174. package/dist/src/core/retrieval/types.js.map +7 -0
  175. package/dist/src/core/security/index.js +35 -0
  176. package/dist/src/core/security/index.js.map +7 -0
  177. package/dist/src/core/security/input-sanitizer.js +321 -0
  178. package/dist/src/core/security/input-sanitizer.js.map +7 -0
  179. package/dist/src/core/session/clear-survival.js.map +7 -0
  180. package/dist/src/core/session/enhanced-handoff.js.map +7 -0
  181. package/dist/src/core/session/handoff-generator.js.map +7 -0
  182. package/dist/src/core/session/index.js.map +7 -0
  183. package/dist/src/core/session/session-manager.js.map +7 -0
  184. package/dist/src/core/skills/index.js.map +7 -0
  185. package/dist/src/core/skills/skill-storage.js.map +7 -0
  186. package/dist/src/core/skills/types.js.map +7 -0
  187. package/dist/src/core/storage/chromadb-adapter.js +380 -0
  188. package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
  189. package/dist/src/core/storage/infinite-storage.js.map +7 -0
  190. package/dist/src/core/storage/remote-storage.js.map +7 -0
  191. package/dist/src/core/storage/two-tier-storage.js.map +7 -0
  192. package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
  193. package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
  194. package/dist/src/core/trace/debug-trace.js.map +7 -0
  195. package/dist/src/core/trace/index.js.map +7 -0
  196. package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
  197. package/dist/src/core/trace/trace-detector.js.map +7 -0
  198. package/dist/src/core/trace/trace-store.js.map +7 -0
  199. package/dist/src/core/trace/types.js.map +7 -0
  200. package/dist/src/core/utils/async-mutex.js.map +7 -0
  201. package/dist/src/core/utils/compression.js.map +7 -0
  202. package/dist/src/core/utils/update-checker.js.map +7 -0
  203. package/dist/src/core/worktree/worktree-manager.js.map +7 -0
  204. package/dist/src/daemon/daemon-config.js.map +7 -0
  205. package/dist/src/daemon/services/context-service.js.map +7 -0
  206. package/dist/src/daemon/services/linear-service.js.map +7 -0
  207. package/dist/src/daemon/session-daemon.js.map +7 -0
  208. package/dist/src/daemon/unified-daemon.js.map +7 -0
  209. package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
  210. package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
  211. package/dist/src/features/analytics/index.js.map +7 -0
  212. package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
  213. package/dist/src/features/browser/browser-mcp.js.map +7 -0
  214. package/dist/src/features/sweep/index.js.map +7 -0
  215. package/dist/src/features/sweep/prediction-client.js.map +7 -0
  216. package/dist/src/features/sweep/prompt-builder.js.map +7 -0
  217. package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
  218. package/dist/src/features/sweep/state-watcher.js.map +7 -0
  219. package/dist/src/features/sweep/status-bar.js.map +7 -0
  220. package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
  221. package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
  222. package/dist/src/features/sweep/types.js.map +7 -0
  223. package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
  224. package/dist/src/features/tasks/task-aware-context.js.map +7 -0
  225. package/dist/src/features/tui/simple-monitor.js.map +7 -0
  226. package/dist/src/features/tui/swarm-monitor.js.map +7 -0
  227. package/dist/src/features/web/client/stores/task-store.js.map +7 -0
  228. package/dist/src/features/web/server/index.js.map +7 -0
  229. package/dist/src/hooks/auto-background.js.map +7 -0
  230. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
  231. package/dist/src/hooks/config.js.map +7 -0
  232. package/dist/src/hooks/daemon.js.map +7 -0
  233. package/dist/src/hooks/events.js.map +7 -0
  234. package/dist/src/hooks/index.js.map +7 -0
  235. package/dist/src/hooks/linear-task-picker.js.map +7 -0
  236. package/dist/src/hooks/schemas.js.map +7 -0
  237. package/dist/src/hooks/secure-fs.js.map +7 -0
  238. package/dist/src/hooks/security-logger.js.map +7 -0
  239. package/dist/src/hooks/session-summary.js.map +7 -0
  240. package/dist/src/hooks/sms-action-runner.js.map +7 -0
  241. package/dist/src/hooks/sms-notify.js.map +7 -0
  242. package/dist/src/hooks/sms-watcher.js.map +7 -0
  243. package/dist/src/hooks/sms-webhook.js.map +7 -0
  244. package/dist/src/hooks/whatsapp-commands.js.map +7 -0
  245. package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
  246. package/dist/src/hooks/whatsapp-sync.js.map +7 -0
  247. package/dist/src/index.js.map +7 -0
  248. package/dist/src/integrations/anthropic/client.js.map +7 -0
  249. package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
  250. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  251. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  252. package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
  253. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
  254. package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
  255. package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
  256. package/dist/src/integrations/linear/auth.js.map +7 -0
  257. package/dist/src/integrations/linear/auto-sync.js.map +7 -0
  258. package/dist/src/integrations/linear/client.js +634 -0
  259. package/dist/src/integrations/linear/client.js.map +7 -0
  260. package/dist/src/integrations/linear/config.js.map +7 -0
  261. package/dist/src/integrations/linear/migration.js.map +7 -0
  262. package/dist/src/integrations/linear/oauth-server.js.map +7 -0
  263. package/dist/src/integrations/linear/rest-client.js.map +7 -0
  264. package/dist/src/integrations/linear/sync-manager.js.map +7 -0
  265. package/dist/src/integrations/linear/sync-service.js.map +7 -0
  266. package/dist/src/integrations/linear/sync.js.map +7 -0
  267. package/dist/src/integrations/linear/unified-sync.js.map +7 -0
  268. package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
  269. package/dist/src/integrations/linear/webhook-server.js.map +7 -0
  270. package/dist/src/integrations/linear/webhook.js.map +7 -0
  271. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
  272. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
  273. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
  274. package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
  275. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
  276. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  277. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
  278. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
  279. package/dist/src/integrations/mcp/index.js.map +7 -0
  280. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  281. package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
  282. package/dist/src/integrations/mcp/remote-server.js +682 -0
  283. package/dist/src/integrations/mcp/remote-server.js.map +7 -0
  284. package/dist/src/integrations/mcp/schemas.js.map +7 -0
  285. package/dist/src/integrations/mcp/server.js +1975 -0
  286. package/dist/src/integrations/mcp/server.js.map +7 -0
  287. package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
  288. package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
  289. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
  290. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
  291. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
  292. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
  293. package/dist/src/integrations/ralph/index.js.map +7 -0
  294. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
  295. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
  296. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
  297. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
  298. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
  299. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
  300. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
  301. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
  302. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
  303. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
  304. package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
  305. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
  306. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
  307. package/dist/src/integrations/ralph/types.js +5 -0
  308. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
  309. package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
  310. package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
  311. package/dist/src/models/user.model.js.map +7 -0
  312. package/dist/src/servers/production/auth-middleware.js.map +7 -0
  313. package/dist/src/services/config-service.js.map +7 -0
  314. package/dist/src/services/context-service.js.map +7 -0
  315. package/dist/src/skills/api-discovery.js.map +7 -0
  316. package/dist/src/skills/api-skill.js.map +7 -0
  317. package/dist/src/skills/claude-skills.js.map +7 -0
  318. package/dist/src/skills/dashboard-launcher.js.map +7 -0
  319. package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
  320. package/dist/src/skills/repo-ingestion-skill.js +632 -0
  321. package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
  322. package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
  323. package/dist/src/types/task.js.map +7 -0
  324. package/dist/src/utils/env.js.map +7 -0
  325. package/dist/src/utils/formatting.js.map +7 -0
  326. package/dist/src/utils/process-cleanup.js.map +7 -0
  327. package/package.json +13 -9
  328. package/scripts/background-sync-manager.js +145 -83
  329. package/scripts/claude-sm-autostart.js +17 -12
  330. package/scripts/gepa/README.md +275 -0
  331. package/scripts/gepa/config.json +53 -0
  332. package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
  333. package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
  334. package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
  335. package/scripts/gepa/generations/gen-000/baseline.md +124 -0
  336. package/scripts/gepa/hooks/auto-optimize.js +494 -0
  337. package/scripts/gepa/hooks/eval-tracker.js +203 -0
  338. package/scripts/gepa/hooks/reflect.js +311 -0
  339. package/scripts/gepa/optimize.js +611 -0
  340. package/scripts/gepa/state.json +14 -0
  341. package/scripts/initialize.ts +16 -7
  342. package/scripts/install.sh +14 -62
  343. package/scripts/status.ts +111 -46
  344. package/scripts/test-pre-publish-quick.sh +1 -1
  345. package/dist/agents/core/agent-task-manager.js.map +0 -7
  346. package/dist/agents/testing-agent.js +0 -614
  347. package/dist/agents/testing-agent.js.map +0 -7
  348. package/dist/agents/verifiers/base-verifier.js.map +0 -7
  349. package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
  350. package/dist/agents/verifiers/llm-judge.js.map +0 -7
  351. package/dist/cli/auto-detect.js.map +0 -7
  352. package/dist/cli/browser-test.js +0 -33
  353. package/dist/cli/browser-test.js.map +0 -7
  354. package/dist/cli/claude-sm-danger.js.map +0 -7
  355. package/dist/cli/claude-sm.js +0 -1156
  356. package/dist/cli/claude-sm.js.map +0 -7
  357. package/dist/cli/codex-sm-danger.js.map +0 -7
  358. package/dist/cli/codex-sm.js.map +0 -7
  359. package/dist/cli/commands/api.js.map +0 -7
  360. package/dist/cli/commands/auto-background.js.map +0 -7
  361. package/dist/cli/commands/cleanup-processes.js.map +0 -7
  362. package/dist/cli/commands/clear.js.map +0 -7
  363. package/dist/cli/commands/config.js.map +0 -7
  364. package/dist/cli/commands/context-rehydrate.js.map +0 -7
  365. package/dist/cli/commands/context.js.map +0 -7
  366. package/dist/cli/commands/daemon.js.map +0 -7
  367. package/dist/cli/commands/dashboard.js.map +0 -7
  368. package/dist/cli/commands/db.js.map +0 -7
  369. package/dist/cli/commands/decision.js.map +0 -7
  370. package/dist/cli/commands/discovery.js.map +0 -7
  371. package/dist/cli/commands/handoff.js.map +0 -7
  372. package/dist/cli/commands/hooks.js.map +0 -7
  373. package/dist/cli/commands/linear-unified.js +0 -353
  374. package/dist/cli/commands/linear-unified.js.map +0 -7
  375. package/dist/cli/commands/linear.js.map +0 -7
  376. package/dist/cli/commands/log.js.map +0 -7
  377. package/dist/cli/commands/login.js.map +0 -7
  378. package/dist/cli/commands/migrate.js.map +0 -7
  379. package/dist/cli/commands/model.js.map +0 -7
  380. package/dist/cli/commands/monitor.js +0 -313
  381. package/dist/cli/commands/monitor.js.map +0 -7
  382. package/dist/cli/commands/onboard.js.map +0 -7
  383. package/dist/cli/commands/projects.js.map +0 -7
  384. package/dist/cli/commands/quality.js +0 -413
  385. package/dist/cli/commands/quality.js.map +0 -7
  386. package/dist/cli/commands/ralph.js.map +0 -7
  387. package/dist/cli/commands/retrieval.js.map +0 -7
  388. package/dist/cli/commands/search.js +0 -156
  389. package/dist/cli/commands/search.js.map +0 -7
  390. package/dist/cli/commands/service.js.map +0 -7
  391. package/dist/cli/commands/session.js.map +0 -7
  392. package/dist/cli/commands/settings.js.map +0 -7
  393. package/dist/cli/commands/setup.js.map +0 -7
  394. package/dist/cli/commands/shell.js.map +0 -7
  395. package/dist/cli/commands/signup.js.map +0 -7
  396. package/dist/cli/commands/skills.js.map +0 -7
  397. package/dist/cli/commands/sms-notify.js.map +0 -7
  398. package/dist/cli/commands/storage-tier.js.map +0 -7
  399. package/dist/cli/commands/storage.js +0 -360
  400. package/dist/cli/commands/storage.js.map +0 -7
  401. package/dist/cli/commands/sweep.js.map +0 -7
  402. package/dist/cli/commands/tasks.js.map +0 -7
  403. package/dist/cli/commands/test.js +0 -286
  404. package/dist/cli/commands/test.js.map +0 -7
  405. package/dist/cli/commands/workflow.js +0 -142
  406. package/dist/cli/commands/workflow.js.map +0 -7
  407. package/dist/cli/commands/worktree.js.map +0 -7
  408. package/dist/cli/index.js +0 -594
  409. package/dist/cli/index.js.map +0 -7
  410. package/dist/cli/opencode-sm.js.map +0 -7
  411. package/dist/cli/utils/viewer.js.map +0 -7
  412. package/dist/core/analytics/team-analytics.js +0 -378
  413. package/dist/core/analytics/team-analytics.js.map +0 -7
  414. package/dist/core/config/config-manager.js.map +0 -7
  415. package/dist/core/config/feature-flags.js.map +0 -7
  416. package/dist/core/config/storage-config.js.map +0 -7
  417. package/dist/core/config/types.js.map +0 -7
  418. package/dist/core/context/auto-context.js.map +0 -7
  419. package/dist/core/context/dual-stack-manager.js.map +0 -7
  420. package/dist/core/context/enhanced-rehydration.js.map +0 -7
  421. package/dist/core/context/frame-database.js.map +0 -7
  422. package/dist/core/context/frame-digest.js.map +0 -7
  423. package/dist/core/context/frame-handoff-manager.js.map +0 -7
  424. package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
  425. package/dist/core/context/frame-manager.js +0 -1069
  426. package/dist/core/context/frame-manager.js.map +0 -7
  427. package/dist/core/context/frame-recovery.js.map +0 -7
  428. package/dist/core/context/frame-stack.js.map +0 -7
  429. package/dist/core/context/incremental-gc.js +0 -290
  430. package/dist/core/context/incremental-gc.js.map +0 -7
  431. package/dist/core/context/index.js.map +0 -7
  432. package/dist/core/context/model-aware-compaction.js +0 -623
  433. package/dist/core/context/model-aware-compaction.js.map +0 -7
  434. package/dist/core/context/permission-manager.js.map +0 -7
  435. package/dist/core/context/recursive-context-manager.js.map +0 -7
  436. package/dist/core/context/refactored-frame-manager.js.map +0 -7
  437. package/dist/core/context/shared-context-layer.js.map +0 -7
  438. package/dist/core/context/stack-merge-resolver.js.map +0 -7
  439. package/dist/core/context/validation.js.map +0 -7
  440. package/dist/core/database/batch-operations.js.map +0 -7
  441. package/dist/core/database/connection-pool.js.map +0 -7
  442. package/dist/core/database/database-adapter.js.map +0 -7
  443. package/dist/core/database/migration-manager.js.map +0 -7
  444. package/dist/core/database/paradedb-adapter.js +0 -990
  445. package/dist/core/database/paradedb-adapter.js.map +0 -7
  446. package/dist/core/database/query-cache.js.map +0 -7
  447. package/dist/core/database/query-router.js.map +0 -7
  448. package/dist/core/database/sqlite-adapter.js +0 -728
  449. package/dist/core/database/sqlite-adapter.js.map +0 -7
  450. package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
  451. package/dist/core/digest/frame-digest-integration.js.map +0 -7
  452. package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
  453. package/dist/core/digest/index.js.map +0 -7
  454. package/dist/core/digest/types.js.map +0 -7
  455. package/dist/core/errors/index.js +0 -512
  456. package/dist/core/errors/index.js.map +0 -7
  457. package/dist/core/errors/recovery.js.map +0 -7
  458. package/dist/core/execution/parallel-executor.js.map +0 -7
  459. package/dist/core/frame/workflow-templates.js.map +0 -7
  460. package/dist/core/merge/conflict-detector.js.map +0 -7
  461. package/dist/core/merge/index.js.map +0 -7
  462. package/dist/core/merge/resolution-engine.js.map +0 -7
  463. package/dist/core/merge/stack-diff.js.map +0 -7
  464. package/dist/core/models/fallback-monitor.js.map +0 -7
  465. package/dist/core/models/model-router.js.map +0 -7
  466. package/dist/core/monitoring/error-handler.js.map +0 -7
  467. package/dist/core/monitoring/logger.js +0 -150
  468. package/dist/core/monitoring/logger.js.map +0 -7
  469. package/dist/core/monitoring/metrics.js.map +0 -7
  470. package/dist/core/monitoring/progress-tracker.js.map +0 -7
  471. package/dist/core/monitoring/session-monitor.js.map +0 -7
  472. package/dist/core/performance/context-cache.js.map +0 -7
  473. package/dist/core/performance/index.js.map +0 -7
  474. package/dist/core/performance/lazy-context-loader.js.map +0 -7
  475. package/dist/core/performance/monitor.js.map +0 -7
  476. package/dist/core/performance/optimized-frame-context.js.map +0 -7
  477. package/dist/core/performance/performance-benchmark.js.map +0 -7
  478. package/dist/core/performance/performance-profiler.js.map +0 -7
  479. package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
  480. package/dist/core/persistence/postgres-adapter.js.map +0 -7
  481. package/dist/core/projects/project-isolation.js.map +0 -7
  482. package/dist/core/projects/project-manager.js.map +0 -7
  483. package/dist/core/query/query-parser.js.map +0 -7
  484. package/dist/core/query/query-templates.js.map +0 -7
  485. package/dist/core/retrieval/context-retriever.js.map +0 -7
  486. package/dist/core/retrieval/graph-retrieval.js +0 -662
  487. package/dist/core/retrieval/graph-retrieval.js.map +0 -7
  488. package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
  489. package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
  490. package/dist/core/retrieval/index.js.map +0 -7
  491. package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
  492. package/dist/core/retrieval/llm-provider.js.map +0 -7
  493. package/dist/core/retrieval/retrieval-audit.js.map +0 -7
  494. package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
  495. package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
  496. package/dist/core/retrieval/summary-generator.js.map +0 -7
  497. package/dist/core/retrieval/types.js.map +0 -7
  498. package/dist/core/session/clear-survival.js.map +0 -7
  499. package/dist/core/session/enhanced-handoff.js.map +0 -7
  500. package/dist/core/session/handoff-generator.js.map +0 -7
  501. package/dist/core/session/index.js.map +0 -7
  502. package/dist/core/session/session-manager.js.map +0 -7
  503. package/dist/core/skills/index.js.map +0 -7
  504. package/dist/core/skills/skill-storage.js.map +0 -7
  505. package/dist/core/skills/types.js.map +0 -7
  506. package/dist/core/storage/chromadb-adapter.js +0 -354
  507. package/dist/core/storage/chromadb-adapter.js.map +0 -7
  508. package/dist/core/storage/infinite-storage.js.map +0 -7
  509. package/dist/core/storage/railway-optimized-storage.js +0 -591
  510. package/dist/core/storage/railway-optimized-storage.js.map +0 -7
  511. package/dist/core/storage/remote-storage.js.map +0 -7
  512. package/dist/core/storage/two-tier-storage.js.map +0 -7
  513. package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
  514. package/dist/core/trace/db-trace-wrapper.js.map +0 -7
  515. package/dist/core/trace/debug-trace.js.map +0 -7
  516. package/dist/core/trace/index.js.map +0 -7
  517. package/dist/core/trace/linear-api-wrapper.js.map +0 -7
  518. package/dist/core/trace/trace-demo.js +0 -154
  519. package/dist/core/trace/trace-demo.js.map +0 -7
  520. package/dist/core/trace/trace-detector.demo.js +0 -142
  521. package/dist/core/trace/trace-detector.demo.js.map +0 -7
  522. package/dist/core/trace/trace-detector.js.map +0 -7
  523. package/dist/core/trace/trace-store.js.map +0 -7
  524. package/dist/core/trace/types.js.map +0 -7
  525. package/dist/core/utils/async-mutex.js.map +0 -7
  526. package/dist/core/utils/compression.js.map +0 -7
  527. package/dist/core/utils/update-checker.js.map +0 -7
  528. package/dist/core/worktree/worktree-manager.js.map +0 -7
  529. package/dist/daemon/daemon-config.js.map +0 -7
  530. package/dist/daemon/services/context-service.js.map +0 -7
  531. package/dist/daemon/services/linear-service.js.map +0 -7
  532. package/dist/daemon/session-daemon.js.map +0 -7
  533. package/dist/daemon/unified-daemon.js.map +0 -7
  534. package/dist/features/analytics/api/analytics-api.js.map +0 -7
  535. package/dist/features/analytics/core/analytics-service.js.map +0 -7
  536. package/dist/features/analytics/index.js.map +0 -7
  537. package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
  538. package/dist/features/browser/browser-mcp.js.map +0 -7
  539. package/dist/features/sweep/index.js.map +0 -7
  540. package/dist/features/sweep/prediction-client.js.map +0 -7
  541. package/dist/features/sweep/prompt-builder.js.map +0 -7
  542. package/dist/features/sweep/pty-wrapper.js.map +0 -7
  543. package/dist/features/sweep/state-watcher.js.map +0 -7
  544. package/dist/features/sweep/status-bar.js.map +0 -7
  545. package/dist/features/sweep/sweep-server-manager.js.map +0 -7
  546. package/dist/features/sweep/tab-interceptor.js.map +0 -7
  547. package/dist/features/sweep/types.js.map +0 -7
  548. package/dist/features/tasks/linear-task-manager.js.map +0 -7
  549. package/dist/features/tasks/task-aware-context.js.map +0 -7
  550. package/dist/features/tui/simple-monitor.js.map +0 -7
  551. package/dist/features/tui/swarm-monitor.js.map +0 -7
  552. package/dist/features/web/client/stores/task-store.js.map +0 -7
  553. package/dist/features/web/server/index.js.map +0 -7
  554. package/dist/hooks/auto-background.js.map +0 -7
  555. package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
  556. package/dist/hooks/config.js.map +0 -7
  557. package/dist/hooks/daemon.js.map +0 -7
  558. package/dist/hooks/events.js.map +0 -7
  559. package/dist/hooks/index.js.map +0 -7
  560. package/dist/hooks/linear-task-picker.js.map +0 -7
  561. package/dist/hooks/schemas.js.map +0 -7
  562. package/dist/hooks/secure-fs.js.map +0 -7
  563. package/dist/hooks/security-logger.js.map +0 -7
  564. package/dist/hooks/session-summary.js.map +0 -7
  565. package/dist/hooks/sms-action-runner.js.map +0 -7
  566. package/dist/hooks/sms-notify.js.map +0 -7
  567. package/dist/hooks/sms-watcher.js.map +0 -7
  568. package/dist/hooks/sms-webhook.js.map +0 -7
  569. package/dist/hooks/whatsapp-commands.js.map +0 -7
  570. package/dist/hooks/whatsapp-scheduler.js.map +0 -7
  571. package/dist/hooks/whatsapp-sync.js.map +0 -7
  572. package/dist/index.js.map +0 -7
  573. package/dist/integrations/anthropic/client.js.map +0 -7
  574. package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
  575. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  576. package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  577. package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
  578. package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
  579. package/dist/integrations/claude-code/subagent-client.js.map +0 -7
  580. package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
  581. package/dist/integrations/linear/auth.js.map +0 -7
  582. package/dist/integrations/linear/auto-sync.js.map +0 -7
  583. package/dist/integrations/linear/client.js +0 -630
  584. package/dist/integrations/linear/client.js.map +0 -7
  585. package/dist/integrations/linear/config.js.map +0 -7
  586. package/dist/integrations/linear/migration.js.map +0 -7
  587. package/dist/integrations/linear/oauth-server.js.map +0 -7
  588. package/dist/integrations/linear/rest-client.js.map +0 -7
  589. package/dist/integrations/linear/sync-manager.js.map +0 -7
  590. package/dist/integrations/linear/sync-service.js.map +0 -7
  591. package/dist/integrations/linear/sync.js.map +0 -7
  592. package/dist/integrations/linear/unified-sync.js.map +0 -7
  593. package/dist/integrations/linear/webhook-handler.js.map +0 -7
  594. package/dist/integrations/linear/webhook-server.js.map +0 -7
  595. package/dist/integrations/linear/webhook.js.map +0 -7
  596. package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  597. package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
  598. package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  599. package/dist/integrations/mcp/handlers/index.js.map +0 -7
  600. package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  601. package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  602. package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
  603. package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  604. package/dist/integrations/mcp/index.js.map +0 -7
  605. package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  606. package/dist/integrations/mcp/refactored-server.js.map +0 -7
  607. package/dist/integrations/mcp/remote-server.js +0 -691
  608. package/dist/integrations/mcp/remote-server.js.map +0 -7
  609. package/dist/integrations/mcp/schemas.js.map +0 -7
  610. package/dist/integrations/mcp/server.js +0 -1960
  611. package/dist/integrations/mcp/server.js.map +0 -7
  612. package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
  613. package/dist/integrations/mcp/tool-definitions.js.map +0 -7
  614. package/dist/integrations/mcp/trace-test.js +0 -48
  615. package/dist/integrations/mcp/trace-test.js.map +0 -7
  616. package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
  617. package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
  618. package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
  619. package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
  620. package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
  621. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
  622. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  623. package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
  624. package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  625. package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  626. package/dist/integrations/ralph/index.js.map +0 -7
  627. package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
  628. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  629. package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  630. package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  631. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  632. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  633. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  634. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  635. package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  636. package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
  637. package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
  638. package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  639. package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
  640. package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  641. package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  642. package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  643. package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
  644. package/dist/middleware/exponential-rate-limiter.js.map +0 -7
  645. package/dist/models/user.model.js.map +0 -7
  646. package/dist/servers/production/auth-middleware.js.map +0 -7
  647. package/dist/servers/railway/config.js +0 -55
  648. package/dist/servers/railway/config.js.map +0 -7
  649. package/dist/servers/railway/index-enhanced.js +0 -160
  650. package/dist/servers/railway/index-enhanced.js.map +0 -7
  651. package/dist/servers/railway/index.js +0 -1349
  652. package/dist/servers/railway/index.js.map +0 -7
  653. package/dist/servers/railway/simple.js +0 -64
  654. package/dist/servers/railway/simple.js.map +0 -7
  655. package/dist/servers/railway/storage-test.js +0 -459
  656. package/dist/servers/railway/storage-test.js.map +0 -7
  657. package/dist/services/config-service.js.map +0 -7
  658. package/dist/services/context-service.js.map +0 -7
  659. package/dist/skills/api-discovery.js.map +0 -7
  660. package/dist/skills/api-skill.js.map +0 -7
  661. package/dist/skills/claude-skills.js.map +0 -7
  662. package/dist/skills/dashboard-launcher.js.map +0 -7
  663. package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
  664. package/dist/skills/repo-ingestion-skill.js +0 -609
  665. package/dist/skills/repo-ingestion-skill.js.map +0 -7
  666. package/dist/skills/security-secrets-scanner.js +0 -284
  667. package/dist/skills/security-secrets-scanner.js.map +0 -7
  668. package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
  669. package/dist/utils/env.js.map +0 -7
  670. package/dist/utils/formatting.js.map +0 -7
  671. package/dist/utils/process-cleanup.js.map +0 -7
  672. package/dist/validation/schemas.js +0 -222
  673. package/dist/validation/schemas.js.map +0 -7
  674. /package/dist/{agents → src/agents}/core/agent-task-manager.js +0 -0
  675. /package/dist/{agents → src/agents}/verifiers/base-verifier.js +0 -0
  676. /package/dist/{agents → src/agents}/verifiers/formatter-verifier.js +0 -0
  677. /package/dist/{agents → src/agents}/verifiers/llm-judge.js +0 -0
  678. /package/dist/{cli → src/cli}/auto-detect.js +0 -0
  679. /package/dist/{cli → src/cli}/claude-sm-danger.js +0 -0
  680. /package/dist/{cli → src/cli}/codex-sm-danger.js +0 -0
  681. /package/dist/{cli → src/cli}/codex-sm.js +0 -0
  682. /package/dist/{cli → src/cli}/commands/api.js +0 -0
  683. /package/dist/{cli → src/cli}/commands/auto-background.js +0 -0
  684. /package/dist/{cli → src/cli}/commands/cleanup-processes.js +0 -0
  685. /package/dist/{cli → src/cli}/commands/clear.js +0 -0
  686. /package/dist/{cli → src/cli}/commands/config.js +0 -0
  687. /package/dist/{cli → src/cli}/commands/context-rehydrate.js +0 -0
  688. /package/dist/{cli → src/cli}/commands/context.js +0 -0
  689. /package/dist/{cli → src/cli}/commands/daemon.js +0 -0
  690. /package/dist/{cli → src/cli}/commands/dashboard.js +0 -0
  691. /package/dist/{cli → src/cli}/commands/db.js +0 -0
  692. /package/dist/{cli → src/cli}/commands/decision.js +0 -0
  693. /package/dist/{cli → src/cli}/commands/discovery.js +0 -0
  694. /package/dist/{cli → src/cli}/commands/handoff.js +0 -0
  695. /package/dist/{cli → src/cli}/commands/hooks.js +0 -0
  696. /package/dist/{cli → src/cli}/commands/linear.js +0 -0
  697. /package/dist/{cli → src/cli}/commands/log.js +0 -0
  698. /package/dist/{cli → src/cli}/commands/login.js +0 -0
  699. /package/dist/{cli → src/cli}/commands/migrate.js +0 -0
  700. /package/dist/{cli → src/cli}/commands/model.js +0 -0
  701. /package/dist/{cli → src/cli}/commands/onboard.js +0 -0
  702. /package/dist/{cli → src/cli}/commands/projects.js +0 -0
  703. /package/dist/{cli → src/cli}/commands/ralph.js +0 -0
  704. /package/dist/{cli → src/cli}/commands/retrieval.js +0 -0
  705. /package/dist/{cli → src/cli}/commands/service.js +0 -0
  706. /package/dist/{cli → src/cli}/commands/session.js +0 -0
  707. /package/dist/{cli → src/cli}/commands/settings.js +0 -0
  708. /package/dist/{cli → src/cli}/commands/setup.js +0 -0
  709. /package/dist/{cli → src/cli}/commands/shell.js +0 -0
  710. /package/dist/{cli → src/cli}/commands/signup.js +0 -0
  711. /package/dist/{cli → src/cli}/commands/skills.js +0 -0
  712. /package/dist/{cli → src/cli}/commands/sms-notify.js +0 -0
  713. /package/dist/{cli → src/cli}/commands/storage-tier.js +0 -0
  714. /package/dist/{cli → src/cli}/commands/sweep.js +0 -0
  715. /package/dist/{cli → src/cli}/commands/tasks.js +0 -0
  716. /package/dist/{cli → src/cli}/commands/worktree.js +0 -0
  717. /package/dist/{cli → src/cli}/opencode-sm.js +0 -0
  718. /package/dist/{cli → src/cli}/utils/viewer.js +0 -0
  719. /package/dist/{core → src/core}/config/config-manager.js +0 -0
  720. /package/dist/{core → src/core}/config/feature-flags.js +0 -0
  721. /package/dist/{core → src/core}/config/storage-config.js +0 -0
  722. /package/dist/{core → src/core}/config/types.js +0 -0
  723. /package/dist/{core → src/core}/context/auto-context.js +0 -0
  724. /package/dist/{core → src/core}/context/dual-stack-manager.js +0 -0
  725. /package/dist/{core → src/core}/context/enhanced-rehydration.js +0 -0
  726. /package/dist/{core → src/core}/context/frame-database.js +0 -0
  727. /package/dist/{core → src/core}/context/frame-digest.js +0 -0
  728. /package/dist/{core → src/core}/context/frame-handoff-manager.js +0 -0
  729. /package/dist/{core → src/core}/context/frame-lifecycle-hooks.js +0 -0
  730. /package/dist/{core → src/core}/context/frame-recovery.js +0 -0
  731. /package/dist/{core → src/core}/context/frame-stack.js +0 -0
  732. /package/dist/{core → src/core}/context/frame-types.js +0 -0
  733. /package/dist/{core → src/core}/context/frame-types.js.map +0 -0
  734. /package/dist/{core → src/core}/context/index.js +0 -0
  735. /package/dist/{core → src/core}/context/permission-manager.js +0 -0
  736. /package/dist/{core → src/core}/context/recursive-context-manager.js +0 -0
  737. /package/dist/{core → src/core}/context/refactored-frame-manager.js +0 -0
  738. /package/dist/{core → src/core}/context/shared-context-layer.js +0 -0
  739. /package/dist/{core → src/core}/context/stack-merge-resolver.js +0 -0
  740. /package/dist/{core → src/core}/context/validation.js +0 -0
  741. /package/dist/{core → src/core}/database/batch-operations.js +0 -0
  742. /package/dist/{core → src/core}/database/connection-pool.js +0 -0
  743. /package/dist/{core → src/core}/database/database-adapter.js +0 -0
  744. /package/dist/{core → src/core}/database/migration-manager.js +0 -0
  745. /package/dist/{core → src/core}/database/query-cache.js +0 -0
  746. /package/dist/{core → src/core}/database/query-router.js +0 -0
  747. /package/dist/{core → src/core}/digest/enhanced-hybrid-digest.js +0 -0
  748. /package/dist/{core → src/core}/digest/frame-digest-integration.js +0 -0
  749. /package/dist/{core → src/core}/digest/hybrid-digest-generator.js +0 -0
  750. /package/dist/{core → src/core}/digest/index.js +0 -0
  751. /package/dist/{core → src/core}/digest/types.js +0 -0
  752. /package/dist/{core → src/core}/errors/recovery.js +0 -0
  753. /package/dist/{core → src/core}/execution/parallel-executor.js +0 -0
  754. /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
  755. /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
  756. /package/dist/{core → src/core}/frame/workflow-templates.js +0 -0
  757. /package/dist/{core → src/core}/merge/conflict-detector.js +0 -0
  758. /package/dist/{core → src/core}/merge/index.js +0 -0
  759. /package/dist/{core → src/core}/merge/resolution-engine.js +0 -0
  760. /package/dist/{core → src/core}/merge/stack-diff.js +0 -0
  761. /package/dist/{core → src/core/merge}/types.js +0 -0
  762. /package/dist/{core → src/core/merge}/types.js.map +0 -0
  763. /package/dist/{core → src/core}/models/fallback-monitor.js +0 -0
  764. /package/dist/{core → src/core}/models/model-router.js +0 -0
  765. /package/dist/{core → src/core}/monitoring/error-handler.js +0 -0
  766. /package/dist/{core → src/core}/monitoring/metrics.js +0 -0
  767. /package/dist/{core → src/core}/monitoring/progress-tracker.js +0 -0
  768. /package/dist/{core → src/core}/monitoring/session-monitor.js +0 -0
  769. /package/dist/{core → src/core}/performance/context-cache.js +0 -0
  770. /package/dist/{core → src/core}/performance/index.js +0 -0
  771. /package/dist/{core → src/core}/performance/lazy-context-loader.js +0 -0
  772. /package/dist/{core → src/core}/performance/monitor.js +0 -0
  773. /package/dist/{core → src/core}/performance/optimized-frame-context.js +0 -0
  774. /package/dist/{core → src/core}/performance/performance-benchmark.js +0 -0
  775. /package/dist/{core → src/core}/performance/performance-profiler.js +0 -0
  776. /package/dist/{core → src/core}/performance/streaming-jsonl-parser.js +0 -0
  777. /package/dist/{core → src/core}/persistence/postgres-adapter.js +0 -0
  778. /package/dist/{core → src/core}/projects/project-isolation.js +0 -0
  779. /package/dist/{core → src/core}/projects/project-manager.js +0 -0
  780. /package/dist/{core → src/core}/query/query-parser.js +0 -0
  781. /package/dist/{core → src/core}/query/query-templates.js +0 -0
  782. /package/dist/{core → src/core}/retrieval/context-retriever.js +0 -0
  783. /package/dist/{core → src/core}/retrieval/index.js +0 -0
  784. /package/dist/{core → src/core}/retrieval/llm-context-retrieval.js +0 -0
  785. /package/dist/{core → src/core}/retrieval/llm-provider.js +0 -0
  786. /package/dist/{core → src/core}/retrieval/retrieval-audit.js +0 -0
  787. /package/dist/{core → src/core}/retrieval/summary-generator.js +0 -0
  788. /package/dist/{core → src/core}/retrieval/types.js +0 -0
  789. /package/dist/{core → src/core}/session/clear-survival.js +0 -0
  790. /package/dist/{core → src/core}/session/enhanced-handoff.js +0 -0
  791. /package/dist/{core → src/core}/session/handoff-generator.js +0 -0
  792. /package/dist/{core → src/core}/session/index.js +0 -0
  793. /package/dist/{core → src/core}/session/session-manager.js +0 -0
  794. /package/dist/{core → src/core}/skills/index.js +0 -0
  795. /package/dist/{core → src/core}/skills/skill-storage.js +0 -0
  796. /package/dist/{core → src/core}/skills/types.js +0 -0
  797. /package/dist/{core → src/core}/storage/infinite-storage.js +0 -0
  798. /package/dist/{core → src/core}/storage/remote-storage.js +0 -0
  799. /package/dist/{core → src/core}/storage/two-tier-storage.js +0 -0
  800. /package/dist/{core → src/core}/trace/cli-trace-wrapper.js +0 -0
  801. /package/dist/{core → src/core}/trace/db-trace-wrapper.js +0 -0
  802. /package/dist/{core → src/core}/trace/debug-trace.js +0 -0
  803. /package/dist/{core → src/core}/trace/index.js +0 -0
  804. /package/dist/{core → src/core}/trace/linear-api-wrapper.js +0 -0
  805. /package/dist/{core → src/core}/trace/trace-detector.js +0 -0
  806. /package/dist/{core → src/core}/trace/trace-store.js +0 -0
  807. /package/dist/{core → src/core}/trace/types.js +0 -0
  808. /package/dist/{integrations/linear → src/core}/types.js +0 -0
  809. /package/dist/{integrations/linear → src/core}/types.js.map +0 -0
  810. /package/dist/{core → src/core}/utils/async-mutex.js +0 -0
  811. /package/dist/{core → src/core}/utils/compression.js +0 -0
  812. /package/dist/{core → src/core}/utils/update-checker.js +0 -0
  813. /package/dist/{core → src/core}/worktree/worktree-manager.js +0 -0
  814. /package/dist/{daemon → src/daemon}/daemon-config.js +0 -0
  815. /package/dist/{daemon → src/daemon}/services/context-service.js +0 -0
  816. /package/dist/{daemon → src/daemon}/services/linear-service.js +0 -0
  817. /package/dist/{daemon → src/daemon}/session-daemon.js +0 -0
  818. /package/dist/{daemon → src/daemon}/unified-daemon.js +0 -0
  819. /package/dist/{features → src/features}/analytics/api/analytics-api.js +0 -0
  820. /package/dist/{features → src/features}/analytics/core/analytics-service.js +0 -0
  821. /package/dist/{features → src/features}/analytics/index.js +0 -0
  822. /package/dist/{features → src/features}/analytics/queries/metrics-queries.js +0 -0
  823. /package/dist/{features → src/features}/analytics/types/metrics.js +0 -0
  824. /package/dist/{features → src/features}/analytics/types/metrics.js.map +0 -0
  825. /package/dist/{features → src/features}/browser/browser-mcp.js +0 -0
  826. /package/dist/{features → src/features}/sweep/index.js +0 -0
  827. /package/dist/{features → src/features}/sweep/prediction-client.js +0 -0
  828. /package/dist/{features → src/features}/sweep/prompt-builder.js +0 -0
  829. /package/dist/{features → src/features}/sweep/pty-wrapper.js +0 -0
  830. /package/dist/{features → src/features}/sweep/state-watcher.js +0 -0
  831. /package/dist/{features → src/features}/sweep/status-bar.js +0 -0
  832. /package/dist/{features → src/features}/sweep/sweep-server-manager.js +0 -0
  833. /package/dist/{features → src/features}/sweep/tab-interceptor.js +0 -0
  834. /package/dist/{features → src/features}/sweep/types.js +0 -0
  835. /package/dist/{features → src/features}/tasks/linear-task-manager.js +0 -0
  836. /package/dist/{features → src/features}/tasks/task-aware-context.js +0 -0
  837. /package/dist/{features → src/features}/tui/simple-monitor.js +0 -0
  838. /package/dist/{features → src/features}/tui/swarm-monitor.js +0 -0
  839. /package/dist/{features → src/features}/web/client/stores/task-store.js +0 -0
  840. /package/dist/{features → src/features}/web/server/index.js +0 -0
  841. /package/dist/{hooks → src/hooks}/auto-background.js +0 -0
  842. /package/dist/{hooks → src/hooks}/claude-code-whatsapp-hook.js +0 -0
  843. /package/dist/{hooks → src/hooks}/config.js +0 -0
  844. /package/dist/{hooks → src/hooks}/daemon.js +0 -0
  845. /package/dist/{hooks → src/hooks}/events.js +0 -0
  846. /package/dist/{hooks → src/hooks}/index.js +0 -0
  847. /package/dist/{hooks → src/hooks}/linear-task-picker.js +0 -0
  848. /package/dist/{hooks → src/hooks}/schemas.js +0 -0
  849. /package/dist/{hooks → src/hooks}/secure-fs.js +0 -0
  850. /package/dist/{hooks → src/hooks}/security-logger.js +0 -0
  851. /package/dist/{hooks → src/hooks}/session-summary.js +0 -0
  852. /package/dist/{hooks → src/hooks}/sms-action-runner.js +0 -0
  853. /package/dist/{hooks → src/hooks}/sms-notify.js +0 -0
  854. /package/dist/{hooks → src/hooks}/sms-watcher.js +0 -0
  855. /package/dist/{hooks → src/hooks}/sms-webhook.js +0 -0
  856. /package/dist/{hooks → src/hooks}/whatsapp-commands.js +0 -0
  857. /package/dist/{hooks → src/hooks}/whatsapp-scheduler.js +0 -0
  858. /package/dist/{hooks → src/hooks}/whatsapp-sync.js +0 -0
  859. /package/dist/{index.js → src/index.js} +0 -0
  860. /package/dist/{integrations → src/integrations}/anthropic/client.js +0 -0
  861. /package/dist/{integrations → src/integrations}/claude-code/agent-bridge.js +0 -0
  862. /package/dist/{integrations → src/integrations}/claude-code/enhanced-pre-clear-hooks.js +0 -0
  863. /package/dist/{integrations → src/integrations}/claude-code/lifecycle-hooks.js +0 -0
  864. /package/dist/{integrations → src/integrations}/claude-code/post-task-hooks.js +0 -0
  865. /package/dist/{integrations → src/integrations}/claude-code/subagent-client-stub.js +0 -0
  866. /package/dist/{integrations → src/integrations}/claude-code/subagent-client.js +0 -0
  867. /package/dist/{integrations → src/integrations}/claude-code/task-coordinator.js +0 -0
  868. /package/dist/{integrations → src/integrations}/linear/auth.js +0 -0
  869. /package/dist/{integrations → src/integrations}/linear/auto-sync.js +0 -0
  870. /package/dist/{integrations → src/integrations}/linear/config.js +0 -0
  871. /package/dist/{integrations → src/integrations}/linear/migration.js +0 -0
  872. /package/dist/{integrations → src/integrations}/linear/oauth-server.js +0 -0
  873. /package/dist/{integrations → src/integrations}/linear/rest-client.js +0 -0
  874. /package/dist/{integrations → src/integrations}/linear/sync-manager.js +0 -0
  875. /package/dist/{integrations → src/integrations}/linear/sync-service.js +0 -0
  876. /package/dist/{integrations → src/integrations}/linear/sync.js +0 -0
  877. /package/dist/{integrations/ralph → src/integrations/linear}/types.js +0 -0
  878. /package/dist/{integrations/ralph → src/integrations/linear}/types.js.map +0 -0
  879. /package/dist/{integrations → src/integrations}/linear/unified-sync.js +0 -0
  880. /package/dist/{integrations → src/integrations}/linear/webhook-handler.js +0 -0
  881. /package/dist/{integrations → src/integrations}/linear/webhook-server.js +0 -0
  882. /package/dist/{integrations → src/integrations}/linear/webhook.js +0 -0
  883. /package/dist/{integrations → src/integrations}/mcp/handlers/code-execution-handlers.js +0 -0
  884. /package/dist/{integrations → src/integrations}/mcp/handlers/context-handlers.js +0 -0
  885. /package/dist/{integrations → src/integrations}/mcp/handlers/discovery-handlers.js +0 -0
  886. /package/dist/{integrations → src/integrations}/mcp/handlers/index.js +0 -0
  887. /package/dist/{integrations → src/integrations}/mcp/handlers/linear-handlers.js +0 -0
  888. /package/dist/{integrations → src/integrations}/mcp/handlers/skill-handlers.js +0 -0
  889. /package/dist/{integrations → src/integrations}/mcp/handlers/task-handlers.js +0 -0
  890. /package/dist/{integrations → src/integrations}/mcp/handlers/trace-handlers.js +0 -0
  891. /package/dist/{integrations → src/integrations}/mcp/index.js +0 -0
  892. /package/dist/{integrations → src/integrations}/mcp/middleware/tool-scoring.js +0 -0
  893. /package/dist/{integrations → src/integrations}/mcp/refactored-server.js +0 -0
  894. /package/dist/{integrations → src/integrations}/mcp/schemas.js +0 -0
  895. /package/dist/{integrations → src/integrations}/mcp/tool-definitions-code.js +0 -0
  896. /package/dist/{integrations → src/integrations}/mcp/tool-definitions.js +0 -0
  897. /package/dist/{integrations → src/integrations}/ralph/bridge/ralph-stackmemory-bridge.js +0 -0
  898. /package/dist/{integrations → src/integrations}/ralph/context/context-budget-manager.js +0 -0
  899. /package/dist/{integrations → src/integrations}/ralph/context/stackmemory-context-loader.js +0 -0
  900. /package/dist/{integrations → src/integrations}/ralph/coordination/enhanced-coordination.js +0 -0
  901. /package/dist/{integrations → src/integrations}/ralph/index.js +0 -0
  902. /package/dist/{integrations → src/integrations}/ralph/learning/pattern-learner.js +0 -0
  903. /package/dist/{integrations → src/integrations}/ralph/lifecycle/iteration-lifecycle.js +0 -0
  904. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-dashboard.js +0 -0
  905. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-registry.js +0 -0
  906. /package/dist/{integrations → src/integrations}/ralph/orchestration/multi-loop-orchestrator.js +0 -0
  907. /package/dist/{integrations → src/integrations}/ralph/patterns/compounding-engineering-pattern.js +0 -0
  908. /package/dist/{integrations → src/integrations}/ralph/patterns/extended-coherence-sessions.js +0 -0
  909. /package/dist/{integrations → src/integrations}/ralph/patterns/oracle-worker-pattern.js +0 -0
  910. /package/dist/{integrations → src/integrations}/ralph/performance/performance-optimizer.js +0 -0
  911. /package/dist/{integrations → src/integrations}/ralph/recovery/crash-recovery.js +0 -0
  912. /package/dist/{integrations → src/integrations}/ralph/state/state-reconciler.js +0 -0
  913. /package/dist/{integrations → src/integrations}/ralph/swarm/git-workflow-manager.js +0 -0
  914. /package/dist/{integrations → src/integrations}/ralph/swarm/swarm-coordinator.js +0 -0
  915. /package/dist/{types/task.js.map → src/integrations/ralph/types.js.map} +0 -0
  916. /package/dist/{integrations → src/integrations}/ralph/visualization/ralph-debugger.js +0 -0
  917. /package/dist/{mcp → src/mcp}/stackmemory-mcp-server.js +0 -0
  918. /package/dist/{middleware → src/middleware}/exponential-rate-limiter.js +0 -0
  919. /package/dist/{models → src/models}/user.model.js +0 -0
  920. /package/dist/{servers → src/servers}/production/auth-middleware.js +0 -0
  921. /package/dist/{services → src/services}/config-service.js +0 -0
  922. /package/dist/{services → src/services}/context-service.js +0 -0
  923. /package/dist/{skills → src/skills}/api-discovery.js +0 -0
  924. /package/dist/{skills → src/skills}/api-skill.js +0 -0
  925. /package/dist/{skills → src/skills}/claude-skills.js +0 -0
  926. /package/dist/{skills → src/skills}/dashboard-launcher.js +0 -0
  927. /package/dist/{skills → src/skills}/recursive-agent-orchestrator.js +0 -0
  928. /package/dist/{skills → src/skills}/unified-rlm-orchestrator.js +0 -0
  929. /package/dist/{types → src/types}/task.js +0 -0
  930. /package/dist/{utils → src/utils}/env.js +0 -0
  931. /package/dist/{utils → src/utils}/formatting.js +0 -0
  932. /package/dist/{utils → src/utils}/process-cleanup.js +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/core/execution/parallel-executor.ts"],
4
+ "sourcesContent": ["/**\n * Parallel Execution Engine for RLM\n * \n * Manages concurrent execution of multiple Claude API calls\n * with rate limiting, resource pooling, and failure recovery\n */\n\nimport { EventEmitter } from 'events';\nimport { logger } from '../monitoring/logger.js';\n\nexport interface ExecutionTask<T> {\n id: string;\n execute: () => Promise<T>;\n priority?: number;\n timeout?: number;\n retries?: number;\n}\n\nexport interface ExecutionResult<T> {\n taskId: string;\n success: boolean;\n result?: T;\n error?: Error;\n duration: number;\n attempts: number;\n}\n\nexport interface ParallelExecutorOptions {\n maxConcurrency?: number;\n queueSize?: number;\n defaultTimeout?: number;\n defaultRetries?: number;\n rateLimitPerMinute?: number;\n}\n\n/**\n * Parallel Executor for managing concurrent operations\n */\nexport class ParallelExecutor extends EventEmitter {\n private maxConcurrency: number;\n private queueSize: number;\n private defaultTimeout: number;\n private defaultRetries: number;\n private rateLimitPerMinute: number;\n \n private activeCount: number = 0;\n private queue: ExecutionTask<any>[] = [];\n private rateLimitTokens: number;\n private lastRateLimitReset: number;\n \n // Metrics\n private totalExecuted: number = 0;\n private totalSucceeded: number = 0;\n private totalFailed: number = 0;\n private totalDuration: number = 0;\n\n constructor(maxConcurrency: number = 5, options: ParallelExecutorOptions = {}) {\n super();\n \n this.maxConcurrency = maxConcurrency;\n this.queueSize = options.queueSize || 100;\n this.defaultTimeout = options.defaultTimeout || 300000; // 5 minutes\n this.defaultRetries = options.defaultRetries || 3;\n this.rateLimitPerMinute = options.rateLimitPerMinute || 60;\n \n this.rateLimitTokens = this.rateLimitPerMinute;\n this.lastRateLimitReset = Date.now();\n \n logger.info('Parallel Executor initialized', {\n maxConcurrency,\n queueSize: this.queueSize,\n rateLimitPerMinute: this.rateLimitPerMinute,\n });\n }\n \n /**\n * Execute multiple tasks in parallel\n */\n async executeParallel<T>(\n items: T[],\n executor: (item: T, index: number) => Promise<void>,\n options?: {\n batchSize?: number;\n delayBetweenBatches?: number;\n }\n ): Promise<ExecutionResult<void>[]> {\n const results: ExecutionResult<void>[] = [];\n const batchSize = options?.batchSize || this.maxConcurrency;\n const delayBetweenBatches = options?.delayBetweenBatches || 0;\n \n // Process items in batches\n for (let i = 0; i < items.length; i += batchSize) {\n const batch = items.slice(i, i + batchSize);\n const batchPromises = batch.map((item, index) => \n this.executeWithTracking(\n `parallel-${i + index}`,\n () => executor(item, i + index)\n )\n );\n \n const batchResults = await Promise.allSettled(batchPromises);\n \n // Convert to ExecutionResult format\n batchResults.forEach((result, index) => {\n if (result.status === 'fulfilled') {\n results.push(result.value);\n } else {\n results.push({\n taskId: `parallel-${i + index}`,\n success: false,\n error: result.reason,\n duration: 0,\n attempts: 1,\n });\n }\n });\n \n // Delay between batches if specified\n if (delayBetweenBatches > 0 && i + batchSize < items.length) {\n await this.delay(delayBetweenBatches);\n }\n \n // Log batch progress\n logger.debug('Batch completed', {\n batchNumber: Math.floor(i / batchSize) + 1,\n totalBatches: Math.ceil(items.length / batchSize),\n successRate: results.filter(r => r.success).length / results.length,\n });\n }\n \n return results;\n }\n \n /**\n * Execute a single task with tracking and retries\n */\n async executeWithTracking<T>(\n taskId: string,\n executor: () => Promise<T>,\n options?: {\n timeout?: number;\n retries?: number;\n }\n ): Promise<ExecutionResult<T>> {\n const timeout = options?.timeout || this.defaultTimeout;\n const maxRetries = options?.retries || this.defaultRetries;\n \n let attempts = 0;\n let lastError: Error | undefined;\n const startTime = Date.now();\n \n while (attempts < maxRetries) {\n attempts++;\n \n try {\n // Check rate limit\n await this.checkRateLimit();\n \n // Wait for available slot\n await this.waitForSlot();\n \n this.activeCount++;\n this.emit('task-start', { taskId, attempt: attempts });\n \n // Execute with timeout\n const result = await this.executeWithTimeout(executor, timeout);\n \n // Success\n this.totalSucceeded++;\n this.emit('task-success', { taskId, attempts });\n \n return {\n taskId,\n success: true,\n result,\n duration: Date.now() - startTime,\n attempts,\n };\n \n } catch (error) {\n lastError = error as Error;\n \n logger.warn(`Task failed (attempt ${attempts}/${maxRetries})`, {\n taskId,\n error: lastError.message,\n });\n \n this.emit('task-retry', { taskId, attempt: attempts, error: lastError });\n \n // Exponential backoff for retries\n if (attempts < maxRetries) {\n await this.delay(Math.pow(2, attempts) * 1000);\n }\n \n } finally {\n this.activeCount--;\n this.totalExecuted++;\n this.totalDuration += Date.now() - startTime;\n }\n }\n \n // All retries exhausted\n this.totalFailed++;\n this.emit('task-failed', { taskId, attempts, error: lastError });\n \n return {\n taskId,\n success: false,\n error: lastError,\n duration: Date.now() - startTime,\n attempts,\n };\n }\n \n /**\n * Execute task with timeout\n */\n private async executeWithTimeout<T>(\n executor: () => Promise<T>,\n timeout: number\n ): Promise<T> {\n return Promise.race([\n executor(),\n new Promise<T>((_, reject) => \n setTimeout(() => reject(new Error('Task timeout')), timeout)\n ),\n ]);\n }\n \n /**\n * Check and enforce rate limiting\n */\n private async checkRateLimit(): Promise<void> {\n const now = Date.now();\n const timeSinceReset = now - this.lastRateLimitReset;\n \n // Reset tokens if a minute has passed\n if (timeSinceReset >= 60000) {\n this.rateLimitTokens = this.rateLimitPerMinute;\n this.lastRateLimitReset = now;\n }\n \n // Wait if no tokens available\n if (this.rateLimitTokens <= 0) {\n const waitTime = 60000 - timeSinceReset;\n logger.debug(`Rate limit reached, waiting ${waitTime}ms`);\n await this.delay(waitTime);\n \n // Reset after waiting\n this.rateLimitTokens = this.rateLimitPerMinute;\n this.lastRateLimitReset = Date.now();\n }\n \n this.rateLimitTokens--;\n }\n \n /**\n * Wait for an available execution slot\n */\n private async waitForSlot(): Promise<void> {\n while (this.activeCount >= this.maxConcurrency) {\n await this.delay(100); // Check every 100ms\n }\n }\n \n /**\n * Queue a task for execution\n */\n async queueTask<T>(task: ExecutionTask<T>): Promise<ExecutionResult<T>> {\n if (this.queue.length >= this.queueSize) {\n throw new Error('Execution queue is full');\n }\n \n return new Promise((resolve) => {\n this.queue.push({\n ...task,\n execute: async () => {\n const result = await task.execute();\n resolve({\n taskId: task.id,\n success: true,\n result,\n duration: 0,\n attempts: 1,\n });\n return result;\n },\n });\n \n this.processQueue();\n });\n }\n \n /**\n * Process queued tasks\n */\n private async processQueue(): Promise<void> {\n if (this.activeCount >= this.maxConcurrency || this.queue.length === 0) {\n return;\n }\n \n // Sort by priority (higher first)\n this.queue.sort((a, b) => (b.priority || 0) - (a.priority || 0));\n \n const task = this.queue.shift();\n if (task) {\n this.executeWithTracking(task.id, task.execute, {\n timeout: task.timeout,\n retries: task.retries,\n }).then(() => {\n this.processQueue(); // Process next task\n });\n }\n }\n \n /**\n * Utility delay function\n */\n private delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n \n /**\n * Get execution metrics\n */\n getMetrics() {\n return {\n activeCount: this.activeCount,\n queueLength: this.queue.length,\n totalExecuted: this.totalExecuted,\n totalSucceeded: this.totalSucceeded,\n totalFailed: this.totalFailed,\n successRate: this.totalExecuted > 0 ? this.totalSucceeded / this.totalExecuted : 0,\n averageDuration: this.totalExecuted > 0 ? this.totalDuration / this.totalExecuted : 0,\n rateLimitTokens: this.rateLimitTokens,\n };\n }\n \n /**\n * Reset all metrics\n */\n resetMetrics(): void {\n this.totalExecuted = 0;\n this.totalSucceeded = 0;\n this.totalFailed = 0;\n this.totalDuration = 0;\n }\n \n /**\n * Gracefully shutdown executor\n */\n async shutdown(): Promise<void> {\n logger.info('Shutting down Parallel Executor', {\n activeCount: this.activeCount,\n queueLength: this.queue.length,\n });\n \n // Clear queue\n this.queue = [];\n \n // Wait for active tasks to complete\n while (this.activeCount > 0) {\n await this.delay(100);\n }\n \n logger.info('Parallel Executor shutdown complete');\n }\n}"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,567 @@
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 { z } from "zod";
6
+ import { v4 as uuidv4 } from "uuid";
7
+ import { logger } from "../monitoring/logger.js";
8
+ import {
9
+ ValidationError,
10
+ ErrorCode,
11
+ StackMemoryError,
12
+ SystemError
13
+ } from "../errors/index.js";
14
+ const ToolNameSchema = z.string().min(3, "Tool name must be at least 3 characters").max(64, "Tool name must be at most 64 characters").regex(
15
+ /^[a-z][a-z0-9_]*$/,
16
+ "Tool name must start with lowercase letter and contain only lowercase letters, numbers, and underscores"
17
+ );
18
+ const JSONSchemaPropertySchema = z.lazy(
19
+ () => z.object({
20
+ type: z.enum(["string", "number", "boolean", "array", "object", "null"]),
21
+ description: z.string().optional(),
22
+ enum: z.array(z.union([z.string(), z.number(), z.boolean()])).optional(),
23
+ default: z.unknown().optional(),
24
+ minimum: z.number().optional(),
25
+ maximum: z.number().optional(),
26
+ minLength: z.number().optional(),
27
+ maxLength: z.number().optional(),
28
+ pattern: z.string().optional(),
29
+ items: JSONSchemaPropertySchema.optional(),
30
+ properties: z.record(JSONSchemaPropertySchema).optional(),
31
+ required: z.array(z.string()).optional(),
32
+ format: z.string().optional()
33
+ })
34
+ );
35
+ const JSONSchemaSchema = z.object({
36
+ type: z.literal("object"),
37
+ properties: z.record(JSONSchemaPropertySchema).optional(),
38
+ required: z.array(z.string()).optional(),
39
+ additionalProperties: z.boolean().optional(),
40
+ description: z.string().optional(),
41
+ default: z.unknown().optional()
42
+ });
43
+ const ToolMetadataSchema = z.object({
44
+ version: z.string().optional(),
45
+ author: z.string().optional(),
46
+ category: z.string().optional(),
47
+ tags: z.array(z.string()).optional(),
48
+ timeout: z.number().min(100).max(3e5).optional(),
49
+ permissions: z.array(z.string()).optional()
50
+ }).optional();
51
+ class ToolRegistry {
52
+ tools = /* @__PURE__ */ new Map();
53
+ eventListeners = /* @__PURE__ */ new Map();
54
+ extensionStorage = /* @__PURE__ */ new Map();
55
+ defaultTimeout = 3e4;
56
+ // 30 seconds
57
+ constructor(options) {
58
+ if (options?.defaultTimeout) {
59
+ this.defaultTimeout = options.defaultTimeout;
60
+ }
61
+ logger.info("ToolRegistry initialized");
62
+ }
63
+ // ============================================
64
+ // Registration
65
+ // ============================================
66
+ /**
67
+ * Register a new custom tool
68
+ * @throws ValidationError if tool definition is invalid
69
+ * @throws StackMemoryError if tool with same name already exists
70
+ */
71
+ register(definition) {
72
+ this.validateToolDefinition(definition);
73
+ if (this.tools.has(definition.name)) {
74
+ throw new StackMemoryError({
75
+ code: ErrorCode.VALIDATION_FAILED,
76
+ message: `Tool '${definition.name}' is already registered`,
77
+ context: { toolName: definition.name }
78
+ });
79
+ }
80
+ const toolId = uuidv4();
81
+ const registeredTool = {
82
+ ...definition,
83
+ id: toolId,
84
+ registeredAt: /* @__PURE__ */ new Date(),
85
+ usageCount: 0,
86
+ enabled: true
87
+ };
88
+ this.tools.set(definition.name, registeredTool);
89
+ logger.info("Tool registered", {
90
+ toolId,
91
+ name: definition.name,
92
+ category: definition.metadata?.category
93
+ });
94
+ return toolId;
95
+ }
96
+ /**
97
+ * Unregister a tool by name
98
+ */
99
+ unregister(name) {
100
+ const tool = this.tools.get(name);
101
+ if (!tool) {
102
+ return false;
103
+ }
104
+ this.tools.delete(name);
105
+ this.extensionStorage.delete(name);
106
+ logger.info("Tool unregistered", { name, toolId: tool.id });
107
+ return true;
108
+ }
109
+ /**
110
+ * Update an existing tool definition
111
+ */
112
+ update(name, updates) {
113
+ const tool = this.tools.get(name);
114
+ if (!tool) {
115
+ return false;
116
+ }
117
+ if (updates.parameters) {
118
+ const result = JSONSchemaSchema.safeParse(updates.parameters);
119
+ if (!result.success) {
120
+ throw new ValidationError(
121
+ `Invalid parameters schema: ${result.error.message}`,
122
+ ErrorCode.VALIDATION_FAILED,
123
+ { errors: result.error.errors }
124
+ );
125
+ }
126
+ }
127
+ Object.assign(tool, updates);
128
+ logger.info("Tool updated", { name, toolId: tool.id });
129
+ return true;
130
+ }
131
+ // ============================================
132
+ // Discovery
133
+ // ============================================
134
+ /**
135
+ * Get a tool by name
136
+ */
137
+ get(name) {
138
+ return this.tools.get(name);
139
+ }
140
+ /**
141
+ * List all registered tools
142
+ */
143
+ list(filter) {
144
+ let tools = Array.from(this.tools.values());
145
+ if (filter?.category) {
146
+ tools = tools.filter((t) => t.metadata?.category === filter.category);
147
+ }
148
+ if (filter?.tags && filter.tags.length > 0) {
149
+ tools = tools.filter(
150
+ (t) => filter.tags.some((tag) => t.metadata?.tags?.includes(tag))
151
+ );
152
+ }
153
+ if (filter?.enabled !== void 0) {
154
+ tools = tools.filter((t) => t.enabled === filter.enabled);
155
+ }
156
+ return tools;
157
+ }
158
+ /**
159
+ * Get tool definitions in MCP format
160
+ */
161
+ getMCPToolDefinitions() {
162
+ return Array.from(this.tools.values()).filter((t) => t.enabled).map((t) => ({
163
+ name: t.name,
164
+ description: t.description,
165
+ inputSchema: t.parameters
166
+ }));
167
+ }
168
+ /**
169
+ * Check if a tool exists
170
+ */
171
+ has(name) {
172
+ return this.tools.has(name);
173
+ }
174
+ /**
175
+ * Get tool count
176
+ */
177
+ get size() {
178
+ return this.tools.size;
179
+ }
180
+ // ============================================
181
+ // Execution
182
+ // ============================================
183
+ /**
184
+ * Execute a tool with sandboxed context
185
+ */
186
+ async execute(name, params, options) {
187
+ const tool = this.tools.get(name);
188
+ if (!tool) {
189
+ return {
190
+ success: false,
191
+ error: `Tool '${name}' not found`
192
+ };
193
+ }
194
+ if (!tool.enabled) {
195
+ return {
196
+ success: false,
197
+ error: `Tool '${name}' is disabled`
198
+ };
199
+ }
200
+ const validationResult = this.validateParams(params, tool.parameters);
201
+ if (!validationResult.valid) {
202
+ return {
203
+ success: false,
204
+ error: `Invalid parameters: ${validationResult.errors.join(", ")}`
205
+ };
206
+ }
207
+ const context = this.createSandboxedContext(name, options?.context);
208
+ const timeout = options?.timeout ?? tool.metadata?.timeout ?? this.defaultTimeout;
209
+ try {
210
+ const result = await this.executeWithSandbox(
211
+ () => tool.execute(params, context),
212
+ timeout,
213
+ options?.sandboxed ?? true
214
+ );
215
+ tool.lastUsedAt = /* @__PURE__ */ new Date();
216
+ tool.usageCount++;
217
+ logger.info("Tool executed successfully", {
218
+ name,
219
+ toolId: tool.id,
220
+ duration: Date.now() - tool.lastUsedAt.getTime()
221
+ });
222
+ return result;
223
+ } catch (error) {
224
+ const message = error instanceof Error ? error.message : String(error);
225
+ logger.error("Tool execution failed", {
226
+ name,
227
+ toolId: tool.id,
228
+ error: message
229
+ });
230
+ return {
231
+ success: false,
232
+ error: message,
233
+ metadata: { toolId: tool.id }
234
+ };
235
+ }
236
+ }
237
+ // ============================================
238
+ // Private Methods
239
+ // ============================================
240
+ /**
241
+ * Validate a tool definition before registration
242
+ */
243
+ validateToolDefinition(definition) {
244
+ const nameResult = ToolNameSchema.safeParse(definition.name);
245
+ if (!nameResult.success) {
246
+ throw new ValidationError(
247
+ `Invalid tool name: ${nameResult.error.message}`,
248
+ ErrorCode.VALIDATION_FAILED,
249
+ { name: definition.name, errors: nameResult.error.errors }
250
+ );
251
+ }
252
+ if (!definition.description || definition.description.length < 10) {
253
+ throw new ValidationError(
254
+ "Tool description must be at least 10 characters",
255
+ ErrorCode.VALIDATION_FAILED,
256
+ { description: definition.description }
257
+ );
258
+ }
259
+ if (definition.description.length > 500) {
260
+ throw new ValidationError(
261
+ "Tool description must be at most 500 characters",
262
+ ErrorCode.VALIDATION_FAILED,
263
+ { descriptionLength: definition.description.length }
264
+ );
265
+ }
266
+ const schemaResult = JSONSchemaSchema.safeParse(definition.parameters);
267
+ if (!schemaResult.success) {
268
+ throw new ValidationError(
269
+ `Invalid parameters schema: ${schemaResult.error.message}`,
270
+ ErrorCode.VALIDATION_FAILED,
271
+ { errors: schemaResult.error.errors }
272
+ );
273
+ }
274
+ if (typeof definition.execute !== "function") {
275
+ throw new ValidationError(
276
+ "Tool execute must be a function",
277
+ ErrorCode.VALIDATION_FAILED
278
+ );
279
+ }
280
+ if (definition.metadata) {
281
+ const metaResult = ToolMetadataSchema.safeParse(definition.metadata);
282
+ if (!metaResult.success) {
283
+ throw new ValidationError(
284
+ `Invalid tool metadata: ${metaResult.error.message}`,
285
+ ErrorCode.VALIDATION_FAILED,
286
+ { errors: metaResult.error.errors }
287
+ );
288
+ }
289
+ }
290
+ }
291
+ /**
292
+ * Validate parameters against JSON Schema
293
+ */
294
+ validateParams(params, schema) {
295
+ const errors = [];
296
+ if (schema.type !== "object") {
297
+ errors.push('Parameters schema must have type "object"');
298
+ return { valid: false, errors };
299
+ }
300
+ if (params === null || params === void 0) {
301
+ if (schema.required && schema.required.length > 0) {
302
+ errors.push(
303
+ `Missing required parameters: ${schema.required.join(", ")}`
304
+ );
305
+ }
306
+ return { valid: errors.length === 0, errors };
307
+ }
308
+ if (typeof params !== "object" || Array.isArray(params)) {
309
+ errors.push("Parameters must be an object");
310
+ return { valid: false, errors };
311
+ }
312
+ const paramObj = params;
313
+ if (schema.required) {
314
+ for (const field of schema.required) {
315
+ if (!(field in paramObj)) {
316
+ errors.push(`Missing required parameter: ${field}`);
317
+ }
318
+ }
319
+ }
320
+ if (schema.properties) {
321
+ for (const [key, propSchema] of Object.entries(schema.properties)) {
322
+ if (key in paramObj) {
323
+ const propErrors = this.validateProperty(
324
+ paramObj[key],
325
+ propSchema,
326
+ key
327
+ );
328
+ errors.push(...propErrors);
329
+ }
330
+ }
331
+ if (schema.additionalProperties === false) {
332
+ for (const key of Object.keys(paramObj)) {
333
+ if (!(key in schema.properties)) {
334
+ errors.push(`Unknown parameter: ${key}`);
335
+ }
336
+ }
337
+ }
338
+ }
339
+ return { valid: errors.length === 0, errors };
340
+ }
341
+ /**
342
+ * Validate a single property value
343
+ */
344
+ validateProperty(value, schema, path) {
345
+ const errors = [];
346
+ const actualType = this.getJSONType(value);
347
+ if (actualType !== schema.type && value !== void 0 && value !== null) {
348
+ if (!(schema.type === "null" && value === null)) {
349
+ errors.push(
350
+ `Parameter '${path}' must be of type ${schema.type}, got ${actualType}`
351
+ );
352
+ }
353
+ }
354
+ if (schema.type === "string" && typeof value === "string") {
355
+ if (schema.minLength !== void 0 && value.length < schema.minLength) {
356
+ errors.push(
357
+ `Parameter '${path}' must be at least ${schema.minLength} characters`
358
+ );
359
+ }
360
+ if (schema.maxLength !== void 0 && value.length > schema.maxLength) {
361
+ errors.push(
362
+ `Parameter '${path}' must be at most ${schema.maxLength} characters`
363
+ );
364
+ }
365
+ if (schema.pattern && !new RegExp(schema.pattern).test(value)) {
366
+ errors.push(
367
+ `Parameter '${path}' does not match pattern ${schema.pattern}`
368
+ );
369
+ }
370
+ if (schema.enum && !schema.enum.includes(value)) {
371
+ errors.push(
372
+ `Parameter '${path}' must be one of: ${schema.enum.join(", ")}`
373
+ );
374
+ }
375
+ }
376
+ if (schema.type === "number" && typeof value === "number") {
377
+ if (schema.minimum !== void 0 && value < schema.minimum) {
378
+ errors.push(`Parameter '${path}' must be at least ${schema.minimum}`);
379
+ }
380
+ if (schema.maximum !== void 0 && value > schema.maximum) {
381
+ errors.push(`Parameter '${path}' must be at most ${schema.maximum}`);
382
+ }
383
+ if (schema.enum && !schema.enum.includes(value)) {
384
+ errors.push(
385
+ `Parameter '${path}' must be one of: ${schema.enum.join(", ")}`
386
+ );
387
+ }
388
+ }
389
+ if (schema.type === "array" && Array.isArray(value) && schema.items) {
390
+ value.forEach((item, index) => {
391
+ const itemErrors = this.validateProperty(
392
+ item,
393
+ schema.items,
394
+ `${path}[${index}]`
395
+ );
396
+ errors.push(...itemErrors);
397
+ });
398
+ }
399
+ return errors;
400
+ }
401
+ /**
402
+ * Get JSON type of a value
403
+ */
404
+ getJSONType(value) {
405
+ if (value === null) return "null";
406
+ if (Array.isArray(value)) return "array";
407
+ return typeof value;
408
+ }
409
+ /**
410
+ * Create a sandboxed extension context
411
+ */
412
+ createSandboxedContext(toolName, overrides) {
413
+ if (!this.extensionStorage.has(toolName)) {
414
+ this.extensionStorage.set(toolName, /* @__PURE__ */ new Map());
415
+ }
416
+ const storage = this.extensionStorage.get(toolName);
417
+ const context = {
418
+ projectId: overrides?.projectId ?? "sandbox",
419
+ sessionId: overrides?.sessionId ?? uuidv4(),
420
+ runId: overrides?.runId ?? uuidv4(),
421
+ // Sandboxed fetch (could add URL allowlist here)
422
+ fetch: globalThis.fetch,
423
+ // Extension storage
424
+ storage: {
425
+ async get(key) {
426
+ return storage.get(key);
427
+ },
428
+ async set(key, value) {
429
+ storage.set(key, value);
430
+ },
431
+ async delete(key) {
432
+ storage.delete(key);
433
+ },
434
+ async clear() {
435
+ storage.clear();
436
+ }
437
+ },
438
+ // Event communication
439
+ emit: (event, data) => {
440
+ const listeners = this.eventListeners.get(event);
441
+ if (listeners) {
442
+ listeners.forEach((handler) => {
443
+ try {
444
+ handler(data);
445
+ } catch (error) {
446
+ logger.error("Event handler error", {
447
+ event,
448
+ error: error instanceof Error ? error.message : String(error)
449
+ });
450
+ }
451
+ });
452
+ }
453
+ },
454
+ on: (event, handler) => {
455
+ if (!this.eventListeners.has(event)) {
456
+ this.eventListeners.set(event, /* @__PURE__ */ new Set());
457
+ }
458
+ this.eventListeners.get(event).add(handler);
459
+ return () => {
460
+ this.eventListeners.get(event)?.delete(handler);
461
+ };
462
+ },
463
+ // Sandboxed logging
464
+ log: {
465
+ info: (message, meta) => {
466
+ logger.info(`[Tool:${toolName}] ${message}`, meta);
467
+ },
468
+ warn: (message, meta) => {
469
+ logger.warn(`[Tool:${toolName}] ${message}`, meta);
470
+ },
471
+ error: (message, meta) => {
472
+ logger.error(`[Tool:${toolName}] ${message}`, meta);
473
+ }
474
+ }
475
+ };
476
+ return context;
477
+ }
478
+ /**
479
+ * Execute tool with sandbox wrapper and timeout
480
+ */
481
+ async executeWithSandbox(executor, timeout, sandboxed) {
482
+ const timeoutPromise = new Promise((_, reject) => {
483
+ setTimeout(() => {
484
+ reject(
485
+ new SystemError(
486
+ `Tool execution timed out after ${timeout}ms`,
487
+ ErrorCode.OPERATION_TIMEOUT
488
+ )
489
+ );
490
+ }, timeout);
491
+ });
492
+ const executionPromise = (async () => {
493
+ try {
494
+ if (sandboxed) {
495
+ return await Promise.resolve(executor());
496
+ } else {
497
+ return await Promise.resolve(executor());
498
+ }
499
+ } catch (error) {
500
+ if (error instanceof StackMemoryError) {
501
+ throw error;
502
+ }
503
+ throw new SystemError(
504
+ `Tool execution error: ${error instanceof Error ? error.message : String(error)}`,
505
+ ErrorCode.MCP_EXECUTION_FAILED,
506
+ { error: String(error) }
507
+ );
508
+ }
509
+ })();
510
+ return Promise.race([executionPromise, timeoutPromise]);
511
+ }
512
+ /**
513
+ * Clear all event listeners
514
+ */
515
+ clearEventListeners() {
516
+ this.eventListeners.clear();
517
+ }
518
+ /**
519
+ * Get statistics about registered tools
520
+ */
521
+ getStats() {
522
+ const tools = Array.from(this.tools.values());
523
+ const byCategory = {};
524
+ for (const tool of tools) {
525
+ const category = tool.metadata?.category ?? "uncategorized";
526
+ byCategory[category] = (byCategory[category] ?? 0) + 1;
527
+ }
528
+ return {
529
+ totalTools: tools.length,
530
+ enabledTools: tools.filter((t) => t.enabled).length,
531
+ totalExecutions: tools.reduce((sum, t) => sum + t.usageCount, 0),
532
+ byCategory
533
+ };
534
+ }
535
+ /**
536
+ * Enable or disable a tool
537
+ */
538
+ setEnabled(name, enabled) {
539
+ const tool = this.tools.get(name);
540
+ if (!tool) {
541
+ return false;
542
+ }
543
+ tool.enabled = enabled;
544
+ logger.info(`Tool ${enabled ? "enabled" : "disabled"}`, { name });
545
+ return true;
546
+ }
547
+ }
548
+ function createToolRegistry(options) {
549
+ return new ToolRegistry(options);
550
+ }
551
+ function defineTool(name, description, parameters, execute, metadata) {
552
+ return {
553
+ name,
554
+ description,
555
+ parameters,
556
+ execute,
557
+ metadata
558
+ };
559
+ }
560
+ var custom_tools_default = ToolRegistry;
561
+ export {
562
+ ToolRegistry,
563
+ createToolRegistry,
564
+ custom_tools_default as default,
565
+ defineTool
566
+ };
567
+ //# sourceMappingURL=custom-tools.js.map