@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
@@ -1,614 +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 * as ts from "typescript";
6
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
7
- import { dirname, join, basename } from "path";
8
- import { execSync } from "child_process";
9
- import { glob } from "glob";
10
- import { logger } from "../core/monitoring/logger.js";
11
- class TestingAgent {
12
- projectRoot;
13
- testDir;
14
- mockDir;
15
- fixtureDir;
16
- constructor(projectRoot = process.cwd()) {
17
- this.projectRoot = projectRoot;
18
- this.testDir = join(projectRoot, "src", "__tests__");
19
- this.mockDir = join(projectRoot, "src", "__mocks__");
20
- this.fixtureDir = join(projectRoot, "src", "__fixtures__");
21
- }
22
- /**
23
- * Analyze code coverage from existing reports
24
- */
25
- async analyzeCodeCoverage(targetPath) {
26
- const coveragePath = join(
27
- this.projectRoot,
28
- "coverage",
29
- "coverage-final.json"
30
- );
31
- if (!existsSync(coveragePath)) {
32
- try {
33
- execSync("npm run test -- --coverage --silent", {
34
- cwd: this.projectRoot,
35
- stdio: "pipe"
36
- });
37
- } catch (error) {
38
- logger.warn("Coverage generation failed", { error });
39
- }
40
- }
41
- if (existsSync(coveragePath)) {
42
- const coverage = JSON.parse(
43
- readFileSync(coveragePath, "utf-8")
44
- );
45
- const fileCoverage = coverage[targetPath] || {};
46
- return {
47
- filePath: targetPath,
48
- lines: this.calculateCoverage(
49
- fileCoverage.s || {}
50
- ),
51
- branches: this.calculateCoverage(
52
- fileCoverage.b || {}
53
- ),
54
- functions: this.calculateCoverage(
55
- fileCoverage.f || {}
56
- ),
57
- uncoveredLines: this.findUncoveredLines(
58
- fileCoverage.statementMap || {},
59
- fileCoverage.s || {}
60
- )
61
- };
62
- }
63
- return {
64
- filePath: targetPath,
65
- lines: { total: 0, covered: 0, percentage: 0 },
66
- branches: { total: 0, covered: 0, percentage: 0 },
67
- functions: { total: 0, covered: 0, percentage: 0 },
68
- uncoveredLines: []
69
- };
70
- }
71
- /**
72
- * Generate unit tests for a function or module
73
- */
74
- async generateUnitTests(targetPath) {
75
- const sourceCode = readFileSync(targetPath, "utf-8");
76
- const sourceFile = ts.createSourceFile(
77
- targetPath,
78
- sourceCode,
79
- ts.ScriptTarget.Latest,
80
- true
81
- );
82
- const functions = this.extractFunctions(sourceFile);
83
- const classes = this.extractClasses(sourceFile);
84
- const tests = [];
85
- for (const func of functions) {
86
- tests.push(...this.generateFunctionTests(func));
87
- }
88
- for (const cls of classes) {
89
- tests.push(...this.generateClassTests(cls));
90
- }
91
- const testSuite = {
92
- filePath: this.getTestPath(targetPath),
93
- targetPath,
94
- describe: this.getModuleName(targetPath),
95
- imports: this.generateImports(targetPath, sourceFile),
96
- beforeEach: this.generateBeforeEach(classes),
97
- afterEach: this.generateAfterEach(classes),
98
- tests
99
- };
100
- return testSuite;
101
- }
102
- /**
103
- * Generate integration tests for a module
104
- */
105
- async generateIntegrationTests(modulePath) {
106
- const moduleFiles = glob.sync(join(modulePath, "**/*.ts"), {
107
- ignore: ["**/*.test.ts", "**/*.spec.ts", "**/node_modules/**"]
108
- });
109
- const tests = [];
110
- const dependencies = /* @__PURE__ */ new Set();
111
- for (const file of moduleFiles) {
112
- const sourceCode = readFileSync(file, "utf-8");
113
- const sourceFile = ts.createSourceFile(
114
- file,
115
- sourceCode,
116
- ts.ScriptTarget.Latest,
117
- true
118
- );
119
- this.findDependencies(sourceFile, dependencies);
120
- }
121
- tests.push(
122
- ...this.generateModuleIntegrationTests(
123
- modulePath,
124
- Array.from(dependencies)
125
- )
126
- );
127
- const testSuite = {
128
- filePath: this.getIntegrationTestPath(modulePath),
129
- targetPath: modulePath,
130
- describe: `${basename(modulePath)} Integration`,
131
- imports: this.generateIntegrationImports(modulePath, dependencies),
132
- beforeEach: this.generateIntegrationSetup(dependencies),
133
- afterEach: this.generateIntegrationCleanup(),
134
- tests
135
- };
136
- return testSuite;
137
- }
138
- /**
139
- * Generate edge case tests for a function
140
- */
141
- async generateEdgeCaseTests(targetPath, functionName) {
142
- const sourceCode = readFileSync(targetPath, "utf-8");
143
- const sourceFile = ts.createSourceFile(
144
- targetPath,
145
- sourceCode,
146
- ts.ScriptTarget.Latest,
147
- true
148
- );
149
- const func = this.findFunction(sourceFile, functionName);
150
- if (!func) {
151
- throw new Error(`Function ${functionName} not found in ${targetPath}`);
152
- }
153
- return this.generateFunctionEdgeCases(func);
154
- }
155
- /**
156
- * Execute tests and return results
157
- */
158
- async executeTests(pattern) {
159
- try {
160
- const output = execSync(`npm run test -- ${pattern} --reporter=json`, {
161
- cwd: this.projectRoot,
162
- encoding: "utf-8",
163
- stdio: "pipe"
164
- });
165
- const results = JSON.parse(output);
166
- return {
167
- passed: results.numPassedTests || 0,
168
- failed: results.numFailedTests || 0,
169
- skipped: results.numPendingTests || 0,
170
- duration: results.duration || 0,
171
- failures: this.extractFailures(results)
172
- };
173
- } catch (error) {
174
- return {
175
- passed: 0,
176
- failed: 1,
177
- skipped: 0,
178
- duration: 0,
179
- failures: [{ test: "Test execution", error: error.message }]
180
- };
181
- }
182
- }
183
- /**
184
- * Generate mock data for testing
185
- */
186
- generateMockData(schema) {
187
- const mockType = this.inferTypeFromSchema(schema);
188
- const mockValue = this.generateMockValue(mockType, schema);
189
- return {
190
- name: schema.name || "mockData",
191
- type: mockType,
192
- value: mockValue,
193
- implementation: this.generateMockImplementation(schema)
194
- };
195
- }
196
- /**
197
- * Create test fixtures
198
- */
199
- createTestFixtures(componentName) {
200
- const fixtures = [];
201
- fixtures.push({
202
- name: `${componentName}DefaultProps`,
203
- data: this.generateDefaultProps(),
204
- setup: this.generateFixtureSetup(componentName),
205
- teardown: this.generateFixtureTeardown(componentName)
206
- });
207
- fixtures.push({
208
- name: `${componentName}EdgeCaseProps`,
209
- data: this.generateEdgeCaseProps()
210
- });
211
- fixtures.push({
212
- name: `${componentName}TestData`,
213
- data: this.generateTestData()
214
- });
215
- return fixtures;
216
- }
217
- /**
218
- * Benchmark performance of a function
219
- */
220
- async benchmarkPerformance(targetPath, functionName) {
221
- const benchmarkCode = this.generateBenchmarkCode(targetPath, functionName);
222
- const benchmarkFile = join(
223
- this.testDir,
224
- "benchmarks",
225
- `${functionName}.bench.ts`
226
- );
227
- const benchDir = dirname(benchmarkFile);
228
- if (!existsSync(benchDir)) {
229
- mkdirSync(benchDir, { recursive: true });
230
- }
231
- writeFileSync(benchmarkFile, benchmarkCode);
232
- try {
233
- const output = execSync(
234
- `npx vitest bench ${benchmarkFile} --reporter=json`,
235
- {
236
- cwd: this.projectRoot,
237
- encoding: "utf-8",
238
- stdio: "pipe"
239
- }
240
- );
241
- const results = JSON.parse(output);
242
- return this.parseBenchmarkResults(results, functionName);
243
- } catch (error) {
244
- logger.error("Benchmark failed", { error });
245
- return {
246
- function: functionName,
247
- averageTime: 0,
248
- minTime: 0,
249
- maxTime: 0,
250
- iterations: 0,
251
- memoryUsage: 0
252
- };
253
- }
254
- }
255
- /**
256
- * Save generated test suite to file
257
- */
258
- async saveTestSuite(suite) {
259
- const testCode = this.generateTestCode(suite);
260
- const testDir = dirname(suite.filePath);
261
- if (!existsSync(testDir)) {
262
- mkdirSync(testDir, { recursive: true });
263
- }
264
- writeFileSync(suite.filePath, testCode);
265
- logger.info("Test suite saved", { path: suite.filePath });
266
- }
267
- // Private helper methods
268
- extractFunctions(sourceFile) {
269
- const functions = [];
270
- const visit = (node) => {
271
- if (ts.isFunctionDeclaration(node) && node.name) {
272
- functions.push(node);
273
- }
274
- ts.forEachChild(node, visit);
275
- };
276
- visit(sourceFile);
277
- return functions;
278
- }
279
- extractClasses(sourceFile) {
280
- const classes = [];
281
- const visit = (node) => {
282
- if (ts.isClassDeclaration(node) && node.name) {
283
- classes.push(node);
284
- }
285
- ts.forEachChild(node, visit);
286
- };
287
- visit(sourceFile);
288
- return classes;
289
- }
290
- generateFunctionTests(func) {
291
- const tests = [];
292
- const funcName = func.name?.getText() || "unknown";
293
- tests.push({
294
- name: `should execute ${funcName} successfully with valid input`,
295
- description: `Test normal execution of ${funcName}`,
296
- action: `const result = ${funcName}();`,
297
- assertion: "expect(result).toBeDefined();"
298
- });
299
- return tests;
300
- }
301
- generateClassTests(cls) {
302
- const tests = [];
303
- const className = cls.name?.getText() || "UnknownClass";
304
- tests.push({
305
- name: `should create instance of ${className}`,
306
- description: `Test ${className} instantiation`,
307
- action: `const instance = new ${className}()`,
308
- assertion: `expect(instance).toBeInstanceOf(${className})`
309
- });
310
- return tests;
311
- }
312
- generateFunctionEdgeCases(_func) {
313
- return [];
314
- }
315
- generateTestCode(suite) {
316
- const imports = suite.imports.join("\n");
317
- const tests = suite.tests.map((test) => this.formatTestCase(test)).join("\n\n ");
318
- return `/**
319
- * Generated test suite for ${suite.targetPath}
320
- * Generated by TestingAgent
321
- */
322
-
323
- ${imports}
324
-
325
- describe('${suite.describe}', () => {
326
- ${suite.beforeEach ? ` beforeEach(() => {
327
- ${suite.beforeEach}
328
- });
329
- ` : ""}
330
- ${suite.afterEach ? ` afterEach(() => {
331
- ${suite.afterEach}
332
- });
333
- ` : ""}
334
- ${tests}
335
- });
336
- `;
337
- }
338
- formatTestCase(test) {
339
- return `it('${test.name}', () => {
340
- ${test.setup ? ` // Arrange
341
- ${test.setup}
342
- ` : ""}
343
- // Act
344
- ${test.action}
345
-
346
- // Assert
347
- ${test.assertion}
348
- ${test.cleanup ? `
349
- // Cleanup
350
- ${test.cleanup}` : ""}
351
- })`;
352
- }
353
- generateImports(targetPath, sourceFile) {
354
- const imports = [
355
- `import { describe, it, expect, beforeEach, afterEach } from 'vitest';`
356
- ];
357
- const relativePath = this.getRelativePath(
358
- this.getTestPath(targetPath),
359
- targetPath
360
- );
361
- const exportedNames = this.getExportedNames(sourceFile);
362
- if (exportedNames.length > 0) {
363
- imports.push(
364
- `import { ${exportedNames.join(", ")} } from '${relativePath}';`
365
- );
366
- }
367
- return imports;
368
- }
369
- getExportedNames(sourceFile) {
370
- const exports = [];
371
- const visit = (node) => {
372
- if (ts.isFunctionDeclaration(node) && node.name && this.isExported(node)) {
373
- exports.push(node.name.getText());
374
- }
375
- if (ts.isClassDeclaration(node) && node.name && this.isExported(node)) {
376
- exports.push(node.name.getText());
377
- }
378
- ts.forEachChild(node, visit);
379
- };
380
- visit(sourceFile);
381
- return exports;
382
- }
383
- isExported(node) {
384
- return node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) || false;
385
- }
386
- getTestPath(targetPath) {
387
- const relativePath = targetPath.replace(this.projectRoot, "");
388
- const pathParts = relativePath.split("/");
389
- const fileName = pathParts.pop();
390
- const testFileName = fileName?.replace(".ts", ".test.ts");
391
- return join(
392
- this.projectRoot,
393
- "src",
394
- "__tests__",
395
- ...pathParts.slice(2),
396
- testFileName || ""
397
- );
398
- }
399
- getIntegrationTestPath(modulePath) {
400
- const moduleName = basename(modulePath);
401
- return join(
402
- this.testDir,
403
- "integration",
404
- `${moduleName}.integration.test.ts`
405
- );
406
- }
407
- getModuleName(targetPath) {
408
- const fileName = basename(targetPath);
409
- return fileName.replace(/\.(ts|js)$/, "");
410
- }
411
- getRelativePath(from, to) {
412
- const fromParts = from.split("/");
413
- const toParts = to.split("/");
414
- let i = 0;
415
- while (i < fromParts.length && i < toParts.length && fromParts[i] === toParts[i]) {
416
- i++;
417
- }
418
- const upCount = fromParts.length - i - 1;
419
- const ups = Array(upCount).fill("..");
420
- const downs = toParts.slice(i);
421
- const relativePath = [...ups, ...downs].join("/");
422
- return relativePath.replace(/\.ts$/, ".js");
423
- }
424
- calculateCoverage(coverageData) {
425
- const values = Object.values(coverageData);
426
- const total = values.length;
427
- const covered = values.filter((v) => v > 0).length;
428
- const percentage = total > 0 ? covered / total * 100 : 0;
429
- return { total, covered, percentage: Math.round(percentage) };
430
- }
431
- findUncoveredLines(statementMap, statements) {
432
- const uncovered = [];
433
- Object.entries(statements).forEach(([key, value]) => {
434
- if (value === 0 && statementMap[key]) {
435
- const loc = statementMap[key].start;
436
- uncovered.push(loc.line);
437
- }
438
- });
439
- return uncovered;
440
- }
441
- extractFailures(results) {
442
- const failures = [];
443
- if (results.testResults) {
444
- const testResults = results.testResults;
445
- testResults.forEach((suite) => {
446
- suite.assertionResults?.forEach((test) => {
447
- if (test.status === "failed") {
448
- failures.push({
449
- test: test.title,
450
- error: test.failureMessages?.join("\n") || "Unknown error"
451
- });
452
- }
453
- });
454
- });
455
- }
456
- return failures;
457
- }
458
- // Mock and fixture generation helpers
459
- generateMockImplementation(schema) {
460
- return `export const mock${schema.name || "Data"} = {
461
- ${this.generateMockProperties(schema)}
462
- };`;
463
- }
464
- generateMockProperties(schema) {
465
- if (!schema.properties) return "";
466
- const properties = schema.properties;
467
- return Object.entries(properties).map(([key, value]) => {
468
- return `${key}: ${this.generateMockValue(value.type, value)}`;
469
- }).join(",\n ");
470
- }
471
- generateMockValue(type, _schema) {
472
- switch (type) {
473
- case "string":
474
- return `'mock-value'`;
475
- case "number":
476
- return `${Math.floor(Math.random() * 100)}`;
477
- case "boolean":
478
- return "true";
479
- case "array":
480
- return "[]";
481
- case "object":
482
- return "{}";
483
- default:
484
- return "null";
485
- }
486
- }
487
- inferTypeFromSchema(schema) {
488
- if (typeof schema === "object" && schema !== null && "type" in schema) {
489
- return schema.type;
490
- }
491
- if (Array.isArray(schema)) return "array";
492
- if (typeof schema === "object") return "object";
493
- return typeof schema;
494
- }
495
- findDependencies(sourceFile, dependencies) {
496
- const visit = (node) => {
497
- if (ts.isImportDeclaration(node)) {
498
- const moduleSpecifier = node.moduleSpecifier;
499
- if (ts.isStringLiteral(moduleSpecifier)) {
500
- dependencies.add(moduleSpecifier.text);
501
- }
502
- }
503
- ts.forEachChild(node, visit);
504
- };
505
- visit(sourceFile);
506
- }
507
- generateModuleIntegrationTests(modulePath, _dependencies) {
508
- const tests = [];
509
- const moduleName = basename(modulePath);
510
- tests.push({
511
- name: `should initialize ${moduleName} module`,
512
- description: `Test module initialization`,
513
- action: `const module = await import('${modulePath}');`,
514
- assertion: `expect(module).toBeDefined();`,
515
- isAsync: true
516
- });
517
- return tests;
518
- }
519
- generateIntegrationImports(modulePath, dependencies) {
520
- const imports = [
521
- `import { describe, it, expect, beforeEach, afterEach } from 'vitest';`
522
- ];
523
- dependencies.forEach((dep) => {
524
- if (!dep.startsWith(".")) {
525
- const importName = dep.replace(/[^a-zA-Z]/g, "");
526
- imports.push(`import * as ${importName} from '${dep}';`);
527
- }
528
- });
529
- return imports;
530
- }
531
- generateIntegrationSetup(_dependencies) {
532
- return "const testContext = {};";
533
- }
534
- generateIntegrationCleanup() {
535
- return "// Reset any global state";
536
- }
537
- generateBeforeEach(classes) {
538
- if (classes.length === 0) return void 0;
539
- return "// Setup test environment";
540
- }
541
- generateAfterEach(classes) {
542
- if (classes.length === 0) return void 0;
543
- return "// Cleanup test environment";
544
- }
545
- findFunction(sourceFile, functionName) {
546
- let result;
547
- const visit = (node) => {
548
- if (ts.isFunctionDeclaration(node) && node.name?.getText() === functionName) {
549
- result = node;
550
- }
551
- if (!result) {
552
- ts.forEachChild(node, visit);
553
- }
554
- };
555
- visit(sourceFile);
556
- return result;
557
- }
558
- generateDefaultProps() {
559
- return {
560
- id: "test-id",
561
- className: "test-class",
562
- children: "Test Content"
563
- };
564
- }
565
- generateEdgeCaseProps() {
566
- return {
567
- id: "",
568
- className: null,
569
- children: void 0
570
- };
571
- }
572
- generateTestData() {
573
- return {
574
- items: [
575
- { id: 1, name: "Item 1" },
576
- { id: 2, name: "Item 2" }
577
- ],
578
- config: {
579
- enabled: true,
580
- limit: 10
581
- }
582
- };
583
- }
584
- generateFixtureSetup(componentName) {
585
- return `// Setup ${componentName} fixture`;
586
- }
587
- generateFixtureTeardown(componentName) {
588
- return `// Teardown ${componentName} fixture`;
589
- }
590
- generateBenchmarkCode(targetPath, functionName) {
591
- return `import { bench, describe } from 'vitest';
592
- import { ${functionName} } from '${targetPath}';
593
-
594
- describe('${functionName} performance', () => {
595
- bench('${functionName} execution time', () => {
596
- ${functionName}();
597
- });
598
- });`;
599
- }
600
- parseBenchmarkResults(results, functionName) {
601
- return {
602
- function: functionName,
603
- averageTime: results.mean || 0,
604
- minTime: results.min || 0,
605
- maxTime: results.max || 0,
606
- iterations: results.samples || 0,
607
- memoryUsage: results.memory || 0
608
- };
609
- }
610
- }
611
- export {
612
- TestingAgent
613
- };
614
- //# sourceMappingURL=testing-agent.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/agents/testing-agent.ts"],
4
- "sourcesContent": ["/**\n * Testing Agent - Automated Test Generation and Execution\n * Analyzes code to generate comprehensive test suites\n */\n\nimport * as ts from 'typescript';\nimport { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';\nimport { dirname, join, basename } from 'path';\nimport { execSync } from 'child_process';\nimport { glob } from 'glob';\nimport { logger } from '../core/monitoring/logger.js';\n\ninterface TestCase {\n name: string;\n description: string;\n setup?: string;\n action: string;\n assertion: string;\n cleanup?: string;\n isAsync?: boolean;\n}\n\ninterface TestSuite {\n filePath: string;\n targetPath: string;\n describe: string;\n imports: string[];\n beforeEach?: string;\n afterEach?: string;\n tests: TestCase[];\n}\n\ninterface CoverageReport {\n filePath: string;\n lines: { total: number; covered: number; percentage: number };\n branches: { total: number; covered: number; percentage: number };\n functions: { total: number; covered: number; percentage: number };\n uncoveredLines: number[];\n}\n\ninterface TestResults {\n passed: number;\n failed: number;\n skipped: number;\n duration: number;\n failures: Array<{ test: string; error: string }>;\n}\n\ninterface MockData {\n name: string;\n type: string;\n value: unknown;\n implementation?: string;\n}\n\ninterface Fixture {\n name: string;\n data: unknown;\n setup?: string;\n teardown?: string;\n}\n\ninterface PerfReport {\n function: string;\n averageTime: number;\n minTime: number;\n maxTime: number;\n iterations: number;\n memoryUsage: number;\n}\n\nexport class TestingAgent {\n private readonly projectRoot: string;\n private readonly testDir: string;\n private readonly mockDir: string;\n private readonly fixtureDir: string;\n\n constructor(projectRoot = process.cwd()) {\n this.projectRoot = projectRoot;\n this.testDir = join(projectRoot, 'src', '__tests__');\n this.mockDir = join(projectRoot, 'src', '__mocks__');\n this.fixtureDir = join(projectRoot, 'src', '__fixtures__');\n }\n\n /**\n * Analyze code coverage from existing reports\n */\n public async analyzeCodeCoverage(\n targetPath: string\n ): Promise<CoverageReport> {\n const coveragePath = join(\n this.projectRoot,\n 'coverage',\n 'coverage-final.json'\n );\n\n if (!existsSync(coveragePath)) {\n // Run coverage first\n try {\n execSync('npm run test -- --coverage --silent', {\n cwd: this.projectRoot,\n stdio: 'pipe',\n });\n } catch (error) {\n logger.warn('Coverage generation failed', { error });\n }\n }\n\n // Parse coverage report\n if (existsSync(coveragePath)) {\n const coverage = JSON.parse(\n readFileSync(coveragePath, 'utf-8')\n ) as Record<string, unknown>;\n const fileCoverage =\n (coverage[targetPath] as Record<string, unknown>) || {};\n\n return {\n filePath: targetPath,\n lines: this.calculateCoverage(\n (fileCoverage.s as Record<string, number>) || {}\n ),\n branches: this.calculateCoverage(\n (fileCoverage.b as Record<string, number>) || {}\n ),\n functions: this.calculateCoverage(\n (fileCoverage.f as Record<string, number>) || {}\n ),\n uncoveredLines: this.findUncoveredLines(\n (fileCoverage.statementMap as Record<string, unknown>) || {},\n (fileCoverage.s as Record<string, number>) || {}\n ),\n };\n }\n\n // Default report if no coverage data\n return {\n filePath: targetPath,\n lines: { total: 0, covered: 0, percentage: 0 },\n branches: { total: 0, covered: 0, percentage: 0 },\n functions: { total: 0, covered: 0, percentage: 0 },\n uncoveredLines: [],\n };\n }\n\n /**\n * Generate unit tests for a function or module\n */\n public async generateUnitTests(targetPath: string): Promise<TestSuite> {\n const sourceCode = readFileSync(targetPath, 'utf-8');\n const sourceFile = ts.createSourceFile(\n targetPath,\n sourceCode,\n ts.ScriptTarget.Latest,\n true\n );\n\n const functions = this.extractFunctions(sourceFile);\n const classes = this.extractClasses(sourceFile);\n const tests: TestCase[] = [];\n\n // Generate tests for functions\n for (const func of functions) {\n tests.push(...this.generateFunctionTests(func));\n }\n\n // Generate tests for classes\n for (const cls of classes) {\n tests.push(...this.generateClassTests(cls));\n }\n\n // Create test suite\n const testSuite: TestSuite = {\n filePath: this.getTestPath(targetPath),\n targetPath,\n describe: this.getModuleName(targetPath),\n imports: this.generateImports(targetPath, sourceFile),\n beforeEach: this.generateBeforeEach(classes),\n afterEach: this.generateAfterEach(classes),\n tests,\n };\n\n return testSuite;\n }\n\n /**\n * Generate integration tests for a module\n */\n public async generateIntegrationTests(\n modulePath: string\n ): Promise<TestSuite> {\n const moduleFiles = glob.sync(join(modulePath, '**/*.ts'), {\n ignore: ['**/*.test.ts', '**/*.spec.ts', '**/node_modules/**'],\n });\n\n const tests: TestCase[] = [];\n const dependencies = new Set<string>();\n\n // Analyze module interactions\n for (const file of moduleFiles) {\n const sourceCode = readFileSync(file, 'utf-8');\n const sourceFile = ts.createSourceFile(\n file,\n sourceCode,\n ts.ScriptTarget.Latest,\n true\n );\n\n // Find external dependencies\n this.findDependencies(sourceFile, dependencies);\n }\n\n // Generate integration test cases\n tests.push(\n ...this.generateModuleIntegrationTests(\n modulePath,\n Array.from(dependencies)\n )\n );\n\n const testSuite: TestSuite = {\n filePath: this.getIntegrationTestPath(modulePath),\n targetPath: modulePath,\n describe: `${basename(modulePath)} Integration`,\n imports: this.generateIntegrationImports(modulePath, dependencies),\n beforeEach: this.generateIntegrationSetup(dependencies),\n afterEach: this.generateIntegrationCleanup(),\n tests,\n };\n\n return testSuite;\n }\n\n /**\n * Generate edge case tests for a function\n */\n public async generateEdgeCaseTests(\n targetPath: string,\n functionName: string\n ): Promise<TestCase[]> {\n const sourceCode = readFileSync(targetPath, 'utf-8');\n const sourceFile = ts.createSourceFile(\n targetPath,\n sourceCode,\n ts.ScriptTarget.Latest,\n true\n );\n\n const func = this.findFunction(sourceFile, functionName);\n if (!func) {\n throw new Error(`Function ${functionName} not found in ${targetPath}`);\n }\n\n return this.generateFunctionEdgeCases(func);\n }\n\n /**\n * Execute tests and return results\n */\n public async executeTests(pattern: string): Promise<TestResults> {\n try {\n const output = execSync(`npm run test -- ${pattern} --reporter=json`, {\n cwd: this.projectRoot,\n encoding: 'utf-8',\n stdio: 'pipe',\n });\n\n const results = JSON.parse(output) as Record<string, unknown>;\n return {\n passed: (results.numPassedTests as number) || 0,\n failed: (results.numFailedTests as number) || 0,\n skipped: (results.numPendingTests as number) || 0,\n duration: (results.duration as number) || 0,\n failures: this.extractFailures(results),\n };\n } catch (error: unknown) {\n // Parse error output\n return {\n passed: 0,\n failed: 1,\n skipped: 0,\n duration: 0,\n failures: [{ test: 'Test execution', error: (error as Error).message }],\n };\n }\n }\n\n /**\n * Generate mock data for testing\n */\n public generateMockData(schema: Record<string, unknown>): MockData {\n const mockType = this.inferTypeFromSchema(schema);\n const mockValue = this.generateMockValue(mockType, schema);\n\n return {\n name: (schema.name as string) || 'mockData',\n type: mockType,\n value: mockValue,\n implementation: this.generateMockImplementation(schema),\n };\n }\n\n /**\n * Create test fixtures\n */\n public createTestFixtures(componentName: string): Fixture[] {\n const fixtures: Fixture[] = [];\n\n // Generate common fixtures\n fixtures.push({\n name: `${componentName}DefaultProps`,\n data: this.generateDefaultProps(),\n setup: this.generateFixtureSetup(componentName),\n teardown: this.generateFixtureTeardown(componentName),\n });\n\n fixtures.push({\n name: `${componentName}EdgeCaseProps`,\n data: this.generateEdgeCaseProps(),\n });\n\n fixtures.push({\n name: `${componentName}TestData`,\n data: this.generateTestData(),\n });\n\n return fixtures;\n }\n\n /**\n * Benchmark performance of a function\n */\n public async benchmarkPerformance(\n targetPath: string,\n functionName: string\n ): Promise<PerfReport> {\n const benchmarkCode = this.generateBenchmarkCode(targetPath, functionName);\n const benchmarkFile = join(\n this.testDir,\n 'benchmarks',\n `${functionName}.bench.ts`\n );\n\n // Ensure directory exists\n const benchDir = dirname(benchmarkFile);\n if (!existsSync(benchDir)) {\n mkdirSync(benchDir, { recursive: true });\n }\n\n // Write benchmark file\n writeFileSync(benchmarkFile, benchmarkCode);\n\n // Run benchmark\n try {\n const output = execSync(\n `npx vitest bench ${benchmarkFile} --reporter=json`,\n {\n cwd: this.projectRoot,\n encoding: 'utf-8',\n stdio: 'pipe',\n }\n );\n\n const results = JSON.parse(output) as Record<string, unknown>;\n return this.parseBenchmarkResults(results, functionName);\n } catch (error) {\n logger.error('Benchmark failed', { error });\n return {\n function: functionName,\n averageTime: 0,\n minTime: 0,\n maxTime: 0,\n iterations: 0,\n memoryUsage: 0,\n };\n }\n }\n\n /**\n * Save generated test suite to file\n */\n public async saveTestSuite(suite: TestSuite): Promise<void> {\n const testCode = this.generateTestCode(suite);\n const testDir = dirname(suite.filePath);\n\n // Ensure directory exists\n if (!existsSync(testDir)) {\n mkdirSync(testDir, { recursive: true });\n }\n\n writeFileSync(suite.filePath, testCode);\n logger.info('Test suite saved', { path: suite.filePath });\n }\n\n // Private helper methods\n\n private extractFunctions(\n sourceFile: ts.SourceFile\n ): ts.FunctionDeclaration[] {\n const functions: ts.FunctionDeclaration[] = [];\n\n const visit = (node: ts.Node) => {\n if (ts.isFunctionDeclaration(node) && node.name) {\n functions.push(node);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return functions;\n }\n\n private extractClasses(sourceFile: ts.SourceFile): ts.ClassDeclaration[] {\n const classes: ts.ClassDeclaration[] = [];\n\n const visit = (node: ts.Node) => {\n if (ts.isClassDeclaration(node) && node.name) {\n classes.push(node);\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return classes;\n }\n\n private generateFunctionTests(func: ts.FunctionDeclaration): TestCase[] {\n const tests: TestCase[] = [];\n const funcName = func.name?.getText() || 'unknown';\n\n // Happy path test\n tests.push({\n name: `should execute ${funcName} successfully with valid input`,\n description: `Test normal execution of ${funcName}`,\n action: `const result = ${funcName}();`,\n assertion: 'expect(result).toBeDefined();',\n });\n\n return tests;\n }\n\n private generateClassTests(cls: ts.ClassDeclaration): TestCase[] {\n const tests: TestCase[] = [];\n const className = cls.name?.getText() || 'UnknownClass';\n\n // Constructor test\n tests.push({\n name: `should create instance of ${className}`,\n description: `Test ${className} instantiation`,\n action: `const instance = new ${className}()`,\n assertion: `expect(instance).toBeInstanceOf(${className})`,\n });\n\n return tests;\n }\n\n private generateFunctionEdgeCases(_func: ts.FunctionDeclaration): TestCase[] {\n return [];\n }\n\n private generateTestCode(suite: TestSuite): string {\n const imports = suite.imports.join('\\n');\n const tests = suite.tests\n .map((test) => this.formatTestCase(test))\n .join('\\n\\n ');\n\n return `/**\n * Generated test suite for ${suite.targetPath}\n * Generated by TestingAgent\n */\n\n${imports}\n\ndescribe('${suite.describe}', () => {\n${suite.beforeEach ? ` beforeEach(() => {\\n ${suite.beforeEach}\\n });\\n` : ''}\n${suite.afterEach ? ` afterEach(() => {\\n ${suite.afterEach}\\n });\\n` : ''}\n ${tests}\n});\n`;\n }\n\n private formatTestCase(test: TestCase): string {\n return `it('${test.name}', () => {\n${test.setup ? ` // Arrange\\n ${test.setup}\\n` : ''}\n // Act\n ${test.action}\n\n // Assert\n ${test.assertion}\n${test.cleanup ? `\\n // Cleanup\\n ${test.cleanup}` : ''}\n })`;\n }\n\n private generateImports(\n targetPath: string,\n sourceFile: ts.SourceFile\n ): string[] {\n const imports: string[] = [\n `import { describe, it, expect, beforeEach, afterEach } from 'vitest';`,\n ];\n\n // Import the module being tested\n const relativePath = this.getRelativePath(\n this.getTestPath(targetPath),\n targetPath\n );\n const exportedNames = this.getExportedNames(sourceFile);\n if (exportedNames.length > 0) {\n imports.push(\n `import { ${exportedNames.join(', ')} } from '${relativePath}';`\n );\n }\n\n return imports;\n }\n\n private getExportedNames(sourceFile: ts.SourceFile): string[] {\n const exports: string[] = [];\n\n const visit = (node: ts.Node) => {\n if (\n ts.isFunctionDeclaration(node) &&\n node.name &&\n this.isExported(node)\n ) {\n exports.push(node.name.getText());\n }\n if (ts.isClassDeclaration(node) && node.name && this.isExported(node)) {\n exports.push(node.name.getText());\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return exports;\n }\n\n private isExported(node: ts.Node): boolean {\n return (\n node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ||\n false\n );\n }\n\n private getTestPath(targetPath: string): string {\n const relativePath = targetPath.replace(this.projectRoot, '');\n const pathParts = relativePath.split('/');\n const fileName = pathParts.pop();\n const testFileName = fileName?.replace('.ts', '.test.ts');\n\n return join(\n this.projectRoot,\n 'src',\n '__tests__',\n ...pathParts.slice(2),\n testFileName || ''\n );\n }\n\n private getIntegrationTestPath(modulePath: string): string {\n const moduleName = basename(modulePath);\n return join(\n this.testDir,\n 'integration',\n `${moduleName}.integration.test.ts`\n );\n }\n\n private getModuleName(targetPath: string): string {\n const fileName = basename(targetPath);\n return fileName.replace(/\\.(ts|js)$/, '');\n }\n\n private getRelativePath(from: string, to: string): string {\n const fromParts = from.split('/');\n const toParts = to.split('/');\n\n // Find common base\n let i = 0;\n while (\n i < fromParts.length &&\n i < toParts.length &&\n fromParts[i] === toParts[i]\n ) {\n i++;\n }\n\n // Generate relative path\n const upCount = fromParts.length - i - 1;\n const ups = Array(upCount).fill('..');\n const downs = toParts.slice(i);\n\n const relativePath = [...ups, ...downs].join('/');\n return relativePath.replace(/\\.ts$/, '.js');\n }\n\n private calculateCoverage(coverageData: Record<string, number>): {\n total: number;\n covered: number;\n percentage: number;\n } {\n const values = Object.values(coverageData);\n const total = values.length;\n const covered = values.filter((v) => v > 0).length;\n const percentage = total > 0 ? (covered / total) * 100 : 0;\n\n return { total, covered, percentage: Math.round(percentage) };\n }\n\n private findUncoveredLines(\n statementMap: Record<string, unknown>,\n statements: Record<string, number>\n ): number[] {\n const uncovered: number[] = [];\n\n Object.entries(statements).forEach(([key, value]) => {\n if (value === 0 && statementMap[key]) {\n const loc = (statementMap[key] as { start: { line: number } }).start;\n uncovered.push(loc.line);\n }\n });\n\n return uncovered;\n }\n\n private extractFailures(\n results: Record<string, unknown>\n ): Array<{ test: string; error: string }> {\n const failures: Array<{ test: string; error: string }> = [];\n\n if (results.testResults) {\n const testResults = results.testResults as Array<{\n assertionResults?: Array<{\n status: string;\n title: string;\n failureMessages?: string[];\n }>;\n }>;\n testResults.forEach((suite) => {\n suite.assertionResults?.forEach((test) => {\n if (test.status === 'failed') {\n failures.push({\n test: test.title,\n error: test.failureMessages?.join('\\n') || 'Unknown error',\n });\n }\n });\n });\n }\n\n return failures;\n }\n\n // Mock and fixture generation helpers\n private generateMockImplementation(schema: Record<string, unknown>): string {\n return `export const mock${(schema.name as string) || 'Data'} = {\n ${this.generateMockProperties(schema)}\n};`;\n }\n\n private generateMockProperties(schema: Record<string, unknown>): string {\n if (!schema.properties) return '';\n\n const properties = schema.properties as Record<string, { type: string }>;\n return Object.entries(properties)\n .map(([key, value]) => {\n return `${key}: ${this.generateMockValue(value.type, value)}`;\n })\n .join(',\\n ');\n }\n\n private generateMockValue(type: string, _schema: unknown): string {\n switch (type) {\n case 'string':\n return `'mock-value'`;\n case 'number':\n return `${Math.floor(Math.random() * 100)}`;\n case 'boolean':\n return 'true';\n case 'array':\n return '[]';\n case 'object':\n return '{}';\n default:\n return 'null';\n }\n }\n\n private inferTypeFromSchema(schema: unknown): string {\n if (typeof schema === 'object' && schema !== null && 'type' in schema) {\n return (schema as { type: string }).type;\n }\n if (Array.isArray(schema)) return 'array';\n if (typeof schema === 'object') return 'object';\n return typeof schema;\n }\n\n private findDependencies(\n sourceFile: ts.SourceFile,\n dependencies: Set<string>\n ): void {\n const visit = (node: ts.Node) => {\n if (ts.isImportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier;\n if (ts.isStringLiteral(moduleSpecifier)) {\n dependencies.add(moduleSpecifier.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n }\n\n private generateModuleIntegrationTests(\n modulePath: string,\n _dependencies: string[]\n ): TestCase[] {\n const tests: TestCase[] = [];\n const moduleName = basename(modulePath);\n\n tests.push({\n name: `should initialize ${moduleName} module`,\n description: `Test module initialization`,\n action: `const module = await import('${modulePath}');`,\n assertion: `expect(module).toBeDefined();`,\n isAsync: true,\n });\n\n return tests;\n }\n\n private generateIntegrationImports(\n modulePath: string,\n dependencies: Set<string>\n ): string[] {\n const imports = [\n `import { describe, it, expect, beforeEach, afterEach } from 'vitest';`,\n ];\n\n // Add dependency imports\n dependencies.forEach((dep) => {\n if (!dep.startsWith('.')) {\n const importName = dep.replace(/[^a-zA-Z]/g, '');\n imports.push(`import * as ${importName} from '${dep}';`);\n }\n });\n\n return imports;\n }\n\n private generateIntegrationSetup(_dependencies: Set<string>): string {\n return 'const testContext = {};';\n }\n\n private generateIntegrationCleanup(): string {\n return '// Reset any global state';\n }\n\n private generateBeforeEach(\n classes: ts.ClassDeclaration[]\n ): string | undefined {\n if (classes.length === 0) return undefined;\n return '// Setup test environment';\n }\n\n private generateAfterEach(\n classes: ts.ClassDeclaration[]\n ): string | undefined {\n if (classes.length === 0) return undefined;\n return '// Cleanup test environment';\n }\n\n private findFunction(\n sourceFile: ts.SourceFile,\n functionName: string\n ): ts.FunctionDeclaration | undefined {\n let result: ts.FunctionDeclaration | undefined;\n\n const visit = (node: ts.Node) => {\n if (\n ts.isFunctionDeclaration(node) &&\n node.name?.getText() === functionName\n ) {\n result = node;\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n private generateDefaultProps(): Record<string, unknown> {\n return {\n id: 'test-id',\n className: 'test-class',\n children: 'Test Content',\n };\n }\n\n private generateEdgeCaseProps(): Record<string, unknown> {\n return {\n id: '',\n className: null,\n children: undefined,\n };\n }\n\n private generateTestData(): Record<string, unknown> {\n return {\n items: [\n { id: 1, name: 'Item 1' },\n { id: 2, name: 'Item 2' },\n ],\n config: {\n enabled: true,\n limit: 10,\n },\n };\n }\n\n private generateFixtureSetup(componentName: string): string {\n return `// Setup ${componentName} fixture`;\n }\n\n private generateFixtureTeardown(componentName: string): string {\n return `// Teardown ${componentName} fixture`;\n }\n\n private generateBenchmarkCode(\n targetPath: string,\n functionName: string\n ): string {\n return `import { bench, describe } from 'vitest';\nimport { ${functionName} } from '${targetPath}';\n\ndescribe('${functionName} performance', () => {\n bench('${functionName} execution time', () => {\n ${functionName}();\n });\n});`;\n }\n\n private parseBenchmarkResults(\n results: Record<string, unknown>,\n functionName: string\n ): PerfReport {\n return {\n function: functionName,\n averageTime: (results.mean as number) || 0,\n minTime: (results.min as number) || 0,\n maxTime: (results.max as number) || 0,\n iterations: (results.samples as number) || 0,\n memoryUsage: (results.memory as number) || 0,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }