@stackmemoryai/stackmemory 0.5.58 → 0.5.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/README.md +105 -1
  2. package/dist/scripts/benchmark-performance.js +48 -0
  3. package/dist/scripts/benchmark-performance.js.map +7 -0
  4. package/dist/scripts/check-redis.js +42 -0
  5. package/dist/scripts/check-redis.js.map +7 -0
  6. package/dist/scripts/initialize.js +116 -0
  7. package/dist/scripts/initialize.js.map +7 -0
  8. package/dist/scripts/list-linear-tasks.js +124 -0
  9. package/dist/scripts/list-linear-tasks.js.map +7 -0
  10. package/dist/scripts/measure-handoff-impact.js +340 -0
  11. package/dist/scripts/measure-handoff-impact.js.map +7 -0
  12. package/dist/scripts/query-chromadb.js +160 -0
  13. package/dist/scripts/query-chromadb.js.map +7 -0
  14. package/dist/scripts/show-linear-summary.js +119 -0
  15. package/dist/scripts/show-linear-summary.js.map +7 -0
  16. package/dist/scripts/simple-swarm-demo.js +90 -0
  17. package/dist/scripts/simple-swarm-demo.js.map +7 -0
  18. package/dist/scripts/status.js +155 -0
  19. package/dist/scripts/status.js.map +7 -0
  20. package/dist/scripts/test-chromadb-sync.js +192 -0
  21. package/dist/scripts/test-chromadb-sync.js.map +7 -0
  22. package/dist/scripts/test-ralph-iteration-fix.js +86 -0
  23. package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
  24. package/dist/scripts/test-ralph-iterations.js +121 -0
  25. package/dist/scripts/test-ralph-iterations.js.map +7 -0
  26. package/dist/scripts/test-redis-storage.js +389 -0
  27. package/dist/scripts/test-redis-storage.js.map +7 -0
  28. package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
  29. package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
  30. package/dist/scripts/test-swarm-fixes.js +125 -0
  31. package/dist/scripts/test-swarm-fixes.js.map +7 -0
  32. package/dist/scripts/test-swarm-tui.js +23 -0
  33. package/dist/scripts/test-swarm-tui.js.map +7 -0
  34. package/dist/scripts/test-tui-shortcuts.js +52 -0
  35. package/dist/scripts/test-tui-shortcuts.js.map +7 -0
  36. package/dist/scripts/validate-tui-shortcuts.js +60 -0
  37. package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
  38. package/dist/src/agents/core/agent-task-manager.js.map +7 -0
  39. package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
  40. package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
  41. package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
  42. package/dist/src/cli/auto-detect.js.map +7 -0
  43. package/dist/src/cli/claude-sm-danger.js.map +7 -0
  44. package/dist/src/cli/claude-sm.js +1236 -0
  45. package/dist/src/cli/claude-sm.js.map +7 -0
  46. package/dist/src/cli/codex-sm-danger.js.map +7 -0
  47. package/dist/src/cli/codex-sm.js.map +7 -0
  48. package/dist/src/cli/commands/api.js.map +7 -0
  49. package/dist/src/cli/commands/auto-background.js.map +7 -0
  50. package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
  51. package/dist/src/cli/commands/clear.js.map +7 -0
  52. package/dist/src/cli/commands/config.js.map +7 -0
  53. package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
  54. package/dist/src/cli/commands/context.js.map +7 -0
  55. package/dist/src/cli/commands/daemon.js.map +7 -0
  56. package/dist/src/cli/commands/dashboard.js.map +7 -0
  57. package/dist/src/cli/commands/db.js.map +7 -0
  58. package/dist/src/cli/commands/decision.js.map +7 -0
  59. package/dist/src/cli/commands/discovery.js.map +7 -0
  60. package/dist/src/cli/commands/handoff.js.map +7 -0
  61. package/dist/src/cli/commands/hooks.js.map +7 -0
  62. package/dist/src/cli/commands/linear.js.map +7 -0
  63. package/dist/src/cli/commands/log.js.map +7 -0
  64. package/dist/src/cli/commands/login.js.map +7 -0
  65. package/dist/src/cli/commands/migrate.js.map +7 -0
  66. package/dist/src/cli/commands/model.js.map +7 -0
  67. package/dist/src/cli/commands/onboard.js.map +7 -0
  68. package/dist/src/cli/commands/projects.js.map +7 -0
  69. package/dist/src/cli/commands/ralph.js.map +7 -0
  70. package/dist/src/cli/commands/retrieval.js.map +7 -0
  71. package/dist/src/cli/commands/search.js +173 -0
  72. package/dist/src/cli/commands/search.js.map +7 -0
  73. package/dist/src/cli/commands/service.js.map +7 -0
  74. package/dist/src/cli/commands/session.js.map +7 -0
  75. package/dist/src/cli/commands/settings.js.map +7 -0
  76. package/dist/src/cli/commands/setup.js.map +7 -0
  77. package/dist/src/cli/commands/shell.js.map +7 -0
  78. package/dist/src/cli/commands/signup.js.map +7 -0
  79. package/dist/src/cli/commands/skills.js.map +7 -0
  80. package/dist/src/cli/commands/sms-notify.js.map +7 -0
  81. package/dist/src/cli/commands/storage-tier.js.map +7 -0
  82. package/dist/src/cli/commands/sweep.js.map +7 -0
  83. package/dist/src/cli/commands/tasks.js.map +7 -0
  84. package/dist/src/cli/commands/worktree.js.map +7 -0
  85. package/dist/src/cli/index.js +609 -0
  86. package/dist/src/cli/index.js.map +7 -0
  87. package/dist/src/cli/opencode-sm.js.map +7 -0
  88. package/dist/src/cli/utils/viewer.js.map +7 -0
  89. package/dist/src/core/config/config-manager.js.map +7 -0
  90. package/dist/src/core/config/feature-flags.js.map +7 -0
  91. package/dist/src/core/config/storage-config.js.map +7 -0
  92. package/dist/src/core/config/types.js.map +7 -0
  93. package/dist/src/core/context/auto-context.js.map +7 -0
  94. package/dist/src/core/context/dual-stack-manager.js.map +7 -0
  95. package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
  96. package/dist/src/core/context/frame-database.js.map +7 -0
  97. package/dist/src/core/context/frame-digest.js.map +7 -0
  98. package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
  99. package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
  100. package/dist/src/core/context/frame-recovery.js.map +7 -0
  101. package/dist/src/core/context/frame-stack.js.map +7 -0
  102. package/dist/src/core/context/index.js.map +7 -0
  103. package/dist/src/core/context/permission-manager.js.map +7 -0
  104. package/dist/src/core/context/recursive-context-manager.js.map +7 -0
  105. package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
  106. package/dist/src/core/context/shared-context-layer.js.map +7 -0
  107. package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
  108. package/dist/src/core/context/validation.js.map +7 -0
  109. package/dist/src/core/database/batch-operations.js.map +7 -0
  110. package/dist/src/core/database/connection-pool.js.map +7 -0
  111. package/dist/src/core/database/database-adapter.js.map +7 -0
  112. package/dist/src/core/database/migration-manager.js.map +7 -0
  113. package/dist/src/core/database/query-cache.js.map +7 -0
  114. package/dist/src/core/database/query-router.js.map +7 -0
  115. package/dist/src/core/database/sqlite-adapter.js +738 -0
  116. package/dist/src/core/database/sqlite-adapter.js.map +7 -0
  117. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
  118. package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
  119. package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
  120. package/dist/src/core/digest/index.js.map +7 -0
  121. package/dist/src/core/digest/types.js.map +7 -0
  122. package/dist/src/core/errors/error-utils.js +208 -0
  123. package/dist/src/core/errors/error-utils.js.map +7 -0
  124. package/dist/src/core/errors/index.js +521 -0
  125. package/dist/src/core/errors/index.js.map +7 -0
  126. package/dist/src/core/errors/recovery.js.map +7 -0
  127. package/dist/src/core/execution/parallel-executor.js.map +7 -0
  128. package/dist/src/core/extensions/custom-tools.js +567 -0
  129. package/dist/src/core/extensions/custom-tools.js.map +7 -0
  130. package/dist/src/core/extensions/index.js +55 -0
  131. package/dist/src/core/extensions/index.js.map +7 -0
  132. package/dist/src/core/extensions/loader.js +709 -0
  133. package/dist/src/core/extensions/loader.js.map +7 -0
  134. package/dist/src/core/extensions/plugin-system.js +506 -0
  135. package/dist/src/core/extensions/plugin-system.js.map +7 -0
  136. package/dist/src/core/extensions/provider-adapter.js +617 -0
  137. package/dist/src/core/extensions/provider-adapter.js.map +7 -0
  138. package/dist/src/core/extensions/sandbox-runtime.js +664 -0
  139. package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
  140. package/dist/src/core/frame/workflow-templates.js.map +7 -0
  141. package/dist/src/core/merge/conflict-detector.js.map +7 -0
  142. package/dist/src/core/merge/index.js.map +7 -0
  143. package/dist/src/core/merge/resolution-engine.js.map +7 -0
  144. package/dist/src/core/merge/stack-diff.js.map +7 -0
  145. package/dist/src/core/merge/unified-merge-resolver.js +303 -0
  146. package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
  147. package/dist/src/core/models/fallback-monitor.js.map +7 -0
  148. package/dist/src/core/models/model-router.js.map +7 -0
  149. package/dist/src/core/monitoring/error-handler.js.map +7 -0
  150. package/dist/src/core/monitoring/logger.js +202 -0
  151. package/dist/src/core/monitoring/logger.js.map +7 -0
  152. package/dist/src/core/monitoring/metrics.js.map +7 -0
  153. package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
  154. package/dist/src/core/monitoring/session-monitor.js.map +7 -0
  155. package/dist/src/core/performance/context-cache.js.map +7 -0
  156. package/dist/src/core/performance/index.js.map +7 -0
  157. package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
  158. package/dist/src/core/performance/monitor.js.map +7 -0
  159. package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
  160. package/dist/src/core/performance/performance-benchmark.js.map +7 -0
  161. package/dist/src/core/performance/performance-profiler.js.map +7 -0
  162. package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
  163. package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
  164. package/dist/src/core/projects/project-isolation.js.map +7 -0
  165. package/dist/src/core/projects/project-manager.js.map +7 -0
  166. package/dist/src/core/query/query-parser.js.map +7 -0
  167. package/dist/src/core/query/query-templates.js.map +7 -0
  168. package/dist/src/core/retrieval/context-retriever.js.map +7 -0
  169. package/dist/src/core/retrieval/index.js.map +7 -0
  170. package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
  171. package/dist/src/core/retrieval/llm-provider.js.map +7 -0
  172. package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
  173. package/dist/src/core/retrieval/summary-generator.js.map +7 -0
  174. package/dist/src/core/retrieval/types.js.map +7 -0
  175. package/dist/src/core/security/index.js +35 -0
  176. package/dist/src/core/security/index.js.map +7 -0
  177. package/dist/src/core/security/input-sanitizer.js +321 -0
  178. package/dist/src/core/security/input-sanitizer.js.map +7 -0
  179. package/dist/src/core/session/clear-survival.js.map +7 -0
  180. package/dist/src/core/session/enhanced-handoff.js.map +7 -0
  181. package/dist/src/core/session/handoff-generator.js.map +7 -0
  182. package/dist/src/core/session/index.js.map +7 -0
  183. package/dist/src/core/session/session-manager.js.map +7 -0
  184. package/dist/src/core/skills/index.js.map +7 -0
  185. package/dist/src/core/skills/skill-storage.js.map +7 -0
  186. package/dist/src/core/skills/types.js.map +7 -0
  187. package/dist/src/core/storage/chromadb-adapter.js +380 -0
  188. package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
  189. package/dist/src/core/storage/infinite-storage.js.map +7 -0
  190. package/dist/src/core/storage/remote-storage.js.map +7 -0
  191. package/dist/src/core/storage/two-tier-storage.js.map +7 -0
  192. package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
  193. package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
  194. package/dist/src/core/trace/debug-trace.js.map +7 -0
  195. package/dist/src/core/trace/index.js.map +7 -0
  196. package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
  197. package/dist/src/core/trace/trace-detector.js.map +7 -0
  198. package/dist/src/core/trace/trace-store.js.map +7 -0
  199. package/dist/src/core/trace/types.js.map +7 -0
  200. package/dist/src/core/utils/async-mutex.js.map +7 -0
  201. package/dist/src/core/utils/compression.js.map +7 -0
  202. package/dist/src/core/utils/update-checker.js.map +7 -0
  203. package/dist/src/core/worktree/worktree-manager.js.map +7 -0
  204. package/dist/src/daemon/daemon-config.js.map +7 -0
  205. package/dist/src/daemon/services/context-service.js.map +7 -0
  206. package/dist/src/daemon/services/linear-service.js.map +7 -0
  207. package/dist/src/daemon/session-daemon.js.map +7 -0
  208. package/dist/src/daemon/unified-daemon.js.map +7 -0
  209. package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
  210. package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
  211. package/dist/src/features/analytics/index.js.map +7 -0
  212. package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
  213. package/dist/src/features/browser/browser-mcp.js.map +7 -0
  214. package/dist/src/features/sweep/index.js.map +7 -0
  215. package/dist/src/features/sweep/prediction-client.js.map +7 -0
  216. package/dist/src/features/sweep/prompt-builder.js.map +7 -0
  217. package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
  218. package/dist/src/features/sweep/state-watcher.js.map +7 -0
  219. package/dist/src/features/sweep/status-bar.js.map +7 -0
  220. package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
  221. package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
  222. package/dist/src/features/sweep/types.js.map +7 -0
  223. package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
  224. package/dist/src/features/tasks/task-aware-context.js.map +7 -0
  225. package/dist/src/features/tui/simple-monitor.js.map +7 -0
  226. package/dist/src/features/tui/swarm-monitor.js.map +7 -0
  227. package/dist/src/features/web/client/stores/task-store.js.map +7 -0
  228. package/dist/src/features/web/server/index.js.map +7 -0
  229. package/dist/src/hooks/auto-background.js.map +7 -0
  230. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
  231. package/dist/src/hooks/config.js.map +7 -0
  232. package/dist/src/hooks/daemon.js.map +7 -0
  233. package/dist/src/hooks/events.js.map +7 -0
  234. package/dist/src/hooks/index.js.map +7 -0
  235. package/dist/src/hooks/linear-task-picker.js.map +7 -0
  236. package/dist/src/hooks/schemas.js.map +7 -0
  237. package/dist/src/hooks/secure-fs.js.map +7 -0
  238. package/dist/src/hooks/security-logger.js.map +7 -0
  239. package/dist/src/hooks/session-summary.js.map +7 -0
  240. package/dist/src/hooks/sms-action-runner.js.map +7 -0
  241. package/dist/src/hooks/sms-notify.js.map +7 -0
  242. package/dist/src/hooks/sms-watcher.js.map +7 -0
  243. package/dist/src/hooks/sms-webhook.js.map +7 -0
  244. package/dist/src/hooks/whatsapp-commands.js.map +7 -0
  245. package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
  246. package/dist/src/hooks/whatsapp-sync.js.map +7 -0
  247. package/dist/src/index.js.map +7 -0
  248. package/dist/src/integrations/anthropic/client.js.map +7 -0
  249. package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
  250. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  251. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  252. package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
  253. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
  254. package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
  255. package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
  256. package/dist/src/integrations/linear/auth.js.map +7 -0
  257. package/dist/src/integrations/linear/auto-sync.js.map +7 -0
  258. package/dist/src/integrations/linear/client.js +634 -0
  259. package/dist/src/integrations/linear/client.js.map +7 -0
  260. package/dist/src/integrations/linear/config.js.map +7 -0
  261. package/dist/src/integrations/linear/migration.js.map +7 -0
  262. package/dist/src/integrations/linear/oauth-server.js.map +7 -0
  263. package/dist/src/integrations/linear/rest-client.js.map +7 -0
  264. package/dist/src/integrations/linear/sync-manager.js.map +7 -0
  265. package/dist/src/integrations/linear/sync-service.js.map +7 -0
  266. package/dist/src/integrations/linear/sync.js.map +7 -0
  267. package/dist/src/integrations/linear/unified-sync.js.map +7 -0
  268. package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
  269. package/dist/src/integrations/linear/webhook-server.js.map +7 -0
  270. package/dist/src/integrations/linear/webhook.js.map +7 -0
  271. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
  272. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
  273. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
  274. package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
  275. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
  276. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  277. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
  278. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
  279. package/dist/src/integrations/mcp/index.js.map +7 -0
  280. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  281. package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
  282. package/dist/src/integrations/mcp/remote-server.js +682 -0
  283. package/dist/src/integrations/mcp/remote-server.js.map +7 -0
  284. package/dist/src/integrations/mcp/schemas.js.map +7 -0
  285. package/dist/src/integrations/mcp/server.js +1975 -0
  286. package/dist/src/integrations/mcp/server.js.map +7 -0
  287. package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
  288. package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
  289. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
  290. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
  291. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
  292. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
  293. package/dist/src/integrations/ralph/index.js.map +7 -0
  294. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
  295. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
  296. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
  297. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
  298. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
  299. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
  300. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
  301. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
  302. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
  303. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
  304. package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
  305. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
  306. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
  307. package/dist/src/integrations/ralph/types.js +5 -0
  308. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
  309. package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
  310. package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
  311. package/dist/src/models/user.model.js.map +7 -0
  312. package/dist/src/servers/production/auth-middleware.js.map +7 -0
  313. package/dist/src/services/config-service.js.map +7 -0
  314. package/dist/src/services/context-service.js.map +7 -0
  315. package/dist/src/skills/api-discovery.js.map +7 -0
  316. package/dist/src/skills/api-skill.js.map +7 -0
  317. package/dist/src/skills/claude-skills.js.map +7 -0
  318. package/dist/src/skills/dashboard-launcher.js.map +7 -0
  319. package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
  320. package/dist/src/skills/repo-ingestion-skill.js +632 -0
  321. package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
  322. package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
  323. package/dist/src/types/task.js.map +7 -0
  324. package/dist/src/utils/env.js.map +7 -0
  325. package/dist/src/utils/formatting.js.map +7 -0
  326. package/dist/src/utils/process-cleanup.js.map +7 -0
  327. package/package.json +13 -9
  328. package/scripts/background-sync-manager.js +145 -83
  329. package/scripts/claude-sm-autostart.js +17 -12
  330. package/scripts/gepa/README.md +275 -0
  331. package/scripts/gepa/config.json +53 -0
  332. package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
  333. package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
  334. package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
  335. package/scripts/gepa/generations/gen-000/baseline.md +124 -0
  336. package/scripts/gepa/hooks/auto-optimize.js +494 -0
  337. package/scripts/gepa/hooks/eval-tracker.js +203 -0
  338. package/scripts/gepa/hooks/reflect.js +311 -0
  339. package/scripts/gepa/optimize.js +611 -0
  340. package/scripts/gepa/state.json +14 -0
  341. package/scripts/initialize.ts +16 -7
  342. package/scripts/install.sh +14 -62
  343. package/scripts/status.ts +111 -46
  344. package/scripts/test-pre-publish-quick.sh +1 -1
  345. package/dist/agents/core/agent-task-manager.js.map +0 -7
  346. package/dist/agents/testing-agent.js +0 -614
  347. package/dist/agents/testing-agent.js.map +0 -7
  348. package/dist/agents/verifiers/base-verifier.js.map +0 -7
  349. package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
  350. package/dist/agents/verifiers/llm-judge.js.map +0 -7
  351. package/dist/cli/auto-detect.js.map +0 -7
  352. package/dist/cli/browser-test.js +0 -33
  353. package/dist/cli/browser-test.js.map +0 -7
  354. package/dist/cli/claude-sm-danger.js.map +0 -7
  355. package/dist/cli/claude-sm.js +0 -1156
  356. package/dist/cli/claude-sm.js.map +0 -7
  357. package/dist/cli/codex-sm-danger.js.map +0 -7
  358. package/dist/cli/codex-sm.js.map +0 -7
  359. package/dist/cli/commands/api.js.map +0 -7
  360. package/dist/cli/commands/auto-background.js.map +0 -7
  361. package/dist/cli/commands/cleanup-processes.js.map +0 -7
  362. package/dist/cli/commands/clear.js.map +0 -7
  363. package/dist/cli/commands/config.js.map +0 -7
  364. package/dist/cli/commands/context-rehydrate.js.map +0 -7
  365. package/dist/cli/commands/context.js.map +0 -7
  366. package/dist/cli/commands/daemon.js.map +0 -7
  367. package/dist/cli/commands/dashboard.js.map +0 -7
  368. package/dist/cli/commands/db.js.map +0 -7
  369. package/dist/cli/commands/decision.js.map +0 -7
  370. package/dist/cli/commands/discovery.js.map +0 -7
  371. package/dist/cli/commands/handoff.js.map +0 -7
  372. package/dist/cli/commands/hooks.js.map +0 -7
  373. package/dist/cli/commands/linear-unified.js +0 -353
  374. package/dist/cli/commands/linear-unified.js.map +0 -7
  375. package/dist/cli/commands/linear.js.map +0 -7
  376. package/dist/cli/commands/log.js.map +0 -7
  377. package/dist/cli/commands/login.js.map +0 -7
  378. package/dist/cli/commands/migrate.js.map +0 -7
  379. package/dist/cli/commands/model.js.map +0 -7
  380. package/dist/cli/commands/monitor.js +0 -313
  381. package/dist/cli/commands/monitor.js.map +0 -7
  382. package/dist/cli/commands/onboard.js.map +0 -7
  383. package/dist/cli/commands/projects.js.map +0 -7
  384. package/dist/cli/commands/quality.js +0 -413
  385. package/dist/cli/commands/quality.js.map +0 -7
  386. package/dist/cli/commands/ralph.js.map +0 -7
  387. package/dist/cli/commands/retrieval.js.map +0 -7
  388. package/dist/cli/commands/search.js +0 -156
  389. package/dist/cli/commands/search.js.map +0 -7
  390. package/dist/cli/commands/service.js.map +0 -7
  391. package/dist/cli/commands/session.js.map +0 -7
  392. package/dist/cli/commands/settings.js.map +0 -7
  393. package/dist/cli/commands/setup.js.map +0 -7
  394. package/dist/cli/commands/shell.js.map +0 -7
  395. package/dist/cli/commands/signup.js.map +0 -7
  396. package/dist/cli/commands/skills.js.map +0 -7
  397. package/dist/cli/commands/sms-notify.js.map +0 -7
  398. package/dist/cli/commands/storage-tier.js.map +0 -7
  399. package/dist/cli/commands/storage.js +0 -360
  400. package/dist/cli/commands/storage.js.map +0 -7
  401. package/dist/cli/commands/sweep.js.map +0 -7
  402. package/dist/cli/commands/tasks.js.map +0 -7
  403. package/dist/cli/commands/test.js +0 -286
  404. package/dist/cli/commands/test.js.map +0 -7
  405. package/dist/cli/commands/workflow.js +0 -142
  406. package/dist/cli/commands/workflow.js.map +0 -7
  407. package/dist/cli/commands/worktree.js.map +0 -7
  408. package/dist/cli/index.js +0 -594
  409. package/dist/cli/index.js.map +0 -7
  410. package/dist/cli/opencode-sm.js.map +0 -7
  411. package/dist/cli/utils/viewer.js.map +0 -7
  412. package/dist/core/analytics/team-analytics.js +0 -378
  413. package/dist/core/analytics/team-analytics.js.map +0 -7
  414. package/dist/core/config/config-manager.js.map +0 -7
  415. package/dist/core/config/feature-flags.js.map +0 -7
  416. package/dist/core/config/storage-config.js.map +0 -7
  417. package/dist/core/config/types.js.map +0 -7
  418. package/dist/core/context/auto-context.js.map +0 -7
  419. package/dist/core/context/dual-stack-manager.js.map +0 -7
  420. package/dist/core/context/enhanced-rehydration.js.map +0 -7
  421. package/dist/core/context/frame-database.js.map +0 -7
  422. package/dist/core/context/frame-digest.js.map +0 -7
  423. package/dist/core/context/frame-handoff-manager.js.map +0 -7
  424. package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
  425. package/dist/core/context/frame-manager.js +0 -1069
  426. package/dist/core/context/frame-manager.js.map +0 -7
  427. package/dist/core/context/frame-recovery.js.map +0 -7
  428. package/dist/core/context/frame-stack.js.map +0 -7
  429. package/dist/core/context/incremental-gc.js +0 -290
  430. package/dist/core/context/incremental-gc.js.map +0 -7
  431. package/dist/core/context/index.js.map +0 -7
  432. package/dist/core/context/model-aware-compaction.js +0 -623
  433. package/dist/core/context/model-aware-compaction.js.map +0 -7
  434. package/dist/core/context/permission-manager.js.map +0 -7
  435. package/dist/core/context/recursive-context-manager.js.map +0 -7
  436. package/dist/core/context/refactored-frame-manager.js.map +0 -7
  437. package/dist/core/context/shared-context-layer.js.map +0 -7
  438. package/dist/core/context/stack-merge-resolver.js.map +0 -7
  439. package/dist/core/context/validation.js.map +0 -7
  440. package/dist/core/database/batch-operations.js.map +0 -7
  441. package/dist/core/database/connection-pool.js.map +0 -7
  442. package/dist/core/database/database-adapter.js.map +0 -7
  443. package/dist/core/database/migration-manager.js.map +0 -7
  444. package/dist/core/database/paradedb-adapter.js +0 -990
  445. package/dist/core/database/paradedb-adapter.js.map +0 -7
  446. package/dist/core/database/query-cache.js.map +0 -7
  447. package/dist/core/database/query-router.js.map +0 -7
  448. package/dist/core/database/sqlite-adapter.js +0 -728
  449. package/dist/core/database/sqlite-adapter.js.map +0 -7
  450. package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
  451. package/dist/core/digest/frame-digest-integration.js.map +0 -7
  452. package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
  453. package/dist/core/digest/index.js.map +0 -7
  454. package/dist/core/digest/types.js.map +0 -7
  455. package/dist/core/errors/index.js +0 -512
  456. package/dist/core/errors/index.js.map +0 -7
  457. package/dist/core/errors/recovery.js.map +0 -7
  458. package/dist/core/execution/parallel-executor.js.map +0 -7
  459. package/dist/core/frame/workflow-templates.js.map +0 -7
  460. package/dist/core/merge/conflict-detector.js.map +0 -7
  461. package/dist/core/merge/index.js.map +0 -7
  462. package/dist/core/merge/resolution-engine.js.map +0 -7
  463. package/dist/core/merge/stack-diff.js.map +0 -7
  464. package/dist/core/models/fallback-monitor.js.map +0 -7
  465. package/dist/core/models/model-router.js.map +0 -7
  466. package/dist/core/monitoring/error-handler.js.map +0 -7
  467. package/dist/core/monitoring/logger.js +0 -150
  468. package/dist/core/monitoring/logger.js.map +0 -7
  469. package/dist/core/monitoring/metrics.js.map +0 -7
  470. package/dist/core/monitoring/progress-tracker.js.map +0 -7
  471. package/dist/core/monitoring/session-monitor.js.map +0 -7
  472. package/dist/core/performance/context-cache.js.map +0 -7
  473. package/dist/core/performance/index.js.map +0 -7
  474. package/dist/core/performance/lazy-context-loader.js.map +0 -7
  475. package/dist/core/performance/monitor.js.map +0 -7
  476. package/dist/core/performance/optimized-frame-context.js.map +0 -7
  477. package/dist/core/performance/performance-benchmark.js.map +0 -7
  478. package/dist/core/performance/performance-profiler.js.map +0 -7
  479. package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
  480. package/dist/core/persistence/postgres-adapter.js.map +0 -7
  481. package/dist/core/projects/project-isolation.js.map +0 -7
  482. package/dist/core/projects/project-manager.js.map +0 -7
  483. package/dist/core/query/query-parser.js.map +0 -7
  484. package/dist/core/query/query-templates.js.map +0 -7
  485. package/dist/core/retrieval/context-retriever.js.map +0 -7
  486. package/dist/core/retrieval/graph-retrieval.js +0 -662
  487. package/dist/core/retrieval/graph-retrieval.js.map +0 -7
  488. package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
  489. package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
  490. package/dist/core/retrieval/index.js.map +0 -7
  491. package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
  492. package/dist/core/retrieval/llm-provider.js.map +0 -7
  493. package/dist/core/retrieval/retrieval-audit.js.map +0 -7
  494. package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
  495. package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
  496. package/dist/core/retrieval/summary-generator.js.map +0 -7
  497. package/dist/core/retrieval/types.js.map +0 -7
  498. package/dist/core/session/clear-survival.js.map +0 -7
  499. package/dist/core/session/enhanced-handoff.js.map +0 -7
  500. package/dist/core/session/handoff-generator.js.map +0 -7
  501. package/dist/core/session/index.js.map +0 -7
  502. package/dist/core/session/session-manager.js.map +0 -7
  503. package/dist/core/skills/index.js.map +0 -7
  504. package/dist/core/skills/skill-storage.js.map +0 -7
  505. package/dist/core/skills/types.js.map +0 -7
  506. package/dist/core/storage/chromadb-adapter.js +0 -354
  507. package/dist/core/storage/chromadb-adapter.js.map +0 -7
  508. package/dist/core/storage/infinite-storage.js.map +0 -7
  509. package/dist/core/storage/railway-optimized-storage.js +0 -591
  510. package/dist/core/storage/railway-optimized-storage.js.map +0 -7
  511. package/dist/core/storage/remote-storage.js.map +0 -7
  512. package/dist/core/storage/two-tier-storage.js.map +0 -7
  513. package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
  514. package/dist/core/trace/db-trace-wrapper.js.map +0 -7
  515. package/dist/core/trace/debug-trace.js.map +0 -7
  516. package/dist/core/trace/index.js.map +0 -7
  517. package/dist/core/trace/linear-api-wrapper.js.map +0 -7
  518. package/dist/core/trace/trace-demo.js +0 -154
  519. package/dist/core/trace/trace-demo.js.map +0 -7
  520. package/dist/core/trace/trace-detector.demo.js +0 -142
  521. package/dist/core/trace/trace-detector.demo.js.map +0 -7
  522. package/dist/core/trace/trace-detector.js.map +0 -7
  523. package/dist/core/trace/trace-store.js.map +0 -7
  524. package/dist/core/trace/types.js.map +0 -7
  525. package/dist/core/utils/async-mutex.js.map +0 -7
  526. package/dist/core/utils/compression.js.map +0 -7
  527. package/dist/core/utils/update-checker.js.map +0 -7
  528. package/dist/core/worktree/worktree-manager.js.map +0 -7
  529. package/dist/daemon/daemon-config.js.map +0 -7
  530. package/dist/daemon/services/context-service.js.map +0 -7
  531. package/dist/daemon/services/linear-service.js.map +0 -7
  532. package/dist/daemon/session-daemon.js.map +0 -7
  533. package/dist/daemon/unified-daemon.js.map +0 -7
  534. package/dist/features/analytics/api/analytics-api.js.map +0 -7
  535. package/dist/features/analytics/core/analytics-service.js.map +0 -7
  536. package/dist/features/analytics/index.js.map +0 -7
  537. package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
  538. package/dist/features/browser/browser-mcp.js.map +0 -7
  539. package/dist/features/sweep/index.js.map +0 -7
  540. package/dist/features/sweep/prediction-client.js.map +0 -7
  541. package/dist/features/sweep/prompt-builder.js.map +0 -7
  542. package/dist/features/sweep/pty-wrapper.js.map +0 -7
  543. package/dist/features/sweep/state-watcher.js.map +0 -7
  544. package/dist/features/sweep/status-bar.js.map +0 -7
  545. package/dist/features/sweep/sweep-server-manager.js.map +0 -7
  546. package/dist/features/sweep/tab-interceptor.js.map +0 -7
  547. package/dist/features/sweep/types.js.map +0 -7
  548. package/dist/features/tasks/linear-task-manager.js.map +0 -7
  549. package/dist/features/tasks/task-aware-context.js.map +0 -7
  550. package/dist/features/tui/simple-monitor.js.map +0 -7
  551. package/dist/features/tui/swarm-monitor.js.map +0 -7
  552. package/dist/features/web/client/stores/task-store.js.map +0 -7
  553. package/dist/features/web/server/index.js.map +0 -7
  554. package/dist/hooks/auto-background.js.map +0 -7
  555. package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
  556. package/dist/hooks/config.js.map +0 -7
  557. package/dist/hooks/daemon.js.map +0 -7
  558. package/dist/hooks/events.js.map +0 -7
  559. package/dist/hooks/index.js.map +0 -7
  560. package/dist/hooks/linear-task-picker.js.map +0 -7
  561. package/dist/hooks/schemas.js.map +0 -7
  562. package/dist/hooks/secure-fs.js.map +0 -7
  563. package/dist/hooks/security-logger.js.map +0 -7
  564. package/dist/hooks/session-summary.js.map +0 -7
  565. package/dist/hooks/sms-action-runner.js.map +0 -7
  566. package/dist/hooks/sms-notify.js.map +0 -7
  567. package/dist/hooks/sms-watcher.js.map +0 -7
  568. package/dist/hooks/sms-webhook.js.map +0 -7
  569. package/dist/hooks/whatsapp-commands.js.map +0 -7
  570. package/dist/hooks/whatsapp-scheduler.js.map +0 -7
  571. package/dist/hooks/whatsapp-sync.js.map +0 -7
  572. package/dist/index.js.map +0 -7
  573. package/dist/integrations/anthropic/client.js.map +0 -7
  574. package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
  575. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  576. package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  577. package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
  578. package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
  579. package/dist/integrations/claude-code/subagent-client.js.map +0 -7
  580. package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
  581. package/dist/integrations/linear/auth.js.map +0 -7
  582. package/dist/integrations/linear/auto-sync.js.map +0 -7
  583. package/dist/integrations/linear/client.js +0 -630
  584. package/dist/integrations/linear/client.js.map +0 -7
  585. package/dist/integrations/linear/config.js.map +0 -7
  586. package/dist/integrations/linear/migration.js.map +0 -7
  587. package/dist/integrations/linear/oauth-server.js.map +0 -7
  588. package/dist/integrations/linear/rest-client.js.map +0 -7
  589. package/dist/integrations/linear/sync-manager.js.map +0 -7
  590. package/dist/integrations/linear/sync-service.js.map +0 -7
  591. package/dist/integrations/linear/sync.js.map +0 -7
  592. package/dist/integrations/linear/unified-sync.js.map +0 -7
  593. package/dist/integrations/linear/webhook-handler.js.map +0 -7
  594. package/dist/integrations/linear/webhook-server.js.map +0 -7
  595. package/dist/integrations/linear/webhook.js.map +0 -7
  596. package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  597. package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
  598. package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  599. package/dist/integrations/mcp/handlers/index.js.map +0 -7
  600. package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  601. package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  602. package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
  603. package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  604. package/dist/integrations/mcp/index.js.map +0 -7
  605. package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  606. package/dist/integrations/mcp/refactored-server.js.map +0 -7
  607. package/dist/integrations/mcp/remote-server.js +0 -691
  608. package/dist/integrations/mcp/remote-server.js.map +0 -7
  609. package/dist/integrations/mcp/schemas.js.map +0 -7
  610. package/dist/integrations/mcp/server.js +0 -1960
  611. package/dist/integrations/mcp/server.js.map +0 -7
  612. package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
  613. package/dist/integrations/mcp/tool-definitions.js.map +0 -7
  614. package/dist/integrations/mcp/trace-test.js +0 -48
  615. package/dist/integrations/mcp/trace-test.js.map +0 -7
  616. package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
  617. package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
  618. package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
  619. package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
  620. package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
  621. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
  622. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  623. package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
  624. package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  625. package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  626. package/dist/integrations/ralph/index.js.map +0 -7
  627. package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
  628. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  629. package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  630. package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  631. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  632. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  633. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  634. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  635. package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  636. package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
  637. package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
  638. package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  639. package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
  640. package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  641. package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  642. package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  643. package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
  644. package/dist/middleware/exponential-rate-limiter.js.map +0 -7
  645. package/dist/models/user.model.js.map +0 -7
  646. package/dist/servers/production/auth-middleware.js.map +0 -7
  647. package/dist/servers/railway/config.js +0 -55
  648. package/dist/servers/railway/config.js.map +0 -7
  649. package/dist/servers/railway/index-enhanced.js +0 -160
  650. package/dist/servers/railway/index-enhanced.js.map +0 -7
  651. package/dist/servers/railway/index.js +0 -1349
  652. package/dist/servers/railway/index.js.map +0 -7
  653. package/dist/servers/railway/simple.js +0 -64
  654. package/dist/servers/railway/simple.js.map +0 -7
  655. package/dist/servers/railway/storage-test.js +0 -459
  656. package/dist/servers/railway/storage-test.js.map +0 -7
  657. package/dist/services/config-service.js.map +0 -7
  658. package/dist/services/context-service.js.map +0 -7
  659. package/dist/skills/api-discovery.js.map +0 -7
  660. package/dist/skills/api-skill.js.map +0 -7
  661. package/dist/skills/claude-skills.js.map +0 -7
  662. package/dist/skills/dashboard-launcher.js.map +0 -7
  663. package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
  664. package/dist/skills/repo-ingestion-skill.js +0 -609
  665. package/dist/skills/repo-ingestion-skill.js.map +0 -7
  666. package/dist/skills/security-secrets-scanner.js +0 -284
  667. package/dist/skills/security-secrets-scanner.js.map +0 -7
  668. package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
  669. package/dist/utils/env.js.map +0 -7
  670. package/dist/utils/formatting.js.map +0 -7
  671. package/dist/utils/process-cleanup.js.map +0 -7
  672. package/dist/validation/schemas.js +0 -222
  673. package/dist/validation/schemas.js.map +0 -7
  674. /package/dist/{agents → src/agents}/core/agent-task-manager.js +0 -0
  675. /package/dist/{agents → src/agents}/verifiers/base-verifier.js +0 -0
  676. /package/dist/{agents → src/agents}/verifiers/formatter-verifier.js +0 -0
  677. /package/dist/{agents → src/agents}/verifiers/llm-judge.js +0 -0
  678. /package/dist/{cli → src/cli}/auto-detect.js +0 -0
  679. /package/dist/{cli → src/cli}/claude-sm-danger.js +0 -0
  680. /package/dist/{cli → src/cli}/codex-sm-danger.js +0 -0
  681. /package/dist/{cli → src/cli}/codex-sm.js +0 -0
  682. /package/dist/{cli → src/cli}/commands/api.js +0 -0
  683. /package/dist/{cli → src/cli}/commands/auto-background.js +0 -0
  684. /package/dist/{cli → src/cli}/commands/cleanup-processes.js +0 -0
  685. /package/dist/{cli → src/cli}/commands/clear.js +0 -0
  686. /package/dist/{cli → src/cli}/commands/config.js +0 -0
  687. /package/dist/{cli → src/cli}/commands/context-rehydrate.js +0 -0
  688. /package/dist/{cli → src/cli}/commands/context.js +0 -0
  689. /package/dist/{cli → src/cli}/commands/daemon.js +0 -0
  690. /package/dist/{cli → src/cli}/commands/dashboard.js +0 -0
  691. /package/dist/{cli → src/cli}/commands/db.js +0 -0
  692. /package/dist/{cli → src/cli}/commands/decision.js +0 -0
  693. /package/dist/{cli → src/cli}/commands/discovery.js +0 -0
  694. /package/dist/{cli → src/cli}/commands/handoff.js +0 -0
  695. /package/dist/{cli → src/cli}/commands/hooks.js +0 -0
  696. /package/dist/{cli → src/cli}/commands/linear.js +0 -0
  697. /package/dist/{cli → src/cli}/commands/log.js +0 -0
  698. /package/dist/{cli → src/cli}/commands/login.js +0 -0
  699. /package/dist/{cli → src/cli}/commands/migrate.js +0 -0
  700. /package/dist/{cli → src/cli}/commands/model.js +0 -0
  701. /package/dist/{cli → src/cli}/commands/onboard.js +0 -0
  702. /package/dist/{cli → src/cli}/commands/projects.js +0 -0
  703. /package/dist/{cli → src/cli}/commands/ralph.js +0 -0
  704. /package/dist/{cli → src/cli}/commands/retrieval.js +0 -0
  705. /package/dist/{cli → src/cli}/commands/service.js +0 -0
  706. /package/dist/{cli → src/cli}/commands/session.js +0 -0
  707. /package/dist/{cli → src/cli}/commands/settings.js +0 -0
  708. /package/dist/{cli → src/cli}/commands/setup.js +0 -0
  709. /package/dist/{cli → src/cli}/commands/shell.js +0 -0
  710. /package/dist/{cli → src/cli}/commands/signup.js +0 -0
  711. /package/dist/{cli → src/cli}/commands/skills.js +0 -0
  712. /package/dist/{cli → src/cli}/commands/sms-notify.js +0 -0
  713. /package/dist/{cli → src/cli}/commands/storage-tier.js +0 -0
  714. /package/dist/{cli → src/cli}/commands/sweep.js +0 -0
  715. /package/dist/{cli → src/cli}/commands/tasks.js +0 -0
  716. /package/dist/{cli → src/cli}/commands/worktree.js +0 -0
  717. /package/dist/{cli → src/cli}/opencode-sm.js +0 -0
  718. /package/dist/{cli → src/cli}/utils/viewer.js +0 -0
  719. /package/dist/{core → src/core}/config/config-manager.js +0 -0
  720. /package/dist/{core → src/core}/config/feature-flags.js +0 -0
  721. /package/dist/{core → src/core}/config/storage-config.js +0 -0
  722. /package/dist/{core → src/core}/config/types.js +0 -0
  723. /package/dist/{core → src/core}/context/auto-context.js +0 -0
  724. /package/dist/{core → src/core}/context/dual-stack-manager.js +0 -0
  725. /package/dist/{core → src/core}/context/enhanced-rehydration.js +0 -0
  726. /package/dist/{core → src/core}/context/frame-database.js +0 -0
  727. /package/dist/{core → src/core}/context/frame-digest.js +0 -0
  728. /package/dist/{core → src/core}/context/frame-handoff-manager.js +0 -0
  729. /package/dist/{core → src/core}/context/frame-lifecycle-hooks.js +0 -0
  730. /package/dist/{core → src/core}/context/frame-recovery.js +0 -0
  731. /package/dist/{core → src/core}/context/frame-stack.js +0 -0
  732. /package/dist/{core → src/core}/context/frame-types.js +0 -0
  733. /package/dist/{core → src/core}/context/frame-types.js.map +0 -0
  734. /package/dist/{core → src/core}/context/index.js +0 -0
  735. /package/dist/{core → src/core}/context/permission-manager.js +0 -0
  736. /package/dist/{core → src/core}/context/recursive-context-manager.js +0 -0
  737. /package/dist/{core → src/core}/context/refactored-frame-manager.js +0 -0
  738. /package/dist/{core → src/core}/context/shared-context-layer.js +0 -0
  739. /package/dist/{core → src/core}/context/stack-merge-resolver.js +0 -0
  740. /package/dist/{core → src/core}/context/validation.js +0 -0
  741. /package/dist/{core → src/core}/database/batch-operations.js +0 -0
  742. /package/dist/{core → src/core}/database/connection-pool.js +0 -0
  743. /package/dist/{core → src/core}/database/database-adapter.js +0 -0
  744. /package/dist/{core → src/core}/database/migration-manager.js +0 -0
  745. /package/dist/{core → src/core}/database/query-cache.js +0 -0
  746. /package/dist/{core → src/core}/database/query-router.js +0 -0
  747. /package/dist/{core → src/core}/digest/enhanced-hybrid-digest.js +0 -0
  748. /package/dist/{core → src/core}/digest/frame-digest-integration.js +0 -0
  749. /package/dist/{core → src/core}/digest/hybrid-digest-generator.js +0 -0
  750. /package/dist/{core → src/core}/digest/index.js +0 -0
  751. /package/dist/{core → src/core}/digest/types.js +0 -0
  752. /package/dist/{core → src/core}/errors/recovery.js +0 -0
  753. /package/dist/{core → src/core}/execution/parallel-executor.js +0 -0
  754. /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
  755. /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
  756. /package/dist/{core → src/core}/frame/workflow-templates.js +0 -0
  757. /package/dist/{core → src/core}/merge/conflict-detector.js +0 -0
  758. /package/dist/{core → src/core}/merge/index.js +0 -0
  759. /package/dist/{core → src/core}/merge/resolution-engine.js +0 -0
  760. /package/dist/{core → src/core}/merge/stack-diff.js +0 -0
  761. /package/dist/{core → src/core/merge}/types.js +0 -0
  762. /package/dist/{core → src/core/merge}/types.js.map +0 -0
  763. /package/dist/{core → src/core}/models/fallback-monitor.js +0 -0
  764. /package/dist/{core → src/core}/models/model-router.js +0 -0
  765. /package/dist/{core → src/core}/monitoring/error-handler.js +0 -0
  766. /package/dist/{core → src/core}/monitoring/metrics.js +0 -0
  767. /package/dist/{core → src/core}/monitoring/progress-tracker.js +0 -0
  768. /package/dist/{core → src/core}/monitoring/session-monitor.js +0 -0
  769. /package/dist/{core → src/core}/performance/context-cache.js +0 -0
  770. /package/dist/{core → src/core}/performance/index.js +0 -0
  771. /package/dist/{core → src/core}/performance/lazy-context-loader.js +0 -0
  772. /package/dist/{core → src/core}/performance/monitor.js +0 -0
  773. /package/dist/{core → src/core}/performance/optimized-frame-context.js +0 -0
  774. /package/dist/{core → src/core}/performance/performance-benchmark.js +0 -0
  775. /package/dist/{core → src/core}/performance/performance-profiler.js +0 -0
  776. /package/dist/{core → src/core}/performance/streaming-jsonl-parser.js +0 -0
  777. /package/dist/{core → src/core}/persistence/postgres-adapter.js +0 -0
  778. /package/dist/{core → src/core}/projects/project-isolation.js +0 -0
  779. /package/dist/{core → src/core}/projects/project-manager.js +0 -0
  780. /package/dist/{core → src/core}/query/query-parser.js +0 -0
  781. /package/dist/{core → src/core}/query/query-templates.js +0 -0
  782. /package/dist/{core → src/core}/retrieval/context-retriever.js +0 -0
  783. /package/dist/{core → src/core}/retrieval/index.js +0 -0
  784. /package/dist/{core → src/core}/retrieval/llm-context-retrieval.js +0 -0
  785. /package/dist/{core → src/core}/retrieval/llm-provider.js +0 -0
  786. /package/dist/{core → src/core}/retrieval/retrieval-audit.js +0 -0
  787. /package/dist/{core → src/core}/retrieval/summary-generator.js +0 -0
  788. /package/dist/{core → src/core}/retrieval/types.js +0 -0
  789. /package/dist/{core → src/core}/session/clear-survival.js +0 -0
  790. /package/dist/{core → src/core}/session/enhanced-handoff.js +0 -0
  791. /package/dist/{core → src/core}/session/handoff-generator.js +0 -0
  792. /package/dist/{core → src/core}/session/index.js +0 -0
  793. /package/dist/{core → src/core}/session/session-manager.js +0 -0
  794. /package/dist/{core → src/core}/skills/index.js +0 -0
  795. /package/dist/{core → src/core}/skills/skill-storage.js +0 -0
  796. /package/dist/{core → src/core}/skills/types.js +0 -0
  797. /package/dist/{core → src/core}/storage/infinite-storage.js +0 -0
  798. /package/dist/{core → src/core}/storage/remote-storage.js +0 -0
  799. /package/dist/{core → src/core}/storage/two-tier-storage.js +0 -0
  800. /package/dist/{core → src/core}/trace/cli-trace-wrapper.js +0 -0
  801. /package/dist/{core → src/core}/trace/db-trace-wrapper.js +0 -0
  802. /package/dist/{core → src/core}/trace/debug-trace.js +0 -0
  803. /package/dist/{core → src/core}/trace/index.js +0 -0
  804. /package/dist/{core → src/core}/trace/linear-api-wrapper.js +0 -0
  805. /package/dist/{core → src/core}/trace/trace-detector.js +0 -0
  806. /package/dist/{core → src/core}/trace/trace-store.js +0 -0
  807. /package/dist/{core → src/core}/trace/types.js +0 -0
  808. /package/dist/{integrations/linear → src/core}/types.js +0 -0
  809. /package/dist/{integrations/linear → src/core}/types.js.map +0 -0
  810. /package/dist/{core → src/core}/utils/async-mutex.js +0 -0
  811. /package/dist/{core → src/core}/utils/compression.js +0 -0
  812. /package/dist/{core → src/core}/utils/update-checker.js +0 -0
  813. /package/dist/{core → src/core}/worktree/worktree-manager.js +0 -0
  814. /package/dist/{daemon → src/daemon}/daemon-config.js +0 -0
  815. /package/dist/{daemon → src/daemon}/services/context-service.js +0 -0
  816. /package/dist/{daemon → src/daemon}/services/linear-service.js +0 -0
  817. /package/dist/{daemon → src/daemon}/session-daemon.js +0 -0
  818. /package/dist/{daemon → src/daemon}/unified-daemon.js +0 -0
  819. /package/dist/{features → src/features}/analytics/api/analytics-api.js +0 -0
  820. /package/dist/{features → src/features}/analytics/core/analytics-service.js +0 -0
  821. /package/dist/{features → src/features}/analytics/index.js +0 -0
  822. /package/dist/{features → src/features}/analytics/queries/metrics-queries.js +0 -0
  823. /package/dist/{features → src/features}/analytics/types/metrics.js +0 -0
  824. /package/dist/{features → src/features}/analytics/types/metrics.js.map +0 -0
  825. /package/dist/{features → src/features}/browser/browser-mcp.js +0 -0
  826. /package/dist/{features → src/features}/sweep/index.js +0 -0
  827. /package/dist/{features → src/features}/sweep/prediction-client.js +0 -0
  828. /package/dist/{features → src/features}/sweep/prompt-builder.js +0 -0
  829. /package/dist/{features → src/features}/sweep/pty-wrapper.js +0 -0
  830. /package/dist/{features → src/features}/sweep/state-watcher.js +0 -0
  831. /package/dist/{features → src/features}/sweep/status-bar.js +0 -0
  832. /package/dist/{features → src/features}/sweep/sweep-server-manager.js +0 -0
  833. /package/dist/{features → src/features}/sweep/tab-interceptor.js +0 -0
  834. /package/dist/{features → src/features}/sweep/types.js +0 -0
  835. /package/dist/{features → src/features}/tasks/linear-task-manager.js +0 -0
  836. /package/dist/{features → src/features}/tasks/task-aware-context.js +0 -0
  837. /package/dist/{features → src/features}/tui/simple-monitor.js +0 -0
  838. /package/dist/{features → src/features}/tui/swarm-monitor.js +0 -0
  839. /package/dist/{features → src/features}/web/client/stores/task-store.js +0 -0
  840. /package/dist/{features → src/features}/web/server/index.js +0 -0
  841. /package/dist/{hooks → src/hooks}/auto-background.js +0 -0
  842. /package/dist/{hooks → src/hooks}/claude-code-whatsapp-hook.js +0 -0
  843. /package/dist/{hooks → src/hooks}/config.js +0 -0
  844. /package/dist/{hooks → src/hooks}/daemon.js +0 -0
  845. /package/dist/{hooks → src/hooks}/events.js +0 -0
  846. /package/dist/{hooks → src/hooks}/index.js +0 -0
  847. /package/dist/{hooks → src/hooks}/linear-task-picker.js +0 -0
  848. /package/dist/{hooks → src/hooks}/schemas.js +0 -0
  849. /package/dist/{hooks → src/hooks}/secure-fs.js +0 -0
  850. /package/dist/{hooks → src/hooks}/security-logger.js +0 -0
  851. /package/dist/{hooks → src/hooks}/session-summary.js +0 -0
  852. /package/dist/{hooks → src/hooks}/sms-action-runner.js +0 -0
  853. /package/dist/{hooks → src/hooks}/sms-notify.js +0 -0
  854. /package/dist/{hooks → src/hooks}/sms-watcher.js +0 -0
  855. /package/dist/{hooks → src/hooks}/sms-webhook.js +0 -0
  856. /package/dist/{hooks → src/hooks}/whatsapp-commands.js +0 -0
  857. /package/dist/{hooks → src/hooks}/whatsapp-scheduler.js +0 -0
  858. /package/dist/{hooks → src/hooks}/whatsapp-sync.js +0 -0
  859. /package/dist/{index.js → src/index.js} +0 -0
  860. /package/dist/{integrations → src/integrations}/anthropic/client.js +0 -0
  861. /package/dist/{integrations → src/integrations}/claude-code/agent-bridge.js +0 -0
  862. /package/dist/{integrations → src/integrations}/claude-code/enhanced-pre-clear-hooks.js +0 -0
  863. /package/dist/{integrations → src/integrations}/claude-code/lifecycle-hooks.js +0 -0
  864. /package/dist/{integrations → src/integrations}/claude-code/post-task-hooks.js +0 -0
  865. /package/dist/{integrations → src/integrations}/claude-code/subagent-client-stub.js +0 -0
  866. /package/dist/{integrations → src/integrations}/claude-code/subagent-client.js +0 -0
  867. /package/dist/{integrations → src/integrations}/claude-code/task-coordinator.js +0 -0
  868. /package/dist/{integrations → src/integrations}/linear/auth.js +0 -0
  869. /package/dist/{integrations → src/integrations}/linear/auto-sync.js +0 -0
  870. /package/dist/{integrations → src/integrations}/linear/config.js +0 -0
  871. /package/dist/{integrations → src/integrations}/linear/migration.js +0 -0
  872. /package/dist/{integrations → src/integrations}/linear/oauth-server.js +0 -0
  873. /package/dist/{integrations → src/integrations}/linear/rest-client.js +0 -0
  874. /package/dist/{integrations → src/integrations}/linear/sync-manager.js +0 -0
  875. /package/dist/{integrations → src/integrations}/linear/sync-service.js +0 -0
  876. /package/dist/{integrations → src/integrations}/linear/sync.js +0 -0
  877. /package/dist/{integrations/ralph → src/integrations/linear}/types.js +0 -0
  878. /package/dist/{integrations/ralph → src/integrations/linear}/types.js.map +0 -0
  879. /package/dist/{integrations → src/integrations}/linear/unified-sync.js +0 -0
  880. /package/dist/{integrations → src/integrations}/linear/webhook-handler.js +0 -0
  881. /package/dist/{integrations → src/integrations}/linear/webhook-server.js +0 -0
  882. /package/dist/{integrations → src/integrations}/linear/webhook.js +0 -0
  883. /package/dist/{integrations → src/integrations}/mcp/handlers/code-execution-handlers.js +0 -0
  884. /package/dist/{integrations → src/integrations}/mcp/handlers/context-handlers.js +0 -0
  885. /package/dist/{integrations → src/integrations}/mcp/handlers/discovery-handlers.js +0 -0
  886. /package/dist/{integrations → src/integrations}/mcp/handlers/index.js +0 -0
  887. /package/dist/{integrations → src/integrations}/mcp/handlers/linear-handlers.js +0 -0
  888. /package/dist/{integrations → src/integrations}/mcp/handlers/skill-handlers.js +0 -0
  889. /package/dist/{integrations → src/integrations}/mcp/handlers/task-handlers.js +0 -0
  890. /package/dist/{integrations → src/integrations}/mcp/handlers/trace-handlers.js +0 -0
  891. /package/dist/{integrations → src/integrations}/mcp/index.js +0 -0
  892. /package/dist/{integrations → src/integrations}/mcp/middleware/tool-scoring.js +0 -0
  893. /package/dist/{integrations → src/integrations}/mcp/refactored-server.js +0 -0
  894. /package/dist/{integrations → src/integrations}/mcp/schemas.js +0 -0
  895. /package/dist/{integrations → src/integrations}/mcp/tool-definitions-code.js +0 -0
  896. /package/dist/{integrations → src/integrations}/mcp/tool-definitions.js +0 -0
  897. /package/dist/{integrations → src/integrations}/ralph/bridge/ralph-stackmemory-bridge.js +0 -0
  898. /package/dist/{integrations → src/integrations}/ralph/context/context-budget-manager.js +0 -0
  899. /package/dist/{integrations → src/integrations}/ralph/context/stackmemory-context-loader.js +0 -0
  900. /package/dist/{integrations → src/integrations}/ralph/coordination/enhanced-coordination.js +0 -0
  901. /package/dist/{integrations → src/integrations}/ralph/index.js +0 -0
  902. /package/dist/{integrations → src/integrations}/ralph/learning/pattern-learner.js +0 -0
  903. /package/dist/{integrations → src/integrations}/ralph/lifecycle/iteration-lifecycle.js +0 -0
  904. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-dashboard.js +0 -0
  905. /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-registry.js +0 -0
  906. /package/dist/{integrations → src/integrations}/ralph/orchestration/multi-loop-orchestrator.js +0 -0
  907. /package/dist/{integrations → src/integrations}/ralph/patterns/compounding-engineering-pattern.js +0 -0
  908. /package/dist/{integrations → src/integrations}/ralph/patterns/extended-coherence-sessions.js +0 -0
  909. /package/dist/{integrations → src/integrations}/ralph/patterns/oracle-worker-pattern.js +0 -0
  910. /package/dist/{integrations → src/integrations}/ralph/performance/performance-optimizer.js +0 -0
  911. /package/dist/{integrations → src/integrations}/ralph/recovery/crash-recovery.js +0 -0
  912. /package/dist/{integrations → src/integrations}/ralph/state/state-reconciler.js +0 -0
  913. /package/dist/{integrations → src/integrations}/ralph/swarm/git-workflow-manager.js +0 -0
  914. /package/dist/{integrations → src/integrations}/ralph/swarm/swarm-coordinator.js +0 -0
  915. /package/dist/{types/task.js.map → src/integrations/ralph/types.js.map} +0 -0
  916. /package/dist/{integrations → src/integrations}/ralph/visualization/ralph-debugger.js +0 -0
  917. /package/dist/{mcp → src/mcp}/stackmemory-mcp-server.js +0 -0
  918. /package/dist/{middleware → src/middleware}/exponential-rate-limiter.js +0 -0
  919. /package/dist/{models → src/models}/user.model.js +0 -0
  920. /package/dist/{servers → src/servers}/production/auth-middleware.js +0 -0
  921. /package/dist/{services → src/services}/config-service.js +0 -0
  922. /package/dist/{services → src/services}/context-service.js +0 -0
  923. /package/dist/{skills → src/skills}/api-discovery.js +0 -0
  924. /package/dist/{skills → src/skills}/api-skill.js +0 -0
  925. /package/dist/{skills → src/skills}/claude-skills.js +0 -0
  926. /package/dist/{skills → src/skills}/dashboard-launcher.js +0 -0
  927. /package/dist/{skills → src/skills}/recursive-agent-orchestrator.js +0 -0
  928. /package/dist/{skills → src/skills}/unified-rlm-orchestrator.js +0 -0
  929. /package/dist/{types → src/types}/task.js +0 -0
  930. /package/dist/{utils → src/utils}/env.js +0 -0
  931. /package/dist/{utils → src/utils}/formatting.js +0 -0
  932. /package/dist/{utils → src/utils}/process-cleanup.js +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # StackMemory
2
2
 
3
- **Lossless, project-scoped memory for AI tools** • v0.5.51
3
+ **Lossless, project-scoped memory for AI tools** • v0.5.59
4
4
 
5
5
  StackMemory is a **production-ready memory runtime** for AI coding tools that preserves full project context across sessions:
6
6
 
@@ -36,6 +36,110 @@ StackMemory solves this by:
36
36
 
37
37
  ---
38
38
 
39
+ ## Features
40
+
41
+ StackMemory includes powerful features to enhance your AI coding workflow. Enable/disable with `claude-sm config setup`.
42
+
43
+ ### Predictive Edit
44
+
45
+ Anticipates your next edit and displays suggestions as a status bar overlay. Powered by llama-server and Claude Code's PostToolUse hooks.
46
+
47
+ ```bash
48
+ claude-sm --sweep # Enable (default: on)
49
+ claude-sm --no-sweep # Disable
50
+ ```
51
+
52
+ - **How it works**: Analyzes tool outputs and predicts likely follow-up edits
53
+ - **Interface**: Tab to accept, Esc to dismiss
54
+ - **Requirement**: Installs `node-pty` on first use
55
+
56
+ ### Code Review
57
+
58
+ AI-powered code review using Greptile's codebase-aware analysis. Automatically registers the Greptile MCP server for deep repository understanding.
59
+
60
+ ```bash
61
+ claude-sm --greptile # Enable (default: on)
62
+ claude-sm --no-greptile # Disable
63
+ ```
64
+
65
+ - **Tools provided**: `index_repository`, `query_repository`, `get_repository_info`
66
+ - **Requirement**: `GREPTILE_API_KEY` in `.env`
67
+
68
+ ### Prompt Forge
69
+
70
+ Genetic Eval-driven Prompt Algorithm (GEPA) for automatic system prompt optimization. Evolves your `CLAUDE.md` through mutation, evaluation, and selection.
71
+
72
+ ```bash
73
+ claude-sm --gepa # Enable
74
+ claude-sm --no-gepa # Disable (default)
75
+ ```
76
+
77
+ - **Auto-optimize**: Watches `CLAUDE.md` and runs optimization on changes
78
+ - **Strategies**: rephrase, add_examples, remove_redundancy, restructure, add_constraints, simplify
79
+ - **Output**: Before/after comparison with metrics (lines, tokens, rules)
80
+
81
+ ### Model Switcher
82
+
83
+ Dynamic model routing based on task complexity. Automatically selects the optimal model (Haiku/Sonnet/Opus) for each request.
84
+
85
+ ```bash
86
+ claude-sm --model-routing # Enable
87
+ claude-sm --no-model-routing # Disable (default)
88
+ ```
89
+
90
+ - **Cost optimization**: Uses cheaper models for simple tasks
91
+ - **Quality preservation**: Routes complex tasks to more capable models
92
+
93
+ ### Safe Branch
94
+
95
+ Git worktree isolation for experimental changes. Each session operates in an isolated branch, preventing accidental commits to main.
96
+
97
+ ```bash
98
+ claude-sm --worktree # Enable
99
+ claude-sm --no-worktree # Disable (default)
100
+ ```
101
+
102
+ - **Isolation**: Changes happen in a separate worktree
103
+ - **Safety**: Main branch remains untouched until explicit merge
104
+
105
+ ### Mobile Sync
106
+
107
+ WhatsApp notifications for session updates and task completion. Stay informed even when away from your terminal.
108
+
109
+ ```bash
110
+ claude-sm --whatsapp # Enable
111
+ claude-sm --no-whatsapp # Disable (default)
112
+ ```
113
+
114
+ - **Notifications**: Session start, task completion, errors
115
+ - **Interactive**: Reply to trigger actions remotely
116
+
117
+ ### Session Insights
118
+
119
+ Detailed tracing of session activity for debugging and optimization. Tracks tool calls, timing, and decision paths.
120
+
121
+ ```bash
122
+ claude-sm --tracing # Enable
123
+ claude-sm --no-tracing # Disable (default)
124
+ ```
125
+
126
+ - **Visibility**: Full execution trace
127
+ - **Analytics**: Performance metrics and patterns
128
+
129
+ ### Task Alert
130
+
131
+ Desktop/terminal notifications when long-running tasks complete. Never miss a completed build or test run.
132
+
133
+ ```bash
134
+ claude-sm --notify-on-done # Enable (default: on)
135
+ claude-sm --no-notify-on-done # Disable
136
+ ```
137
+
138
+ - **Platforms**: macOS notifications, terminal bell
139
+ - **Smart**: Only notifies for tasks taking >10 seconds
140
+
141
+ ---
142
+
39
143
  ## Core concepts (quick mental model)
40
144
 
41
145
  | Concept | Meaning |
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
6
+ import Database from "better-sqlite3";
7
+ import { join } from "path";
8
+ import { existsSync } from "fs";
9
+ import { PerformanceBenchmark } from "../src/core/performance/performance-benchmark.js";
10
+ import { logger } from "../src/core/monitoring/logger.js";
11
+ async function runBenchmarks() {
12
+ const projectRoot = process.cwd();
13
+ const dbPath = join(projectRoot, ".stackmemory", "context.db");
14
+ if (!existsSync(dbPath)) {
15
+ console.error(
16
+ '\u274C StackMemory not initialized. Run "stackmemory init" first.'
17
+ );
18
+ process.exit(1);
19
+ }
20
+ const db = new Database(dbPath, { readonly: false });
21
+ const projectId = "benchmark-test";
22
+ console.log("\u{1F680} Starting Performance Benchmarks...\n");
23
+ const benchmark = new PerformanceBenchmark();
24
+ try {
25
+ const suite = await benchmark.runFullSuite(projectRoot, db, projectId);
26
+ console.log("\n\u2705 Benchmarks completed successfully!");
27
+ if (suite.averageImprovement > 0) {
28
+ console.log(
29
+ `
30
+ \u{1F389} Overall performance improved by ${suite.averageImprovement.toFixed(1)}%`
31
+ );
32
+ }
33
+ process.exit(0);
34
+ } catch (error) {
35
+ console.error("\n\u274C Benchmark failed:", error);
36
+ logger.error("Benchmark error", error);
37
+ process.exit(1);
38
+ } finally {
39
+ db.close();
40
+ }
41
+ }
42
+ if (import.meta.url === `file://${process.argv[1]}`) {
43
+ runBenchmarks().catch(console.error);
44
+ }
45
+ export {
46
+ runBenchmarks
47
+ };
48
+ //# sourceMappingURL=benchmark-performance.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../scripts/benchmark-performance.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * Run performance benchmarks\n */\n\nimport Database from 'better-sqlite3';\nimport { join } from 'path';\nimport { existsSync } from 'fs';\nimport { PerformanceBenchmark } from '../src/core/performance/performance-benchmark.js';\nimport { logger } from '../src/core/monitoring/logger.js';\n\nasync function runBenchmarks() {\n const projectRoot = process.cwd();\n const dbPath = join(projectRoot, '.stackmemory', 'context.db');\n\n if (!existsSync(dbPath)) {\n console.error(\n '\u274C StackMemory not initialized. Run \"stackmemory init\" first.'\n );\n process.exit(1);\n }\n\n const db = new Database(dbPath, { readonly: false });\n const projectId = 'benchmark-test';\n\n console.log('\uD83D\uDE80 Starting Performance Benchmarks...\\n');\n\n const benchmark = new PerformanceBenchmark();\n\n try {\n const suite = await benchmark.runFullSuite(projectRoot, db, projectId);\n\n console.log('\\n\u2705 Benchmarks completed successfully!');\n\n // Summary\n if (suite.averageImprovement > 0) {\n console.log(\n `\\n\uD83C\uDF89 Overall performance improved by ${suite.averageImprovement.toFixed(1)}%`\n );\n }\n\n process.exit(0);\n } catch (error: unknown) {\n console.error('\\n\u274C Benchmark failed:', error);\n logger.error('Benchmark error', error as Error);\n process.exit(1);\n } finally {\n db.close();\n }\n}\n\n// Run if called directly\nif (import.meta.url === `file://${process.argv[1]}`) {\n runBenchmarks().catch(console.error);\n}\n\nexport { runBenchmarks };\n"],
5
+ "mappings": ";;;;;AAKA,OAAO,cAAc;AACrB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,4BAA4B;AACrC,SAAS,cAAc;AAEvB,eAAe,gBAAgB;AAC7B,QAAM,cAAc,QAAQ,IAAI;AAChC,QAAM,SAAS,KAAK,aAAa,gBAAgB,YAAY;AAE7D,MAAI,CAAC,WAAW,MAAM,GAAG;AACvB,YAAQ;AAAA,MACN;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,KAAK,IAAI,SAAS,QAAQ,EAAE,UAAU,MAAM,CAAC;AACnD,QAAM,YAAY;AAElB,UAAQ,IAAI,gDAAyC;AAErD,QAAM,YAAY,IAAI,qBAAqB;AAE3C,MAAI;AACF,UAAM,QAAQ,MAAM,UAAU,aAAa,aAAa,IAAI,SAAS;AAErE,YAAQ,IAAI,6CAAwC;AAGpD,QAAI,MAAM,qBAAqB,GAAG;AAChC,cAAQ;AAAA,QACN;AAAA,4CAAwC,MAAM,mBAAmB,QAAQ,CAAC,CAAC;AAAA,MAC7E;AAAA,IACF;AAEA,YAAQ,KAAK,CAAC;AAAA,EAChB,SAAS,OAAgB;AACvB,YAAQ,MAAM,8BAAyB,KAAK;AAC5C,WAAO,MAAM,mBAAmB,KAAc;AAC9C,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,OAAG,MAAM;AAAA,EACX;AACF;AAGA,IAAI,YAAY,QAAQ,UAAU,QAAQ,KAAK,CAAC,CAAC,IAAI;AACnD,gBAAc,EAAE,MAAM,QAAQ,KAAK;AACrC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env tsx
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
6
+ import { createClient } from "redis";
7
+ import dotenv from "dotenv";
8
+ function getEnv(key, defaultValue) {
9
+ const value = process.env[key];
10
+ if (value === void 0) {
11
+ if (defaultValue !== void 0) return defaultValue;
12
+ throw new Error(`Environment variable ${key} is required`);
13
+ }
14
+ return value;
15
+ }
16
+ function getOptionalEnv(key) {
17
+ return process.env[key];
18
+ }
19
+ dotenv.config();
20
+ async function checkRedis() {
21
+ const client = createClient({ url: process.env["REDIS_URL"] });
22
+ await client.connect();
23
+ const keys = await client.keys("trace:*");
24
+ console.log("Redis trace keys:", keys.length);
25
+ if (keys.length > 0) {
26
+ console.log("Sample keys:", keys.slice(0, 3));
27
+ const sample = await client.hGetAll(keys[0]);
28
+ console.log("Sample trace fields:", Object.keys(sample));
29
+ console.log("Sample trace data size:", sample.data?.length || 0, "bytes");
30
+ console.log(
31
+ "Sample trace compressed:",
32
+ sample.compressed === "true" ? "yes" : "no"
33
+ );
34
+ }
35
+ const scoreIndex = await client.zCard("traces:by_score");
36
+ const timeIndex = await client.zCard("traces:by_time");
37
+ console.log("Score index entries:", scoreIndex);
38
+ console.log("Time index entries:", timeIndex);
39
+ await client.quit();
40
+ }
41
+ checkRedis().catch(console.error);
42
+ //# sourceMappingURL=check-redis.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../scripts/check-redis.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env tsx\n\nimport { createClient } from 'redis';\nimport dotenv from 'dotenv';\n// Type-safe environment variable access\nfunction getEnv(key: string, defaultValue?: string): string {\n const value = process.env[key];\n if (value === undefined) {\n if (defaultValue !== undefined) return defaultValue;\n throw new Error(`Environment variable ${key} is required`);\n }\n return value;\n}\n\nfunction getOptionalEnv(key: string): string | undefined {\n return process.env[key];\n}\n\ndotenv.config();\n\nasync function checkRedis() {\n const client = createClient({ url: process.env['REDIS_URL'] });\n await client.connect();\n\n const keys = await client.keys('trace:*');\n console.log('Redis trace keys:', keys.length);\n\n if (keys.length > 0) {\n console.log('Sample keys:', keys.slice(0, 3));\n // Using hGetAll since we store as hash\n const sample = await client.hGetAll(keys[0]);\n console.log('Sample trace fields:', Object.keys(sample));\n console.log('Sample trace data size:', sample.data?.length || 0, 'bytes');\n console.log(\n 'Sample trace compressed:',\n sample.compressed === 'true' ? 'yes' : 'no'\n );\n }\n\n const scoreIndex = await client.zCard('traces:by_score');\n const timeIndex = await client.zCard('traces:by_time');\n console.log('Score index entries:', scoreIndex);\n console.log('Time index entries:', timeIndex);\n\n await client.quit();\n}\n\ncheckRedis().catch(console.error);\n"],
5
+ "mappings": ";;;;;AAEA,SAAS,oBAAoB;AAC7B,OAAO,YAAY;AAEnB,SAAS,OAAO,KAAa,cAA+B;AAC1D,QAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,MAAI,UAAU,QAAW;AACvB,QAAI,iBAAiB,OAAW,QAAO;AACvC,UAAM,IAAI,MAAM,wBAAwB,GAAG,cAAc;AAAA,EAC3D;AACA,SAAO;AACT;AAEA,SAAS,eAAe,KAAiC;AACvD,SAAO,QAAQ,IAAI,GAAG;AACxB;AAEA,OAAO,OAAO;AAEd,eAAe,aAAa;AAC1B,QAAM,SAAS,aAAa,EAAE,KAAK,QAAQ,IAAI,WAAW,EAAE,CAAC;AAC7D,QAAM,OAAO,QAAQ;AAErB,QAAM,OAAO,MAAM,OAAO,KAAK,SAAS;AACxC,UAAQ,IAAI,qBAAqB,KAAK,MAAM;AAE5C,MAAI,KAAK,SAAS,GAAG;AACnB,YAAQ,IAAI,gBAAgB,KAAK,MAAM,GAAG,CAAC,CAAC;AAE5C,UAAM,SAAS,MAAM,OAAO,QAAQ,KAAK,CAAC,CAAC;AAC3C,YAAQ,IAAI,wBAAwB,OAAO,KAAK,MAAM,CAAC;AACvD,YAAQ,IAAI,2BAA2B,OAAO,MAAM,UAAU,GAAG,OAAO;AACxE,YAAQ;AAAA,MACN;AAAA,MACA,OAAO,eAAe,SAAS,QAAQ;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,aAAa,MAAM,OAAO,MAAM,iBAAiB;AACvD,QAAM,YAAY,MAAM,OAAO,MAAM,gBAAgB;AACrD,UAAQ,IAAI,wBAAwB,UAAU;AAC9C,UAAQ,IAAI,uBAAuB,SAAS;AAE5C,QAAM,OAAO,KAAK;AACpB;AAEA,WAAW,EAAE,MAAM,QAAQ,KAAK;",
6
+ "names": []
7
+ }
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env tsx
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
6
+ import {
7
+ existsSync,
8
+ mkdirSync,
9
+ writeFileSync,
10
+ readFileSync,
11
+ appendFileSync
12
+ } from "fs";
13
+ import { join } from "path";
14
+ import { execSync } from "child_process";
15
+ import chalk from "chalk";
16
+ function getEnv(key, defaultValue) {
17
+ const value = process.env[key];
18
+ if (value === void 0) {
19
+ if (defaultValue !== void 0) return defaultValue;
20
+ throw new Error(`Environment variable ${key} is required`);
21
+ }
22
+ return value;
23
+ }
24
+ function getOptionalEnv(key) {
25
+ return process.env[key];
26
+ }
27
+ const projectRoot = process.cwd();
28
+ console.log(chalk.blue.bold("\n\u{1F680} Initializing StackMemory...\n"));
29
+ const stackDir = join(projectRoot, ".stackmemory");
30
+ if (!existsSync(stackDir)) {
31
+ mkdirSync(stackDir, { recursive: true });
32
+ console.log(chalk.green("\u2713") + " Created .stackmemory directory");
33
+ } else {
34
+ console.log(chalk.yellow("\u26A0") + " .stackmemory directory already exists");
35
+ }
36
+ const gitignorePath = join(projectRoot, ".gitignore");
37
+ const gitignoreEntry = "\n# StackMemory\n.stackmemory/*.db\n.stackmemory/*.db-*\n";
38
+ if (existsSync(gitignorePath)) {
39
+ const gitignore = readFileSync(gitignorePath, "utf-8");
40
+ if (!gitignore.includes(".stackmemory")) {
41
+ appendFileSync(gitignorePath, gitignoreEntry);
42
+ console.log(chalk.green("\u2713") + " Added .stackmemory to .gitignore");
43
+ }
44
+ } else {
45
+ writeFileSync(gitignorePath, gitignoreEntry);
46
+ console.log(chalk.green("\u2713") + " Created .gitignore with .stackmemory");
47
+ }
48
+ const configPath = join(stackDir, "config.json");
49
+ if (!existsSync(configPath)) {
50
+ const config = {
51
+ projectId: projectRoot.split("/").pop(),
52
+ userId: process.env["USER"] || "default",
53
+ teamId: "local",
54
+ initialized: (/* @__PURE__ */ new Date()).toISOString()
55
+ };
56
+ writeFileSync(configPath, JSON.stringify(config, null, 2));
57
+ console.log(chalk.green("\u2713") + " Created config file");
58
+ }
59
+ const jsonlPath = join(stackDir, "frames.jsonl");
60
+ if (!existsSync(jsonlPath)) {
61
+ const initialFrame = {
62
+ id: "init_" + Date.now(),
63
+ type: "system",
64
+ content: "StackMemory initialized",
65
+ timestamp: Date.now()
66
+ };
67
+ writeFileSync(jsonlPath, JSON.stringify(initialFrame) + "\n");
68
+ console.log(chalk.green("\u2713") + " Created frames.jsonl");
69
+ }
70
+ const isMacOS = process.platform === "darwin";
71
+ const mcpConfigPath = isMacOS ? join(
72
+ process.env["HOME"] || "~",
73
+ "Library",
74
+ "Application Support",
75
+ "Claude",
76
+ "claude_desktop_config.json"
77
+ ) : join(
78
+ process.env["HOME"] || "~",
79
+ ".config",
80
+ "claude",
81
+ "claude_desktop_config.json"
82
+ );
83
+ console.log(chalk.blue("\n\u{1F4DD} MCP Configuration for Claude Code:\n"));
84
+ const mcpConfig = {
85
+ mcpServers: {
86
+ stackmemory: {
87
+ command: "node",
88
+ args: [join(projectRoot, "dist", "integrations", "mcp", "server.js")],
89
+ env: {
90
+ PROJECT_ROOT: projectRoot
91
+ }
92
+ }
93
+ }
94
+ };
95
+ console.log(chalk.gray("Add this to your Claude Code MCP configuration:"));
96
+ console.log(chalk.gray("(" + mcpConfigPath + ")\n"));
97
+ console.log(chalk.cyan(JSON.stringify(mcpConfig, null, 2)));
98
+ console.log(chalk.blue("\n\u{1F4E6} Building TypeScript files...\n"));
99
+ try {
100
+ execSync("npm run build", { stdio: "inherit", cwd: projectRoot });
101
+ console.log(chalk.green("\u2713") + " Build completed");
102
+ } catch {
103
+ console.log(chalk.yellow("\u26A0") + " Build failed - run npm run build manually");
104
+ }
105
+ console.log(chalk.green.bold("\n\u2705 StackMemory initialized successfully!\n"));
106
+ console.log(chalk.gray("Next steps:"));
107
+ console.log(chalk.gray("1. Add the MCP configuration above to Claude Code"));
108
+ console.log(chalk.gray("2. Restart Claude Code"));
109
+ console.log(chalk.gray("3. Start using context tracking!"));
110
+ console.log(chalk.gray("\nUseful commands:"));
111
+ console.log(
112
+ chalk.cyan(" npm run mcp:dev") + " - Start MCP server in dev mode"
113
+ );
114
+ console.log(chalk.cyan(" npm run status") + " - Check StackMemory status");
115
+ console.log(chalk.cyan(" npm run analyze") + " - Analyze context usage\n");
116
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../scripts/initialize.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env tsx\n/**\n * Initialize StackMemory in the current project\n */\n\nimport {\n existsSync,\n mkdirSync,\n writeFileSync,\n readFileSync,\n appendFileSync,\n} from 'fs';\nimport { join } from 'path';\nimport { execSync } from 'child_process';\nimport chalk from 'chalk';\n// Type-safe environment variable access\nfunction getEnv(key: string, defaultValue?: string): string {\n const value = process.env[key];\n if (value === undefined) {\n if (defaultValue !== undefined) return defaultValue;\n throw new Error(`Environment variable ${key} is required`);\n }\n return value;\n}\n\nfunction getOptionalEnv(key: string): string | undefined {\n return process.env[key];\n}\n\nconst projectRoot = process.cwd();\n\nconsole.log(chalk.blue.bold('\\n\uD83D\uDE80 Initializing StackMemory...\\n'));\n\n// 1. Create .stackmemory directory\nconst stackDir = join(projectRoot, '.stackmemory');\nif (!existsSync(stackDir)) {\n mkdirSync(stackDir, { recursive: true });\n console.log(chalk.green('\u2713') + ' Created .stackmemory directory');\n} else {\n console.log(chalk.yellow('\u26A0') + ' .stackmemory directory already exists');\n}\n\n// 2. Add to .gitignore\nconst gitignorePath = join(projectRoot, '.gitignore');\nconst gitignoreEntry =\n '\\n# StackMemory\\n.stackmemory/*.db\\n.stackmemory/*.db-*\\n';\n\nif (existsSync(gitignorePath)) {\n const gitignore = readFileSync(gitignorePath, 'utf-8');\n if (!gitignore.includes('.stackmemory')) {\n appendFileSync(gitignorePath, gitignoreEntry);\n console.log(chalk.green('\u2713') + ' Added .stackmemory to .gitignore');\n }\n} else {\n writeFileSync(gitignorePath, gitignoreEntry);\n console.log(chalk.green('\u2713') + ' Created .gitignore with .stackmemory');\n}\n\n// 3. Create config file\nconst configPath = join(stackDir, 'config.json');\nif (!existsSync(configPath)) {\n const config = {\n projectId: projectRoot.split('/').pop(),\n userId: process.env['USER'] || 'default',\n teamId: 'local',\n initialized: new Date().toISOString(),\n };\n writeFileSync(configPath, JSON.stringify(config, null, 2));\n console.log(chalk.green('\u2713') + ' Created config file');\n}\n\n// 4. Create initial JSONL file\nconst jsonlPath = join(stackDir, 'frames.jsonl');\nif (!existsSync(jsonlPath)) {\n const initialFrame = {\n id: 'init_' + Date.now(),\n type: 'system',\n content: 'StackMemory initialized',\n timestamp: Date.now(),\n };\n writeFileSync(jsonlPath, JSON.stringify(initialFrame) + '\\n');\n console.log(chalk.green('\u2713') + ' Created frames.jsonl');\n}\n\n// 5. Create MCP config for Claude Code\nconst isMacOS = process.platform === 'darwin';\nconst mcpConfigPath = isMacOS\n ? join(\n process.env['HOME'] || '~',\n 'Library',\n 'Application Support',\n 'Claude',\n 'claude_desktop_config.json'\n )\n : join(\n process.env['HOME'] || '~',\n '.config',\n 'claude',\n 'claude_desktop_config.json'\n );\nconsole.log(chalk.blue('\\n\uD83D\uDCDD MCP Configuration for Claude Code:\\n'));\n\nconst mcpConfig = {\n mcpServers: {\n stackmemory: {\n command: 'node',\n args: [join(projectRoot, 'dist', 'integrations', 'mcp', 'server.js')],\n env: {\n PROJECT_ROOT: projectRoot,\n },\n },\n },\n};\n\nconsole.log(chalk.gray('Add this to your Claude Code MCP configuration:'));\nconsole.log(chalk.gray('(' + mcpConfigPath + ')\\n'));\nconsole.log(chalk.cyan(JSON.stringify(mcpConfig, null, 2)));\n\n// 6. Build the project\nconsole.log(chalk.blue('\\n\uD83D\uDCE6 Building TypeScript files...\\n'));\ntry {\n execSync('npm run build', { stdio: 'inherit', cwd: projectRoot });\n console.log(chalk.green('\u2713') + ' Build completed');\n} catch {\n console.log(chalk.yellow('\u26A0') + ' Build failed - run npm run build manually');\n}\n\nconsole.log(chalk.green.bold('\\n\u2705 StackMemory initialized successfully!\\n'));\nconsole.log(chalk.gray('Next steps:'));\nconsole.log(chalk.gray('1. Add the MCP configuration above to Claude Code'));\nconsole.log(chalk.gray('2. Restart Claude Code'));\nconsole.log(chalk.gray('3. Start using context tracking!'));\nconsole.log(chalk.gray('\\nUseful commands:'));\nconsole.log(\n chalk.cyan(' npm run mcp:dev') + ' - Start MCP server in dev mode'\n);\nconsole.log(chalk.cyan(' npm run status') + ' - Check StackMemory status');\nconsole.log(chalk.cyan(' npm run analyze') + ' - Analyze context usage\\n');\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ts-node
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
6
+ import { LinearClient } from "../src/integrations/linear/client.js";
7
+ import { LinearAuthManager } from "../src/integrations/linear/auth.js";
8
+ import chalk from "chalk";
9
+ function getEnv(key, defaultValue) {
10
+ const value = process.env[key];
11
+ if (value === void 0) {
12
+ if (defaultValue !== void 0) return defaultValue;
13
+ throw new Error(`Environment variable ${key} is required`);
14
+ }
15
+ return value;
16
+ }
17
+ function getOptionalEnv(key) {
18
+ return process.env[key];
19
+ }
20
+ async function main() {
21
+ try {
22
+ console.log(chalk.cyan("\u{1F50D} Fetching Linear tasks...\n"));
23
+ const authManager = new LinearAuthManager(process.cwd());
24
+ const tokens = authManager.loadTokens();
25
+ const apiKey = process.env["LINEAR_API_KEY"];
26
+ if (!tokens && !apiKey) {
27
+ console.log(chalk.red("\u274C Not authenticated with Linear"));
28
+ console.log("Run: node dist/src/cli/index.js linear setup");
29
+ process.exit(1);
30
+ }
31
+ const client = apiKey ? new LinearClient({ apiKey }) : new LinearClient({
32
+ apiKey: tokens?.accessToken ?? "",
33
+ useBearer: true
34
+ });
35
+ console.log(chalk.gray("Fetching issues..."));
36
+ const issues = await client.getIssues({ limit: 200 });
37
+ if (!issues || issues.length === 0) {
38
+ console.log(chalk.gray("No issues found"));
39
+ return;
40
+ }
41
+ console.log(chalk.green(`\u2713 Found ${issues.length} tasks`));
42
+ const tasksByStatus = {};
43
+ issues.forEach((issue) => {
44
+ const statusType = issue.state.type;
45
+ const statusName = issue.state.name;
46
+ const key = `${statusType} (${statusName})`;
47
+ if (!tasksByStatus[key]) {
48
+ tasksByStatus[key] = [];
49
+ }
50
+ tasksByStatus[key].push({
51
+ identifier: issue.identifier,
52
+ title: issue.title,
53
+ priority: issue.priority,
54
+ assignee: issue.assignee?.name,
55
+ url: issue.url
56
+ });
57
+ });
58
+ const statusOrder = [
59
+ "backlog",
60
+ "unstarted",
61
+ "started",
62
+ "completed",
63
+ "cancelled"
64
+ ];
65
+ console.log(chalk.cyan("\n\u{1F4CB} Linear Tasks by Status:\n"));
66
+ statusOrder.forEach((statusType) => {
67
+ const matchingKeys = Object.keys(tasksByStatus).filter(
68
+ (key) => key.startsWith(statusType)
69
+ );
70
+ matchingKeys.forEach((statusKey) => {
71
+ const tasks = tasksByStatus[statusKey];
72
+ if (tasks.length === 0) return;
73
+ console.log(
74
+ chalk.bold.white(
75
+ `
76
+ ${getStatusEmoji(statusType)} ${statusKey} (${tasks.length} tasks)`
77
+ )
78
+ );
79
+ console.log(chalk.gray("".padEnd(60, "\u2500")));
80
+ tasks.forEach((task) => {
81
+ const priorityStr = task.priority > 0 ? chalk.yellow(`P${task.priority}`) : chalk.gray("--");
82
+ const assigneeStr = task.assignee ? chalk.blue(task.assignee) : chalk.gray("Unassigned");
83
+ const titleStr = task.title.length > 50 ? task.title.substring(0, 47) + "..." : task.title;
84
+ console.log(
85
+ ` ${chalk.cyan(task.identifier.padEnd(8))} ${titleStr.padEnd(50)} ${priorityStr.padEnd(8)} ${assigneeStr}`
86
+ );
87
+ });
88
+ });
89
+ });
90
+ const totalTasks = issues.length;
91
+ const statusCounts = Object.entries(tasksByStatus).map(
92
+ ([status, tasks]) => ({
93
+ status,
94
+ count: tasks.length
95
+ })
96
+ );
97
+ console.log(chalk.cyan("\n\u{1F4CA} Summary:"));
98
+ statusCounts.forEach(({ status, count }) => {
99
+ console.log(chalk.gray(` ${status}: ${count} tasks`));
100
+ });
101
+ console.log(chalk.bold(` Total: ${totalTasks} tasks`));
102
+ } catch (error) {
103
+ console.error(chalk.red("\u274C Error:"), error.message);
104
+ process.exit(1);
105
+ }
106
+ }
107
+ function getStatusEmoji(statusType) {
108
+ switch (statusType) {
109
+ case "backlog":
110
+ return "\u{1F4CB}";
111
+ case "unstarted":
112
+ return "\u{1F4DD}";
113
+ case "started":
114
+ return "\u23F3";
115
+ case "completed":
116
+ return "\u2705";
117
+ case "cancelled":
118
+ return "\u274C";
119
+ default:
120
+ return "\u{1F4C4}";
121
+ }
122
+ }
123
+ main();
124
+ //# sourceMappingURL=list-linear-tasks.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../scripts/list-linear-tasks.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env ts-node\n\n/**\n * Standalone script to list all Linear tasks grouped by status\n */\n\nimport { LinearClient } from '../src/integrations/linear/client.js';\nimport { LinearAuthManager } from '../src/integrations/linear/auth.js';\nimport chalk from 'chalk';\n// Type-safe environment variable access\nfunction getEnv(key: string, defaultValue?: string): string {\n const value = process.env[key];\n if (value === undefined) {\n if (defaultValue !== undefined) return defaultValue;\n throw new Error(`Environment variable ${key} is required`);\n }\n return value;\n}\n\nfunction getOptionalEnv(key: string): string | undefined {\n return process.env[key];\n}\n\ninterface TasksByStatus {\n [status: string]: Array<{\n identifier: string;\n title: string;\n priority: number;\n assignee?: string;\n url: string;\n }>;\n}\n\nasync function main() {\n try {\n console.log(chalk.cyan('\uD83D\uDD0D Fetching Linear tasks...\\n'));\n\n // Try to get authentication\n const authManager = new LinearAuthManager(process.cwd());\n const tokens = authManager.loadTokens();\n const apiKey = process.env['LINEAR_API_KEY'];\n\n if (!tokens && !apiKey) {\n console.log(chalk.red('\u274C Not authenticated with Linear'));\n console.log('Run: node dist/src/cli/index.js linear setup');\n process.exit(1);\n }\n\n // Create client\n const client = apiKey\n ? new LinearClient({ apiKey })\n : new LinearClient({\n apiKey: tokens?.accessToken ?? '',\n useBearer: true,\n });\n\n // Get all issues (increase limit to get more tasks)\n console.log(chalk.gray('Fetching issues...'));\n const issues = await client.getIssues({ limit: 200 });\n\n if (!issues || issues.length === 0) {\n console.log(chalk.gray('No issues found'));\n return;\n }\n\n console.log(chalk.green(`\u2713 Found ${issues.length} tasks`));\n\n // Group tasks by status\n const tasksByStatus: TasksByStatus = {};\n\n issues.forEach((issue) => {\n const statusType = issue.state.type;\n const statusName = issue.state.name;\n const key = `${statusType} (${statusName})`;\n\n if (!tasksByStatus[key]) {\n tasksByStatus[key] = [];\n }\n\n tasksByStatus[key].push({\n identifier: issue.identifier,\n title: issue.title,\n priority: issue.priority,\n assignee: issue.assignee?.name,\n url: issue.url,\n });\n });\n\n // Define status order for display\n const statusOrder = [\n 'backlog',\n 'unstarted',\n 'started',\n 'completed',\n 'cancelled',\n ];\n\n // Display results grouped by status\n console.log(chalk.cyan('\\n\uD83D\uDCCB Linear Tasks by Status:\\n'));\n\n statusOrder.forEach((statusType) => {\n // Find all status keys that match this type\n const matchingKeys = Object.keys(tasksByStatus).filter((key) =>\n key.startsWith(statusType)\n );\n\n matchingKeys.forEach((statusKey) => {\n const tasks = tasksByStatus[statusKey];\n if (tasks.length === 0) return;\n\n // Status header with count\n console.log(\n chalk.bold.white(\n `\\n${getStatusEmoji(statusType)} ${statusKey} (${tasks.length} tasks)`\n )\n );\n console.log(chalk.gray(''.padEnd(60, '\u2500')));\n\n // List tasks\n tasks.forEach((task) => {\n const priorityStr =\n task.priority > 0\n ? chalk.yellow(`P${task.priority}`)\n : chalk.gray('--');\n const assigneeStr = task.assignee\n ? chalk.blue(task.assignee)\n : chalk.gray('Unassigned');\n const titleStr =\n task.title.length > 50\n ? task.title.substring(0, 47) + '...'\n : task.title;\n\n console.log(\n ` ${chalk.cyan(task.identifier.padEnd(8))} ${titleStr.padEnd(50)} ${priorityStr.padEnd(8)} ${assigneeStr}`\n );\n });\n });\n });\n\n // Summary\n const totalTasks = issues.length;\n const statusCounts = Object.entries(tasksByStatus).map(\n ([status, tasks]) => ({\n status,\n count: tasks.length,\n })\n );\n\n console.log(chalk.cyan('\\n\uD83D\uDCCA Summary:'));\n statusCounts.forEach(({ status, count }) => {\n console.log(chalk.gray(` ${status}: ${count} tasks`));\n });\n console.log(chalk.bold(` Total: ${totalTasks} tasks`));\n } catch (error: unknown) {\n console.error(chalk.red('\u274C Error:'), (error as Error).message);\n process.exit(1);\n }\n}\n\nfunction getStatusEmoji(statusType: string): string {\n switch (statusType) {\n case 'backlog':\n return '\uD83D\uDCCB';\n case 'unstarted':\n return '\uD83D\uDCDD';\n case 'started':\n return '\u23F3';\n case 'completed':\n return '\u2705';\n case 'cancelled':\n return '\u274C';\n default:\n return '\uD83D\uDCC4';\n }\n}\n\n// Direct execution\nmain();\n"],
5
+ "mappings": ";;;;;AAMA,SAAS,oBAAoB;AAC7B,SAAS,yBAAyB;AAClC,OAAO,WAAW;AAElB,SAAS,OAAO,KAAa,cAA+B;AAC1D,QAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,MAAI,UAAU,QAAW;AACvB,QAAI,iBAAiB,OAAW,QAAO;AACvC,UAAM,IAAI,MAAM,wBAAwB,GAAG,cAAc;AAAA,EAC3D;AACA,SAAO;AACT;AAEA,SAAS,eAAe,KAAiC;AACvD,SAAO,QAAQ,IAAI,GAAG;AACxB;AAYA,eAAe,OAAO;AACpB,MAAI;AACF,YAAQ,IAAI,MAAM,KAAK,sCAA+B,CAAC;AAGvD,UAAM,cAAc,IAAI,kBAAkB,QAAQ,IAAI,CAAC;AACvD,UAAM,SAAS,YAAY,WAAW;AACtC,UAAM,SAAS,QAAQ,IAAI,gBAAgB;AAE3C,QAAI,CAAC,UAAU,CAAC,QAAQ;AACtB,cAAQ,IAAI,MAAM,IAAI,sCAAiC,CAAC;AACxD,cAAQ,IAAI,8CAA8C;AAC1D,cAAQ,KAAK,CAAC;AAAA,IAChB;AAGA,UAAM,SAAS,SACX,IAAI,aAAa,EAAE,OAAO,CAAC,IAC3B,IAAI,aAAa;AAAA,MACf,QAAQ,QAAQ,eAAe;AAAA,MAC/B,WAAW;AAAA,IACb,CAAC;AAGL,YAAQ,IAAI,MAAM,KAAK,oBAAoB,CAAC;AAC5C,UAAM,SAAS,MAAM,OAAO,UAAU,EAAE,OAAO,IAAI,CAAC;AAEpD,QAAI,CAAC,UAAU,OAAO,WAAW,GAAG;AAClC,cAAQ,IAAI,MAAM,KAAK,iBAAiB,CAAC;AACzC;AAAA,IACF;AAEA,YAAQ,IAAI,MAAM,MAAM,gBAAW,OAAO,MAAM,QAAQ,CAAC;AAGzD,UAAM,gBAA+B,CAAC;AAEtC,WAAO,QAAQ,CAAC,UAAU;AACxB,YAAM,aAAa,MAAM,MAAM;AAC/B,YAAM,aAAa,MAAM,MAAM;AAC/B,YAAM,MAAM,GAAG,UAAU,KAAK,UAAU;AAExC,UAAI,CAAC,cAAc,GAAG,GAAG;AACvB,sBAAc,GAAG,IAAI,CAAC;AAAA,MACxB;AAEA,oBAAc,GAAG,EAAE,KAAK;AAAA,QACtB,YAAY,MAAM;AAAA,QAClB,OAAO,MAAM;AAAA,QACb,UAAU,MAAM;AAAA,QAChB,UAAU,MAAM,UAAU;AAAA,QAC1B,KAAK,MAAM;AAAA,MACb,CAAC;AAAA,IACH,CAAC;AAGD,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,YAAQ,IAAI,MAAM,KAAK,uCAAgC,CAAC;AAExD,gBAAY,QAAQ,CAAC,eAAe;AAElC,YAAM,eAAe,OAAO,KAAK,aAAa,EAAE;AAAA,QAAO,CAAC,QACtD,IAAI,WAAW,UAAU;AAAA,MAC3B;AAEA,mBAAa,QAAQ,CAAC,cAAc;AAClC,cAAM,QAAQ,cAAc,SAAS;AACrC,YAAI,MAAM,WAAW,EAAG;AAGxB,gBAAQ;AAAA,UACN,MAAM,KAAK;AAAA,YACT;AAAA,EAAK,eAAe,UAAU,CAAC,IAAI,SAAS,KAAK,MAAM,MAAM;AAAA,UAC/D;AAAA,QACF;AACA,gBAAQ,IAAI,MAAM,KAAK,GAAG,OAAO,IAAI,QAAG,CAAC,CAAC;AAG1C,cAAM,QAAQ,CAAC,SAAS;AACtB,gBAAM,cACJ,KAAK,WAAW,IACZ,MAAM,OAAO,IAAI,KAAK,QAAQ,EAAE,IAChC,MAAM,KAAK,IAAI;AACrB,gBAAM,cAAc,KAAK,WACrB,MAAM,KAAK,KAAK,QAAQ,IACxB,MAAM,KAAK,YAAY;AAC3B,gBAAM,WACJ,KAAK,MAAM,SAAS,KAChB,KAAK,MAAM,UAAU,GAAG,EAAE,IAAI,QAC9B,KAAK;AAEX,kBAAQ;AAAA,YACN,KAAK,MAAM,KAAK,KAAK,WAAW,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO,EAAE,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,IAAI,WAAW;AAAA,UAC3G;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAGD,UAAM,aAAa,OAAO;AAC1B,UAAM,eAAe,OAAO,QAAQ,aAAa,EAAE;AAAA,MACjD,CAAC,CAAC,QAAQ,KAAK,OAAO;AAAA,QACpB;AAAA,QACA,OAAO,MAAM;AAAA,MACf;AAAA,IACF;AAEA,YAAQ,IAAI,MAAM,KAAK,sBAAe,CAAC;AACvC,iBAAa,QAAQ,CAAC,EAAE,QAAQ,MAAM,MAAM;AAC1C,cAAQ,IAAI,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,QAAQ,CAAC;AAAA,IACvD,CAAC;AACD,YAAQ,IAAI,MAAM,KAAK,YAAY,UAAU,QAAQ,CAAC;AAAA,EACxD,SAAS,OAAgB;AACvB,YAAQ,MAAM,MAAM,IAAI,eAAU,GAAI,MAAgB,OAAO;AAC7D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,SAAS,eAAe,YAA4B;AAClD,UAAQ,YAAY;AAAA,IAClB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAGA,KAAK;",
6
+ "names": []
7
+ }