@stackmemoryai/stackmemory 0.8.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (792) hide show
  1. package/LICENSE +64 -0
  2. package/README.md +81 -273
  3. package/dist/src/agents/core/agent-task-manager.js +0 -1
  4. package/dist/src/agents/verifiers/base-verifier.js +0 -1
  5. package/dist/src/agents/verifiers/formatter-verifier.js +0 -1
  6. package/dist/src/agents/verifiers/llm-judge.js +0 -1
  7. package/dist/src/cli/auto-detect.js +0 -1
  8. package/dist/src/cli/claude-sm-danger.js +0 -1
  9. package/dist/src/cli/claude-sm.js +9 -1
  10. package/dist/src/cli/codex-sm-danger.js +0 -1
  11. package/dist/src/cli/codex-sm.js +9 -1
  12. package/dist/src/cli/commands/api.js +0 -1
  13. package/dist/src/cli/commands/auto-background.js +0 -1
  14. package/dist/src/cli/commands/cleanup-processes.js +0 -1
  15. package/dist/src/cli/commands/clear.js +0 -1
  16. package/dist/src/cli/commands/config.js +0 -1
  17. package/dist/src/cli/commands/context-rehydrate.js +0 -1
  18. package/dist/src/cli/commands/context.js +0 -1
  19. package/dist/src/cli/commands/daemon.js +0 -1
  20. package/dist/src/cli/commands/dashboard.js +4 -5
  21. package/dist/src/cli/commands/db.js +0 -1
  22. package/dist/src/cli/commands/decision.js +0 -1
  23. package/dist/src/cli/commands/discovery.js +0 -1
  24. package/dist/src/cli/commands/handoff.js +0 -1
  25. package/dist/src/cli/commands/hooks.js +0 -1
  26. package/dist/src/cli/commands/linear.js +0 -1
  27. package/dist/src/cli/commands/log.js +0 -1
  28. package/dist/src/cli/commands/login.js +0 -1
  29. package/dist/src/cli/commands/migrate.js +0 -1
  30. package/dist/src/cli/commands/model.js +0 -1
  31. package/dist/src/cli/commands/onboard.js +0 -1
  32. package/dist/src/cli/commands/ping.js +0 -1
  33. package/dist/src/cli/commands/projects.js +0 -1
  34. package/dist/src/cli/commands/ralph.js +0 -1
  35. package/dist/src/cli/commands/retrieval.js +0 -1
  36. package/dist/src/cli/commands/search.js +0 -1
  37. package/dist/src/cli/commands/service.js +0 -1
  38. package/dist/src/cli/commands/session.js +0 -1
  39. package/dist/src/cli/commands/setup.js +0 -4
  40. package/dist/src/cli/commands/shell.js +0 -1
  41. package/dist/src/cli/commands/signup.js +0 -1
  42. package/dist/src/cli/commands/skills.js +4 -3
  43. package/dist/src/cli/commands/storage-tier.js +0 -1
  44. package/dist/src/cli/commands/sweep.js +0 -1
  45. package/dist/src/cli/commands/tasks.js +0 -1
  46. package/dist/src/cli/commands/worktree.js +10 -5
  47. package/dist/src/cli/index.js +8 -5
  48. package/dist/src/cli/opencode-sm.js +0 -1
  49. package/dist/src/cli/utils/viewer.js +0 -1
  50. package/dist/src/core/config/config-manager.js +0 -1
  51. package/dist/src/core/config/feature-flags.js +0 -1
  52. package/dist/src/core/config/storage-config.js +0 -1
  53. package/dist/src/core/config/types.js +0 -1
  54. package/dist/src/core/context/auto-context.js +0 -1
  55. package/dist/src/core/context/dual-stack-manager.js +0 -1
  56. package/dist/src/core/context/enhanced-rehydration.js +0 -2
  57. package/dist/src/core/context/frame-database.js +60 -6
  58. package/dist/src/core/context/frame-digest.js +0 -1
  59. package/dist/src/core/context/frame-handoff-manager.js +0 -1
  60. package/dist/src/core/context/frame-lifecycle-hooks.js +0 -1
  61. package/dist/src/core/context/frame-recovery.js +0 -1
  62. package/dist/src/core/context/frame-stack.js +0 -1
  63. package/dist/src/core/context/frame-types.js +0 -1
  64. package/dist/src/core/context/index.js +0 -1
  65. package/dist/src/core/context/permission-manager.js +0 -1
  66. package/dist/src/core/context/recursive-context-manager.js +3 -2
  67. package/dist/src/core/context/refactored-frame-manager.js +0 -1
  68. package/dist/src/core/context/shared-context-layer.js +0 -1
  69. package/dist/src/core/context/stack-merge-resolver.js +0 -1
  70. package/dist/src/core/context/validation.js +0 -1
  71. package/dist/src/core/database/batch-operations.js +0 -1
  72. package/dist/src/core/database/connection-pool.js +0 -1
  73. package/dist/src/core/database/database-adapter.js +0 -1
  74. package/dist/src/core/database/embedding-provider-factory.js +0 -1
  75. package/dist/src/core/database/embedding-provider.js +0 -1
  76. package/dist/src/core/database/migration-manager.js +0 -1
  77. package/dist/src/core/database/ollama-embedding-provider.js +0 -1
  78. package/dist/src/core/database/openai-embedding-provider.js +0 -1
  79. package/dist/src/core/database/query-cache.js +0 -1
  80. package/dist/src/core/database/query-router.js +0 -1
  81. package/dist/src/core/database/sqlite-adapter.js +18 -108
  82. package/dist/src/core/database/transformers-embedding-provider.js +0 -1
  83. package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -1
  84. package/dist/src/core/digest/frame-digest-integration.js +0 -1
  85. package/dist/src/core/digest/hybrid-digest-generator.js +0 -1
  86. package/dist/src/core/digest/index.js +0 -1
  87. package/dist/src/core/digest/types.js +0 -1
  88. package/dist/src/core/errors/error-utils.js +0 -1
  89. package/dist/src/core/errors/index.js +0 -1
  90. package/dist/src/core/errors/recovery.js +0 -1
  91. package/dist/src/core/execution/parallel-executor.js +0 -1
  92. package/dist/src/core/extensions/custom-tools.js +0 -1
  93. package/dist/src/core/extensions/index.js +0 -1
  94. package/dist/src/core/extensions/loader.js +0 -1
  95. package/dist/src/core/extensions/plugin-system.js +0 -1
  96. package/dist/src/core/extensions/provider-adapter.js +0 -1
  97. package/dist/src/core/extensions/sandbox-runtime.js +0 -1
  98. package/dist/src/core/extensions/types.js +0 -1
  99. package/dist/src/core/frame/workflow-templates.js +0 -1
  100. package/dist/src/core/merge/conflict-detector.js +0 -1
  101. package/dist/src/core/merge/index.js +0 -1
  102. package/dist/src/core/merge/resolution-engine.js +0 -1
  103. package/dist/src/core/merge/stack-diff.js +0 -1
  104. package/dist/src/core/merge/types.js +0 -1
  105. package/dist/src/core/merge/unified-merge-resolver.js +0 -1
  106. package/dist/src/core/models/fallback-monitor.js +0 -1
  107. package/dist/src/core/models/model-router.js +0 -1
  108. package/dist/src/core/monitoring/error-handler.js +0 -1
  109. package/dist/src/core/monitoring/logger.js +0 -1
  110. package/dist/src/core/monitoring/metrics.js +0 -1
  111. package/dist/src/core/monitoring/progress-tracker.js +0 -1
  112. package/dist/src/core/monitoring/session-monitor.js +0 -1
  113. package/dist/src/core/performance/context-cache.js +0 -1
  114. package/dist/src/core/performance/index.js +0 -1
  115. package/dist/src/core/performance/lazy-context-loader.js +3 -8
  116. package/dist/src/core/performance/monitor.js +0 -1
  117. package/dist/src/core/performance/optimized-frame-context.js +0 -1
  118. package/dist/src/core/performance/performance-benchmark.js +0 -1
  119. package/dist/src/core/performance/performance-profiler.js +0 -1
  120. package/dist/src/core/performance/streaming-jsonl-parser.js +0 -1
  121. package/dist/src/core/persistence/postgres-adapter.js +0 -1
  122. package/dist/src/core/projects/project-isolation.js +0 -1
  123. package/dist/src/core/projects/project-manager.js +0 -1
  124. package/dist/src/core/query/query-parser.js +0 -1
  125. package/dist/src/core/query/query-templates.js +0 -1
  126. package/dist/src/core/retrieval/context-retriever.js +0 -1
  127. package/dist/src/core/retrieval/index.js +0 -1
  128. package/dist/src/core/retrieval/llm-context-retrieval.js +0 -1
  129. package/dist/src/core/retrieval/llm-provider.js +0 -1
  130. package/dist/src/core/retrieval/privacy-filter.js +0 -1
  131. package/dist/src/core/retrieval/retrieval-audit.js +0 -1
  132. package/dist/src/core/retrieval/summary-generator.js +15 -6
  133. package/dist/src/core/retrieval/types.js +0 -1
  134. package/dist/src/core/retrieval/unified-context-assembler.js +0 -1
  135. package/dist/src/core/security/index.js +0 -1
  136. package/dist/src/core/security/input-sanitizer.js +0 -1
  137. package/dist/src/core/session/clear-survival.js +0 -1
  138. package/dist/src/core/session/enhanced-handoff.js +0 -1
  139. package/dist/src/core/session/handoff-generator.js +0 -1
  140. package/dist/src/core/session/index.js +0 -1
  141. package/dist/src/core/session/session-manager.js +0 -1
  142. package/dist/src/core/skills/index.js +0 -1
  143. package/dist/src/core/skills/skill-storage.js +0 -1
  144. package/dist/src/core/skills/types.js +0 -1
  145. package/dist/src/core/storage/chromadb-adapter.js +0 -1
  146. package/dist/src/core/storage/infinite-storage.js +0 -1
  147. package/dist/src/core/storage/project-registry.js +0 -1
  148. package/dist/src/core/storage/remote-storage.js +4 -2
  149. package/dist/src/core/storage/storage-tier-manager.js +0 -1
  150. package/dist/src/core/storage/two-tier-storage.js +0 -1
  151. package/dist/src/core/trace/cli-trace-wrapper.js +0 -1
  152. package/dist/src/core/trace/db-trace-wrapper.js +0 -1
  153. package/dist/src/core/trace/debug-trace.js +0 -1
  154. package/dist/src/core/trace/index.js +0 -1
  155. package/dist/src/core/trace/linear-api-wrapper.js +0 -1
  156. package/dist/src/core/trace/trace-detector.js +0 -1
  157. package/dist/src/core/trace/trace-store.js +4 -5
  158. package/dist/src/core/trace/types.js +0 -1
  159. package/dist/src/core/types.js +0 -1
  160. package/dist/src/core/utils/async-mutex.js +0 -1
  161. package/dist/src/core/utils/compression.js +0 -1
  162. package/dist/src/core/utils/update-checker.js +0 -1
  163. package/dist/src/core/worktree/worktree-manager.js +0 -1
  164. package/dist/src/daemon/daemon-config.js +0 -1
  165. package/dist/src/daemon/services/context-service.js +0 -1
  166. package/dist/src/daemon/services/linear-service.js +0 -1
  167. package/dist/src/daemon/services/maintenance-service.js +0 -1
  168. package/dist/src/daemon/services/memory-service.js +0 -1
  169. package/dist/src/daemon/session-daemon.js +0 -1
  170. package/dist/src/daemon/unified-daemon.js +0 -1
  171. package/dist/src/features/analytics/api/analytics-api.js +0 -1
  172. package/dist/src/features/analytics/core/analytics-service.js +1 -2
  173. package/dist/src/features/analytics/index.js +0 -1
  174. package/dist/src/features/analytics/queries/metrics-queries.js +8 -9
  175. package/dist/src/features/analytics/types/metrics.js +0 -1
  176. package/dist/src/features/browser/browser-mcp.js +0 -1
  177. package/dist/src/features/sweep/index.js +0 -1
  178. package/dist/src/features/sweep/prediction-client.js +0 -1
  179. package/dist/src/features/sweep/prompt-builder.js +0 -1
  180. package/dist/src/features/sweep/pty-wrapper.js +9 -1
  181. package/dist/src/features/sweep/state-watcher.js +0 -1
  182. package/dist/src/features/sweep/status-bar.js +0 -1
  183. package/dist/src/features/sweep/sweep-server-manager.js +0 -1
  184. package/dist/src/features/sweep/tab-interceptor.js +0 -1
  185. package/dist/src/features/sweep/types.js +0 -1
  186. package/dist/src/features/tasks/linear-task-manager.js +0 -1
  187. package/dist/src/features/tasks/task-aware-context.js +0 -1
  188. package/dist/src/features/tui/simple-monitor.js +0 -1
  189. package/dist/src/features/tui/swarm-monitor.js +0 -1
  190. package/dist/src/features/web/client/stores/task-store.js +0 -1
  191. package/dist/src/features/web/server/index.js +0 -1
  192. package/dist/src/features/workers/tmux-manager.js +0 -1
  193. package/dist/src/features/workers/worker-registry.js +0 -1
  194. package/dist/src/hooks/auto-background.js +0 -1
  195. package/dist/src/hooks/config.js +0 -1
  196. package/dist/src/hooks/daemon.js +8 -1
  197. package/dist/src/hooks/diffmem-hooks.js +0 -1
  198. package/dist/src/hooks/events.js +0 -1
  199. package/dist/src/hooks/graphiti-hooks.js +104 -0
  200. package/dist/src/hooks/index.js +0 -1
  201. package/dist/src/hooks/linear-task-picker.js +0 -1
  202. package/dist/src/hooks/schemas.js +0 -1
  203. package/dist/src/hooks/secure-fs.js +0 -1
  204. package/dist/src/hooks/security-logger.js +0 -1
  205. package/dist/src/hooks/session-summary.js +0 -1
  206. package/dist/src/index.js +0 -1
  207. package/dist/src/integrations/anthropic/client.js +0 -1
  208. package/dist/src/integrations/claude-code/agent-bridge.js +0 -1
  209. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -1
  210. package/dist/src/integrations/claude-code/lifecycle-hooks.js +0 -1
  211. package/dist/src/integrations/claude-code/post-task-hooks.js +0 -1
  212. package/dist/src/integrations/claude-code/subagent-client-stub.js +0 -1
  213. package/dist/src/integrations/claude-code/subagent-client.js +0 -1
  214. package/dist/src/integrations/claude-code/task-coordinator.js +0 -1
  215. package/dist/src/integrations/diffmem/client.js +0 -1
  216. package/dist/src/integrations/diffmem/config.js +0 -1
  217. package/dist/src/integrations/diffmem/index.js +0 -1
  218. package/dist/src/integrations/diffmem/types.js +0 -1
  219. package/dist/src/integrations/graphiti/client.js +103 -0
  220. package/dist/src/integrations/graphiti/config.js +17 -0
  221. package/dist/src/integrations/graphiti/types.js +4 -0
  222. package/dist/src/integrations/linear/auth.js +0 -1
  223. package/dist/src/integrations/linear/auto-sync.js +0 -1
  224. package/dist/src/integrations/linear/client.js +0 -1
  225. package/dist/src/integrations/linear/config.js +0 -1
  226. package/dist/src/integrations/linear/migration.js +0 -1
  227. package/dist/src/integrations/linear/oauth-server.js +0 -1
  228. package/dist/src/integrations/linear/rest-client.js +0 -1
  229. package/dist/src/integrations/linear/sync-manager.js +0 -1
  230. package/dist/src/integrations/linear/sync-service.js +0 -1
  231. package/dist/src/integrations/linear/sync.js +0 -1
  232. package/dist/src/integrations/linear/types.js +0 -1
  233. package/dist/src/integrations/linear/unified-sync.js +0 -1
  234. package/dist/src/integrations/linear/webhook-handler.js +0 -1
  235. package/dist/src/integrations/linear/webhook-server.js +0 -1
  236. package/dist/src/integrations/linear/webhook.js +0 -1
  237. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +0 -1
  238. package/dist/src/integrations/mcp/handlers/context-handlers.js +43 -30
  239. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js +0 -1
  240. package/dist/src/integrations/mcp/handlers/discovery-handlers.js +0 -1
  241. package/dist/src/integrations/mcp/handlers/index.js +1 -3
  242. package/dist/src/integrations/mcp/handlers/linear-handlers.js +24 -61
  243. package/dist/src/integrations/mcp/handlers/skill-handlers.js +0 -1
  244. package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -1
  245. package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -1
  246. package/dist/src/integrations/mcp/index.js +0 -1
  247. package/dist/src/integrations/mcp/middleware/tool-scoring.js +3 -2
  248. package/dist/src/integrations/mcp/pending-utils.js +0 -1
  249. package/dist/src/integrations/mcp/refactored-server.js +0 -1
  250. package/dist/src/integrations/mcp/remote-server.js +0 -1
  251. package/dist/src/integrations/mcp/schemas.js +0 -1
  252. package/dist/src/integrations/mcp/server.js +20 -24
  253. package/dist/src/integrations/mcp/tool-definitions-code.js +0 -1
  254. package/dist/src/integrations/mcp/tool-definitions.js +0 -1
  255. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -1
  256. package/dist/src/integrations/ralph/context/context-budget-manager.js +0 -1
  257. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +0 -1
  258. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +0 -1
  259. package/dist/src/integrations/ralph/index.js +0 -1
  260. package/dist/src/integrations/ralph/learning/pattern-learner.js +0 -1
  261. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +5 -5
  262. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +0 -1
  263. package/dist/src/integrations/ralph/monitoring/swarm-registry.js +0 -1
  264. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -1
  265. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -1
  266. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +0 -1
  267. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +0 -1
  268. package/dist/src/integrations/ralph/performance/performance-optimizer.js +0 -1
  269. package/dist/src/integrations/ralph/recovery/crash-recovery.js +0 -1
  270. package/dist/src/integrations/ralph/state/state-reconciler.js +25 -9
  271. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +0 -1
  272. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +0 -1
  273. package/dist/src/integrations/ralph/types.js +0 -1
  274. package/dist/src/integrations/ralph/visualization/ralph-debugger.js +0 -1
  275. package/dist/src/mcp/stackmemory-mcp-server.js +0 -1
  276. package/dist/src/middleware/exponential-rate-limiter.js +0 -1
  277. package/dist/src/models/user.model.js +0 -1
  278. package/dist/src/orchestrators/multimodal/constants.js +0 -1
  279. package/dist/src/orchestrators/multimodal/harness.js +0 -1
  280. package/dist/src/orchestrators/multimodal/providers.js +0 -1
  281. package/dist/src/orchestrators/multimodal/types.js +0 -1
  282. package/dist/src/orchestrators/multimodal/utils.js +0 -1
  283. package/dist/src/servers/production/auth-middleware.js +0 -1
  284. package/dist/src/services/config-service.js +0 -1
  285. package/dist/src/services/context-service.js +0 -1
  286. package/dist/src/skills/api-discovery.js +0 -1
  287. package/dist/src/skills/api-skill.js +0 -1
  288. package/dist/src/skills/claude-skills.js +0 -1
  289. package/dist/src/skills/dashboard-launcher.js +0 -1
  290. package/dist/src/skills/linear-task-runner.js +0 -1
  291. package/dist/src/skills/recursive-agent-orchestrator.js +0 -1
  292. package/dist/src/skills/repo-ingestion-skill.js +0 -1
  293. package/dist/src/skills/spec-generator-skill.js +0 -1
  294. package/dist/src/skills/unified-rlm-orchestrator.js +0 -1
  295. package/dist/src/types/task.js +0 -1
  296. package/dist/src/utils/env.js +0 -1
  297. package/dist/src/utils/formatting.js +0 -1
  298. package/dist/src/utils/process-cleanup.js +0 -1
  299. package/package.json +32 -7
  300. package/dist/scripts/benchmark-performance.js +0 -48
  301. package/dist/scripts/benchmark-performance.js.map +0 -7
  302. package/dist/scripts/check-redis.js +0 -42
  303. package/dist/scripts/check-redis.js.map +0 -7
  304. package/dist/scripts/initialize.js +0 -183
  305. package/dist/scripts/initialize.js.map +0 -7
  306. package/dist/scripts/list-linear-tasks.js +0 -124
  307. package/dist/scripts/list-linear-tasks.js.map +0 -7
  308. package/dist/scripts/measure-handoff-impact.js +0 -340
  309. package/dist/scripts/measure-handoff-impact.js.map +0 -7
  310. package/dist/scripts/query-chromadb.js +0 -160
  311. package/dist/scripts/query-chromadb.js.map +0 -7
  312. package/dist/scripts/show-linear-summary.js +0 -119
  313. package/dist/scripts/show-linear-summary.js.map +0 -7
  314. package/dist/scripts/simple-swarm-demo.js +0 -90
  315. package/dist/scripts/simple-swarm-demo.js.map +0 -7
  316. package/dist/scripts/status.js +0 -155
  317. package/dist/scripts/status.js.map +0 -7
  318. package/dist/scripts/test-chromadb-sync.js +0 -192
  319. package/dist/scripts/test-chromadb-sync.js.map +0 -7
  320. package/dist/scripts/test-ralph-iteration-fix.js +0 -86
  321. package/dist/scripts/test-ralph-iteration-fix.js.map +0 -7
  322. package/dist/scripts/test-ralph-iterations.js +0 -121
  323. package/dist/scripts/test-ralph-iterations.js.map +0 -7
  324. package/dist/scripts/test-redis-storage.js +0 -389
  325. package/dist/scripts/test-redis-storage.js.map +0 -7
  326. package/dist/scripts/test-simple-ralph-state-sync.js +0 -115
  327. package/dist/scripts/test-simple-ralph-state-sync.js.map +0 -7
  328. package/dist/scripts/test-swarm-fixes.js +0 -125
  329. package/dist/scripts/test-swarm-fixes.js.map +0 -7
  330. package/dist/scripts/test-swarm-tui.js +0 -23
  331. package/dist/scripts/test-swarm-tui.js.map +0 -7
  332. package/dist/scripts/test-tui-shortcuts.js +0 -52
  333. package/dist/scripts/test-tui-shortcuts.js.map +0 -7
  334. package/dist/scripts/validate-tui-shortcuts.js +0 -60
  335. package/dist/scripts/validate-tui-shortcuts.js.map +0 -7
  336. package/dist/src/agents/core/agent-task-manager.js.map +0 -7
  337. package/dist/src/agents/verifiers/base-verifier.js.map +0 -7
  338. package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -7
  339. package/dist/src/agents/verifiers/llm-judge.js.map +0 -7
  340. package/dist/src/cli/auto-detect.js.map +0 -7
  341. package/dist/src/cli/claude-sm-danger.js.map +0 -7
  342. package/dist/src/cli/claude-sm.js.map +0 -7
  343. package/dist/src/cli/codex-sm-danger.js.map +0 -7
  344. package/dist/src/cli/codex-sm.js.map +0 -7
  345. package/dist/src/cli/commands/api.js.map +0 -7
  346. package/dist/src/cli/commands/auto-background.js.map +0 -7
  347. package/dist/src/cli/commands/cleanup-processes.js.map +0 -7
  348. package/dist/src/cli/commands/clear.js.map +0 -7
  349. package/dist/src/cli/commands/config.js.map +0 -7
  350. package/dist/src/cli/commands/context-rehydrate.js.map +0 -7
  351. package/dist/src/cli/commands/context.js.map +0 -7
  352. package/dist/src/cli/commands/daemon.js.map +0 -7
  353. package/dist/src/cli/commands/dashboard.js.map +0 -7
  354. package/dist/src/cli/commands/db.js.map +0 -7
  355. package/dist/src/cli/commands/decision.js.map +0 -7
  356. package/dist/src/cli/commands/discovery.js.map +0 -7
  357. package/dist/src/cli/commands/handoff.js.map +0 -7
  358. package/dist/src/cli/commands/hooks.js.map +0 -7
  359. package/dist/src/cli/commands/linear.js.map +0 -7
  360. package/dist/src/cli/commands/log.js.map +0 -7
  361. package/dist/src/cli/commands/login.js.map +0 -7
  362. package/dist/src/cli/commands/migrate.js.map +0 -7
  363. package/dist/src/cli/commands/model.js.map +0 -7
  364. package/dist/src/cli/commands/onboard.js.map +0 -7
  365. package/dist/src/cli/commands/ping.js.map +0 -7
  366. package/dist/src/cli/commands/projects.js.map +0 -7
  367. package/dist/src/cli/commands/ralph.js.map +0 -7
  368. package/dist/src/cli/commands/retrieval.js.map +0 -7
  369. package/dist/src/cli/commands/search.js.map +0 -7
  370. package/dist/src/cli/commands/service.js.map +0 -7
  371. package/dist/src/cli/commands/session.js.map +0 -7
  372. package/dist/src/cli/commands/settings.js +0 -306
  373. package/dist/src/cli/commands/settings.js.map +0 -7
  374. package/dist/src/cli/commands/setup.js.map +0 -7
  375. package/dist/src/cli/commands/shell.js.map +0 -7
  376. package/dist/src/cli/commands/signup.js.map +0 -7
  377. package/dist/src/cli/commands/skills.js.map +0 -7
  378. package/dist/src/cli/commands/sms-notify.js +0 -795
  379. package/dist/src/cli/commands/sms-notify.js.map +0 -7
  380. package/dist/src/cli/commands/storage-tier.js.map +0 -7
  381. package/dist/src/cli/commands/sweep.js.map +0 -7
  382. package/dist/src/cli/commands/tasks.js.map +0 -7
  383. package/dist/src/cli/commands/worktree.js.map +0 -7
  384. package/dist/src/cli/index.js.map +0 -7
  385. package/dist/src/cli/opencode-sm.js.map +0 -7
  386. package/dist/src/cli/utils/viewer.js.map +0 -7
  387. package/dist/src/core/config/config-manager.js.map +0 -7
  388. package/dist/src/core/config/feature-flags.js.map +0 -7
  389. package/dist/src/core/config/storage-config.js.map +0 -7
  390. package/dist/src/core/config/types.js.map +0 -7
  391. package/dist/src/core/context/auto-context.js.map +0 -7
  392. package/dist/src/core/context/dual-stack-manager.js.map +0 -7
  393. package/dist/src/core/context/enhanced-rehydration.js.map +0 -7
  394. package/dist/src/core/context/frame-database.js.map +0 -7
  395. package/dist/src/core/context/frame-digest.js.map +0 -7
  396. package/dist/src/core/context/frame-handoff-manager.js.map +0 -7
  397. package/dist/src/core/context/frame-lifecycle-hooks.js.map +0 -7
  398. package/dist/src/core/context/frame-recovery.js.map +0 -7
  399. package/dist/src/core/context/frame-stack.js.map +0 -7
  400. package/dist/src/core/context/frame-types.js.map +0 -7
  401. package/dist/src/core/context/index.js.map +0 -7
  402. package/dist/src/core/context/permission-manager.js.map +0 -7
  403. package/dist/src/core/context/recursive-context-manager.js.map +0 -7
  404. package/dist/src/core/context/refactored-frame-manager.js.map +0 -7
  405. package/dist/src/core/context/shared-context-layer.js.map +0 -7
  406. package/dist/src/core/context/stack-merge-resolver.js.map +0 -7
  407. package/dist/src/core/context/validation.js.map +0 -7
  408. package/dist/src/core/database/batch-operations.js.map +0 -7
  409. package/dist/src/core/database/connection-pool.js.map +0 -7
  410. package/dist/src/core/database/database-adapter.js.map +0 -7
  411. package/dist/src/core/database/embedding-provider-factory.js.map +0 -7
  412. package/dist/src/core/database/embedding-provider.js.map +0 -7
  413. package/dist/src/core/database/migration-manager.js.map +0 -7
  414. package/dist/src/core/database/ollama-embedding-provider.js.map +0 -7
  415. package/dist/src/core/database/openai-embedding-provider.js.map +0 -7
  416. package/dist/src/core/database/query-cache.js.map +0 -7
  417. package/dist/src/core/database/query-router.js.map +0 -7
  418. package/dist/src/core/database/sqlite-adapter.js.map +0 -7
  419. package/dist/src/core/database/transformers-embedding-provider.js.map +0 -7
  420. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -7
  421. package/dist/src/core/digest/frame-digest-integration.js.map +0 -7
  422. package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -7
  423. package/dist/src/core/digest/index.js.map +0 -7
  424. package/dist/src/core/digest/types.js.map +0 -7
  425. package/dist/src/core/errors/error-utils.js.map +0 -7
  426. package/dist/src/core/errors/index.js.map +0 -7
  427. package/dist/src/core/errors/recovery.js.map +0 -7
  428. package/dist/src/core/execution/parallel-executor.js.map +0 -7
  429. package/dist/src/core/extensions/custom-tools.js.map +0 -7
  430. package/dist/src/core/extensions/index.js.map +0 -7
  431. package/dist/src/core/extensions/loader.js.map +0 -7
  432. package/dist/src/core/extensions/plugin-system.js.map +0 -7
  433. package/dist/src/core/extensions/provider-adapter.js.map +0 -7
  434. package/dist/src/core/extensions/sandbox-runtime.js.map +0 -7
  435. package/dist/src/core/extensions/types.js.map +0 -7
  436. package/dist/src/core/frame/workflow-templates.js.map +0 -7
  437. package/dist/src/core/merge/conflict-detector.js.map +0 -7
  438. package/dist/src/core/merge/index.js.map +0 -7
  439. package/dist/src/core/merge/resolution-engine.js.map +0 -7
  440. package/dist/src/core/merge/stack-diff.js.map +0 -7
  441. package/dist/src/core/merge/types.js.map +0 -7
  442. package/dist/src/core/merge/unified-merge-resolver.js.map +0 -7
  443. package/dist/src/core/models/fallback-monitor.js.map +0 -7
  444. package/dist/src/core/models/model-router.js.map +0 -7
  445. package/dist/src/core/monitoring/error-handler.js.map +0 -7
  446. package/dist/src/core/monitoring/logger.js.map +0 -7
  447. package/dist/src/core/monitoring/metrics.js.map +0 -7
  448. package/dist/src/core/monitoring/progress-tracker.js.map +0 -7
  449. package/dist/src/core/monitoring/session-monitor.js.map +0 -7
  450. package/dist/src/core/performance/context-cache.js.map +0 -7
  451. package/dist/src/core/performance/index.js.map +0 -7
  452. package/dist/src/core/performance/lazy-context-loader.js.map +0 -7
  453. package/dist/src/core/performance/monitor.js.map +0 -7
  454. package/dist/src/core/performance/optimized-frame-context.js.map +0 -7
  455. package/dist/src/core/performance/performance-benchmark.js.map +0 -7
  456. package/dist/src/core/performance/performance-profiler.js.map +0 -7
  457. package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -7
  458. package/dist/src/core/persistence/postgres-adapter.js.map +0 -7
  459. package/dist/src/core/projects/project-isolation.js.map +0 -7
  460. package/dist/src/core/projects/project-manager.js.map +0 -7
  461. package/dist/src/core/query/query-parser.js.map +0 -7
  462. package/dist/src/core/query/query-templates.js.map +0 -7
  463. package/dist/src/core/retrieval/context-retriever.js.map +0 -7
  464. package/dist/src/core/retrieval/index.js.map +0 -7
  465. package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -7
  466. package/dist/src/core/retrieval/llm-provider.js.map +0 -7
  467. package/dist/src/core/retrieval/privacy-filter.js.map +0 -7
  468. package/dist/src/core/retrieval/retrieval-audit.js.map +0 -7
  469. package/dist/src/core/retrieval/summary-generator.js.map +0 -7
  470. package/dist/src/core/retrieval/types.js.map +0 -7
  471. package/dist/src/core/retrieval/unified-context-assembler.js.map +0 -7
  472. package/dist/src/core/security/index.js.map +0 -7
  473. package/dist/src/core/security/input-sanitizer.js.map +0 -7
  474. package/dist/src/core/session/clear-survival.js.map +0 -7
  475. package/dist/src/core/session/enhanced-handoff.js.map +0 -7
  476. package/dist/src/core/session/handoff-generator.js.map +0 -7
  477. package/dist/src/core/session/index.js.map +0 -7
  478. package/dist/src/core/session/session-manager.js.map +0 -7
  479. package/dist/src/core/skills/index.js.map +0 -7
  480. package/dist/src/core/skills/skill-storage.js.map +0 -7
  481. package/dist/src/core/skills/types.js.map +0 -7
  482. package/dist/src/core/storage/chromadb-adapter.js.map +0 -7
  483. package/dist/src/core/storage/infinite-storage.js.map +0 -7
  484. package/dist/src/core/storage/project-registry.js.map +0 -7
  485. package/dist/src/core/storage/remote-storage.js.map +0 -7
  486. package/dist/src/core/storage/storage-tier-manager.js.map +0 -7
  487. package/dist/src/core/storage/two-tier-storage.js.map +0 -7
  488. package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -7
  489. package/dist/src/core/trace/db-trace-wrapper.js.map +0 -7
  490. package/dist/src/core/trace/debug-trace.js.map +0 -7
  491. package/dist/src/core/trace/index.js.map +0 -7
  492. package/dist/src/core/trace/linear-api-wrapper.js.map +0 -7
  493. package/dist/src/core/trace/trace-detector.js.map +0 -7
  494. package/dist/src/core/trace/trace-store.js.map +0 -7
  495. package/dist/src/core/trace/types.js.map +0 -7
  496. package/dist/src/core/types.js.map +0 -7
  497. package/dist/src/core/utils/async-mutex.js.map +0 -7
  498. package/dist/src/core/utils/compression.js.map +0 -7
  499. package/dist/src/core/utils/update-checker.js.map +0 -7
  500. package/dist/src/core/worktree/worktree-manager.js.map +0 -7
  501. package/dist/src/daemon/daemon-config.js.map +0 -7
  502. package/dist/src/daemon/services/context-service.js.map +0 -7
  503. package/dist/src/daemon/services/linear-service.js.map +0 -7
  504. package/dist/src/daemon/services/maintenance-service.js.map +0 -7
  505. package/dist/src/daemon/services/memory-service.js.map +0 -7
  506. package/dist/src/daemon/session-daemon.js.map +0 -7
  507. package/dist/src/daemon/unified-daemon.js.map +0 -7
  508. package/dist/src/features/analytics/api/analytics-api.js.map +0 -7
  509. package/dist/src/features/analytics/core/analytics-service.js.map +0 -7
  510. package/dist/src/features/analytics/index.js.map +0 -7
  511. package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -7
  512. package/dist/src/features/analytics/types/metrics.js.map +0 -7
  513. package/dist/src/features/browser/browser-mcp.js.map +0 -7
  514. package/dist/src/features/sweep/index.js.map +0 -7
  515. package/dist/src/features/sweep/prediction-client.js.map +0 -7
  516. package/dist/src/features/sweep/prompt-builder.js.map +0 -7
  517. package/dist/src/features/sweep/pty-wrapper.js.map +0 -7
  518. package/dist/src/features/sweep/state-watcher.js.map +0 -7
  519. package/dist/src/features/sweep/status-bar.js.map +0 -7
  520. package/dist/src/features/sweep/sweep-server-manager.js.map +0 -7
  521. package/dist/src/features/sweep/tab-interceptor.js.map +0 -7
  522. package/dist/src/features/sweep/types.js.map +0 -7
  523. package/dist/src/features/tasks/linear-task-manager.js.map +0 -7
  524. package/dist/src/features/tasks/task-aware-context.js.map +0 -7
  525. package/dist/src/features/tui/simple-monitor.js.map +0 -7
  526. package/dist/src/features/tui/swarm-monitor.js.map +0 -7
  527. package/dist/src/features/web/client/stores/task-store.js.map +0 -7
  528. package/dist/src/features/web/server/index.js.map +0 -7
  529. package/dist/src/features/workers/tmux-manager.js.map +0 -7
  530. package/dist/src/features/workers/worker-registry.js.map +0 -7
  531. package/dist/src/hooks/auto-background.js.map +0 -7
  532. package/dist/src/hooks/claude-code-whatsapp-hook.js +0 -197
  533. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +0 -7
  534. package/dist/src/hooks/config.js.map +0 -7
  535. package/dist/src/hooks/daemon.js.map +0 -7
  536. package/dist/src/hooks/diffmem-hooks.js.map +0 -7
  537. package/dist/src/hooks/events.js.map +0 -7
  538. package/dist/src/hooks/index.js.map +0 -7
  539. package/dist/src/hooks/linear-task-picker.js.map +0 -7
  540. package/dist/src/hooks/schemas.js.map +0 -7
  541. package/dist/src/hooks/secure-fs.js.map +0 -7
  542. package/dist/src/hooks/security-logger.js.map +0 -7
  543. package/dist/src/hooks/session-summary.js.map +0 -7
  544. package/dist/src/hooks/sms-action-runner.js +0 -371
  545. package/dist/src/hooks/sms-action-runner.js.map +0 -7
  546. package/dist/src/hooks/sms-notify.js +0 -506
  547. package/dist/src/hooks/sms-notify.js.map +0 -7
  548. package/dist/src/hooks/sms-watcher.js +0 -93
  549. package/dist/src/hooks/sms-watcher.js.map +0 -7
  550. package/dist/src/hooks/sms-webhook.js +0 -555
  551. package/dist/src/hooks/sms-webhook.js.map +0 -7
  552. package/dist/src/hooks/whatsapp-commands.js +0 -479
  553. package/dist/src/hooks/whatsapp-commands.js.map +0 -7
  554. package/dist/src/hooks/whatsapp-scheduler.js +0 -317
  555. package/dist/src/hooks/whatsapp-scheduler.js.map +0 -7
  556. package/dist/src/hooks/whatsapp-sync.js +0 -409
  557. package/dist/src/hooks/whatsapp-sync.js.map +0 -7
  558. package/dist/src/index.js.map +0 -7
  559. package/dist/src/integrations/anthropic/client.js.map +0 -7
  560. package/dist/src/integrations/claude-code/agent-bridge.js.map +0 -7
  561. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  562. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  563. package/dist/src/integrations/claude-code/post-task-hooks.js.map +0 -7
  564. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +0 -7
  565. package/dist/src/integrations/claude-code/subagent-client.js.map +0 -7
  566. package/dist/src/integrations/claude-code/task-coordinator.js.map +0 -7
  567. package/dist/src/integrations/diffmem/client.js.map +0 -7
  568. package/dist/src/integrations/diffmem/config.js.map +0 -7
  569. package/dist/src/integrations/diffmem/index.js.map +0 -7
  570. package/dist/src/integrations/diffmem/types.js.map +0 -7
  571. package/dist/src/integrations/linear/auth.js.map +0 -7
  572. package/dist/src/integrations/linear/auto-sync.js.map +0 -7
  573. package/dist/src/integrations/linear/client.js.map +0 -7
  574. package/dist/src/integrations/linear/config.js.map +0 -7
  575. package/dist/src/integrations/linear/migration.js.map +0 -7
  576. package/dist/src/integrations/linear/oauth-server.js.map +0 -7
  577. package/dist/src/integrations/linear/rest-client.js.map +0 -7
  578. package/dist/src/integrations/linear/sync-manager.js.map +0 -7
  579. package/dist/src/integrations/linear/sync-service.js.map +0 -7
  580. package/dist/src/integrations/linear/sync.js.map +0 -7
  581. package/dist/src/integrations/linear/types.js.map +0 -7
  582. package/dist/src/integrations/linear/unified-sync.js.map +0 -7
  583. package/dist/src/integrations/linear/webhook-handler.js.map +0 -7
  584. package/dist/src/integrations/linear/webhook-server.js.map +0 -7
  585. package/dist/src/integrations/linear/webhook.js.map +0 -7
  586. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  587. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -7
  588. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js.map +0 -7
  589. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  590. package/dist/src/integrations/mcp/handlers/index.js.map +0 -7
  591. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  592. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  593. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -7
  594. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  595. package/dist/src/integrations/mcp/index.js.map +0 -7
  596. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  597. package/dist/src/integrations/mcp/pending-utils.js.map +0 -7
  598. package/dist/src/integrations/mcp/refactored-server.js.map +0 -7
  599. package/dist/src/integrations/mcp/remote-server.js.map +0 -7
  600. package/dist/src/integrations/mcp/schemas.js.map +0 -7
  601. package/dist/src/integrations/mcp/server.js.map +0 -7
  602. package/dist/src/integrations/mcp/tool-definitions-code.js.map +0 -7
  603. package/dist/src/integrations/mcp/tool-definitions.js.map +0 -7
  604. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  605. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +0 -7
  606. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  607. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  608. package/dist/src/integrations/ralph/index.js.map +0 -7
  609. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +0 -7
  610. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  611. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  612. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  613. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  614. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  615. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  616. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  617. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  618. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  619. package/dist/src/integrations/ralph/state/state-reconciler.js.map +0 -7
  620. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  621. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  622. package/dist/src/integrations/ralph/types.js.map +0 -7
  623. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  624. package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -7
  625. package/dist/src/middleware/exponential-rate-limiter.js.map +0 -7
  626. package/dist/src/models/user.model.js.map +0 -7
  627. package/dist/src/orchestrators/multimodal/constants.js.map +0 -7
  628. package/dist/src/orchestrators/multimodal/harness.js.map +0 -7
  629. package/dist/src/orchestrators/multimodal/providers.js.map +0 -7
  630. package/dist/src/orchestrators/multimodal/types.js.map +0 -7
  631. package/dist/src/orchestrators/multimodal/utils.js.map +0 -7
  632. package/dist/src/servers/production/auth-middleware.js.map +0 -7
  633. package/dist/src/services/config-service.js.map +0 -7
  634. package/dist/src/services/context-service.js.map +0 -7
  635. package/dist/src/skills/api-discovery.js.map +0 -7
  636. package/dist/src/skills/api-skill.js.map +0 -7
  637. package/dist/src/skills/claude-skills.js.map +0 -7
  638. package/dist/src/skills/dashboard-launcher.js.map +0 -7
  639. package/dist/src/skills/linear-task-runner.js.map +0 -7
  640. package/dist/src/skills/recursive-agent-orchestrator.js.map +0 -7
  641. package/dist/src/skills/repo-ingestion-skill.js.map +0 -7
  642. package/dist/src/skills/spec-generator-skill.js.map +0 -7
  643. package/dist/src/skills/unified-rlm-orchestrator.js.map +0 -7
  644. package/dist/src/types/task.js.map +0 -7
  645. package/dist/src/utils/env.js.map +0 -7
  646. package/dist/src/utils/formatting.js.map +0 -7
  647. package/dist/src/utils/process-cleanup.js.map +0 -7
  648. package/scripts/README-TESTING.md +0 -186
  649. package/scripts/analyze-cli-security.js +0 -288
  650. package/scripts/archive/add-phase-tasks-to-linear.js +0 -163
  651. package/scripts/archive/analyze-linear-duplicates.js +0 -214
  652. package/scripts/archive/analyze-remaining-duplicates.js +0 -230
  653. package/scripts/archive/analyze-sta-duplicates.js +0 -292
  654. package/scripts/archive/analyze-sta-graphql.js +0 -399
  655. package/scripts/archive/cancel-duplicate-tasks.ts +0 -246
  656. package/scripts/archive/check-all-duplicates.ts +0 -419
  657. package/scripts/archive/clean-duplicate-tasks.js +0 -114
  658. package/scripts/archive/cleanup-duplicate-tasks.ts +0 -286
  659. package/scripts/archive/create-phase-tasks.js +0 -387
  660. package/scripts/archive/delete-linear-duplicates.js +0 -182
  661. package/scripts/archive/delete-remaining-duplicates.js +0 -158
  662. package/scripts/archive/delete-sta-duplicates.js +0 -201
  663. package/scripts/archive/delete-sta-oauth.js +0 -201
  664. package/scripts/archive/export-sta-tasks.js +0 -62
  665. package/scripts/archive/install-auto-sync.js +0 -266
  666. package/scripts/archive/install-chromadb-hooks.sh +0 -133
  667. package/scripts/archive/install-enhanced-clear-hooks.sh +0 -431
  668. package/scripts/archive/install-post-task-hooks.sh +0 -289
  669. package/scripts/archive/install-stackmemory-hooks.sh +0 -420
  670. package/scripts/archive/merge-linear-duplicates-safe.ts +0 -362
  671. package/scripts/archive/merge-linear-duplicates.ts +0 -182
  672. package/scripts/archive/remove-sta-tasks.js +0 -70
  673. package/scripts/archive/setup-background-sync.sh +0 -168
  674. package/scripts/archive/setup-claude-auto-triggers.sh +0 -181
  675. package/scripts/archive/setup-claude-autostart.sh +0 -305
  676. package/scripts/archive/setup-git-hooks.sh +0 -25
  677. package/scripts/archive/setup-linear-oauth.sh +0 -46
  678. package/scripts/archive/setup-mcp.sh +0 -113
  679. package/scripts/archive/setup-railway-deployment.sh +0 -81
  680. package/scripts/auto-handoff.sh +0 -262
  681. package/scripts/background-sync-manager.js +0 -478
  682. package/scripts/benchmark-performance.ts +0 -57
  683. package/scripts/check-redis.ts +0 -48
  684. package/scripts/chromadb-auto-loader.sh +0 -128
  685. package/scripts/chromadb-context-loader.js +0 -479
  686. package/scripts/claude-chromadb-hook.js +0 -460
  687. package/scripts/claude-linear-skill.js +0 -455
  688. package/scripts/claude-pre-commit.sh +0 -302
  689. package/scripts/claude-sm-autostart.js +0 -579
  690. package/scripts/claude-with-chromadb.sh +0 -69
  691. package/scripts/clean-linear-backlog.js +0 -273
  692. package/scripts/cleanup-old-sessions.sh +0 -57
  693. package/scripts/create-cleanup-issues.js +0 -302
  694. package/scripts/create-sandbox.sh +0 -269
  695. package/scripts/debug-linear-update.js +0 -174
  696. package/scripts/delete-linear-tasks.js +0 -167
  697. package/scripts/demos/browser-test.ts +0 -39
  698. package/scripts/demos/ralph-integration-demo.ts +0 -245
  699. package/scripts/demos/trace-demo.ts +0 -200
  700. package/scripts/demos/trace-detector.demo.ts +0 -171
  701. package/scripts/demos/trace-test.ts +0 -79
  702. package/scripts/deploy-ralph-swarm.sh +0 -365
  703. package/scripts/deploy.sh +0 -89
  704. package/scripts/deployment/test-deployment.js +0 -194
  705. package/scripts/detect-and-rehydrate.js +0 -162
  706. package/scripts/detect-and-rehydrate.mjs +0 -165
  707. package/scripts/development/create-demo-tasks.js +0 -143
  708. package/scripts/development/debug-frame-test.js +0 -16
  709. package/scripts/development/demo-auto-sync.js +0 -128
  710. package/scripts/development/fix-all-imports.js +0 -213
  711. package/scripts/development/fix-imports.js +0 -229
  712. package/scripts/development/fix-lint-loop.cjs +0 -103
  713. package/scripts/development/fix-project-id.ts +0 -161
  714. package/scripts/development/fix-strict-mode-issues.ts +0 -291
  715. package/scripts/development/reorganize-structure.sh +0 -228
  716. package/scripts/development/test-persistence-direct.js +0 -148
  717. package/scripts/development/test-persistence.js +0 -114
  718. package/scripts/development/test-tasks.js +0 -93
  719. package/scripts/development/update-imports.js +0 -212
  720. package/scripts/fetch-linear-status.js +0 -125
  721. package/scripts/initialize.ts +0 -220
  722. package/scripts/linear-auto-sync.js +0 -262
  723. package/scripts/linear-auto-sync.sh +0 -161
  724. package/scripts/linear-sync-daemon.js +0 -150
  725. package/scripts/linear-task-review.js +0 -237
  726. package/scripts/list-linear-tasks.ts +0 -178
  727. package/scripts/mcp-proxy.js +0 -66
  728. package/scripts/measure-handoff-impact.mjs +0 -395
  729. package/scripts/measure-handoff-impact.ts +0 -450
  730. package/scripts/publish-local.js +0 -74
  731. package/scripts/query-chromadb.ts +0 -201
  732. package/scripts/ralph-integration-test.js +0 -274
  733. package/scripts/reconcile-local-tasks.js +0 -170
  734. package/scripts/recreate-frames-db.js +0 -89
  735. package/scripts/show-linear-summary.ts +0 -172
  736. package/scripts/simple-swarm-demo.ts +0 -114
  737. package/scripts/stackmemory-auto-handoff.sh +0 -231
  738. package/scripts/start-linear-sync-daemon.sh +0 -141
  739. package/scripts/start-temporal-paradox.sh +0 -214
  740. package/scripts/status.ts +0 -224
  741. package/scripts/stop-notify-webhook.sh +0 -19
  742. package/scripts/swarm-monitor.js +0 -509
  743. package/scripts/sync-and-clean-tasks.js +0 -258
  744. package/scripts/sync-linear-graphql.js +0 -303
  745. package/scripts/sync-linear-tasks.js +0 -186
  746. package/scripts/test-auto-triggers.sh +0 -57
  747. package/scripts/test-browser-mcp.js +0 -74
  748. package/scripts/test-chromadb-full.js +0 -115
  749. package/scripts/test-chromadb-hooks.sh +0 -28
  750. package/scripts/test-chromadb-sync.ts +0 -245
  751. package/scripts/test-claude-config.sh +0 -123
  752. package/scripts/test-cli-security.js +0 -293
  753. package/scripts/test-code-execution.js +0 -143
  754. package/scripts/test-hooks-persistence.sh +0 -220
  755. package/scripts/test-installation-scenarios.sh +0 -359
  756. package/scripts/test-installation.sh +0 -224
  757. package/scripts/test-mcp.js +0 -163
  758. package/scripts/test-parallel-swarms.js +0 -443
  759. package/scripts/test-pre-publish-quick.sh +0 -69
  760. package/scripts/test-quality-gates.sh +0 -263
  761. package/scripts/test-ralph-iteration-fix.ts +0 -118
  762. package/scripts/test-ralph-iterations.ts +0 -164
  763. package/scripts/test-redis-storage.ts +0 -490
  764. package/scripts/test-rlm-basic.sh +0 -122
  765. package/scripts/test-rlm-comprehensive.sh +0 -260
  766. package/scripts/test-rlm-e2e.sh +0 -268
  767. package/scripts/test-rlm-simple.js +0 -90
  768. package/scripts/test-rlm.js +0 -110
  769. package/scripts/test-session-handoff.sh +0 -165
  770. package/scripts/test-setup-e2e.sh +0 -154
  771. package/scripts/test-shell-integration.sh +0 -275
  772. package/scripts/test-simple-ralph-state-sync.ts +0 -178
  773. package/scripts/test-swarm-fixes.ts +0 -161
  774. package/scripts/test-swarm-git-workflow.js +0 -338
  775. package/scripts/test-swarm-tui.ts +0 -34
  776. package/scripts/test-tui-shortcuts.ts +0 -66
  777. package/scripts/testing/ab-test-runner.ts +0 -510
  778. package/scripts/testing/collect-metrics.ts +0 -457
  779. package/scripts/testing/quick-effectiveness-demo.js +0 -187
  780. package/scripts/testing/ralph-cli-test.js +0 -88
  781. package/scripts/testing/ralph-integration-validation.js +0 -727
  782. package/scripts/testing/ralph-swarm-test-scenarios.js +0 -613
  783. package/scripts/testing/real-performance-test.js +0 -422
  784. package/scripts/testing/results/real-performance-results.json +0 -90
  785. package/scripts/testing/run-effectiveness-tests.sh +0 -176
  786. package/scripts/testing/simple-effectiveness-test.js +0 -310
  787. package/scripts/testing/test-tier-migration.js +0 -100
  788. package/scripts/update-linear-status.js +0 -268
  789. package/scripts/update-linear-tasks-fixed.js +0 -284
  790. package/scripts/validate-claude-config.sh +0 -155
  791. package/scripts/validate-swarm-implementation.js +0 -467
  792. package/scripts/validate-tui-shortcuts.ts +0 -83
@@ -1,306 +0,0 @@
1
- import { fileURLToPath as __fileURLToPath } from 'url';
2
- import { dirname as __pathDirname } from 'path';
3
- const __filename = __fileURLToPath(import.meta.url);
4
- const __dirname = __pathDirname(__filename);
5
- import { Command } from "commander";
6
- import chalk from "chalk";
7
- import inquirer from "inquirer";
8
- import { existsSync, writeFileSync, mkdirSync, readFileSync } from "fs";
9
- import { join } from "path";
10
- import { homedir } from "os";
11
- import {
12
- loadSMSConfig,
13
- saveSMSConfig,
14
- getMissingConfig
15
- } from "../../hooks/sms-notify.js";
16
- function createSettingsCommand() {
17
- const cmd = new Command("settings").description("View and configure StackMemory settings").addHelpText(
18
- "after",
19
- `
20
- Examples:
21
- stackmemory settings Show all settings and missing config
22
- stackmemory settings notifications Configure notifications interactively
23
- stackmemory settings env Show required environment variables
24
- `
25
- );
26
- cmd.command("show").description("Show current settings and what is missing").action(() => {
27
- showSettings();
28
- });
29
- cmd.command("notifications").alias("notify").description("Configure notifications interactively").action(async () => {
30
- await configureNotifications();
31
- });
32
- cmd.command("env").description("Show required environment variables").action(() => {
33
- showEnvVars();
34
- });
35
- cmd.action(() => {
36
- showSettings();
37
- });
38
- return cmd;
39
- }
40
- function showSettings() {
41
- console.log(chalk.blue.bold("\nStackMemory Settings\n"));
42
- const config = loadSMSConfig();
43
- const { missing, configured, ready } = getMissingConfig();
44
- console.log(chalk.cyan("Notifications:"));
45
- console.log(
46
- ` ${chalk.gray("Enabled:")} ${config.enabled ? chalk.green("yes") : chalk.yellow("no")}`
47
- );
48
- console.log(
49
- ` ${chalk.gray("Channel:")} ${config.channel === "whatsapp" ? chalk.cyan("WhatsApp") : chalk.blue("SMS")}`
50
- );
51
- console.log(
52
- ` ${chalk.gray("Ready:")} ${ready ? chalk.green("yes") : chalk.red("no")}`
53
- );
54
- if (configured.length > 0) {
55
- console.log(`
56
- ${chalk.green("Configured:")}`);
57
- configured.forEach((item) => {
58
- console.log(` ${chalk.green("\u2713")} ${item}`);
59
- });
60
- }
61
- if (missing.length > 0) {
62
- console.log(`
63
- ${chalk.red("Missing:")}`);
64
- missing.forEach((item) => {
65
- console.log(` ${chalk.red("\u2717")} ${item}`);
66
- });
67
- console.log(
68
- chalk.yellow('\n Run "stackmemory settings notifications" to configure')
69
- );
70
- }
71
- const ngrokUrlPath = join(homedir(), ".stackmemory", "ngrok-url.txt");
72
- if (existsSync(ngrokUrlPath)) {
73
- const ngrokUrl = readFileSync(ngrokUrlPath, "utf8").trim();
74
- console.log(`
75
- ${chalk.gray("Webhook URL:")} ${ngrokUrl}/sms/incoming`);
76
- }
77
- console.log();
78
- }
79
- function showEnvVars() {
80
- console.log(chalk.blue.bold("\nRequired Environment Variables\n"));
81
- const { missing, configured } = getMissingConfig();
82
- const config = loadSMSConfig();
83
- console.log(chalk.cyan("Twilio Credentials (required):"));
84
- console.log(
85
- ` ${configured.includes("TWILIO_ACCOUNT_SID") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_ACCOUNT_SID`
86
- );
87
- console.log(
88
- ` ${configured.includes("TWILIO_AUTH_TOKEN") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_AUTH_TOKEN`
89
- );
90
- console.log(
91
- chalk.cyan(
92
- `
93
- ${config.channel === "whatsapp" ? "WhatsApp" : "SMS"} Numbers:`
94
- )
95
- );
96
- if (config.channel === "whatsapp") {
97
- console.log(
98
- ` ${configured.includes("TWILIO_WHATSAPP_FROM") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_WHATSAPP_FROM`
99
- );
100
- console.log(
101
- ` ${configured.includes("TWILIO_WHATSAPP_TO") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_WHATSAPP_TO`
102
- );
103
- } else {
104
- console.log(
105
- ` ${configured.includes("TWILIO_SMS_FROM") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_SMS_FROM`
106
- );
107
- console.log(
108
- ` ${configured.includes("TWILIO_SMS_TO") ? chalk.green("\u2713") : chalk.red("\u2717")} TWILIO_SMS_TO`
109
- );
110
- }
111
- if (missing.length > 0) {
112
- console.log(chalk.yellow("\nAdd to your .env file or shell profile:"));
113
- console.log(chalk.gray("\u2500".repeat(50)));
114
- if (missing.includes("TWILIO_ACCOUNT_SID")) {
115
- console.log('export TWILIO_ACCOUNT_SID="your_account_sid"');
116
- }
117
- if (missing.includes("TWILIO_AUTH_TOKEN")) {
118
- console.log('export TWILIO_AUTH_TOKEN="your_auth_token"');
119
- }
120
- if (missing.includes("TWILIO_WHATSAPP_FROM")) {
121
- console.log(
122
- 'export TWILIO_WHATSAPP_FROM="+14155238886" # Twilio sandbox'
123
- );
124
- }
125
- if (missing.includes("TWILIO_WHATSAPP_TO")) {
126
- console.log('export TWILIO_WHATSAPP_TO="+1234567890" # Your phone');
127
- }
128
- if (missing.includes("TWILIO_SMS_FROM")) {
129
- console.log('export TWILIO_SMS_FROM="+1234567890" # Twilio number');
130
- }
131
- if (missing.includes("TWILIO_SMS_TO")) {
132
- console.log('export TWILIO_SMS_TO="+1234567890" # Your phone');
133
- }
134
- console.log(chalk.gray("\u2500".repeat(50)));
135
- }
136
- console.log();
137
- }
138
- async function configureNotifications() {
139
- console.log(chalk.blue.bold("\nNotification Setup\n"));
140
- const config = loadSMSConfig();
141
- const { missing } = getMissingConfig();
142
- const { enable } = await inquirer.prompt([
143
- {
144
- type: "confirm",
145
- name: "enable",
146
- message: "Enable SMS/WhatsApp notifications?",
147
- default: config.enabled
148
- }
149
- ]);
150
- if (!enable) {
151
- config.enabled = false;
152
- saveSMSConfig(config);
153
- console.log(chalk.yellow("Notifications disabled"));
154
- return;
155
- }
156
- const { channel } = await inquirer.prompt([
157
- {
158
- type: "list",
159
- name: "channel",
160
- message: "Which channel do you want to use?",
161
- choices: [
162
- {
163
- name: "WhatsApp (recommended - cheaper for conversations)",
164
- value: "whatsapp"
165
- },
166
- { name: "SMS (requires A2P 10DLC registration for US)", value: "sms" }
167
- ],
168
- default: config.channel
169
- }
170
- ]);
171
- config.channel = channel;
172
- if (missing.includes("TWILIO_ACCOUNT_SID") || missing.includes("TWILIO_AUTH_TOKEN")) {
173
- console.log(chalk.yellow("\nTwilio credentials not found in environment."));
174
- const { hasAccount } = await inquirer.prompt([
175
- {
176
- type: "confirm",
177
- name: "hasAccount",
178
- message: "Do you have a Twilio account?",
179
- default: true
180
- }
181
- ]);
182
- if (!hasAccount) {
183
- console.log(chalk.cyan("\nCreate a free Twilio account:"));
184
- console.log(" https://www.twilio.com/try-twilio\n");
185
- console.log("Then run this command again.");
186
- return;
187
- }
188
- const { saveToEnv } = await inquirer.prompt([
189
- {
190
- type: "confirm",
191
- name: "saveToEnv",
192
- message: "Would you like to save credentials to ~/.stackmemory/.env?",
193
- default: true
194
- }
195
- ]);
196
- if (saveToEnv) {
197
- const { accountSid, authToken } = await inquirer.prompt([
198
- {
199
- type: "input",
200
- name: "accountSid",
201
- message: "Twilio Account SID:",
202
- validate: (input) => input.startsWith("AC") ? true : "Account SID should start with AC"
203
- },
204
- {
205
- type: "password",
206
- name: "authToken",
207
- message: "Twilio Auth Token:",
208
- mask: "*"
209
- }
210
- ]);
211
- saveToEnvFile({
212
- TWILIO_ACCOUNT_SID: accountSid,
213
- TWILIO_AUTH_TOKEN: authToken
214
- });
215
- console.log(chalk.green("Credentials saved to ~/.stackmemory/.env"));
216
- }
217
- }
218
- if (channel === "whatsapp") {
219
- console.log(chalk.cyan("\nWhatsApp Setup:"));
220
- console.log(
221
- " 1. Go to: https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn"
222
- );
223
- console.log(" 2. Note the sandbox number (e.g., +14155238886)");
224
- console.log(" 3. Send the join code from your phone\n");
225
- const { whatsappFrom, whatsappTo } = await inquirer.prompt([
226
- {
227
- type: "input",
228
- name: "whatsappFrom",
229
- message: "Twilio WhatsApp number (sandbox):",
230
- default: config.whatsappFromNumber || "+14155238886"
231
- },
232
- {
233
- type: "input",
234
- name: "whatsappTo",
235
- message: "Your phone number:",
236
- default: config.whatsappToNumber,
237
- validate: (input) => input.startsWith("+") ? true : "Include country code (e.g., +1234567890)"
238
- }
239
- ]);
240
- saveToEnvFile({
241
- TWILIO_WHATSAPP_FROM: whatsappFrom,
242
- TWILIO_WHATSAPP_TO: whatsappTo,
243
- TWILIO_CHANNEL: "whatsapp"
244
- });
245
- } else {
246
- console.log(chalk.cyan("\nSMS Setup:"));
247
- console.log(
248
- chalk.yellow(" Note: US carriers require A2P 10DLC registration")
249
- );
250
- console.log(
251
- " Register at: https://console.twilio.com/us1/develop/sms/settings/compliance\n"
252
- );
253
- const { smsFrom, smsTo } = await inquirer.prompt([
254
- {
255
- type: "input",
256
- name: "smsFrom",
257
- message: "Twilio SMS number:",
258
- default: config.smsFromNumber
259
- },
260
- {
261
- type: "input",
262
- name: "smsTo",
263
- message: "Your phone number:",
264
- default: config.smsToNumber,
265
- validate: (input) => input.startsWith("+") ? true : "Include country code (e.g., +1234567890)"
266
- }
267
- ]);
268
- saveToEnvFile({
269
- TWILIO_SMS_FROM: smsFrom,
270
- TWILIO_SMS_TO: smsTo,
271
- TWILIO_CHANNEL: "sms"
272
- });
273
- }
274
- config.enabled = true;
275
- saveSMSConfig(config);
276
- console.log(chalk.green("\nNotifications configured!"));
277
- console.log(chalk.gray("Test with: stackmemory notify test"));
278
- }
279
- function saveToEnvFile(vars) {
280
- const envDir = join(homedir(), ".stackmemory");
281
- const envPath = join(envDir, ".env");
282
- if (!existsSync(envDir)) {
283
- mkdirSync(envDir, { recursive: true });
284
- }
285
- let content = "";
286
- if (existsSync(envPath)) {
287
- content = readFileSync(envPath, "utf8");
288
- }
289
- for (const [key, value] of Object.entries(vars)) {
290
- const regex = new RegExp(`^${key}=.*$`, "m");
291
- const line = `${key}="${value}"`;
292
- if (regex.test(content)) {
293
- content = content.replace(regex, line);
294
- } else {
295
- content += `${content.endsWith("\n") || content === "" ? "" : "\n"}${line}
296
- `;
297
- }
298
- }
299
- writeFileSync(envPath, content);
300
- }
301
- var settings_default = createSettingsCommand;
302
- export {
303
- createSettingsCommand,
304
- settings_default as default
305
- };
306
- //# sourceMappingURL=settings.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/cli/commands/settings.ts"],
4
- "sourcesContent": ["/**\n * CLI command for viewing and configuring StackMemory settings\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport inquirer from 'inquirer';\nimport { existsSync, writeFileSync, mkdirSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\nimport {\n loadSMSConfig,\n saveSMSConfig,\n getMissingConfig,\n type MessageChannel,\n} from '../../hooks/sms-notify.js';\n\nexport function createSettingsCommand(): Command {\n const cmd = new Command('settings')\n .description('View and configure StackMemory settings')\n .addHelpText(\n 'after',\n `\nExamples:\n stackmemory settings Show all settings and missing config\n stackmemory settings notifications Configure notifications interactively\n stackmemory settings env Show required environment variables\n`\n );\n\n cmd\n .command('show')\n .description('Show current settings and what is missing')\n .action(() => {\n showSettings();\n });\n\n cmd\n .command('notifications')\n .alias('notify')\n .description('Configure notifications interactively')\n .action(async () => {\n await configureNotifications();\n });\n\n cmd\n .command('env')\n .description('Show required environment variables')\n .action(() => {\n showEnvVars();\n });\n\n // Default action - show settings\n cmd.action(() => {\n showSettings();\n });\n\n return cmd;\n}\n\nfunction showSettings(): void {\n console.log(chalk.blue.bold('\\nStackMemory Settings\\n'));\n\n // Notification settings\n const config = loadSMSConfig();\n const { missing, configured, ready } = getMissingConfig();\n\n console.log(chalk.cyan('Notifications:'));\n console.log(\n ` ${chalk.gray('Enabled:')} ${config.enabled ? chalk.green('yes') : chalk.yellow('no')}`\n );\n console.log(\n ` ${chalk.gray('Channel:')} ${config.channel === 'whatsapp' ? chalk.cyan('WhatsApp') : chalk.blue('SMS')}`\n );\n console.log(\n ` ${chalk.gray('Ready:')} ${ready ? chalk.green('yes') : chalk.red('no')}`\n );\n\n if (configured.length > 0) {\n console.log(`\\n ${chalk.green('Configured:')}`);\n configured.forEach((item) => {\n console.log(` ${chalk.green('\u2713')} ${item}`);\n });\n }\n\n if (missing.length > 0) {\n console.log(`\\n ${chalk.red('Missing:')}`);\n missing.forEach((item) => {\n console.log(` ${chalk.red('\u2717')} ${item}`);\n });\n\n console.log(\n chalk.yellow('\\n Run \"stackmemory settings notifications\" to configure')\n );\n }\n\n // Show ngrok URL if available\n const ngrokUrlPath = join(homedir(), '.stackmemory', 'ngrok-url.txt');\n if (existsSync(ngrokUrlPath)) {\n const ngrokUrl = readFileSync(ngrokUrlPath, 'utf8').trim();\n console.log(`\\n ${chalk.gray('Webhook URL:')} ${ngrokUrl}/sms/incoming`);\n }\n\n console.log();\n}\n\nfunction showEnvVars(): void {\n console.log(chalk.blue.bold('\\nRequired Environment Variables\\n'));\n\n const { missing, configured } = getMissingConfig();\n const config = loadSMSConfig();\n\n console.log(chalk.cyan('Twilio Credentials (required):'));\n console.log(\n ` ${configured.includes('TWILIO_ACCOUNT_SID') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_ACCOUNT_SID`\n );\n console.log(\n ` ${configured.includes('TWILIO_AUTH_TOKEN') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_AUTH_TOKEN`\n );\n\n console.log(\n chalk.cyan(\n `\\n${config.channel === 'whatsapp' ? 'WhatsApp' : 'SMS'} Numbers:`\n )\n );\n if (config.channel === 'whatsapp') {\n console.log(\n ` ${configured.includes('TWILIO_WHATSAPP_FROM') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_WHATSAPP_FROM`\n );\n console.log(\n ` ${configured.includes('TWILIO_WHATSAPP_TO') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_WHATSAPP_TO`\n );\n } else {\n console.log(\n ` ${configured.includes('TWILIO_SMS_FROM') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_SMS_FROM`\n );\n console.log(\n ` ${configured.includes('TWILIO_SMS_TO') ? chalk.green('\u2713') : chalk.red('\u2717')} TWILIO_SMS_TO`\n );\n }\n\n if (missing.length > 0) {\n console.log(chalk.yellow('\\nAdd to your .env file or shell profile:'));\n console.log(chalk.gray('\u2500'.repeat(50)));\n\n if (missing.includes('TWILIO_ACCOUNT_SID')) {\n console.log('export TWILIO_ACCOUNT_SID=\"your_account_sid\"');\n }\n if (missing.includes('TWILIO_AUTH_TOKEN')) {\n console.log('export TWILIO_AUTH_TOKEN=\"your_auth_token\"');\n }\n if (missing.includes('TWILIO_WHATSAPP_FROM')) {\n console.log(\n 'export TWILIO_WHATSAPP_FROM=\"+14155238886\" # Twilio sandbox'\n );\n }\n if (missing.includes('TWILIO_WHATSAPP_TO')) {\n console.log('export TWILIO_WHATSAPP_TO=\"+1234567890\" # Your phone');\n }\n if (missing.includes('TWILIO_SMS_FROM')) {\n console.log('export TWILIO_SMS_FROM=\"+1234567890\" # Twilio number');\n }\n if (missing.includes('TWILIO_SMS_TO')) {\n console.log('export TWILIO_SMS_TO=\"+1234567890\" # Your phone');\n }\n\n console.log(chalk.gray('\u2500'.repeat(50)));\n }\n\n console.log();\n}\n\nasync function configureNotifications(): Promise<void> {\n console.log(chalk.blue.bold('\\nNotification Setup\\n'));\n\n const config = loadSMSConfig();\n const { missing } = getMissingConfig();\n\n // Ask if they want to enable\n const { enable } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'enable',\n message: 'Enable SMS/WhatsApp notifications?',\n default: config.enabled,\n },\n ]);\n\n if (!enable) {\n config.enabled = false;\n saveSMSConfig(config);\n console.log(chalk.yellow('Notifications disabled'));\n return;\n }\n\n // Choose channel\n const { channel } = await inquirer.prompt([\n {\n type: 'list',\n name: 'channel',\n message: 'Which channel do you want to use?',\n choices: [\n {\n name: 'WhatsApp (recommended - cheaper for conversations)',\n value: 'whatsapp',\n },\n { name: 'SMS (requires A2P 10DLC registration for US)', value: 'sms' },\n ],\n default: config.channel,\n },\n ]);\n\n config.channel = channel as MessageChannel;\n\n // Check for missing credentials\n if (\n missing.includes('TWILIO_ACCOUNT_SID') ||\n missing.includes('TWILIO_AUTH_TOKEN')\n ) {\n console.log(chalk.yellow('\\nTwilio credentials not found in environment.'));\n\n const { hasAccount } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'hasAccount',\n message: 'Do you have a Twilio account?',\n default: true,\n },\n ]);\n\n if (!hasAccount) {\n console.log(chalk.cyan('\\nCreate a free Twilio account:'));\n console.log(' https://www.twilio.com/try-twilio\\n');\n console.log('Then run this command again.');\n return;\n }\n\n const { saveToEnv } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'saveToEnv',\n message: 'Would you like to save credentials to ~/.stackmemory/.env?',\n default: true,\n },\n ]);\n\n if (saveToEnv) {\n const { accountSid, authToken } = await inquirer.prompt([\n {\n type: 'input',\n name: 'accountSid',\n message: 'Twilio Account SID:',\n validate: (input: string) =>\n input.startsWith('AC') ? true : 'Account SID should start with AC',\n },\n {\n type: 'password',\n name: 'authToken',\n message: 'Twilio Auth Token:',\n mask: '*',\n },\n ]);\n\n saveToEnvFile({\n TWILIO_ACCOUNT_SID: accountSid,\n TWILIO_AUTH_TOKEN: authToken,\n });\n console.log(chalk.green('Credentials saved to ~/.stackmemory/.env'));\n }\n }\n\n // Get phone numbers\n if (channel === 'whatsapp') {\n console.log(chalk.cyan('\\nWhatsApp Setup:'));\n console.log(\n ' 1. Go to: https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn'\n );\n console.log(' 2. Note the sandbox number (e.g., +14155238886)');\n console.log(' 3. Send the join code from your phone\\n');\n\n const { whatsappFrom, whatsappTo } = await inquirer.prompt([\n {\n type: 'input',\n name: 'whatsappFrom',\n message: 'Twilio WhatsApp number (sandbox):',\n default: config.whatsappFromNumber || '+14155238886',\n },\n {\n type: 'input',\n name: 'whatsappTo',\n message: 'Your phone number:',\n default: config.whatsappToNumber,\n validate: (input: string) =>\n input.startsWith('+')\n ? true\n : 'Include country code (e.g., +1234567890)',\n },\n ]);\n\n saveToEnvFile({\n TWILIO_WHATSAPP_FROM: whatsappFrom,\n TWILIO_WHATSAPP_TO: whatsappTo,\n TWILIO_CHANNEL: 'whatsapp',\n });\n } else {\n console.log(chalk.cyan('\\nSMS Setup:'));\n console.log(\n chalk.yellow(' Note: US carriers require A2P 10DLC registration')\n );\n console.log(\n ' Register at: https://console.twilio.com/us1/develop/sms/settings/compliance\\n'\n );\n\n const { smsFrom, smsTo } = await inquirer.prompt([\n {\n type: 'input',\n name: 'smsFrom',\n message: 'Twilio SMS number:',\n default: config.smsFromNumber,\n },\n {\n type: 'input',\n name: 'smsTo',\n message: 'Your phone number:',\n default: config.smsToNumber,\n validate: (input: string) =>\n input.startsWith('+')\n ? true\n : 'Include country code (e.g., +1234567890)',\n },\n ]);\n\n saveToEnvFile({\n TWILIO_SMS_FROM: smsFrom,\n TWILIO_SMS_TO: smsTo,\n TWILIO_CHANNEL: 'sms',\n });\n }\n\n config.enabled = true;\n saveSMSConfig(config);\n\n console.log(chalk.green('\\nNotifications configured!'));\n console.log(chalk.gray('Test with: stackmemory notify test'));\n}\n\nfunction saveToEnvFile(vars: Record<string, string>): void {\n const envDir = join(homedir(), '.stackmemory');\n const envPath = join(envDir, '.env');\n\n if (!existsSync(envDir)) {\n mkdirSync(envDir, { recursive: true });\n }\n\n let content = '';\n if (existsSync(envPath)) {\n content = readFileSync(envPath, 'utf8');\n }\n\n for (const [key, value] of Object.entries(vars)) {\n const regex = new RegExp(`^${key}=.*$`, 'm');\n const line = `${key}=\"${value}\"`;\n\n if (regex.test(content)) {\n content = content.replace(regex, line);\n } else {\n content += `${content.endsWith('\\n') || content === '' ? '' : '\\n'}${line}\\n`;\n }\n }\n\n writeFileSync(envPath, content);\n}\n\nexport default createSettingsCommand;\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/cli/commands/setup.ts"],
4
- "sourcesContent": ["/**\n * Setup commands for StackMemory onboarding\n * - setup-mcp: Auto-configure Claude Code MCP integration\n * - doctor: Diagnose common issues\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\nimport { execSync } from 'child_process';\n\n// Claude config paths\nconst CLAUDE_DIR = join(homedir(), '.claude');\nconst CLAUDE_CONFIG_FILE = join(CLAUDE_DIR, 'config.json');\nconst MCP_CONFIG_FILE = join(CLAUDE_DIR, 'stackmemory-mcp.json');\nconst HOOKS_JSON = join(CLAUDE_DIR, 'hooks.json');\n\ninterface DiagnosticResult {\n name: string;\n status: 'ok' | 'warn' | 'error';\n message: string;\n fix?: string;\n}\n\n/**\n * Create setup-mcp command\n */\nexport function createSetupMCPCommand(): Command {\n return new Command('setup-mcp')\n .description('Auto-configure Claude Code MCP integration')\n .option('--dry-run', 'Show what would be configured without making changes')\n .option('--reset', 'Reset MCP configuration to defaults')\n .action(async (options) => {\n console.log(chalk.cyan('\\nStackMemory MCP Setup\\n'));\n\n if (options.dryRun) {\n console.log(chalk.yellow('[DRY RUN] No changes will be made.\\n'));\n }\n\n // Step 1: Ensure Claude directory exists\n if (!existsSync(CLAUDE_DIR)) {\n if (options.dryRun) {\n console.log(chalk.gray(`Would create: ${CLAUDE_DIR}`));\n } else {\n mkdirSync(CLAUDE_DIR, { recursive: true });\n console.log(chalk.green('[OK]') + ' Created ~/.claude directory');\n }\n }\n\n // Step 2: Create MCP server configuration\n const mcpConfig = {\n mcpServers: {\n stackmemory: {\n command: 'stackmemory',\n args: ['mcp-server'],\n env: {\n NODE_ENV: 'production',\n },\n },\n },\n };\n\n if (options.dryRun) {\n console.log(\n chalk.gray(`Would write MCP config to: ${MCP_CONFIG_FILE}`)\n );\n console.log(chalk.gray(JSON.stringify(mcpConfig, null, 2)));\n } else {\n writeFileSync(MCP_CONFIG_FILE, JSON.stringify(mcpConfig, null, 2));\n console.log(chalk.green('[OK]') + ' Created MCP server configuration');\n }\n\n // Step 3: Update Claude config.json to reference MCP config\n let claudeConfig: Record<string, unknown> = {};\n if (existsSync(CLAUDE_CONFIG_FILE)) {\n try {\n claudeConfig = JSON.parse(readFileSync(CLAUDE_CONFIG_FILE, 'utf8'));\n } catch {\n console.log(\n chalk.yellow('[WARN]') +\n ' Could not parse existing config.json, creating new'\n );\n }\n }\n\n // Ensure mcp.configFiles array includes our config\n if (!claudeConfig.mcp) {\n claudeConfig.mcp = {};\n }\n const mcp = claudeConfig.mcp as Record<string, unknown>;\n if (!mcp.configFiles) {\n mcp.configFiles = [];\n }\n const configFiles = mcp.configFiles as string[];\n if (!configFiles.includes(MCP_CONFIG_FILE)) {\n configFiles.push(MCP_CONFIG_FILE);\n }\n\n if (options.dryRun) {\n console.log(chalk.gray(`Would update: ${CLAUDE_CONFIG_FILE}`));\n } else {\n writeFileSync(\n CLAUDE_CONFIG_FILE,\n JSON.stringify(claudeConfig, null, 2)\n );\n console.log(chalk.green('[OK]') + ' Updated Claude config.json');\n }\n\n // Step 4: Validate configuration\n console.log(chalk.cyan('\\nValidating configuration...'));\n\n // Check stackmemory command is available\n try {\n execSync('stackmemory --version', { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' stackmemory CLI is installed');\n } catch {\n console.log(chalk.yellow('[WARN]') + ' stackmemory CLI not in PATH');\n console.log(chalk.gray(' You may need to restart your terminal'));\n }\n\n // Check Claude Code is available\n try {\n execSync('claude --version', { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' Claude Code is installed');\n } catch {\n console.log(chalk.yellow('[WARN]') + ' Claude Code not found');\n console.log(chalk.gray(' Install from: https://claude.ai/code'));\n }\n\n // Final instructions\n if (!options.dryRun) {\n console.log(chalk.green('\\nMCP setup complete!'));\n console.log(chalk.cyan('\\nNext steps:'));\n console.log(chalk.white(' 1. Restart Claude Code'));\n console.log(\n chalk.white(\n ' 2. The StackMemory MCP tools will be available automatically'\n )\n );\n console.log(\n chalk.gray(\n '\\nTo verify: Run \"stackmemory doctor\" to check all integrations'\n )\n );\n }\n });\n}\n\n/**\n * Create doctor command for diagnostics\n */\nexport function createDoctorCommand(): Command {\n return new Command('doctor')\n .description('Diagnose StackMemory configuration and common issues')\n .option('--fix', 'Attempt to automatically fix issues')\n .action(async (options) => {\n console.log(chalk.cyan('\\nStackMemory Doctor\\n'));\n console.log(chalk.gray('Checking configuration and dependencies...\\n'));\n\n const results: DiagnosticResult[] = [];\n\n // 1. Check project initialization\n const projectDir = join(process.cwd(), '.stackmemory');\n const dbPath = join(projectDir, 'context.db');\n if (existsSync(dbPath)) {\n results.push({\n name: 'Project Initialization',\n status: 'ok',\n message: 'StackMemory is initialized in this project',\n });\n } else if (existsSync(projectDir)) {\n results.push({\n name: 'Project Initialization',\n status: 'warn',\n message: '.stackmemory directory exists but database not found',\n fix: 'Run: stackmemory init',\n });\n } else {\n results.push({\n name: 'Project Initialization',\n status: 'error',\n message: 'StackMemory not initialized in this project',\n fix: 'Run: stackmemory init',\n });\n }\n\n // 2. Check database integrity\n if (existsSync(dbPath)) {\n try {\n const Database = (await import('better-sqlite3')).default;\n const db = new Database(dbPath, { readonly: true });\n const tables = db\n .prepare(\"SELECT name FROM sqlite_master WHERE type='table'\")\n .all() as { name: string }[];\n db.close();\n\n const hasFrames = tables.some((t) => t.name === 'frames');\n if (hasFrames) {\n results.push({\n name: 'Database Integrity',\n status: 'ok',\n message: `Database has ${tables.length} tables`,\n });\n } else {\n results.push({\n name: 'Database Integrity',\n status: 'warn',\n message: 'Database exists but missing expected tables',\n fix: 'Run: stackmemory init --interactive',\n });\n }\n } catch (error) {\n results.push({\n name: 'Database Integrity',\n status: 'error',\n message: `Database error: ${(error as Error).message}`,\n fix: 'Remove .stackmemory/context.db and run: stackmemory init',\n });\n }\n }\n\n // 3. Check MCP configuration\n if (existsSync(MCP_CONFIG_FILE)) {\n try {\n const config = JSON.parse(readFileSync(MCP_CONFIG_FILE, 'utf8'));\n if (config.mcpServers?.stackmemory) {\n results.push({\n name: 'MCP Configuration',\n status: 'ok',\n message: 'MCP server configured',\n });\n } else {\n results.push({\n name: 'MCP Configuration',\n status: 'warn',\n message:\n 'MCP config file exists but stackmemory server not configured',\n fix: 'Run: stackmemory setup-mcp',\n });\n }\n } catch {\n results.push({\n name: 'MCP Configuration',\n status: 'error',\n message: 'Invalid MCP configuration file',\n fix: 'Run: stackmemory setup-mcp --reset',\n });\n }\n } else {\n results.push({\n name: 'MCP Configuration',\n status: 'warn',\n message: 'MCP not configured for Claude Code',\n fix: 'Run: stackmemory setup-mcp',\n });\n }\n\n // 4. Check Claude hooks\n if (existsSync(HOOKS_JSON)) {\n try {\n const hooks = JSON.parse(readFileSync(HOOKS_JSON, 'utf8'));\n const hasTraceHook = !!hooks['tool-use-approval'];\n if (hasTraceHook) {\n results.push({\n name: 'Claude Hooks',\n status: 'ok',\n message: 'Tool tracing hook installed',\n });\n } else {\n results.push({\n name: 'Claude Hooks',\n status: 'warn',\n message: 'Hooks file exists but tracing not configured',\n fix: 'Run: stackmemory hooks install',\n });\n }\n } catch {\n results.push({\n name: 'Claude Hooks',\n status: 'warn',\n message: 'Could not read hooks.json',\n });\n }\n } else {\n results.push({\n name: 'Claude Hooks',\n status: 'warn',\n message: 'Claude hooks not installed (optional)',\n fix: 'Run: stackmemory hooks install',\n });\n }\n\n // 5. Check environment variables\n const envChecks = [\n { key: 'LINEAR_API_KEY', name: 'Linear API Key', optional: true },\n ];\n\n for (const check of envChecks) {\n const value = process.env[check.key];\n if (value) {\n results.push({\n name: check.name,\n status: 'ok',\n message: 'Environment variable set',\n });\n } else if (!check.optional) {\n results.push({\n name: check.name,\n status: 'error',\n message: 'Required environment variable not set',\n fix: `Set ${check.key} in your .env file`,\n });\n }\n // Skip optional env vars that aren't set\n }\n\n // 6. Check file permissions\n const homeStackmemory = join(homedir(), '.stackmemory');\n if (existsSync(homeStackmemory)) {\n try {\n const testFile = join(homeStackmemory, '.write-test');\n writeFileSync(testFile, 'test');\n const { unlinkSync } = await import('fs');\n unlinkSync(testFile);\n results.push({\n name: 'File Permissions',\n status: 'ok',\n message: '~/.stackmemory is writable',\n });\n } catch {\n results.push({\n name: 'File Permissions',\n status: 'error',\n message: '~/.stackmemory is not writable',\n fix: 'Run: chmod 700 ~/.stackmemory',\n });\n }\n }\n\n // Display results\n let hasErrors = false;\n let hasWarnings = false;\n\n for (const result of results) {\n const icon =\n result.status === 'ok'\n ? chalk.green('[OK]')\n : result.status === 'warn'\n ? chalk.yellow('[WARN]')\n : chalk.red('[ERROR]');\n\n console.log(`${icon} ${result.name}`);\n console.log(chalk.gray(` ${result.message}`));\n\n if (result.fix) {\n console.log(chalk.cyan(` Fix: ${result.fix}`));\n\n if (options.fix && result.status !== 'ok') {\n // Auto-fix logic for specific issues\n if (result.fix.includes('stackmemory setup-mcp')) {\n console.log(chalk.gray(' Attempting auto-fix...'));\n try {\n execSync('stackmemory setup-mcp', { stdio: 'inherit' });\n } catch {\n console.log(chalk.red(' Auto-fix failed'));\n }\n }\n }\n }\n\n if (result.status === 'error') hasErrors = true;\n if (result.status === 'warn') hasWarnings = true;\n }\n\n // Summary\n console.log('');\n if (hasErrors) {\n console.log(\n chalk.red('Some issues need attention. Run suggested fixes above.')\n );\n process.exit(1);\n } else if (hasWarnings) {\n console.log(\n chalk.yellow(\n 'StackMemory is working but some optional features are not configured.'\n )\n );\n } else {\n console.log(\n chalk.green('All checks passed! StackMemory is properly configured.')\n );\n }\n });\n}\n\n/**\n * Create setup-plugins command\n */\nexport function createSetupPluginsCommand(): Command {\n const cmd = new Command('setup-plugins');\n\n cmd\n .description('Install StackMemory plugins for Claude Code')\n .option('--force', 'Overwrite existing plugins')\n .action(async (options) => {\n console.log(\n chalk.cyan('Installing StackMemory plugins for Claude Code...\\n')\n );\n\n const pluginsDir = join(CLAUDE_DIR, 'plugins');\n\n // Ensure plugins directory exists\n if (!existsSync(pluginsDir)) {\n mkdirSync(pluginsDir, { recursive: true });\n console.log(chalk.gray(`Created: ${pluginsDir}`));\n }\n\n // Find the plugins source directory\n // Check multiple locations: local dev, global npm, local npm\n const possiblePaths = [\n join(process.cwd(), 'plugins'),\n join(__dirname, '..', '..', '..', 'plugins'),\n join(homedir(), '.stackmemory', 'plugins'),\n ];\n\n // Try to find via npm root\n try {\n const globalRoot = execSync('npm root -g', {\n encoding: 'utf-8',\n }).trim();\n possiblePaths.push(\n join(globalRoot, '@stackmemoryai', 'stackmemory', 'plugins')\n );\n } catch {\n // npm not available or failed\n }\n\n let sourcePluginsDir: string | undefined;\n for (const p of possiblePaths) {\n if (existsSync(p) && existsSync(join(p, 'stackmemory'))) {\n sourcePluginsDir = p;\n break;\n }\n }\n\n if (!sourcePluginsDir) {\n console.log(chalk.red('Could not find StackMemory plugins directory'));\n console.log(chalk.gray('Searched:'));\n possiblePaths.forEach((p) => console.log(chalk.gray(` - ${p}`)));\n process.exit(1);\n }\n\n console.log(chalk.gray(`Source: ${sourcePluginsDir}\\n`));\n\n // List of plugins to install\n const plugins = ['stackmemory', 'ralph-wiggum'];\n let installed = 0;\n\n for (const plugin of plugins) {\n const sourcePath = join(sourcePluginsDir, plugin);\n const targetPath = join(pluginsDir, plugin);\n\n if (!existsSync(sourcePath)) {\n console.log(chalk.yellow(` [SKIP] ${plugin} - not found in source`));\n continue;\n }\n\n if (existsSync(targetPath)) {\n if (options.force) {\n // Remove existing\n try {\n execSync(`rm -rf \"${targetPath}\"`, { encoding: 'utf-8' });\n } catch {\n console.log(\n chalk.red(` [ERROR] ${plugin} - could not remove existing`)\n );\n continue;\n }\n } else {\n console.log(\n chalk.gray(` [EXISTS] ${plugin} - use --force to overwrite`)\n );\n continue;\n }\n }\n\n // Create symlink\n try {\n execSync(`ln -s \"${sourcePath}\" \"${targetPath}\"`, {\n encoding: 'utf-8',\n });\n console.log(chalk.green(` [OK] ${plugin}`));\n installed++;\n } catch (err) {\n console.log(\n chalk.red(` [ERROR] ${plugin} - ${(err as Error).message}`)\n );\n }\n }\n\n console.log('');\n if (installed > 0) {\n console.log(chalk.green(`Installed ${installed} plugin(s)`));\n console.log(chalk.gray('\\nAvailable commands in Claude Code:'));\n console.log(\n chalk.white(' /sm-status ') +\n chalk.gray('Show StackMemory status')\n );\n console.log(\n chalk.white(' /sm-capture ') +\n chalk.gray('Capture work for handoff')\n );\n console.log(\n chalk.white(' /sm-restore ') +\n chalk.gray('Restore from last handoff')\n );\n console.log(\n chalk.white(' /sm-decision ') + chalk.gray('Record a decision')\n );\n console.log(\n chalk.white(' /sm-help ') + chalk.gray('Show all commands')\n );\n console.log(\n chalk.white(' /ralph-loop ') +\n chalk.gray('Start Ralph iteration loop')\n );\n } else {\n console.log(chalk.yellow('No plugins installed'));\n }\n });\n\n return cmd;\n}\n\n/**\n * Create setup-remote command for remote MCP server auto-start\n */\nexport function createSetupRemoteCommand(): Command {\n const cmd = new Command('setup-remote');\n\n cmd\n .description('Configure remote MCP server to auto-start on boot')\n .option('--port <number>', 'Port for remote server', '3847')\n .option('--project <path>', 'Project root directory')\n .option('--uninstall', 'Remove the auto-start service')\n .option('--status', 'Check service status')\n .action(async (options) => {\n const home = homedir();\n const platform = process.platform;\n\n // Service configuration\n const serviceName =\n platform === 'darwin'\n ? 'com.stackmemory.remote-mcp'\n : 'stackmemory-remote-mcp';\n const serviceDir =\n platform === 'darwin'\n ? join(home, 'Library', 'LaunchAgents')\n : join(home, '.config', 'systemd', 'user');\n const serviceFile =\n platform === 'darwin'\n ? join(serviceDir, `${serviceName}.plist`)\n : join(serviceDir, `${serviceName}.service`);\n const logDir = join(home, '.stackmemory', 'logs');\n const pidFile = join(home, '.stackmemory', 'remote-mcp.pid');\n\n // Handle status check\n if (options.status) {\n console.log(chalk.cyan('\\nRemote MCP Server Status\\n'));\n\n if (platform === 'darwin') {\n try {\n const result = execSync(\n `launchctl list | grep ${serviceName} || true`,\n { encoding: 'utf-8' }\n );\n if (result.includes(serviceName)) {\n console.log(chalk.green('[RUNNING]') + ' Service is active');\n try {\n const health = execSync(\n `curl -s http://localhost:${options.port}/health 2>/dev/null`,\n { encoding: 'utf-8' }\n );\n const data = JSON.parse(health);\n console.log(chalk.gray(` Project: ${data.projectId}`));\n console.log(\n chalk.gray(` URL: http://localhost:${options.port}/sse`)\n );\n } catch {\n console.log(\n chalk.yellow(' Server not responding to health check')\n );\n }\n } else {\n console.log(chalk.yellow('[STOPPED]') + ' Service not running');\n }\n } catch {\n console.log(chalk.yellow('[UNKNOWN]') + ' Could not check status');\n }\n } else if (platform === 'linux') {\n try {\n execSync(`systemctl --user is-active ${serviceName}`, {\n stdio: 'pipe',\n });\n console.log(chalk.green('[RUNNING]') + ' Service is active');\n } catch {\n console.log(chalk.yellow('[STOPPED]') + ' Service not running');\n }\n }\n\n console.log(chalk.gray(`\\nService file: ${serviceFile}`));\n console.log(chalk.gray(`Logs: ${logDir}/remote-mcp.log`));\n return;\n }\n\n // Handle uninstall\n if (options.uninstall) {\n console.log(chalk.cyan('\\nUninstalling Remote MCP Server Service\\n'));\n\n if (platform === 'darwin') {\n try {\n execSync(`launchctl unload \"${serviceFile}\"`, { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' Service unloaded');\n } catch {\n console.log(chalk.gray('[SKIP]') + ' Service was not loaded');\n }\n\n if (existsSync(serviceFile)) {\n const fs = await import('fs/promises');\n await fs.unlink(serviceFile);\n console.log(chalk.green('[OK]') + ' Service file removed');\n }\n } else if (platform === 'linux') {\n try {\n execSync(`systemctl --user stop ${serviceName}`, { stdio: 'pipe' });\n execSync(`systemctl --user disable ${serviceName}`, {\n stdio: 'pipe',\n });\n console.log(chalk.green('[OK]') + ' Service stopped and disabled');\n } catch {\n console.log(chalk.gray('[SKIP]') + ' Service was not running');\n }\n\n if (existsSync(serviceFile)) {\n const fs = await import('fs/promises');\n await fs.unlink(serviceFile);\n execSync('systemctl --user daemon-reload', { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' Service file removed');\n }\n }\n\n console.log(chalk.green('\\nRemote MCP service uninstalled'));\n return;\n }\n\n // Install service\n console.log(chalk.cyan('\\nSetting up Remote MCP Server Auto-Start\\n'));\n\n if (platform !== 'darwin' && platform !== 'linux') {\n console.log(\n chalk.red('Auto-start is only supported on macOS and Linux')\n );\n console.log(chalk.gray('\\nManual start: stackmemory mcp-remote'));\n return;\n }\n\n // Create directories\n if (!existsSync(serviceDir)) {\n mkdirSync(serviceDir, { recursive: true });\n }\n if (!existsSync(logDir)) {\n mkdirSync(logDir, { recursive: true });\n }\n\n // Find node and stackmemory paths\n let nodePath: string;\n try {\n nodePath = execSync('which node', { encoding: 'utf-8' }).trim();\n } catch {\n nodePath = '/usr/local/bin/node';\n }\n\n // Find stackmemory CLI path\n let stackmemoryPath: string;\n try {\n stackmemoryPath = execSync('which stackmemory', {\n encoding: 'utf-8',\n }).trim();\n } catch {\n // Try npm global path\n try {\n const npmRoot = execSync('npm root -g', { encoding: 'utf-8' }).trim();\n stackmemoryPath = join(\n npmRoot,\n '@stackmemoryai',\n 'stackmemory',\n 'dist',\n 'cli',\n 'index.js'\n );\n } catch {\n stackmemoryPath = 'npx stackmemory';\n }\n }\n\n const projectPath = options.project || home;\n const port = options.port || '3847';\n\n if (platform === 'darwin') {\n // Generate macOS launchd plist\n const plist = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n <key>Label</key>\n <string>${serviceName}</string>\n\n <key>ProgramArguments</key>\n <array>\n <string>${stackmemoryPath.includes('npx') ? 'npx' : nodePath}</string>\n ${stackmemoryPath.includes('npx') ? '<string>stackmemory</string>' : `<string>${stackmemoryPath}</string>`}\n <string>mcp-remote</string>\n <string>--port</string>\n <string>${port}</string>\n <string>--project</string>\n <string>${projectPath}</string>\n </array>\n\n <key>RunAtLoad</key>\n <true/>\n\n <key>KeepAlive</key>\n <dict>\n <key>SuccessfulExit</key>\n <false/>\n </dict>\n\n <key>WorkingDirectory</key>\n <string>${projectPath}</string>\n\n <key>StandardOutPath</key>\n <string>${logDir}/remote-mcp.log</string>\n\n <key>StandardErrorPath</key>\n <string>${logDir}/remote-mcp.error.log</string>\n\n <key>EnvironmentVariables</key>\n <dict>\n <key>HOME</key>\n <string>${home}</string>\n <key>PATH</key>\n <string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin</string>\n <key>NODE_ENV</key>\n <string>production</string>\n </dict>\n\n <key>ThrottleInterval</key>\n <integer>10</integer>\n</dict>\n</plist>`;\n\n writeFileSync(serviceFile, plist);\n console.log(chalk.green('[OK]') + ' Created launchd service file');\n\n // Unload if already loaded\n try {\n execSync(`launchctl unload \"${serviceFile}\" 2>/dev/null`, {\n stdio: 'pipe',\n });\n } catch {\n // Not loaded, ignore\n }\n\n // Load the service\n try {\n execSync(`launchctl load -w \"${serviceFile}\"`, { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' Service loaded and started');\n } catch (err) {\n console.log(chalk.red('[ERROR]') + ` Failed to load service: ${err}`);\n return;\n }\n } else if (platform === 'linux') {\n // Generate systemd service\n const service = `[Unit]\nDescription=StackMemory Remote MCP Server\nDocumentation=https://github.com/stackmemoryai/stackmemory\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=${stackmemoryPath.includes('npx') ? 'npx stackmemory' : `${nodePath} ${stackmemoryPath}`} mcp-remote --port ${port} --project ${projectPath}\nRestart=on-failure\nRestartSec=10\nWorkingDirectory=${projectPath}\n\nEnvironment=HOME=${home}\nEnvironment=PATH=/usr/local/bin:/usr/bin:/bin\nEnvironment=NODE_ENV=production\n\nStandardOutput=append:${logDir}/remote-mcp.log\nStandardError=append:${logDir}/remote-mcp.error.log\n\n[Install]\nWantedBy=default.target`;\n\n writeFileSync(serviceFile, service);\n console.log(chalk.green('[OK]') + ' Created systemd service file');\n\n try {\n execSync('systemctl --user daemon-reload', { stdio: 'pipe' });\n execSync(`systemctl --user enable ${serviceName}`, { stdio: 'pipe' });\n execSync(`systemctl --user start ${serviceName}`, { stdio: 'pipe' });\n console.log(chalk.green('[OK]') + ' Service enabled and started');\n } catch (err) {\n console.log(\n chalk.red('[ERROR]') + ` Failed to start service: ${err}`\n );\n return;\n }\n }\n\n // Verify it's running\n console.log(chalk.cyan('\\nVerifying server...\\n'));\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n try {\n const health = execSync(\n `curl -s http://localhost:${port}/health 2>/dev/null`,\n { encoding: 'utf-8' }\n );\n const data = JSON.parse(health);\n console.log(chalk.green('[OK]') + ' Server is running');\n console.log(chalk.gray(` Project: ${data.projectId}`));\n } catch {\n console.log(\n chalk.yellow('[WARN]') +\n ' Server not responding yet (may still be starting)'\n );\n }\n\n console.log(\n chalk.green('\\nRemote MCP Server configured for auto-start!')\n );\n console.log(chalk.cyan('\\nConnection info:'));\n console.log(chalk.white(` URL: http://localhost:${port}/sse`));\n console.log(chalk.white(` Health: http://localhost:${port}/health`));\n console.log(chalk.gray(`\\nLogs: ${logDir}/remote-mcp.log`));\n console.log(chalk.gray(`Service: ${serviceFile}`));\n console.log(chalk.cyan('\\nFor external access (ngrok):'));\n console.log(chalk.white(` ngrok http ${port}`));\n console.log(chalk.gray(' Then use the ngrok URL + /sse in Claude.ai'));\n });\n\n return cmd;\n}\n\n/**\n * Register setup commands\n */\nexport function registerSetupCommands(program: Command): void {\n program.addCommand(createSetupMCPCommand());\n program.addCommand(createDoctorCommand());\n program.addCommand(createSetupPluginsCommand());\n program.addCommand(createSetupRemoteCommand());\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/cli/commands/shell.ts"],
4
- "sourcesContent": ["/**\n * Shell Integration CLI Command\n * Install Sweep-powered completions for zsh/bash\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport {\n existsSync,\n readFileSync,\n writeFileSync,\n mkdirSync,\n copyFileSync,\n chmodSync,\n appendFileSync,\n} from 'fs';\nimport { join } from 'path';\n\n// __filename and __dirname are provided by esbuild banner for ESM compatibility\n\nfunction getShellType(): 'zsh' | 'bash' | 'unknown' {\n const shell = process.env.SHELL || '';\n if (shell.includes('zsh')) return 'zsh';\n if (shell.includes('bash')) return 'bash';\n return 'unknown';\n}\n\nfunction getShellRcFile(): string {\n const home = process.env.HOME || '';\n const shell = getShellType();\n\n if (shell === 'zsh') {\n return join(home, '.zshrc');\n } else if (shell === 'bash') {\n const bashrc = join(home, '.bashrc');\n const profile = join(home, '.bash_profile');\n return existsSync(bashrc) ? bashrc : profile;\n }\n\n return join(home, '.profile');\n}\n\nfunction findTemplateFile(filename: string): string | null {\n const locations = [\n join(process.cwd(), 'templates', 'shell', filename),\n join(\n process.cwd(),\n 'node_modules',\n '@stackmemoryai',\n 'stackmemory',\n 'templates',\n 'shell',\n filename\n ),\n join(dirname(dirname(dirname(__dirname))), 'templates', 'shell', filename),\n ];\n\n for (const loc of locations) {\n if (existsSync(loc)) {\n return loc;\n }\n }\n return null;\n}\n\nexport function createShellCommand(): Command {\n const cmd = new Command('shell')\n .description('Shell integration for Sweep-powered completions')\n .addHelpText(\n 'after',\n `\nExamples:\n stackmemory shell install Install shell completions\n stackmemory shell status Check installation status\n stackmemory shell uninstall Remove shell integration\n\nAfter installation:\n - Ctrl+] Request suggestion\n - Shift+Tab Accept suggestion\n - sweep_status Check status\n - sweep_toggle Enable/disable\n`\n );\n\n cmd\n .command('install')\n .description('Install Sweep-powered shell completions')\n .option('--shell <type>', 'Shell type (zsh or bash)', getShellType())\n .action(async (options) => {\n const spinner = ora('Installing shell integration...').start();\n\n const home = process.env.HOME || '';\n const shellDir = join(home, '.stackmemory', 'shell');\n const shell = options.shell as 'zsh' | 'bash';\n\n if (shell === 'unknown') {\n spinner.fail(chalk.red('Could not detect shell type'));\n console.log(chalk.gray('Use --shell zsh or --shell bash'));\n process.exit(1);\n }\n\n try {\n mkdirSync(shellDir, { recursive: true });\n\n const zshSource = findTemplateFile('sweep-complete.zsh');\n const suggestSource = findTemplateFile('sweep-suggest.js');\n\n if (!zshSource || !suggestSource) {\n spinner.fail(chalk.red('Template files not found'));\n console.log(chalk.gray('Ensure stackmemory is installed correctly'));\n process.exit(1);\n }\n\n const zshDest = join(shellDir, 'sweep-complete.zsh');\n const suggestDest = join(shellDir, 'sweep-suggest.js');\n\n copyFileSync(zshSource, zshDest);\n copyFileSync(suggestSource, suggestDest);\n chmodSync(suggestDest, '755');\n\n spinner.text = 'Updating shell configuration...';\n\n const rcFile = getShellRcFile();\n const sourceCmd =\n shell === 'zsh'\n ? `source \"${zshDest}\"`\n : `source \"${shellDir}/sweep-complete.bash\"`;\n\n const marker = '# StackMemory Sweep Completion';\n\n if (existsSync(rcFile)) {\n const content = readFileSync(rcFile, 'utf-8');\n\n if (content.includes(marker)) {\n spinner.succeed(chalk.green('Shell integration already installed'));\n console.log(\n chalk.gray('Restart your shell or run: source ' + rcFile)\n );\n return;\n }\n\n const addition = `\n${marker}\nif [[ -f \"${zshDest}\" ]]; then\n ${sourceCmd}\nfi\n`;\n appendFileSync(rcFile, addition);\n } else {\n writeFileSync(\n rcFile,\n `${marker}\\nif [[ -f \"${zshDest}\" ]]; then\\n ${sourceCmd}\\nfi\\n`\n );\n }\n\n spinner.succeed(chalk.green('Shell integration installed'));\n console.log('');\n console.log(chalk.bold('Files installed:'));\n console.log(chalk.gray(` ${zshDest}`));\n console.log(chalk.gray(` ${suggestDest}`));\n console.log('');\n console.log(chalk.bold('To activate:'));\n console.log(` source ${rcFile}`);\n console.log(' OR restart your terminal');\n console.log('');\n console.log(chalk.bold('Usage:'));\n console.log(' Ctrl+] Request suggestion');\n console.log(' Shift+Tab Accept suggestion');\n console.log(' sweep_status Check status');\n console.log(' sweep_toggle Enable/disable');\n } catch (error) {\n spinner.fail(chalk.red('Installation failed'));\n console.log(chalk.gray((error as Error).message));\n process.exit(1);\n }\n });\n\n cmd\n .command('status')\n .description('Check shell integration status')\n .action(() => {\n const home = process.env.HOME || '';\n const shellDir = join(home, '.stackmemory', 'shell');\n const zshFile = join(shellDir, 'sweep-complete.zsh');\n const suggestFile = join(shellDir, 'sweep-suggest.js');\n const rcFile = getShellRcFile();\n\n console.log(chalk.bold('\\nShell Integration Status\\n'));\n\n console.log(`Shell: ${chalk.cyan(getShellType())}`);\n console.log(`RC file: ${chalk.gray(rcFile)}`);\n console.log('');\n\n const zshInstalled = existsSync(zshFile);\n const suggestInstalled = existsSync(suggestFile);\n\n console.log(\n `Completion script: ${zshInstalled ? chalk.green('Installed') : chalk.yellow('Not installed')}`\n );\n console.log(\n `Suggest script: ${suggestInstalled ? chalk.green('Installed') : chalk.yellow('Not installed')}`\n );\n\n if (existsSync(rcFile)) {\n const content = readFileSync(rcFile, 'utf-8');\n const configured = content.includes('StackMemory Sweep Completion');\n console.log(\n `RC configured: ${configured ? chalk.green('Yes') : chalk.yellow('No')}`\n );\n } else {\n console.log(`RC configured: ${chalk.yellow('No RC file')}`);\n }\n\n const sweepState = join(home, '.stackmemory', 'sweep-state.json');\n if (existsSync(sweepState)) {\n try {\n const state = JSON.parse(readFileSync(sweepState, 'utf-8'));\n console.log('');\n console.log(chalk.bold('Sweep Context:'));\n console.log(\n chalk.gray(` Recent diffs: ${state.recentDiffs?.length || 0}`)\n );\n if (state.lastPrediction) {\n const age = Date.now() - state.lastPrediction.timestamp;\n const ageStr =\n age < 60000\n ? `${Math.round(age / 1000)}s ago`\n : `${Math.round(age / 60000)}m ago`;\n console.log(chalk.gray(` Last prediction: ${ageStr}`));\n }\n } catch {\n // Ignore\n }\n }\n\n if (!zshInstalled || !suggestInstalled) {\n console.log('');\n console.log(chalk.bold('To install: stackmemory shell install'));\n }\n });\n\n cmd\n .command('uninstall')\n .description('Remove shell integration')\n .action(() => {\n const rcFile = getShellRcFile();\n\n if (existsSync(rcFile)) {\n let content = readFileSync(rcFile, 'utf-8');\n\n const marker = '# StackMemory Sweep Completion';\n const markerIndex = content.indexOf(marker);\n\n if (markerIndex !== -1) {\n const endPattern = /\\nfi\\n/;\n const afterMarker = content.slice(markerIndex);\n const endMatch = afterMarker.match(endPattern);\n\n if (endMatch && endMatch.index !== undefined) {\n const endIndex = markerIndex + endMatch.index + endMatch[0].length;\n content = content.slice(0, markerIndex) + content.slice(endIndex);\n writeFileSync(rcFile, content);\n console.log(\n chalk.green('Shell integration removed from ' + rcFile)\n );\n }\n } else {\n console.log(chalk.yellow('No shell integration found in ' + rcFile));\n }\n }\n\n console.log(\n chalk.gray('\\nRestart your shell to complete uninstallation')\n );\n });\n\n cmd.action(() => {\n const home = process.env.HOME || '';\n const zshFile = join(home, '.stackmemory', 'shell', 'sweep-complete.zsh');\n const installed = existsSync(zshFile);\n\n console.log(chalk.bold('\\nStackMemory Shell Integration\\n'));\n console.log(\n `Status: ${installed ? chalk.green('Installed') : chalk.yellow('Not installed')}`\n );\n\n if (!installed) {\n console.log('');\n console.log(chalk.bold('Install with:'));\n console.log(' stackmemory shell install');\n } else {\n console.log('');\n console.log(chalk.bold('Commands:'));\n console.log(' stackmemory shell status Check status');\n console.log(' stackmemory shell uninstall Remove integration');\n }\n });\n\n return cmd;\n}\n\nexport default createShellCommand();\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/cli/commands/signup.ts"],
4
- "sourcesContent": ["import { Command } from 'commander';\nimport chalk from 'chalk';\nimport open from 'open';\nimport inquirer from 'inquirer';\n\nexport function registerSignupCommand(program: Command): void {\n program\n .command('signup')\n .alias('register')\n .description('Sign up for StackMemory hosted service')\n .option('--no-open', 'Do not automatically open browser')\n .action(async (options) => {\n console.log(chalk.cyan('\uD83D\uDE80 StackMemory Hosted Service Signup\\n'));\n\n const signupUrl = 'https://stackmemory.ai/signup';\n \n if (options.open !== false) {\n console.log(chalk.gray('Opening signup page in your browser...'));\n try {\n await open(signupUrl);\n console.log(chalk.green('\u2713 Opened: ') + chalk.cyan(signupUrl));\n } catch (error) {\n console.log(chalk.yellow('Could not open browser automatically.'));\n console.log(chalk.gray('Please visit: ') + chalk.cyan(signupUrl));\n }\n } else {\n console.log(chalk.gray('Visit this URL to sign up:'));\n console.log(chalk.cyan(signupUrl));\n }\n\n console.log(chalk.gray('\\nAfter signing up, you can login with:'));\n console.log(chalk.cyan(' stackmemory login'));\n\n // Optional: Ask if they want to login now\n const { proceed } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'proceed',\n message: 'Have you completed signup and want to login now?',\n default: false,\n },\n ]);\n\n if (proceed) {\n // Import and run login command\n const { registerLoginCommand } = await import('./login.js');\n const loginCmd = new Command();\n registerLoginCommand(loginCmd);\n \n // Execute login\n console.log(chalk.cyan('\\n\uD83D\uDD10 Proceeding to login...\\n'));\n await loginCmd.parseAsync(['node', 'stackmemory', 'login']);\n } else {\n console.log(chalk.gray('\\nWhen ready, run: ') + chalk.cyan('stackmemory login'));\n }\n });\n}"],
5
- "mappings": ";;;;AAAA,SAAS,eAAe;AACxB,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,OAAO,cAAc;AAEd,SAAS,sBAAsB,SAAwB;AAC5D,UACG,QAAQ,QAAQ,EAChB,MAAM,UAAU,EAChB,YAAY,wCAAwC,EACpD,OAAO,aAAa,mCAAmC,EACvD,OAAO,OAAO,YAAY;AACzB,YAAQ,IAAI,MAAM,KAAK,+CAAwC,CAAC;AAEhE,UAAM,YAAY;AAElB,QAAI,QAAQ,SAAS,OAAO;AAC1B,cAAQ,IAAI,MAAM,KAAK,wCAAwC,CAAC;AAChE,UAAI;AACF,cAAM,KAAK,SAAS;AACpB,gBAAQ,IAAI,MAAM,MAAM,iBAAY,IAAI,MAAM,KAAK,SAAS,CAAC;AAAA,MAC/D,SAAS,OAAO;AACd,gBAAQ,IAAI,MAAM,OAAO,uCAAuC,CAAC;AACjE,gBAAQ,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,SAAS,CAAC;AAAA,MAClE;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,MAAM,KAAK,4BAA4B,CAAC;AACpD,cAAQ,IAAI,MAAM,KAAK,SAAS,CAAC;AAAA,IACnC;AAEA,YAAQ,IAAI,MAAM,KAAK,yCAAyC,CAAC;AACjE,YAAQ,IAAI,MAAM,KAAK,qBAAqB,CAAC;AAG7C,UAAM,EAAE,QAAQ,IAAI,MAAM,SAAS,OAAO;AAAA,MACxC;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAED,QAAI,SAAS;AAEX,YAAM,EAAE,qBAAqB,IAAI,MAAM,OAAO,YAAY;AAC1D,YAAM,WAAW,IAAI,QAAQ;AAC7B,2BAAqB,QAAQ;AAG7B,cAAQ,IAAI,MAAM,KAAK,sCAA+B,CAAC;AACvD,YAAM,SAAS,WAAW,CAAC,QAAQ,eAAe,OAAO,CAAC;AAAA,IAC5D,OAAO;AACL,cAAQ,IAAI,MAAM,KAAK,qBAAqB,IAAI,MAAM,KAAK,mBAAmB,CAAC;AAAA,IACjF;AAAA,EACF,CAAC;AACL;",
6
- "names": []
7
- }