@stackmemoryai/stackmemory 0.5.58 → 0.5.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/README.md +105 -1
  2. package/dist/scripts/benchmark-performance.js +48 -0
  3. package/dist/scripts/benchmark-performance.js.map +7 -0
  4. package/dist/scripts/check-redis.js +42 -0
  5. package/dist/scripts/check-redis.js.map +7 -0
  6. package/dist/scripts/initialize.js +116 -0
  7. package/dist/scripts/initialize.js.map +7 -0
  8. package/dist/scripts/list-linear-tasks.js +124 -0
  9. package/dist/scripts/list-linear-tasks.js.map +7 -0
  10. package/dist/scripts/measure-handoff-impact.js +340 -0
  11. package/dist/scripts/measure-handoff-impact.js.map +7 -0
  12. package/dist/scripts/query-chromadb.js +160 -0
  13. package/dist/scripts/query-chromadb.js.map +7 -0
  14. package/dist/scripts/show-linear-summary.js +119 -0
  15. package/dist/scripts/show-linear-summary.js.map +7 -0
  16. package/dist/scripts/simple-swarm-demo.js +90 -0
  17. package/dist/scripts/simple-swarm-demo.js.map +7 -0
  18. package/dist/scripts/status.js +155 -0
  19. package/dist/scripts/status.js.map +7 -0
  20. package/dist/scripts/test-chromadb-sync.js +192 -0
  21. package/dist/scripts/test-chromadb-sync.js.map +7 -0
  22. package/dist/scripts/test-ralph-iteration-fix.js +86 -0
  23. package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
  24. package/dist/scripts/test-ralph-iterations.js +121 -0
  25. package/dist/scripts/test-ralph-iterations.js.map +7 -0
  26. package/dist/scripts/test-redis-storage.js +389 -0
  27. package/dist/scripts/test-redis-storage.js.map +7 -0
  28. package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
  29. package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
  30. package/dist/scripts/test-swarm-fixes.js +125 -0
  31. package/dist/scripts/test-swarm-fixes.js.map +7 -0
  32. package/dist/scripts/test-swarm-tui.js +23 -0
  33. package/dist/scripts/test-swarm-tui.js.map +7 -0
  34. package/dist/scripts/test-tui-shortcuts.js +52 -0
  35. package/dist/scripts/test-tui-shortcuts.js.map +7 -0
  36. package/dist/scripts/validate-tui-shortcuts.js +60 -0
  37. package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
  38. package/dist/src/agents/core/agent-task-manager.js.map +7 -0
  39. package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
  40. package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
  41. package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
  42. package/dist/src/cli/auto-detect.js.map +7 -0
  43. package/dist/src/cli/claude-sm-danger.js.map +7 -0
  44. package/dist/src/cli/claude-sm.js +1236 -0
  45. package/dist/src/cli/claude-sm.js.map +7 -0
  46. package/dist/src/cli/codex-sm-danger.js.map +7 -0
  47. package/dist/src/cli/codex-sm.js.map +7 -0
  48. package/dist/src/cli/commands/api.js.map +7 -0
  49. package/dist/src/cli/commands/auto-background.js.map +7 -0
  50. package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
  51. package/dist/src/cli/commands/clear.js.map +7 -0
  52. package/dist/src/cli/commands/config.js.map +7 -0
  53. package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
  54. package/dist/src/cli/commands/context.js.map +7 -0
  55. package/dist/src/cli/commands/daemon.js.map +7 -0
  56. package/dist/src/cli/commands/dashboard.js.map +7 -0
  57. package/dist/src/cli/commands/db.js.map +7 -0
  58. package/dist/src/cli/commands/decision.js.map +7 -0
  59. package/dist/src/cli/commands/discovery.js.map +7 -0
  60. package/dist/src/cli/commands/handoff.js.map +7 -0
  61. package/dist/src/cli/commands/hooks.js.map +7 -0
  62. package/dist/src/cli/commands/linear.js.map +7 -0
  63. package/dist/src/cli/commands/log.js.map +7 -0
  64. package/dist/src/cli/commands/login.js.map +7 -0
  65. package/dist/src/cli/commands/migrate.js.map +7 -0
  66. package/dist/src/cli/commands/model.js.map +7 -0
  67. package/dist/src/cli/commands/onboard.js.map +7 -0
  68. package/dist/src/cli/commands/projects.js.map +7 -0
  69. package/dist/src/cli/commands/ralph.js.map +7 -0
  70. package/dist/src/cli/commands/retrieval.js.map +7 -0
  71. package/dist/src/cli/commands/search.js +173 -0
  72. package/dist/src/cli/commands/search.js.map +7 -0
  73. package/dist/src/cli/commands/service.js.map +7 -0
  74. package/dist/src/cli/commands/session.js.map +7 -0
  75. package/dist/src/cli/commands/settings.js.map +7 -0
  76. package/dist/src/cli/commands/setup.js.map +7 -0
  77. package/dist/src/cli/commands/shell.js.map +7 -0
  78. package/dist/src/cli/commands/signup.js.map +7 -0
  79. package/dist/src/cli/commands/skills.js.map +7 -0
  80. package/dist/src/cli/commands/sms-notify.js.map +7 -0
  81. package/dist/src/cli/commands/storage-tier.js.map +7 -0
  82. package/dist/src/cli/commands/sweep.js.map +7 -0
  83. package/dist/src/cli/commands/tasks.js.map +7 -0
  84. package/dist/src/cli/commands/worktree.js.map +7 -0
  85. package/dist/src/cli/index.js +609 -0
  86. package/dist/src/cli/index.js.map +7 -0
  87. package/dist/src/cli/opencode-sm.js.map +7 -0
  88. package/dist/src/cli/utils/viewer.js.map +7 -0
  89. package/dist/src/core/config/config-manager.js.map +7 -0
  90. package/dist/src/core/config/feature-flags.js.map +7 -0
  91. package/dist/src/core/config/storage-config.js.map +7 -0
  92. package/dist/src/core/config/types.js.map +7 -0
  93. package/dist/src/core/context/auto-context.js.map +7 -0
  94. package/dist/src/core/context/dual-stack-manager.js.map +7 -0
  95. package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
  96. package/dist/src/core/context/frame-database.js.map +7 -0
  97. package/dist/src/core/context/frame-digest.js.map +7 -0
  98. package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
  99. package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
  100. package/dist/src/core/context/frame-recovery.js.map +7 -0
  101. package/dist/src/core/context/frame-stack.js.map +7 -0
  102. package/dist/src/core/context/index.js.map +7 -0
  103. package/dist/src/core/context/permission-manager.js.map +7 -0
  104. package/dist/src/core/context/recursive-context-manager.js.map +7 -0
  105. package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
  106. package/dist/src/core/context/shared-context-layer.js.map +7 -0
  107. package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
  108. package/dist/src/core/context/validation.js.map +7 -0
  109. package/dist/src/core/database/batch-operations.js.map +7 -0
  110. package/dist/src/core/database/connection-pool.js.map +7 -0
  111. package/dist/src/core/database/database-adapter.js.map +7 -0
  112. package/dist/src/core/database/migration-manager.js.map +7 -0
  113. package/dist/src/core/database/query-cache.js.map +7 -0
  114. package/dist/src/core/database/query-router.js.map +7 -0
  115. package/dist/src/core/database/sqlite-adapter.js +738 -0
  116. package/dist/src/core/database/sqlite-adapter.js.map +7 -0
  117. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
  118. package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
  119. package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
  120. package/dist/src/core/digest/index.js.map +7 -0
  121. package/dist/src/core/digest/types.js.map +7 -0
  122. package/dist/src/core/errors/error-utils.js +208 -0
  123. package/dist/src/core/errors/error-utils.js.map +7 -0
  124. package/dist/src/core/errors/index.js +521 -0
  125. package/dist/src/core/errors/index.js.map +7 -0
  126. package/dist/src/core/errors/recovery.js.map +7 -0
  127. package/dist/src/core/execution/parallel-executor.js.map +7 -0
  128. package/dist/src/core/extensions/custom-tools.js +567 -0
  129. package/dist/src/core/extensions/custom-tools.js.map +7 -0
  130. package/dist/src/core/extensions/index.js +55 -0
  131. package/dist/src/core/extensions/index.js.map +7 -0
  132. package/dist/src/core/extensions/loader.js +709 -0
  133. package/dist/src/core/extensions/loader.js.map +7 -0
  134. package/dist/src/core/extensions/plugin-system.js +506 -0
  135. package/dist/src/core/extensions/plugin-system.js.map +7 -0
  136. package/dist/src/core/extensions/provider-adapter.js +617 -0
  137. package/dist/src/core/extensions/provider-adapter.js.map +7 -0
  138. package/dist/src/core/extensions/sandbox-runtime.js +664 -0
  139. package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
  140. package/dist/src/core/frame/workflow-templates.js.map +7 -0
  141. package/dist/src/core/merge/conflict-detector.js.map +7 -0
  142. package/dist/src/core/merge/index.js.map +7 -0
  143. package/dist/src/core/merge/resolution-engine.js.map +7 -0
  144. package/dist/src/core/merge/stack-diff.js.map +7 -0
  145. package/dist/src/core/merge/unified-merge-resolver.js +303 -0
  146. package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
  147. package/dist/src/core/models/fallback-monitor.js.map +7 -0
  148. package/dist/src/core/models/model-router.js.map +7 -0
  149. package/dist/src/core/monitoring/error-handler.js.map +7 -0
  150. package/dist/src/core/monitoring/logger.js +202 -0
  151. package/dist/src/core/monitoring/logger.js.map +7 -0
  152. package/dist/src/core/monitoring/metrics.js.map +7 -0
  153. package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
  154. package/dist/src/core/monitoring/session-monitor.js.map +7 -0
  155. package/dist/src/core/performance/context-cache.js.map +7 -0
  156. package/dist/src/core/performance/index.js.map +7 -0
  157. package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
  158. package/dist/src/core/performance/monitor.js.map +7 -0
  159. package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
  160. package/dist/src/core/performance/performance-benchmark.js.map +7 -0
  161. package/dist/src/core/performance/performance-profiler.js.map +7 -0
  162. package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
  163. package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
  164. package/dist/src/core/projects/project-isolation.js.map +7 -0
  165. package/dist/src/core/projects/project-manager.js.map +7 -0
  166. package/dist/src/core/query/query-parser.js.map +7 -0
  167. package/dist/src/core/query/query-templates.js.map +7 -0
  168. package/dist/src/core/retrieval/context-retriever.js.map +7 -0
  169. package/dist/src/core/retrieval/index.js.map +7 -0
  170. package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
  171. package/dist/src/core/retrieval/llm-provider.js.map +7 -0
  172. package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
  173. package/dist/src/core/retrieval/summary-generator.js.map +7 -0
  174. package/dist/src/core/retrieval/types.js.map +7 -0
  175. package/dist/src/core/security/index.js +35 -0
  176. package/dist/src/core/security/index.js.map +7 -0
  177. package/dist/src/core/security/input-sanitizer.js +321 -0
  178. package/dist/src/core/security/input-sanitizer.js.map +7 -0
  179. package/dist/src/core/session/clear-survival.js.map +7 -0
  180. package/dist/src/core/session/enhanced-handoff.js.map +7 -0
  181. package/dist/src/core/session/handoff-generator.js.map +7 -0
  182. package/dist/src/core/session/index.js.map +7 -0
  183. package/dist/src/core/session/session-manager.js.map +7 -0
  184. package/dist/src/core/skills/index.js.map +7 -0
  185. package/dist/src/core/skills/skill-storage.js.map +7 -0
  186. package/dist/src/core/skills/types.js.map +7 -0
  187. package/dist/src/core/storage/chromadb-adapter.js +380 -0
  188. package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
  189. package/dist/src/core/storage/infinite-storage.js.map +7 -0
  190. package/dist/src/core/storage/remote-storage.js.map +7 -0
  191. package/dist/src/core/storage/two-tier-storage.js.map +7 -0
  192. package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
  193. package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
  194. package/dist/src/core/trace/debug-trace.js.map +7 -0
  195. package/dist/src/core/trace/index.js.map +7 -0
  196. package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
  197. package/dist/src/core/trace/trace-detector.js.map +7 -0
  198. package/dist/src/core/trace/trace-store.js.map +7 -0
  199. package/dist/src/core/trace/types.js.map +7 -0
  200. package/dist/src/core/utils/async-mutex.js.map +7 -0
  201. package/dist/src/core/utils/compression.js.map +7 -0
  202. package/dist/src/core/utils/update-checker.js.map +7 -0
  203. package/dist/src/core/worktree/worktree-manager.js.map +7 -0
  204. package/dist/src/daemon/daemon-config.js.map +7 -0
  205. package/dist/src/daemon/services/context-service.js.map +7 -0
  206. package/dist/src/daemon/services/linear-service.js.map +7 -0
  207. package/dist/src/daemon/session-daemon.js.map +7 -0
  208. package/dist/src/daemon/unified-daemon.js.map +7 -0
  209. package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
  210. package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
  211. package/dist/src/features/analytics/index.js.map +7 -0
  212. package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
  213. package/dist/src/features/browser/browser-mcp.js.map +7 -0
  214. package/dist/src/features/sweep/index.js.map +7 -0
  215. package/dist/src/features/sweep/prediction-client.js.map +7 -0
  216. package/dist/src/features/sweep/prompt-builder.js.map +7 -0
  217. package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
  218. package/dist/src/features/sweep/state-watcher.js.map +7 -0
  219. package/dist/src/features/sweep/status-bar.js.map +7 -0
  220. package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
  221. package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
  222. package/dist/src/features/sweep/types.js.map +7 -0
  223. package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
  224. package/dist/src/features/tasks/task-aware-context.js.map +7 -0
  225. package/dist/src/features/tui/simple-monitor.js.map +7 -0
  226. package/dist/src/features/tui/swarm-monitor.js.map +7 -0
  227. package/dist/src/features/web/client/stores/task-store.js.map +7 -0
  228. package/dist/src/features/web/server/index.js.map +7 -0
  229. package/dist/src/hooks/auto-background.js.map +7 -0
  230. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
  231. package/dist/src/hooks/config.js.map +7 -0
  232. package/dist/src/hooks/daemon.js.map +7 -0
  233. package/dist/src/hooks/events.js.map +7 -0
  234. package/dist/src/hooks/index.js.map +7 -0
  235. package/dist/src/hooks/linear-task-picker.js.map +7 -0
  236. package/dist/src/hooks/schemas.js.map +7 -0
  237. package/dist/src/hooks/secure-fs.js.map +7 -0
  238. package/dist/src/hooks/security-logger.js.map +7 -0
  239. package/dist/src/hooks/session-summary.js.map +7 -0
  240. package/dist/src/hooks/sms-action-runner.js.map +7 -0
  241. package/dist/src/hooks/sms-notify.js.map +7 -0
  242. package/dist/src/hooks/sms-watcher.js.map +7 -0
  243. package/dist/src/hooks/sms-webhook.js.map +7 -0
  244. package/dist/src/hooks/whatsapp-commands.js.map +7 -0
  245. package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
  246. package/dist/src/hooks/whatsapp-sync.js.map +7 -0
  247. package/dist/src/index.js.map +7 -0
  248. package/dist/src/integrations/anthropic/client.js.map +7 -0
  249. package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
  250. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  251. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  252. package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
  253. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
  254. package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
  255. package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
  256. package/dist/src/integrations/linear/auth.js.map +7 -0
  257. package/dist/src/integrations/linear/auto-sync.js.map +7 -0
  258. package/dist/src/integrations/linear/client.js +634 -0
  259. package/dist/src/integrations/linear/client.js.map +7 -0
  260. package/dist/src/integrations/linear/config.js.map +7 -0
  261. package/dist/src/integrations/linear/migration.js.map +7 -0
  262. package/dist/src/integrations/linear/oauth-server.js.map +7 -0
  263. package/dist/src/integrations/linear/rest-client.js.map +7 -0
  264. package/dist/src/integrations/linear/sync-manager.js.map +7 -0
  265. package/dist/src/integrations/linear/sync-service.js.map +7 -0
  266. package/dist/src/integrations/linear/sync.js.map +7 -0
  267. package/dist/src/integrations/linear/unified-sync.js.map +7 -0
  268. package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
  269. package/dist/src/integrations/linear/webhook-server.js.map +7 -0
  270. package/dist/src/integrations/linear/webhook.js.map +7 -0
  271. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
  272. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
  273. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
  274. package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
  275. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
  276. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  277. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
  278. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
  279. package/dist/src/integrations/mcp/index.js.map +7 -0
  280. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  281. package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
  282. package/dist/src/integrations/mcp/remote-server.js +682 -0
  283. package/dist/src/integrations/mcp/remote-server.js.map +7 -0
  284. package/dist/src/integrations/mcp/schemas.js.map +7 -0
  285. package/dist/src/integrations/mcp/server.js +1975 -0
  286. package/dist/src/integrations/mcp/server.js.map +7 -0
  287. package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
  288. package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
  289. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
  290. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
  291. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
  292. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
  293. package/dist/src/integrations/ralph/index.js.map +7 -0
  294. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
  295. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
  296. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
  297. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
  298. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
  299. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
  300. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
  301. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
  302. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
  303. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
  304. package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
  305. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
  306. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
  307. package/dist/src/integrations/ralph/types.js +5 -0
  308. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
  309. package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
  310. package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
  311. package/dist/src/models/user.model.js.map +7 -0
  312. package/dist/src/servers/production/auth-middleware.js.map +7 -0
  313. package/dist/src/services/config-service.js.map +7 -0
  314. package/dist/src/services/context-service.js.map +7 -0
  315. package/dist/src/skills/api-discovery.js.map +7 -0
  316. package/dist/src/skills/api-skill.js.map +7 -0
  317. package/dist/src/skills/claude-skills.js.map +7 -0
  318. package/dist/src/skills/dashboard-launcher.js.map +7 -0
  319. package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
  320. package/dist/src/skills/repo-ingestion-skill.js +632 -0
  321. package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
  322. package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
  323. package/dist/src/types/task.js.map +7 -0
  324. package/dist/src/utils/env.js.map +7 -0
  325. package/dist/src/utils/formatting.js.map +7 -0
  326. package/dist/src/utils/process-cleanup.js.map +7 -0
  327. package/package.json +13 -9
  328. package/scripts/background-sync-manager.js +145 -83
  329. package/scripts/claude-sm-autostart.js +17 -12
  330. package/scripts/gepa/README.md +275 -0
  331. package/scripts/gepa/config.json +53 -0
  332. package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
  333. package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
  334. package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
  335. package/scripts/gepa/generations/gen-000/baseline.md +124 -0
  336. package/scripts/gepa/hooks/auto-optimize.js +494 -0
  337. package/scripts/gepa/hooks/eval-tracker.js +203 -0
  338. package/scripts/gepa/hooks/reflect.js +311 -0
  339. package/scripts/gepa/optimize.js +611 -0
  340. package/scripts/gepa/state.json +14 -0
  341. package/scripts/initialize.ts +16 -7
  342. package/scripts/install.sh +14 -62
  343. package/scripts/status.ts +111 -46
  344. package/scripts/test-pre-publish-quick.sh +1 -1
  345. package/dist/agents/core/agent-task-manager.js.map +0 -7
  346. package/dist/agents/testing-agent.js +0 -614
  347. package/dist/agents/testing-agent.js.map +0 -7
  348. package/dist/agents/verifiers/base-verifier.js.map +0 -7
  349. package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
  350. package/dist/agents/verifiers/llm-judge.js.map +0 -7
  351. package/dist/cli/auto-detect.js.map +0 -7
  352. package/dist/cli/browser-test.js +0 -33
  353. package/dist/cli/browser-test.js.map +0 -7
  354. package/dist/cli/claude-sm-danger.js.map +0 -7
  355. package/dist/cli/claude-sm.js +0 -1156
  356. package/dist/cli/claude-sm.js.map +0 -7
  357. package/dist/cli/codex-sm-danger.js.map +0 -7
  358. package/dist/cli/codex-sm.js.map +0 -7
  359. package/dist/cli/commands/api.js.map +0 -7
  360. package/dist/cli/commands/auto-background.js.map +0 -7
  361. package/dist/cli/commands/cleanup-processes.js.map +0 -7
  362. package/dist/cli/commands/clear.js.map +0 -7
  363. package/dist/cli/commands/config.js.map +0 -7
  364. package/dist/cli/commands/context-rehydrate.js.map +0 -7
  365. package/dist/cli/commands/context.js.map +0 -7
  366. package/dist/cli/commands/daemon.js.map +0 -7
  367. package/dist/cli/commands/dashboard.js.map +0 -7
  368. package/dist/cli/commands/db.js.map +0 -7
  369. package/dist/cli/commands/decision.js.map +0 -7
  370. package/dist/cli/commands/discovery.js.map +0 -7
  371. package/dist/cli/commands/handoff.js.map +0 -7
  372. package/dist/cli/commands/hooks.js.map +0 -7
  373. package/dist/cli/commands/linear-unified.js +0 -353
  374. package/dist/cli/commands/linear-unified.js.map +0 -7
  375. package/dist/cli/commands/linear.js.map +0 -7
  376. package/dist/cli/commands/log.js.map +0 -7
  377. package/dist/cli/commands/login.js.map +0 -7
  378. package/dist/cli/commands/migrate.js.map +0 -7
  379. package/dist/cli/commands/model.js.map +0 -7
  380. package/dist/cli/commands/monitor.js +0 -313
  381. package/dist/cli/commands/monitor.js.map +0 -7
  382. package/dist/cli/commands/onboard.js.map +0 -7
  383. package/dist/cli/commands/projects.js.map +0 -7
  384. package/dist/cli/commands/quality.js +0 -413
  385. package/dist/cli/commands/quality.js.map +0 -7
  386. package/dist/cli/commands/ralph.js.map +0 -7
  387. package/dist/cli/commands/retrieval.js.map +0 -7
  388. package/dist/cli/commands/search.js +0 -156
  389. package/dist/cli/commands/search.js.map +0 -7
  390. package/dist/cli/commands/service.js.map +0 -7
  391. package/dist/cli/commands/session.js.map +0 -7
  392. package/dist/cli/commands/settings.js.map +0 -7
  393. package/dist/cli/commands/setup.js.map +0 -7
  394. package/dist/cli/commands/shell.js.map +0 -7
  395. package/dist/cli/commands/signup.js.map +0 -7
  396. package/dist/cli/commands/skills.js.map +0 -7
  397. package/dist/cli/commands/sms-notify.js.map +0 -7
  398. package/dist/cli/commands/storage-tier.js.map +0 -7
  399. package/dist/cli/commands/storage.js +0 -360
  400. package/dist/cli/commands/storage.js.map +0 -7
  401. package/dist/cli/commands/sweep.js.map +0 -7
  402. package/dist/cli/commands/tasks.js.map +0 -7
  403. package/dist/cli/commands/test.js +0 -286
  404. package/dist/cli/commands/test.js.map +0 -7
  405. package/dist/cli/commands/workflow.js +0 -142
  406. package/dist/cli/commands/workflow.js.map +0 -7
  407. package/dist/cli/commands/worktree.js.map +0 -7
  408. package/dist/cli/index.js +0 -594
  409. package/dist/cli/index.js.map +0 -7
  410. package/dist/cli/opencode-sm.js.map +0 -7
  411. package/dist/cli/utils/viewer.js.map +0 -7
  412. package/dist/core/analytics/team-analytics.js +0 -378
  413. package/dist/core/analytics/team-analytics.js.map +0 -7
  414. package/dist/core/config/config-manager.js.map +0 -7
  415. package/dist/core/config/feature-flags.js.map +0 -7
  416. package/dist/core/config/storage-config.js.map +0 -7
  417. package/dist/core/config/types.js.map +0 -7
  418. package/dist/core/context/auto-context.js.map +0 -7
  419. package/dist/core/context/dual-stack-manager.js.map +0 -7
  420. package/dist/core/context/enhanced-rehydration.js.map +0 -7
  421. package/dist/core/context/frame-database.js.map +0 -7
  422. package/dist/core/context/frame-digest.js.map +0 -7
  423. package/dist/core/context/frame-handoff-manager.js.map +0 -7
  424. package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
  425. package/dist/core/context/frame-manager.js +0 -1069
  426. package/dist/core/context/frame-manager.js.map +0 -7
  427. package/dist/core/context/frame-recovery.js.map +0 -7
  428. package/dist/core/context/frame-stack.js.map +0 -7
  429. package/dist/core/context/incremental-gc.js +0 -290
  430. package/dist/core/context/incremental-gc.js.map +0 -7
  431. package/dist/core/context/index.js.map +0 -7
  432. package/dist/core/context/model-aware-compaction.js +0 -623
  433. package/dist/core/context/model-aware-compaction.js.map +0 -7
  434. package/dist/core/context/permission-manager.js.map +0 -7
  435. package/dist/core/context/recursive-context-manager.js.map +0 -7
  436. package/dist/core/context/refactored-frame-manager.js.map +0 -7
  437. package/dist/core/context/shared-context-layer.js.map +0 -7
  438. package/dist/core/context/stack-merge-resolver.js.map +0 -7
  439. package/dist/core/context/validation.js.map +0 -7
  440. package/dist/core/database/batch-operations.js.map +0 -7
  441. package/dist/core/database/connection-pool.js.map +0 -7
  442. package/dist/core/database/database-adapter.js.map +0 -7
  443. package/dist/core/database/migration-manager.js.map +0 -7
  444. package/dist/core/database/paradedb-adapter.js +0 -990
  445. package/dist/core/database/paradedb-adapter.js.map +0 -7
  446. package/dist/core/database/query-cache.js.map +0 -7
  447. package/dist/core/database/query-router.js.map +0 -7
  448. package/dist/core/database/sqlite-adapter.js +0 -728
  449. package/dist/core/database/sqlite-adapter.js.map +0 -7
  450. package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
  451. package/dist/core/digest/frame-digest-integration.js.map +0 -7
  452. package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
  453. package/dist/core/digest/index.js.map +0 -7
  454. package/dist/core/digest/types.js.map +0 -7
  455. package/dist/core/errors/index.js +0 -512
  456. package/dist/core/errors/index.js.map +0 -7
  457. package/dist/core/errors/recovery.js.map +0 -7
  458. package/dist/core/execution/parallel-executor.js.map +0 -7
  459. package/dist/core/frame/workflow-templates.js.map +0 -7
  460. package/dist/core/merge/conflict-detector.js.map +0 -7
  461. package/dist/core/merge/index.js.map +0 -7
  462. package/dist/core/merge/resolution-engine.js.map +0 -7
  463. package/dist/core/merge/stack-diff.js.map +0 -7
  464. package/dist/core/models/fallback-monitor.js.map +0 -7
  465. package/dist/core/models/model-router.js.map +0 -7
  466. package/dist/core/monitoring/error-handler.js.map +0 -7
  467. package/dist/core/monitoring/logger.js +0 -150
  468. package/dist/core/monitoring/logger.js.map +0 -7
  469. package/dist/core/monitoring/metrics.js.map +0 -7
  470. package/dist/core/monitoring/progress-tracker.js.map +0 -7
  471. package/dist/core/monitoring/session-monitor.js.map +0 -7
  472. package/dist/core/performance/context-cache.js.map +0 -7
  473. package/dist/core/performance/index.js.map +0 -7
  474. package/dist/core/performance/lazy-context-loader.js.map +0 -7
  475. package/dist/core/performance/monitor.js.map +0 -7
  476. package/dist/core/performance/optimized-frame-context.js.map +0 -7
  477. package/dist/core/performance/performance-benchmark.js.map +0 -7
  478. package/dist/core/performance/performance-profiler.js.map +0 -7
  479. package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
  480. package/dist/core/persistence/postgres-adapter.js.map +0 -7
  481. package/dist/core/projects/project-isolation.js.map +0 -7
  482. package/dist/core/projects/project-manager.js.map +0 -7
  483. package/dist/core/query/query-parser.js.map +0 -7
  484. package/dist/core/query/query-templates.js.map +0 -7
  485. package/dist/core/retrieval/context-retriever.js.map +0 -7
  486. package/dist/core/retrieval/graph-retrieval.js +0 -662
  487. package/dist/core/retrieval/graph-retrieval.js.map +0 -7
  488. package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
  489. package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
  490. package/dist/core/retrieval/index.js.map +0 -7
  491. package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
  492. package/dist/core/retrieval/llm-provider.js.map +0 -7
  493. package/dist/core/retrieval/retrieval-audit.js.map +0 -7
  494. package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
  495. package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
  496. package/dist/core/retrieval/summary-generator.js.map +0 -7
  497. package/dist/core/retrieval/types.js.map +0 -7
  498. package/dist/core/session/clear-survival.js.map +0 -7
  499. package/dist/core/session/enhanced-handoff.js.map +0 -7
  500. package/dist/core/session/handoff-generator.js.map +0 -7
  501. package/dist/core/session/index.js.map +0 -7
  502. package/dist/core/session/session-manager.js.map +0 -7
  503. package/dist/core/skills/index.js.map +0 -7
  504. package/dist/core/skills/skill-storage.js.map +0 -7
  505. package/dist/core/skills/types.js.map +0 -7
  506. package/dist/core/storage/chromadb-adapter.js +0 -354
  507. package/dist/core/storage/chromadb-adapter.js.map +0 -7
  508. package/dist/core/storage/infinite-storage.js.map +0 -7
  509. package/dist/core/storage/railway-optimized-storage.js +0 -591
  510. package/dist/core/storage/railway-optimized-storage.js.map +0 -7
  511. package/dist/core/storage/remote-storage.js.map +0 -7
  512. package/dist/core/storage/two-tier-storage.js.map +0 -7
  513. package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
  514. package/dist/core/trace/db-trace-wrapper.js.map +0 -7
  515. package/dist/core/trace/debug-trace.js.map +0 -7
  516. package/dist/core/trace/index.js.map +0 -7
  517. package/dist/core/trace/linear-api-wrapper.js.map +0 -7
  518. package/dist/core/trace/trace-demo.js +0 -154
  519. package/dist/core/trace/trace-demo.js.map +0 -7
  520. package/dist/core/trace/trace-detector.demo.js +0 -142
  521. package/dist/core/trace/trace-detector.demo.js.map +0 -7
  522. package/dist/core/trace/trace-detector.js.map +0 -7
  523. package/dist/core/trace/trace-store.js.map +0 -7
  524. package/dist/core/trace/types.js.map +0 -7
  525. package/dist/core/utils/async-mutex.js.map +0 -7
  526. package/dist/core/utils/compression.js.map +0 -7
  527. package/dist/core/utils/update-checker.js.map +0 -7
  528. package/dist/core/worktree/worktree-manager.js.map +0 -7
  529. package/dist/daemon/daemon-config.js.map +0 -7
  530. package/dist/daemon/services/context-service.js.map +0 -7
  531. package/dist/daemon/services/linear-service.js.map +0 -7
  532. package/dist/daemon/session-daemon.js.map +0 -7
  533. package/dist/daemon/unified-daemon.js.map +0 -7
  534. package/dist/features/analytics/api/analytics-api.js.map +0 -7
  535. package/dist/features/analytics/core/analytics-service.js.map +0 -7
  536. package/dist/features/analytics/index.js.map +0 -7
  537. package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
  538. package/dist/features/browser/browser-mcp.js.map +0 -7
  539. package/dist/features/sweep/index.js.map +0 -7
  540. package/dist/features/sweep/prediction-client.js.map +0 -7
  541. package/dist/features/sweep/prompt-builder.js.map +0 -7
  542. package/dist/features/sweep/pty-wrapper.js.map +0 -7
  543. package/dist/features/sweep/state-watcher.js.map +0 -7
  544. package/dist/features/sweep/status-bar.js.map +0 -7
  545. package/dist/features/sweep/sweep-server-manager.js.map +0 -7
  546. package/dist/features/sweep/tab-interceptor.js.map +0 -7
  547. package/dist/features/sweep/types.js.map +0 -7
  548. package/dist/features/tasks/linear-task-manager.js.map +0 -7
  549. package/dist/features/tasks/task-aware-context.js.map +0 -7
  550. package/dist/features/tui/simple-monitor.js.map +0 -7
  551. package/dist/features/tui/swarm-monitor.js.map +0 -7
  552. package/dist/features/web/client/stores/task-store.js.map +0 -7
  553. package/dist/features/web/server/index.js.map +0 -7
  554. package/dist/hooks/auto-background.js.map +0 -7
  555. package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
  556. package/dist/hooks/config.js.map +0 -7
  557. package/dist/hooks/daemon.js.map +0 -7
  558. package/dist/hooks/events.js.map +0 -7
  559. package/dist/hooks/index.js.map +0 -7
  560. package/dist/hooks/linear-task-picker.js.map +0 -7
  561. package/dist/hooks/schemas.js.map +0 -7
  562. package/dist/hooks/secure-fs.js.map +0 -7
  563. package/dist/hooks/security-logger.js.map +0 -7
  564. package/dist/hooks/session-summary.js.map +0 -7
  565. package/dist/hooks/sms-action-runner.js.map +0 -7
  566. package/dist/hooks/sms-notify.js.map +0 -7
  567. package/dist/hooks/sms-watcher.js.map +0 -7
  568. package/dist/hooks/sms-webhook.js.map +0 -7
  569. package/dist/hooks/whatsapp-commands.js.map +0 -7
  570. package/dist/hooks/whatsapp-scheduler.js.map +0 -7
  571. package/dist/hooks/whatsapp-sync.js.map +0 -7
  572. package/dist/index.js.map +0 -7
  573. package/dist/integrations/anthropic/client.js.map +0 -7
  574. package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
  575. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  576. package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  577. package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
  578. package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
  579. package/dist/integrations/claude-code/subagent-client.js.map +0 -7
  580. package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
  581. package/dist/integrations/linear/auth.js.map +0 -7
  582. package/dist/integrations/linear/auto-sync.js.map +0 -7
  583. package/dist/integrations/linear/client.js +0 -630
  584. package/dist/integrations/linear/client.js.map +0 -7
  585. package/dist/integrations/linear/config.js.map +0 -7
  586. package/dist/integrations/linear/migration.js.map +0 -7
  587. package/dist/integrations/linear/oauth-server.js.map +0 -7
  588. package/dist/integrations/linear/rest-client.js.map +0 -7
  589. package/dist/integrations/linear/sync-manager.js.map +0 -7
  590. package/dist/integrations/linear/sync-service.js.map +0 -7
  591. package/dist/integrations/linear/sync.js.map +0 -7
  592. package/dist/integrations/linear/unified-sync.js.map +0 -7
  593. package/dist/integrations/linear/webhook-handler.js.map +0 -7
  594. package/dist/integrations/linear/webhook-server.js.map +0 -7
  595. package/dist/integrations/linear/webhook.js.map +0 -7
  596. package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  597. package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
  598. package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  599. package/dist/integrations/mcp/handlers/index.js.map +0 -7
  600. package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  601. package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  602. package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
  603. package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  604. package/dist/integrations/mcp/index.js.map +0 -7
  605. package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  606. package/dist/integrations/mcp/refactored-server.js.map +0 -7
  607. package/dist/integrations/mcp/remote-server.js +0 -691
  608. package/dist/integrations/mcp/remote-server.js.map +0 -7
  609. package/dist/integrations/mcp/schemas.js.map +0 -7
  610. package/dist/integrations/mcp/server.js +0 -1960
  611. package/dist/integrations/mcp/server.js.map +0 -7
  612. package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
  613. package/dist/integrations/mcp/tool-definitions.js.map +0 -7
  614. package/dist/integrations/mcp/trace-test.js +0 -48
  615. package/dist/integrations/mcp/trace-test.js.map +0 -7
  616. package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
  617. package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
  618. package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
  619. package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
  620. package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
  621. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
  622. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  623. package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
  624. package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  625. package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  626. package/dist/integrations/ralph/index.js.map +0 -7
  627. package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
  628. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  629. package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  630. package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  631. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  632. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  633. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  634. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  635. package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  636. package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
  637. package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
  638. package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  639. package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
  640. package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  641. package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  642. package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  643. package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
  644. package/dist/middleware/exponential-rate-limiter.js.map +0 -7
  645. package/dist/models/user.model.js.map +0 -7
  646. package/dist/servers/production/auth-middleware.js.map +0 -7
  647. package/dist/servers/railway/config.js +0 -55
  648. package/dist/servers/railway/config.js.map +0 -7
  649. package/dist/servers/railway/index-enhanced.js +0 -160
  650. package/dist/servers/railway/index-enhanced.js.map +0 -7
  651. package/dist/servers/railway/index.js +0 -1349
  652. package/dist/servers/railway/index.js.map +0 -7
  653. package/dist/servers/railway/simple.js +0 -64
  654. package/dist/servers/railway/simple.js.map +0 -7
  655. package/dist/servers/railway/storage-test.js +0 -459
  656. package/dist/servers/railway/storage-test.js.map +0 -7
  657. package/dist/services/config-service.js.map +0 -7
  658. package/dist/services/context-service.js.map +0 -7
  659. package/dist/skills/api-discovery.js.map +0 -7
  660. package/dist/skills/api-skill.js.map +0 -7
  661. package/dist/skills/claude-skills.js.map +0 -7
  662. package/dist/skills/dashboard-launcher.js.map +0 -7
  663. package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
  664. package/dist/skills/repo-ingestion-skill.js +0 -609
  665. package/dist/skills/repo-ingestion-skill.js.map +0 -7
  666. package/dist/skills/security-secrets-scanner.js +0 -284
  667. package/dist/skills/security-secrets-scanner.js.map +0 -7
  668. package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
  669. package/dist/utils/env.js.map +0 -7
  670. package/dist/utils/formatting.js.map +0 -7
  671. package/dist/utils/process-cleanup.js.map +0 -7
  672. package/dist/validation/schemas.js +0 -222
  673. package/dist/validation/schemas.js.map +0 -7
  674. /package/dist/{agents → src/agents}/core/agent-task-manager.js +0 -0
  675. /package/dist/{agents → src/agents}/verifiers/base-verifier.js +0 -0
  676. /package/dist/{agents → src/agents}/verifiers/formatter-verifier.js +0 -0
  677. /package/dist/{agents → src/agents}/verifiers/llm-judge.js +0 -0
  678. /package/dist/{cli → src/cli}/auto-detect.js +0 -0
  679. /package/dist/{cli → src/cli}/claude-sm-danger.js +0 -0
  680. /package/dist/{cli → src/cli}/codex-sm-danger.js +0 -0
  681. /package/dist/{cli → src/cli}/codex-sm.js +0 -0
  682. /package/dist/{cli → src/cli}/commands/api.js +0 -0
  683. /package/dist/{cli → src/cli}/commands/auto-background.js +0 -0
  684. /package/dist/{cli → src/cli}/commands/cleanup-processes.js +0 -0
  685. /package/dist/{cli → src/cli}/commands/clear.js +0 -0
  686. /package/dist/{cli → src/cli}/commands/config.js +0 -0
  687. /package/dist/{cli → src/cli}/commands/context-rehydrate.js +0 -0
  688. /package/dist/{cli → src/cli}/commands/context.js +0 -0
  689. /package/dist/{cli → src/cli}/commands/daemon.js +0 -0
  690. /package/dist/{cli → src/cli}/commands/dashboard.js +0 -0
  691. /package/dist/{cli → src/cli}/commands/db.js +0 -0
  692. /package/dist/{cli → src/cli}/commands/decision.js +0 -0
  693. /package/dist/{cli → src/cli}/commands/discovery.js +0 -0
  694. /package/dist/{cli → src/cli}/commands/handoff.js +0 -0
  695. /package/dist/{cli → src/cli}/commands/hooks.js +0 -0
  696. /package/dist/{cli → src/cli}/commands/linear.js +0 -0
  697. /package/dist/{cli → src/cli}/commands/log.js +0 -0
  698. /package/dist/{cli → src/cli}/commands/login.js +0 -0
  699. /package/dist/{cli → src/cli}/commands/migrate.js +0 -0
  700. /package/dist/{cli → src/cli}/commands/model.js +0 -0
  701. /package/dist/{cli → src/cli}/commands/onboard.js +0 -0
  702. /package/dist/{cli → src/cli}/commands/projects.js +0 -0
  703. /package/dist/{cli → src/cli}/commands/ralph.js +0 -0
  704. /package/dist/{cli → src/cli}/commands/retrieval.js +0 -0
  705. /package/dist/{cli → src/cli}/commands/service.js +0 -0
  706. /package/dist/{cli → src/cli}/commands/session.js +0 -0
  707. /package/dist/{cli → src/cli}/commands/settings.js +0 -0
  708. /package/dist/{cli → src/cli}/commands/setup.js +0 -0
  709. /package/dist/{cli → src/cli}/commands/shell.js +0 -0
  710. /package/dist/{cli → src/cli}/commands/signup.js +0 -0
  711. /package/dist/{cli → src/cli}/commands/skills.js +0 -0
  712. /package/dist/{cli → src/cli}/commands/sms-notify.js +0 -0
  713. /package/dist/{cli → src/cli}/commands/storage-tier.js +0 -0
  714. /package/dist/{cli → src/cli}/commands/sweep.js +0 -0
  715. /package/dist/{cli → src/cli}/commands/tasks.js +0 -0
  716. /package/dist/{cli → src/cli}/commands/worktree.js +0 -0
  717. /package/dist/{cli → src/cli}/opencode-sm.js +0 -0
  718. /package/dist/{cli → src/cli}/utils/viewer.js +0 -0
  719. /package/dist/{core → src/core}/config/config-manager.js +0 -0
  720. /package/dist/{core → src/core}/config/feature-flags.js +0 -0
  721. /package/dist/{core → src/core}/config/storage-config.js +0 -0
  722. /package/dist/{core → src/core}/config/types.js +0 -0
  723. /package/dist/{core → src/core}/context/auto-context.js +0 -0
  724. /package/dist/{core → src/core}/context/dual-stack-manager.js +0 -0
  725. /package/dist/{core → src/core}/context/enhanced-rehydration.js +0 -0
  726. /package/dist/{core → src/core}/context/frame-database.js +0 -0
  727. /package/dist/{core → src/core}/context/frame-digest.js +0 -0
  728. /package/dist/{core → src/core}/context/frame-handoff-manager.js +0 -0
  729. /package/dist/{core → src/core}/context/frame-lifecycle-hooks.js +0 -0
  730. /package/dist/{core → src/core}/context/frame-recovery.js +0 -0
  731. /package/dist/{core → src/core}/context/frame-stack.js +0 -0
  732. /package/dist/{core → src/core}/context/frame-types.js +0 -0
  733. /package/dist/{core → src/core}/context/frame-types.js.map +0 -0
  734. /package/dist/{core → src/core}/context/index.js +0 -0
  735. /package/dist/{core → src/core}/context/permission-manager.js +0 -0
  736. /package/dist/{core → src/core}/context/recursive-context-manager.js +0 -0
  737. /package/dist/{core → src/core}/context/refactored-frame-manager.js +0 -0
  738. /package/dist/{core → src/core}/context/shared-context-layer.js +0 -0
  739. /package/dist/{core → src/core}/context/stack-merge-resolver.js +0 -0
  740. /package/dist/{core → src/core}/context/validation.js +0 -0
  741. /package/dist/{core → src/core}/database/batch-operations.js +0 -0
  742. /package/dist/{core → src/core}/database/connection-pool.js +0 -0
  743. /package/dist/{core → src/core}/database/database-adapter.js +0 -0
  744. /package/dist/{core → src/core}/database/migration-manager.js +0 -0
  745. /package/dist/{core → src/core}/database/query-cache.js +0 -0
  746. /package/dist/{core → src/core}/database/query-router.js +0 -0
  747. /package/dist/{core → src/core}/digest/enhanced-hybrid-digest.js +0 -0
  748. /package/dist/{core → src/core}/digest/frame-digest-integration.js +0 -0
  749. /package/dist/{core → src/core}/digest/hybrid-digest-generator.js +0 -0
  750. /package/dist/{core → src/core}/digest/index.js +0 -0
  751. /package/dist/{core → src/core}/digest/types.js +0 -0
  752. /package/dist/{core → src/core}/errors/recovery.js +0 -0
  753. /package/dist/{core → src/core}/execution/parallel-executor.js +0 -0
  754. /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
  755. /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
  756. /package/dist/{core → src/core}/frame/workflow-templates.js +0 -0
  757. /package/dist/{core → src/core}/merge/conflict-detector.js +0 -0
  758. /package/dist/{core → src/core}/merge/index.js +0 -0
  759. /package/dist/{core → src/core}/merge/resolution-engine.js +0 -0
  760. /package/dist/{core → src/core}/merge/stack-diff.js +0 -0
  761. /package/dist/{core → src/core/merge}/types.js +0 -0
  762. /package/dist/{core → src/core/merge}/types.js.map +0 -0
  763. /package/dist/{core → src/core}/models/fallback-monitor.js +0 -0
  764. /package/dist/{core → src/core}/models/model-router.js +0 -0
  765. /package/dist/{core → src/core}/monitoring/error-handler.js +0 -0
  766. /package/dist/{core → src/core}/monitoring/metrics.js +0 -0
  767. /package/dist/{core → src/core}/monitoring/progress-tracker.js +0 -0
  768. /package/dist/{core → src/core}/monitoring/session-monitor.js +0 -0
  769. /package/dist/{core → src/core}/performance/context-cache.js +0 -0
  770. /package/dist/{core → src/core}/performance/index.js +0 -0
  771. /package/dist/{core → src/core}/performance/lazy-context-loader.js +0 -0
  772. /package/dist/{core → src/core}/performance/monitor.js +0 -0
  773. /package/dist/{core → src/core}/performance/optimized-frame-context.js +0 -0
  774. /package/dist/{core → src/core}/performance/performance-benchmark.js +0 -0
  775. /package/dist/{core → src/core}/performance/performance-profiler.js +0 -0
  776. /package/dist/{core → src/core}/performance/streaming-jsonl-parser.js +0 -0
  777. /package/dist/{core → src/core}/persistence/postgres-adapter.js +0 -0
  778. /package/dist/{core → src/core}/projects/project-isolation.js +0 -0
  779. /package/dist/{core → src/core}/projects/project-manager.js +0 -0
  780. /package/dist/{core → src/core}/query/query-parser.js +0 -0
  781. /package/dist/{core → src/core}/query/query-templates.js +0 -0
  782. /package/dist/{core → src/core}/retrieval/context-retriever.js +0 -0
  783. /package/dist/{core → src/core}/retrieval/index.js +0 -0
  784. /package/dist/{core → src/core}/retrieval/llm-context-retrieval.js +0 -0
  785. /package/dist/{core → src/core}/retrieval/llm-provider.js +0 -0
  786. /package/dist/{core → src/core}/retrieval/retrieval-audit.js +0 -0
  787. /package/dist/{core → src/core}/retrieval/summary-generator.js +0 -0
  788. /package/dist/{core → src/core}/retrieval/types.js +0 -0
  789. /package/dist/{core → src/core}/session/clear-survival.js +0 -0
  790. /package/dist/{core → src/core}/session/enhanced-handoff.js +0 -0
  791. /package/dist/{core → src/core}/session/handoff-generator.js +0 -0
  792. /package/dist/{core → src/core}/session/index.js +0 -0
  793. /package/dist/{core → src/core}/session/session-manager.js +0 -0
  794. /package/dist/{core → src/core}/skills/index.js +0 -0
  795. /package/dist/{core → src/core}/skills/skill-storage.js +0 -0
  796. /package/dist/{core → src/core}/skills/types.js +0 -0
  797. /package/dist/{core → src/core}/storage/infinite-storage.js +0 -0
  798. /package/dist/{core → src/core}/storage/remote-storage.js +0 -0
  799. /package/dist/{core → src/core}/storage/two-tier-storage.js +0 -0
  800. /package/dist/{core → src/core}/trace/cli-trace-wrapper.js +0 -0
  801. /package/dist/{core → src/core}/trace/db-trace-wrapper.js +0 -0
  802. /package/dist/{core → src/core}/trace/debug-trace.js +0 -0
  803. /package/dist/{core → src/core}/trace/index.js +0 -0
  804. /package/dist/{core → src/core}/trace/linear-api-wrapper.js +0 -0
  805. /package/dist/{core → src/core}/trace/trace-detector.js +0 -0
  806. /package/dist/{core → src/core}/trace/trace-store.js +0 -0
  807. /package/dist/{core → src/core}/trace/types.js +0 -0
  808. /package/dist/{integrations/linear → src/core}/types.js +0 -0
  809. /package/dist/{integrations/linear → src/core}/types.js.map +0 -0
  810. /package/dist/{core → src/core}/utils/async-mutex.js +0 -0
  811. /package/dist/{core → src/core}/utils/compression.js +0 -0
  812. /package/dist/{core → src/core}/utils/update-checker.js +0 -0
  813. /package/dist/{core → src/core}/worktree/worktree-manager.js +0 -0
  814. /package/dist/{daemon → src/daemon}/daemon-config.js +0 -0
  815. /package/dist/{daemon → src/daemon}/services/context-service.js +0 -0
  816. /package/dist/{daemon → src/daemon}/services/linear-service.js +0 -0
  817. /package/dist/{daemon → src/daemon}/session-daemon.js +0 -0
  818. /package/dist/{daemon → src/daemon}/unified-daemon.js +0 -0
  819. /package/dist/{features → src/features}/analytics/api/analytics-api.js +0 -0
  820. /package/dist/{features → src/features}/analytics/core/analytics-service.js +0 -0
  821. /package/dist/{features → src/features}/analytics/index.js +0 -0
  822. /package/dist/{features → src/features}/analytics/queries/metrics-queries.js +0 -0
  823. /package/dist/{features → src/features}/analytics/types/metrics.js +0 -0
  824. /package/dist/{features → src/features}/analytics/types/metrics.js.map +0 -0
  825. /package/dist/{features → src/features}/browser/browser-mcp.js +0 -0
  826. /package/dist/{features → src/features}/sweep/index.js +0 -0
  827. /package/dist/{features → src/features}/sweep/prediction-client.js +0 -0
  828. /package/dist/{features → src/features}/sweep/prompt-builder.js +0 -0
  829. /package/dist/{features → src/features}/sweep/pty-wrapper.js +0 -0
  830. /package/dist/{features → src/features}/sweep/state-watcher.js +0 -0
  831. /package/dist/{features → src/features}/sweep/status-bar.js +0 -0
  832. /package/dist/{features → src/features}/sweep/sweep-server-manager.js +0 -0
  833. /package/dist/{features → src/features}/sweep/tab-interceptor.js +0 -0
  834. /package/dist/{features → src/features}/sweep/types.js +0 -0
  835. /package/dist/{features → src/features}/tasks/linear-task-manager.js +0 -0
  836. /package/dist/{features → src/features}/tasks/task-aware-context.js +0 -0
  837. /package/dist/{features → src/features}/tui/simple-monitor.js +0 -0
  838. /package/dist/{features → src/features}/tui/swarm-monitor.js +0 -0
  839. /package/dist/{features → src/features}/web/client/stores/task-store.js +0 -0
  840. /package/dist/{features → src/features}/web/server/index.js +0 -0
  841. /package/dist/{hooks → src/hooks}/auto-background.js +0 -0
  842. /package/dist/{hooks → src/hooks}/claude-code-whatsapp-hook.js +0 -0
  843. /package/dist/{hooks → src/hooks}/config.js +0 -0
  844. /package/dist/{hooks → src/hooks}/daemon.js +0 -0
  845. /package/dist/{hooks → src/hooks}/events.js +0 -0
  846. /package/dist/{hooks → src/hooks}/index.js +0 -0
  847. /package/dist/{hooks → src/hooks}/linear-task-picker.js +0 -0
  848. /package/dist/{hooks → src/hooks}/schemas.js +0 -0
  849. /package/dist/{hooks → src/hooks}/secure-fs.js +0 -0
  850. /package/dist/{hooks → src/hooks}/security-logger.js +0 -0
  851. /package/dist/{hooks → src/hooks}/session-summary.js +0 -0
  852. /package/dist/{hooks → src/hooks}/sms-action-runner.js +0 -0
  853. /package/dist/{hooks → src/hooks}/sms-notify.js +0 -0
  854. /package/dist/{hooks → src/hooks}/sms-watcher.js +0 -0
  855. /package/dist/{hooks → src/hooks}/sms-webhook.js +0 -0
  856. /package/dist/{hooks → src/hooks}/whatsapp-commands.js +0 -0
  857. /package/dist/{hooks → src/hooks}/whatsapp-scheduler.js +0 -0
  858. /package/dist/{hooks → src/hooks}/whatsapp-sync.js +0 -0
  859. /package/dist/{index.js → src/index.js} +0 -0
  860. /package/dist/{integrations → src/integrations}/anthropic/client.js +0 -0
  861. /package/dist/{integrations → src/integrations}/claude-code/agent-bridge.js +0 -0
  862. /package/dist/{integrations → src/integrations}/claude-code/enhanced-pre-clear-hooks.js +0 -0
  863. /package/dist/{integrations → src/integrations}/claude-code/lifecycle-hooks.js +0 -0
  864. /package/dist/{integrations → src/integrations}/claude-code/post-task-hooks.js +0 -0
  865. /package/dist/{integrations → src/integrations}/claude-code/subagent-client-stub.js +0 -0
  866. /package/dist/{integrations → src/integrations}/claude-code/subagent-client.js +0 -0
  867. /package/dist/{integrations → src/integrations}/claude-code/task-coordinator.js +0 -0
  868. /package/dist/{integrations → src/integrations}/linear/auth.js +0 -0
  869. /package/dist/{integrations → src/integrations}/linear/auto-sync.js +0 -0
  870. /package/dist/{integrations → src/integrations}/linear/config.js +0 -0
  871. /package/dist/{integrations → src/integrations}/linear/migration.js +0 -0
  872. /package/dist/{integrations → src/integrations}/linear/oauth-server.js +0 -0
  873. /package/dist/{integrations → src/integrations}/linear/rest-client.js +0 -0
  874. /package/dist/{integrations → src/integrations}/linear/sync-manager.js +0 -0
  875. /package/dist/{integrations → src/integrations}/linear/sync-service.js +0 -0
  876. /package/dist/{integrations → src/integrations}/linear/sync.js +0 -0
  877. /package/dist/{integrations/ralph → src/integrations/linear}/types.js +0 -0
  878. /package/dist/{integrations/ralph → src/integrations/linear}/types.js.map +0 -0
  879. /package/dist/{integrations → src/integrations}/linear/unified-sync.js +0 -0
  880. /package/dist/{integrations → src/integrations}/linear/webhook-handler.js +0 -0
  881. /package/dist/{integrations → src/integrations}/linear/webhook-server.js +0 -0
  882. /package/dist/{integrations → src/integrations}/linear/webhook.js +0 -0
  883. /package/dist/{integrations → src/integrations}/mcp/handlers/code-execution-handlers.js +0 -0
  884. /package/dist/{integrations → src/integrations}/mcp/handlers/context-handlers.js +0 -0
  885. /package/dist/{integrations → src/integrations}/mcp/handlers/discovery-handlers.js +0 -0
  886. /package/dist/{integrations → src/integrations}/mcp/handlers/index.js +0 -0
  887. /package/dist/{integrations → src/integrations}/mcp/handlers/linear-handlers.js +0 -0
  888. /package/dist/{integrations → src/integrations}/mcp/handlers/skill-handlers.js +0 -0
  889. /package/dist/{integrations → src/integrations}/mcp/handlers/task-handlers.js +0 -0
  890. /package/dist/{integrations → src/integrations}/mcp/handlers/trace-handlers.js +0 -0
  891. /package/dist/{integrations → src/integrations}/mcp/index.js +0 -0
  892. /package/dist/{integrations → src/integrations}/mcp/middleware/tool-scoring.js +0 -0
  893. /package/dist/{integrations → src/integrations}/mcp/refactored-server.js +0 -0
  894. /package/dist/{integrations → src/integrations}/mcp/schemas.js +0 -0
  895. /package/dist/{integrations → src/integrations}/mcp/tool-definitions-code.js +0 -0
  896. /package/dist/{integrations → src/integrations}/mcp/tool-definitions.js +0 -0
  897. /package/dist/{integrations → src/integrations}/ralph/bridge/ralph-stackmemory-bridge.js +0 -0
  898. /package/dist/{integrations → src/integrations}/ralph/context/context-budget-manager.js +0 -0
  899. /package/dist/{integrations → src/integrations}/ralph/context/stackmemory-context-loader.js +0 -0
  900. /package/dist/{integrations → src/integrations}/ralph/coordination/enhanced-coordination.js +0 -0
  901. /package/dist/{integrations → src/integrations}/ralph/index.js +0 -0
  902. /package/dist/{integrations → src/integrations}/ralph/learning/pattern-learner.js +0 -0
  903. /package/dist/{integrations → src/integrations}/ralph/lifecycle/iteration-lifecycle.js +0 -0
  904. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-dashboard.js +0 -0
  905. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-registry.js +0 -0
  906. /package/dist/{integrations → src/integrations}/ralph/orchestration/multi-loop-orchestrator.js +0 -0
  907. /package/dist/{integrations → src/integrations}/ralph/patterns/compounding-engineering-pattern.js +0 -0
  908. /package/dist/{integrations → src/integrations}/ralph/patterns/extended-coherence-sessions.js +0 -0
  909. /package/dist/{integrations → src/integrations}/ralph/patterns/oracle-worker-pattern.js +0 -0
  910. /package/dist/{integrations → src/integrations}/ralph/performance/performance-optimizer.js +0 -0
  911. /package/dist/{integrations → src/integrations}/ralph/recovery/crash-recovery.js +0 -0
  912. /package/dist/{integrations → src/integrations}/ralph/state/state-reconciler.js +0 -0
  913. /package/dist/{integrations → src/integrations}/ralph/swarm/git-workflow-manager.js +0 -0
  914. /package/dist/{integrations → src/integrations}/ralph/swarm/swarm-coordinator.js +0 -0
  915. /package/dist/{types/task.js.map → src/integrations/ralph/types.js.map} +0 -0
  916. /package/dist/{integrations → src/integrations}/ralph/visualization/ralph-debugger.js +0 -0
  917. /package/dist/{mcp → src/mcp}/stackmemory-mcp-server.js +0 -0
  918. /package/dist/{middleware → src/middleware}/exponential-rate-limiter.js +0 -0
  919. /package/dist/{models → src/models}/user.model.js +0 -0
  920. /package/dist/{servers → src/servers}/production/auth-middleware.js +0 -0
  921. /package/dist/{services → src/services}/config-service.js +0 -0
  922. /package/dist/{services → src/services}/context-service.js +0 -0
  923. /package/dist/{skills → src/skills}/api-discovery.js +0 -0
  924. /package/dist/{skills → src/skills}/api-skill.js +0 -0
  925. /package/dist/{skills → src/skills}/claude-skills.js +0 -0
  926. /package/dist/{skills → src/skills}/dashboard-launcher.js +0 -0
  927. /package/dist/{skills → src/skills}/recursive-agent-orchestrator.js +0 -0
  928. /package/dist/{skills → src/skills}/unified-rlm-orchestrator.js +0 -0
  929. /package/dist/{types → src/types}/task.js +0 -0
  930. /package/dist/{utils → src/utils}/env.js +0 -0
  931. /package/dist/{utils → src/utils}/formatting.js +0 -0
  932. /package/dist/{utils → src/utils}/process-cleanup.js +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cli/commands/worktree.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * Git Worktree Management CLI Commands\n * Handles multiple StackMemory instances across git worktrees\n */\n\nimport { Command } from 'commander';\nimport { WorktreeManager } from '../../core/worktree/worktree-manager.js';\nimport { ProjectManager } from '../../core/projects/project-manager.js';\nimport { FrameManager } from '../../core/context/index.js';\nimport chalk from 'chalk';\nimport Table from 'cli-table3';\nimport { join } from 'path';\nimport { existsSync } from 'fs';\nimport Database from 'better-sqlite3';\nimport { execSync, execFileSync } from 'child_process';\nimport shellEscape from 'shell-escape';\nimport { z } from 'zod';\n\n// Input validation schemas\nconst BranchNameSchema = z.string()\n .min(1, 'Branch name cannot be empty')\n .max(100, 'Branch name too long')\n .regex(/^[a-zA-Z0-9._/-]+$/, 'Branch name contains invalid characters')\n .refine(name => !name.includes('..'), 'Branch name cannot contain \"..\"')\n .refine(name => !name.includes(';'), 'Branch name cannot contain \";\"')\n .refine(name => !name.includes('&'), 'Branch name cannot contain \"&\"')\n .refine(name => !name.includes('|'), 'Branch name cannot contain \"|\"')\n .refine(name => !name.includes('$'), 'Branch name cannot contain \"$\"')\n .refine(name => !name.includes('`'), 'Branch name cannot contain \"`\"');\n\nconst PathSchema = z.string()\n .min(1, 'Path cannot be empty')\n .max(500, 'Path too long')\n .regex(/^[a-zA-Z0-9._/-]+$/, 'Path contains invalid characters')\n .refine(path => !path.includes('..'), 'Path cannot contain \"..\"');\n\nconst CommitSchema = z.string()\n .min(1, 'Commit reference cannot be empty')\n .max(100, 'Commit reference too long')\n .regex(/^[a-zA-Z0-9._/-]+$/, 'Commit reference contains invalid characters');\n\nexport function registerWorktreeCommands(program: Command): void {\n const worktree = program\n .command('worktree')\n .alias('wt')\n .description('Manage StackMemory across git worktrees');\n\n // Enable/disable worktree support\n worktree\n .command('enable')\n .description('Enable worktree support')\n .option(\n '--isolate',\n 'Isolate contexts between worktrees (default: true)',\n true\n )\n .option('--auto-detect', 'Auto-detect worktrees (default: true)', true)\n .option('--sync-interval <minutes>', 'Context sync interval', '15')\n .action(async (options) => {\n const manager = WorktreeManager.getInstance();\n\n manager.saveConfig({\n enabled: true,\n autoDetect: options.autoDetect,\n isolateContexts: options.isolate,\n shareGlobalContext: false,\n syncInterval: parseInt(options.syncInterval),\n });\n\n console.log(chalk.green('\u2713 Worktree support enabled'));\n\n // Auto-detect current worktrees\n const worktrees = manager.detectWorktrees();\n if (worktrees.length > 0) {\n console.log(chalk.cyan(`\\nDetected ${worktrees.length} worktree(s):`));\n worktrees.forEach((wt) => {\n const marker = wt.isMainWorktree ? ' (main)' : '';\n console.log(chalk.gray(` - ${wt.branch}${marker} at ${wt.path}`));\n });\n }\n });\n\n worktree\n .command('disable')\n .description('Disable worktree support')\n .action(() => {\n const manager = WorktreeManager.getInstance();\n manager.setEnabled(false);\n console.log(chalk.yellow('\u26A0 Worktree support disabled'));\n });\n\n // List all worktrees\n worktree\n .command('list')\n .alias('ls')\n .description('List all git worktrees with StackMemory status')\n .option('-v, --verbose', 'Show detailed information')\n .action((options) => {\n const manager = WorktreeManager.getInstance();\n const worktrees = manager.detectWorktrees();\n\n if (worktrees.length === 0) {\n console.log(chalk.yellow('No worktrees found in current repository'));\n return;\n }\n\n const table = new Table({\n head: ['Branch', 'Path', 'Type', 'Context', 'Last Activity'],\n style: { head: ['cyan'] },\n });\n\n for (const wt of worktrees) {\n const type = wt.isMainWorktree\n ? 'Main'\n : wt.isDetached\n ? 'Detached'\n : 'Branch';\n\n // Check for context\n let contextStatus = '\u2014';\n let lastActivity = '\u2014';\n\n try {\n const context = manager.getWorktreeContext(wt.path);\n if (existsSync(context.dbPath)) {\n contextStatus = '\u2713 Active';\n\n // Get last activity\n const db = new Database(context.dbPath);\n const lastEvent = db\n .prepare('SELECT MAX(created_at) as last FROM events')\n .get() as any;\n\n if (lastEvent?.last) {\n const date = new Date(lastEvent.last);\n lastActivity = date.toLocaleDateString();\n }\n\n db.close();\n } else {\n contextStatus = '\u25CB Not initialized';\n }\n } catch (error: unknown) {\n contextStatus = '\u2717 Error';\n }\n\n table.push([\n wt.branch || 'detached',\n options.verbose\n ? wt.path\n : `.../${wt.path.split('/').slice(-2).join('/')}`,\n type,\n contextStatus,\n lastActivity,\n ]);\n }\n\n console.log(chalk.cyan('\\nGit Worktrees:\\n'));\n console.log(table.toString());\n\n if (manager.isEnabled()) {\n console.log(chalk.gray('\\n\u2713 Worktree support is enabled'));\n const config = manager.getConfig();\n if (config.isolateContexts) {\n console.log(\n chalk.gray(' - Contexts are isolated between worktrees')\n );\n }\n if (config.autoDetect) {\n console.log(chalk.gray(' - Auto-detection is enabled'));\n }\n } else {\n console.log(chalk.gray('\\n\u25CB Worktree support is disabled'));\n console.log(\n chalk.gray(' Run \"stackmemory worktree enable\" to activate')\n );\n }\n });\n\n // Status of current worktree\n worktree\n .command('status')\n .description('Show status of current worktree')\n .action(async () => {\n const manager = WorktreeManager.getInstance();\n const currentPath = process.cwd();\n\n // Detect current worktree\n const worktrees = manager.detectWorktrees(currentPath);\n const current = worktrees.find((w: any) =>\n currentPath.startsWith(w.path)\n );\n\n if (!current) {\n console.log(chalk.yellow('Not in a git worktree'));\n return;\n }\n\n console.log(chalk.cyan('Current Worktree:\\n'));\n console.log(chalk.gray(' Branch:'), current.branch || 'detached');\n console.log(chalk.gray(' Path:'), current.path);\n console.log(\n chalk.gray(' Type:'),\n current.isMainWorktree ? 'Main' : 'Branch'\n );\n console.log(chalk.gray(' Commit:'), current.commit.substring(0, 8));\n\n if (manager.isEnabled()) {\n try {\n const context = manager.getWorktreeContext(current.path);\n console.log(chalk.gray(' Context Path:'), context.contextPath);\n\n if (existsSync(context.dbPath)) {\n const db = new Database(context.dbPath);\n\n // Get statistics\n const stats = db\n .prepare(\n `\n SELECT \n (SELECT COUNT(*) FROM frames) as frames,\n (SELECT COUNT(*) FROM events) as events,\n (SELECT COUNT(*) FROM contexts) as contexts\n `\n )\n .get() as any;\n\n console.log(chalk.cyan('\\nContext Statistics:'));\n console.log(chalk.gray(' Frames:'), stats.frames);\n console.log(chalk.gray(' Events:'), stats.events);\n console.log(chalk.gray(' Contexts:'), stats.contexts);\n\n db.close();\n } else {\n console.log(chalk.yellow('\\nContext not initialized'));\n console.log(chalk.gray(' Run \"stackmemory init\" to initialize'));\n }\n } catch (error: unknown) {\n console.log(\n chalk.red('\\nError accessing context:'),\n (error as Error).message\n );\n }\n } else {\n console.log(chalk.gray('\\nWorktree support is disabled'));\n }\n });\n\n // Create new worktree with StackMemory\n worktree\n .command('create <branch>')\n .description('Create new git worktree with StackMemory context')\n .option('-p, --path <path>', 'Worktree path (default: ../repo-branch)')\n .option('--from <commit>', 'Create branch from commit/branch')\n .option('--init', 'Initialize StackMemory immediately')\n .action(async (branch, options) => {\n const manager = WorktreeManager.getInstance();\n const projectManager = ProjectManager.getInstance();\n\n try {\n // Validate and sanitize inputs\n const validatedBranch = BranchNameSchema.parse(branch);\n \n // Get current project info\n const project = await projectManager.detectProject();\n const worktreePath = options.path || `../${project.name}-${validatedBranch}`;\n \n // Validate path if provided\n if (options.path) {\n PathSchema.parse(options.path);\n }\n \n // Validate commit reference if provided\n if (options.from) {\n CommitSchema.parse(options.from);\n }\n\n // Create git worktree using execFileSync for safety\n const gitArgs = ['worktree', 'add', '-b', validatedBranch, worktreePath];\n if (options.from) {\n gitArgs.push(options.from);\n }\n\n console.log(chalk.gray(`Creating worktree: git ${gitArgs.join(' ')}`));\n execFileSync('git', gitArgs, { stdio: 'inherit' });\n\n console.log(chalk.green(`\u2713 Created worktree at ${worktreePath}`));\n\n // Set up StackMemory context if enabled\n if (manager.isEnabled()) {\n const context = manager.getWorktreeContext(worktreePath);\n console.log(\n chalk.green(`\u2713 Created isolated context at ${context.contextPath}`)\n );\n\n if (options.init) {\n // Initialize StackMemory in new worktree\n const db = new Database(context.dbPath);\n new FrameManager(db, project.id);\n db.close();\n\n console.log(chalk.green('\u2713 StackMemory initialized in worktree'));\n }\n }\n\n console.log(chalk.cyan('\\nNext steps:'));\n console.log(chalk.gray(` cd ${worktreePath}`));\n if (!options.init && manager.isEnabled()) {\n console.log(chalk.gray(' stackmemory init'));\n }\n console.log(chalk.gray(' # Start working in isolated context'));\n } catch (error: unknown) {\n if (error instanceof z.ZodError) {\n console.error(chalk.red('Invalid input:'));\n error.errors.forEach(err => {\n console.error(chalk.red(` ${err.path.join('.')}: ${err.message}`));\n });\n } else {\n console.error(\n chalk.red('Failed to create worktree:'),\n (error as Error).message\n );\n }\n process.exit(1);\n }\n });\n\n // Sync contexts between worktrees\n worktree\n .command('sync')\n .description('Sync contexts between worktrees')\n .option('-s, --source <branch>', 'Source worktree branch')\n .option('-t, --target <branch>', 'Target worktree branch')\n .option('--type <type>', 'Sync type: push|pull|merge (default: merge)')\n .action(async (options) => {\n const manager = WorktreeManager.getInstance();\n\n if (!manager.isEnabled()) {\n console.log(chalk.yellow('Worktree support is not enabled'));\n console.log(chalk.gray('Run \"stackmemory worktree enable\" first'));\n return;\n }\n\n const worktrees = manager.detectWorktrees();\n\n // Find source and target\n let source = worktrees.find((w: any) => w.branch === options.source);\n let target = worktrees.find((w: any) => w.branch === options.target);\n\n if (!source || !target) {\n // Interactive selection if not specified\n const inquirer = await import('inquirer');\n\n if (!source) {\n const { sourceBranch } = await inquirer.default.prompt([\n {\n type: 'list',\n name: 'sourceBranch',\n message: 'Select source worktree:',\n choices: worktrees.map((w: any) => ({\n name: `${w.branch} (${w.path})`,\n value: w,\n })),\n },\n ]);\n source = sourceBranch;\n }\n\n if (!target) {\n const { targetBranch } = await inquirer.default.prompt([\n {\n type: 'list',\n name: 'targetBranch',\n message: 'Select target worktree:',\n choices: worktrees\n .filter((w: any) => w.path !== source!.path)\n .map((w: any) => ({\n name: `${w.branch} (${w.path})`,\n value: w,\n })),\n },\n ]);\n target = targetBranch;\n }\n }\n\n console.log(chalk.cyan('Syncing contexts:'));\n console.log(chalk.gray(' Source:'), source!.branch);\n console.log(chalk.gray(' Target:'), target!.branch);\n console.log(chalk.gray(' Type:'), options.type || 'merge');\n\n try {\n await manager.syncContexts(\n source!.path,\n target!.path,\n options.type || 'merge'\n );\n\n console.log(chalk.green('\u2713 Context sync completed'));\n } catch (error: unknown) {\n console.error(chalk.red('Sync failed:'), (error as Error).message);\n process.exit(1);\n }\n });\n\n // Clean up stale worktree contexts\n worktree\n .command('cleanup')\n .description('Clean up stale worktree contexts')\n .option('--dry-run', 'Show what would be cleaned without doing it')\n .action((options) => {\n const manager = WorktreeManager.getInstance();\n\n if (options.dryRun) {\n console.log(chalk.yellow('Dry run - no changes will be made'));\n }\n\n console.log(chalk.cyan('Checking for stale worktree contexts...'));\n\n if (!options.dryRun) {\n manager.cleanupStaleContexts();\n console.log(chalk.green('\u2713 Cleanup completed'));\n } else {\n const active = manager.detectWorktrees();\n const stored = manager.listActiveWorktrees();\n\n const activePaths = new Set(active.map((w: any) => w.path));\n const stale = stored.filter((w: any) => !activePaths.has(w.path));\n\n if (stale.length === 0) {\n console.log(chalk.green('No stale contexts found'));\n } else {\n console.log(chalk.yellow(`Found ${stale.length} stale context(s):`));\n stale.forEach((w) => {\n console.log(chalk.gray(` - ${w.branch} at ${w.path}`));\n });\n }\n }\n });\n\n // Switch to different worktree\n worktree\n .command('switch <branch>')\n .description('Switch to a different worktree')\n .action(async (branch) => {\n const manager = WorktreeManager.getInstance();\n const worktrees = manager.detectWorktrees();\n\n const target = worktrees.find((w: any) => w.branch === branch);\n if (!target) {\n console.log(chalk.red(`Worktree '${branch}' not found`));\n console.log(chalk.gray('\\nAvailable worktrees:'));\n worktrees.forEach((w) => {\n console.log(chalk.gray(` - ${w.branch}`));\n });\n process.exit(1);\n }\n\n console.log(chalk.cyan(`Switching to worktree: ${branch}`));\n console.log(chalk.gray(`Path: ${target.path}`));\n console.log(chalk.gray('\\nRun this command to switch:'));\n console.log(chalk.green(` cd ${target.path}`));\n\n if (manager.isEnabled() && !target.isMainWorktree) {\n console.log(chalk.gray('\\nThis worktree has an isolated context'));\n }\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,609 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
6
+ process.env["STACKMEMORY_CLI"] = "true";
7
+ import { config as loadDotenv } from "dotenv";
8
+ loadDotenv({ quiet: true });
9
+ import { initializeTracing, trace } from "../core/trace/index.js";
10
+ initializeTracing();
11
+ import { program } from "commander";
12
+ import { logger } from "../core/monitoring/logger.js";
13
+ import { FrameManager } from "../core/context/index.js";
14
+ import { sessionManager, FrameQueryMode } from "../core/session/index.js";
15
+ import { sharedContextLayer } from "../core/context/shared-context-layer.js";
16
+ import { UpdateChecker } from "../core/utils/update-checker.js";
17
+ import { ProgressTracker } from "../core/monitoring/progress-tracker.js";
18
+ import { registerProjectCommands } from "./commands/projects.js";
19
+ import { createSessionCommands } from "./commands/session.js";
20
+ import { isFeatureEnabled, isLocalOnly } from "../core/config/feature-flags.js";
21
+ import { registerWorktreeCommands } from "./commands/worktree.js";
22
+ import { registerOnboardingCommand } from "./commands/onboard.js";
23
+ import { createTaskCommands } from "./commands/tasks.js";
24
+ import { createSearchCommand } from "./commands/search.js";
25
+ import { createLogCommand } from "./commands/log.js";
26
+ import { createContextCommands } from "./commands/context.js";
27
+ import { createConfigCommand } from "./commands/config.js";
28
+ import {
29
+ createCaptureCommand,
30
+ createRestoreCommand,
31
+ createAutoCaptureCommand
32
+ } from "./commands/handoff.js";
33
+ import {
34
+ createDecisionCommand,
35
+ createMemoryCommand
36
+ } from "./commands/decision.js";
37
+ import clearCommand from "./commands/clear.js";
38
+ import serviceCommand from "./commands/service.js";
39
+ import { registerLoginCommand } from "./commands/login.js";
40
+ import { registerSignupCommand } from "./commands/signup.js";
41
+ import { registerLogoutCommand, registerDbCommands } from "./commands/db.js";
42
+ import { createHooksCommand } from "./commands/hooks.js";
43
+ import { createDaemonCommand } from "./commands/daemon.js";
44
+ import { createSweepCommand } from "./commands/sweep.js";
45
+ import { createShellCommand } from "./commands/shell.js";
46
+ import { createAPICommand } from "./commands/api.js";
47
+ import { createCleanupProcessesCommand } from "./commands/cleanup-processes.js";
48
+ import { createAutoBackgroundCommand } from "./commands/auto-background.js";
49
+ import { createSettingsCommand } from "./commands/settings.js";
50
+ import { createRetrievalCommands } from "./commands/retrieval.js";
51
+ import { createDiscoveryCommands } from "./commands/discovery.js";
52
+ import { createModelCommand } from "./commands/model.js";
53
+ import { registerSetupCommands } from "./commands/setup.js";
54
+ import { ProjectManager } from "../core/projects/project-manager.js";
55
+ import Database from "better-sqlite3";
56
+ import { join } from "path";
57
+ import { existsSync, mkdirSync } from "fs";
58
+ import inquirer from "inquirer";
59
+ import chalk from "chalk";
60
+ import { enableChromaDB } from "../core/config/storage-config.js";
61
+ import { spawn } from "child_process";
62
+ import { homedir } from "os";
63
+ import { createRequire } from "module";
64
+ import { fileURLToPath } from "url";
65
+ import * as pathModule from "path";
66
+ const localRequire = createRequire(import.meta.url);
67
+ const currentFilePath = fileURLToPath(import.meta.url);
68
+ const currentDirPath = pathModule.dirname(currentFilePath);
69
+ function findPackageJson() {
70
+ let dir = currentDirPath;
71
+ for (let i = 0; i < 5; i++) {
72
+ const pkgPath = pathModule.join(dir, "package.json");
73
+ try {
74
+ return localRequire(pkgPath);
75
+ } catch {
76
+ dir = pathModule.dirname(dir);
77
+ }
78
+ }
79
+ return { version: "0.0.0" };
80
+ }
81
+ const VERSION = findPackageJson().version;
82
+ UpdateChecker.checkForUpdates(VERSION, true).catch(() => {
83
+ });
84
+ async function startNotificationServices() {
85
+ if (isLocalOnly() || !isFeatureEnabled("whatsapp")) return;
86
+ try {
87
+ const { loadSMSConfig } = await import("../hooks/sms-notify.js");
88
+ const config = loadSMSConfig();
89
+ if (!config.enabled) return;
90
+ const WEBHOOK_PORT = 3456;
91
+ let webhookStarted = false;
92
+ let ngrokStarted = false;
93
+ const webhookRunning = await fetch(
94
+ `http://localhost:${WEBHOOK_PORT}/health`
95
+ ).then((r) => r.ok).catch(() => false);
96
+ if (!webhookRunning) {
97
+ const webhookPath = join(__dirname, "../hooks/sms-webhook.js");
98
+ const webhookProcess = spawn("node", [webhookPath], {
99
+ detached: true,
100
+ stdio: "ignore",
101
+ env: { ...process.env, SMS_WEBHOOK_PORT: String(WEBHOOK_PORT) }
102
+ });
103
+ webhookProcess.unref();
104
+ webhookStarted = true;
105
+ }
106
+ const ngrokRunning = await fetch("http://localhost:4040/api/tunnels").then((r) => r.ok).catch(() => false);
107
+ if (!ngrokRunning) {
108
+ const ngrokProcess = spawn("ngrok", ["http", String(WEBHOOK_PORT)], {
109
+ detached: true,
110
+ stdio: "ignore"
111
+ });
112
+ ngrokProcess.unref();
113
+ ngrokStarted = true;
114
+ }
115
+ if (webhookStarted || ngrokStarted) {
116
+ setTimeout(async () => {
117
+ try {
118
+ const tunnels = await fetch("http://localhost:4040/api/tunnels").then(
119
+ (r) => r.json()
120
+ );
121
+ const publicUrl = tunnels?.tunnels?.[0]?.public_url;
122
+ if (publicUrl) {
123
+ const configDir = join(homedir(), ".stackmemory");
124
+ const configPath = join(configDir, "ngrok-url.txt");
125
+ const { writeFileSync, mkdirSync: mkdirSync2, existsSync: existsSync2 } = await import("fs");
126
+ if (!existsSync2(configDir)) {
127
+ mkdirSync2(configDir, { recursive: true });
128
+ }
129
+ writeFileSync(configPath, publicUrl);
130
+ console.log(
131
+ chalk.gray(`[notify] Webhook: ${publicUrl}/sms/incoming`)
132
+ );
133
+ }
134
+ } catch {
135
+ }
136
+ }, 4e3);
137
+ }
138
+ } catch {
139
+ }
140
+ }
141
+ startNotificationServices();
142
+ program.name("stackmemory").description(
143
+ "Lossless memory runtime for AI coding tools - organizes context as a call stack instead of linear chat logs, with team collaboration and infinite retention"
144
+ ).version(VERSION);
145
+ program.command("init").description(
146
+ "Initialize StackMemory in current project (zero-config by default)"
147
+ ).option("-i, --interactive", "Interactive mode with configuration prompts").option(
148
+ "--chromadb",
149
+ "Enable ChromaDB for semantic search (prompts for API key)"
150
+ ).option("--daemon", "Start the background daemon after initialization").action(async (options) => {
151
+ try {
152
+ const projectRoot = process.cwd();
153
+ const dbDir = join(projectRoot, ".stackmemory");
154
+ const alreadyInit = existsSync(join(dbDir, "context.db"));
155
+ if (alreadyInit && !options.interactive) {
156
+ console.log(chalk.yellow("StackMemory already initialized."));
157
+ console.log(chalk.gray("Run with --interactive to reconfigure."));
158
+ return;
159
+ }
160
+ if (!existsSync(dbDir)) {
161
+ mkdirSync(dbDir, { recursive: true });
162
+ }
163
+ if (options.chromadb) {
164
+ await promptAndEnableChromaDB();
165
+ } else if (options.interactive && process.stdin.isTTY) {
166
+ console.log(chalk.cyan("\nStorage Configuration"));
167
+ console.log(
168
+ chalk.gray("SQLite (default) is fast and requires no setup.")
169
+ );
170
+ console.log(
171
+ chalk.gray("ChromaDB adds semantic search but requires an API key.\n")
172
+ );
173
+ const { enableChroma } = await inquirer.prompt([
174
+ {
175
+ type: "confirm",
176
+ name: "enableChroma",
177
+ message: "Enable ChromaDB for semantic search?",
178
+ default: false
179
+ }
180
+ ]);
181
+ if (enableChroma) {
182
+ await promptAndEnableChromaDB();
183
+ }
184
+ }
185
+ const dbPath = join(dbDir, "context.db");
186
+ const db = new Database(dbPath);
187
+ new FrameManager(db, "cli-project");
188
+ logger.info("StackMemory initialized successfully", { projectRoot });
189
+ console.log(chalk.green("\n[OK] StackMemory initialized"));
190
+ console.log(chalk.gray(` Project: ${projectRoot}`));
191
+ console.log(chalk.gray(` Storage: SQLite (local)`));
192
+ db.close();
193
+ if (options.daemon) {
194
+ console.log(chalk.cyan("\nInstalling background service..."));
195
+ try {
196
+ const { installServiceSilent } = await import("./commands/service.js");
197
+ const success = await installServiceSilent();
198
+ if (success) {
199
+ console.log(chalk.green("[OK] Guardian service installed"));
200
+ console.log(chalk.gray(" Auto-starts on login"));
201
+ console.log(
202
+ chalk.gray(" Check status: stackmemory service status")
203
+ );
204
+ } else {
205
+ console.log(chalk.yellow("[WARN] Could not install service"));
206
+ console.log(chalk.gray(" Run: stackmemory service install"));
207
+ }
208
+ } catch {
209
+ console.log(chalk.yellow("[WARN] Could not install service"));
210
+ console.log(chalk.gray(" Run: stackmemory service install"));
211
+ }
212
+ }
213
+ console.log(chalk.cyan("\nNext steps:"));
214
+ console.log(
215
+ chalk.white(" 1. stackmemory setup-mcp") + chalk.gray(" # Configure Claude Code integration")
216
+ );
217
+ console.log(
218
+ chalk.white(" 2. stackmemory status") + chalk.gray(" # Check status")
219
+ );
220
+ console.log(
221
+ chalk.white(" 3. stackmemory doctor") + chalk.gray(" # Diagnose issues")
222
+ );
223
+ } catch (error) {
224
+ logger.error("Failed to initialize StackMemory", error);
225
+ console.error(chalk.red("\n[ERROR] Initialization failed"));
226
+ console.error(chalk.gray(` Reason: ${error.message}`));
227
+ console.error(
228
+ chalk.gray(
229
+ " Fix: Ensure you have write permissions to the current directory"
230
+ )
231
+ );
232
+ console.error(chalk.gray(" Run: stackmemory doctor"));
233
+ process.exit(1);
234
+ }
235
+ });
236
+ async function promptAndEnableChromaDB() {
237
+ const answers = await inquirer.prompt([
238
+ {
239
+ type: "password",
240
+ name: "apiKey",
241
+ message: "Enter your ChromaDB API key:",
242
+ validate: (input) => {
243
+ if (!input || input.trim().length === 0) {
244
+ return "API key is required for ChromaDB";
245
+ }
246
+ return true;
247
+ }
248
+ },
249
+ {
250
+ type: "input",
251
+ name: "apiUrl",
252
+ message: "ChromaDB API URL (press Enter for default):",
253
+ default: "https://api.trychroma.com"
254
+ }
255
+ ]);
256
+ enableChromaDB({
257
+ apiKey: answers.apiKey,
258
+ apiUrl: answers.apiUrl
259
+ });
260
+ console.log(chalk.green("[OK] ChromaDB enabled for semantic search."));
261
+ console.log(
262
+ chalk.gray("API key saved to ~/.stackmemory/storage-config.json")
263
+ );
264
+ }
265
+ program.command("status").description("Show current StackMemory status").option("--all", "Show all active frames across sessions").option("--project", "Show all active frames in current project").option("--session <id>", "Show frames for specific session").action(async (options) => {
266
+ return trace.command("stackmemory-status", options, async () => {
267
+ try {
268
+ const projectRoot = process.cwd();
269
+ const dbPath = join(projectRoot, ".stackmemory", "context.db");
270
+ if (!existsSync(dbPath)) {
271
+ console.log(
272
+ '\u274C StackMemory not initialized. Run "stackmemory init" first.'
273
+ );
274
+ return;
275
+ }
276
+ await UpdateChecker.checkForUpdates(VERSION);
277
+ await sessionManager.initialize();
278
+ await sharedContextLayer.initialize();
279
+ const session = await sessionManager.getOrCreateSession({
280
+ projectPath: projectRoot,
281
+ sessionId: options.session
282
+ });
283
+ const contextDiscovery = await sharedContextLayer.autoDiscoverContext();
284
+ if (contextDiscovery.hasSharedContext && contextDiscovery.sessionCount > 1) {
285
+ console.log(`
286
+ \u{1F4A1} Shared Context Available:`);
287
+ console.log(
288
+ ` ${contextDiscovery.sessionCount} sessions with shared context`
289
+ );
290
+ if (contextDiscovery.recentPatterns.length > 0) {
291
+ console.log(` Recent patterns:`);
292
+ contextDiscovery.recentPatterns.slice(0, 3).forEach((p) => {
293
+ console.log(
294
+ ` \u2022 ${p.type}: ${p.pattern.slice(0, 50)} (${p.frequency}x)`
295
+ );
296
+ });
297
+ }
298
+ if (contextDiscovery.lastDecisions.length > 0) {
299
+ console.log(
300
+ ` Last decision: ${contextDiscovery.lastDecisions[0].decision.slice(0, 60)}`
301
+ );
302
+ }
303
+ }
304
+ const db = new Database(dbPath);
305
+ const frameManager = new FrameManager(db, session.projectId);
306
+ if (options.all) {
307
+ frameManager.setQueryMode(FrameQueryMode.ALL_ACTIVE);
308
+ } else if (options.project) {
309
+ frameManager.setQueryMode(FrameQueryMode.PROJECT_ACTIVE);
310
+ }
311
+ const activeFrames = frameManager.getActiveFramePath();
312
+ const stackDepth = frameManager.getStackDepth();
313
+ const totalStats = db.prepare(
314
+ `
315
+ SELECT
316
+ COUNT(*) as total_frames,
317
+ SUM(CASE WHEN state = 'active' THEN 1 ELSE 0 END) as active_frames,
318
+ SUM(CASE WHEN state = 'closed' THEN 1 ELSE 0 END) as closed_frames,
319
+ COUNT(DISTINCT run_id) as total_sessions
320
+ FROM frames
321
+ WHERE project_id = ?
322
+ `
323
+ ).get(session.projectId);
324
+ const contextCount = db.prepare(
325
+ `
326
+ SELECT COUNT(*) as count FROM contexts
327
+ `
328
+ ).get();
329
+ const eventCount = db.prepare(
330
+ `
331
+ SELECT COUNT(*) as count FROM events e
332
+ JOIN frames f ON e.frame_id = f.frame_id
333
+ WHERE f.project_id = ?
334
+ `
335
+ ).get(session.projectId);
336
+ console.log("\u{1F4CA} StackMemory Status:");
337
+ console.log(
338
+ ` Session: ${session.sessionId.slice(0, 8)} (${session.state}, ${Math.round((Date.now() - session.startedAt) / 1e3 / 60)}min old)`
339
+ );
340
+ console.log(` Project: ${session.projectId}`);
341
+ if (session.branch) {
342
+ console.log(` Branch: ${session.branch}`);
343
+ }
344
+ console.log(`
345
+ Database Statistics (this project):`);
346
+ console.log(
347
+ ` Frames: ${totalStats.total_frames || 0} (${totalStats.active_frames || 0} active, ${totalStats.closed_frames || 0} closed)`
348
+ );
349
+ console.log(` Events: ${eventCount.count || 0}`);
350
+ console.log(` Sessions: ${totalStats.total_sessions || 0}`);
351
+ console.log(
352
+ ` Cached contexts: ${contextCount.count || 0} (global)`
353
+ );
354
+ const recentFrames = db.prepare(
355
+ `
356
+ SELECT name, type, state, datetime(created_at, 'unixepoch') as created
357
+ FROM frames
358
+ WHERE project_id = ?
359
+ ORDER BY created_at DESC
360
+ LIMIT 3
361
+ `
362
+ ).all(session.projectId);
363
+ if (recentFrames.length > 0) {
364
+ console.log(`
365
+ Recent Activity:`);
366
+ recentFrames.forEach((f) => {
367
+ const stateIcon = f.state === "active" ? "\u{1F7E2}" : "\u26AB";
368
+ console.log(
369
+ ` ${stateIcon} ${f.name} [${f.type}] - ${f.created}`
370
+ );
371
+ });
372
+ }
373
+ console.log(`
374
+ Current Session:`);
375
+ console.log(` Stack depth: ${stackDepth}`);
376
+ console.log(` Active frames: ${activeFrames.length}`);
377
+ if (activeFrames.length > 0) {
378
+ activeFrames.forEach((frame, i) => {
379
+ const indent = " " + " ".repeat(frame.depth || i);
380
+ const prefix = i === 0 ? "\u2514\u2500" : " \u2514\u2500";
381
+ console.log(`${indent}${prefix} ${frame.name} [${frame.type}]`);
382
+ });
383
+ }
384
+ if (!options.all && !options.project) {
385
+ const otherSessions = await sessionManager.listSessions({
386
+ projectId: session.projectId,
387
+ state: "active"
388
+ });
389
+ const otherActive = otherSessions.filter(
390
+ (s) => s.sessionId !== session.sessionId
391
+ );
392
+ if (otherActive.length > 0) {
393
+ console.log(`
394
+ Other Active Sessions (same project):`);
395
+ otherActive.forEach((s) => {
396
+ const age = Math.round(
397
+ (Date.now() - s.lastActiveAt) / 1e3 / 60 / 60
398
+ );
399
+ console.log(
400
+ ` - ${s.sessionId.slice(0, 8)}: ${s.branch || "main"}, ${age}h old`
401
+ );
402
+ });
403
+ console.log(`
404
+ Tip: Use --all to see frames across sessions`);
405
+ }
406
+ }
407
+ db.close();
408
+ } catch (error) {
409
+ logger.error("Failed to get status", error);
410
+ console.error("\u274C Status check failed:", error.message);
411
+ process.exit(1);
412
+ }
413
+ });
414
+ });
415
+ program.command("update-check").description("Check for StackMemory updates").action(async () => {
416
+ try {
417
+ console.log("\u{1F50D} Checking for updates...");
418
+ await UpdateChecker.forceCheck(VERSION);
419
+ } catch (error) {
420
+ logger.error("Update check failed", error);
421
+ console.error("\u274C Update check failed:", error.message);
422
+ process.exit(1);
423
+ }
424
+ });
425
+ program.command("progress").description("Show current progress and recent changes").action(async () => {
426
+ try {
427
+ const projectRoot = process.cwd();
428
+ const dbPath = join(projectRoot, ".stackmemory", "context.db");
429
+ if (!existsSync(dbPath)) {
430
+ console.log(
431
+ '\u274C StackMemory not initialized. Run "stackmemory init" first.'
432
+ );
433
+ return;
434
+ }
435
+ const progress = new ProgressTracker(projectRoot);
436
+ console.log(progress.getSummary());
437
+ } catch (error) {
438
+ logger.error("Failed to show progress", error);
439
+ console.error("\u274C Failed to show progress:", error.message);
440
+ process.exit(1);
441
+ }
442
+ });
443
+ program.command("mcp-server").description("Start StackMemory MCP server for Claude Desktop").option("-p, --project <path>", "Project root directory", process.cwd()).action(async (options) => {
444
+ try {
445
+ const { runMCPServer } = await import("../integrations/mcp/server.js");
446
+ process.env["PROJECT_ROOT"] = options.project;
447
+ console.log("\u{1F680} Starting StackMemory MCP Server...");
448
+ console.log(` Project: ${options.project}`);
449
+ console.log(` Version: ${VERSION}`);
450
+ UpdateChecker.checkForUpdates(VERSION, true).catch(() => {
451
+ });
452
+ await runMCPServer();
453
+ } catch (error) {
454
+ logger.error("Failed to start MCP server", error);
455
+ console.error("\u274C MCP server failed:", error.message);
456
+ process.exit(1);
457
+ }
458
+ });
459
+ program.command("mcp-remote").description(
460
+ "Start StackMemory Remote MCP server (HTTP/SSE) for Claude.ai web"
461
+ ).option("-p, --port <number>", "Port to listen on", "3847").option("-d, --project <path>", "Project root directory", process.cwd()).action(async (options) => {
462
+ try {
463
+ const { runRemoteMCPServer } = await import("../integrations/mcp/remote-server.js");
464
+ const port = parseInt(options.port, 10);
465
+ console.log("Starting StackMemory Remote MCP Server...");
466
+ console.log(` Project: ${options.project}`);
467
+ console.log(` Version: ${VERSION}`);
468
+ console.log("");
469
+ await runRemoteMCPServer(port, options.project);
470
+ console.log("");
471
+ console.log("For Claude.ai web connector:");
472
+ console.log(` URL: http://localhost:${port}/sse`);
473
+ console.log("");
474
+ console.log("For external access (ngrok):");
475
+ console.log(` ngrok http ${port}`);
476
+ console.log(" Then use the ngrok URL + /sse in Claude.ai");
477
+ } catch (error) {
478
+ logger.error("Failed to start remote MCP server", error);
479
+ console.error("Remote MCP server failed:", error.message);
480
+ process.exit(1);
481
+ }
482
+ });
483
+ program.command("context:test").description("Test context persistence by creating sample frames").action(async () => {
484
+ try {
485
+ const projectRoot = process.cwd();
486
+ const dbPath = join(projectRoot, ".stackmemory", "context.db");
487
+ if (!existsSync(dbPath)) {
488
+ console.log(
489
+ '\u274C StackMemory not initialized. Run "stackmemory init" first.'
490
+ );
491
+ return;
492
+ }
493
+ const db = new Database(dbPath);
494
+ const frameManager = new FrameManager(db, "cli-project");
495
+ console.log("\u{1F4DD} Creating test context frames...");
496
+ const rootFrame = frameManager.createFrame({
497
+ type: "task",
498
+ name: "Test Session",
499
+ inputs: { test: true, timestamp: (/* @__PURE__ */ new Date()).toISOString() }
500
+ });
501
+ const taskFrame = frameManager.createFrame({
502
+ type: "subtask",
503
+ name: "Sample Task",
504
+ inputs: { description: "Testing context persistence" },
505
+ parentFrameId: rootFrame
506
+ });
507
+ const commandFrame = frameManager.createFrame({
508
+ type: "tool_scope",
509
+ name: "test-command",
510
+ inputs: { args: ["--test"] },
511
+ parentFrameId: taskFrame
512
+ });
513
+ frameManager.addEvent(
514
+ "observation",
515
+ {
516
+ message: "Test event recorded"
517
+ },
518
+ commandFrame
519
+ );
520
+ console.log("\u2705 Test frames created!");
521
+ console.log(`\u{1F4CA} Stack depth: ${frameManager.getStackDepth()}`);
522
+ console.log(
523
+ `\u{1F504} Active frames: ${frameManager.getActiveFramePath().length}`
524
+ );
525
+ frameManager.closeFrame(commandFrame);
526
+ console.log(
527
+ `\u{1F4CA} After closing command frame: depth = ${frameManager.getStackDepth()}`
528
+ );
529
+ db.close();
530
+ } catch (error) {
531
+ logger.error("Test context failed", error);
532
+ console.error("\u274C Test failed:", error.message);
533
+ process.exit(1);
534
+ }
535
+ });
536
+ registerOnboardingCommand(program);
537
+ registerSignupCommand(program);
538
+ registerLoginCommand(program);
539
+ registerLogoutCommand(program);
540
+ registerDbCommands(program);
541
+ registerProjectCommands(program);
542
+ registerWorktreeCommands(program);
543
+ if (isFeatureEnabled("linear")) {
544
+ import("./commands/linear.js").then(({ registerLinearCommands }) => registerLinearCommands(program)).catch(() => {
545
+ });
546
+ }
547
+ program.addCommand(createSessionCommands());
548
+ program.addCommand(createTaskCommands());
549
+ program.addCommand(createSearchCommand());
550
+ program.addCommand(createLogCommand());
551
+ program.addCommand(createContextCommands());
552
+ program.addCommand(createConfigCommand());
553
+ program.addCommand(createCaptureCommand());
554
+ program.addCommand(createRestoreCommand());
555
+ program.addCommand(createAutoCaptureCommand());
556
+ program.addCommand(createDecisionCommand());
557
+ program.addCommand(createMemoryCommand());
558
+ program.addCommand(clearCommand);
559
+ program.addCommand(serviceCommand);
560
+ program.addCommand(createHooksCommand());
561
+ if (isFeatureEnabled("skills")) {
562
+ import("./commands/skills.js").then(
563
+ ({ createSkillsCommand }) => program.addCommand(createSkillsCommand())
564
+ ).catch(() => {
565
+ });
566
+ }
567
+ if (isFeatureEnabled("ralph")) {
568
+ import("./commands/ralph.js").then(
569
+ ({ default: createRalphCommand }) => program.addCommand(createRalphCommand())
570
+ ).catch(() => {
571
+ });
572
+ }
573
+ program.addCommand(createDaemonCommand());
574
+ program.addCommand(createSweepCommand());
575
+ program.addCommand(createShellCommand());
576
+ program.addCommand(createAPICommand());
577
+ program.addCommand(createCleanupProcessesCommand());
578
+ program.addCommand(createAutoBackgroundCommand());
579
+ program.addCommand(createSettingsCommand());
580
+ if (isFeatureEnabled("whatsapp")) {
581
+ import("./commands/sms-notify.js").then(
582
+ ({ createSMSNotifyCommand }) => program.addCommand(createSMSNotifyCommand())
583
+ ).catch(() => {
584
+ });
585
+ }
586
+ program.addCommand(createRetrievalCommands());
587
+ program.addCommand(createDiscoveryCommands());
588
+ program.addCommand(createModelCommand());
589
+ registerSetupCommands(program);
590
+ program.command("dashboard").description("Display monitoring dashboard in terminal").option("-w, --watch", "Auto-refresh dashboard").option("-i, --interval <seconds>", "Refresh interval in seconds", "5").action(async (options) => {
591
+ const { dashboardCommand } = await import("./commands/dashboard.js");
592
+ await dashboardCommand.handler(options);
593
+ });
594
+ if (process.argv.length > 2) {
595
+ try {
596
+ const manager = ProjectManager.getInstance();
597
+ manager.detectProject().catch(() => {
598
+ });
599
+ } catch {
600
+ }
601
+ }
602
+ const isMainModule = import.meta.url === `file://${process.argv[1]}` || process.argv[1]?.endsWith("/stackmemory") || process.argv[1]?.endsWith("index.ts") || process.argv[1]?.includes("tsx");
603
+ if (isMainModule) {
604
+ program.parse();
605
+ }
606
+ export {
607
+ program
608
+ };
609
+ //# sourceMappingURL=index.js.map