@stackmemoryai/stackmemory 0.8.0 → 1.0.0

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 (793) hide show
  1. package/LICENSE +64 -0
  2. package/README.md +54 -4
  3. package/dist/src/agents/core/agent-task-manager.js +0 -1
  4. package/dist/src/agents/verifiers/base-verifier.js +0 -1
  5. package/dist/src/agents/verifiers/formatter-verifier.js +0 -1
  6. package/dist/src/agents/verifiers/llm-judge.js +0 -1
  7. package/dist/src/cli/auto-detect.js +0 -1
  8. package/dist/src/cli/claude-sm-danger.js +0 -1
  9. package/dist/src/cli/claude-sm.js +69 -373
  10. package/dist/src/cli/codex-sm-danger.js +0 -1
  11. package/dist/src/cli/codex-sm.js +28 -1
  12. package/dist/src/cli/commands/api.js +0 -1
  13. package/dist/src/cli/commands/auto-background.js +0 -1
  14. package/dist/src/cli/commands/cleanup-processes.js +0 -1
  15. package/dist/src/cli/commands/clear.js +0 -1
  16. package/dist/src/cli/commands/config.js +0 -1
  17. package/dist/src/cli/commands/context-rehydrate.js +0 -1
  18. package/dist/src/cli/commands/context.js +0 -1
  19. package/dist/src/cli/commands/daemon.js +0 -1
  20. package/dist/src/cli/commands/dashboard.js +4 -5
  21. package/dist/src/cli/commands/db.js +0 -1
  22. package/dist/src/cli/commands/decision.js +0 -1
  23. package/dist/src/cli/commands/discovery.js +0 -1
  24. package/dist/src/cli/commands/handoff.js +0 -1
  25. package/dist/src/cli/commands/hooks.js +0 -1
  26. package/dist/src/cli/commands/linear.js +0 -1
  27. package/dist/src/cli/commands/log.js +0 -1
  28. package/dist/src/cli/commands/login.js +0 -1
  29. package/dist/src/cli/commands/migrate.js +0 -1
  30. package/dist/src/cli/commands/model.js +0 -1
  31. package/dist/src/cli/commands/onboard.js +22 -7
  32. package/dist/src/cli/commands/ping.js +0 -1
  33. package/dist/src/cli/commands/projects.js +0 -1
  34. package/dist/src/cli/commands/ralph.js +0 -1
  35. package/dist/src/cli/commands/retrieval.js +0 -1
  36. package/dist/src/cli/commands/search.js +0 -1
  37. package/dist/src/cli/commands/service.js +0 -1
  38. package/dist/src/cli/commands/session.js +0 -1
  39. package/dist/src/cli/commands/setup.js +1 -6
  40. package/dist/src/cli/commands/shell.js +0 -1
  41. package/dist/src/cli/commands/signup.js +0 -1
  42. package/dist/src/cli/commands/skills.js +4 -3
  43. package/dist/src/cli/commands/storage-tier.js +0 -1
  44. package/dist/src/cli/commands/sweep.js +0 -1
  45. package/dist/src/cli/commands/tasks.js +0 -1
  46. package/dist/src/cli/commands/worktree.js +10 -5
  47. package/dist/src/cli/index.js +9 -76
  48. package/dist/src/cli/opencode-sm.js +28 -1
  49. package/dist/src/cli/utils/viewer.js +0 -1
  50. package/dist/src/core/config/config-manager.js +0 -1
  51. package/dist/src/core/config/feature-flags.js +1 -14
  52. package/dist/src/core/config/storage-config.js +0 -1
  53. package/dist/src/core/config/types.js +0 -1
  54. package/dist/src/core/context/auto-context.js +0 -1
  55. package/dist/src/core/context/dual-stack-manager.js +0 -1
  56. package/dist/src/core/context/enhanced-rehydration.js +0 -2
  57. package/dist/src/core/context/frame-database.js +60 -6
  58. package/dist/src/core/context/frame-digest.js +0 -1
  59. package/dist/src/core/context/frame-handoff-manager.js +0 -1
  60. package/dist/src/core/context/frame-lifecycle-hooks.js +0 -1
  61. package/dist/src/core/context/frame-recovery.js +0 -1
  62. package/dist/src/core/context/frame-stack.js +0 -1
  63. package/dist/src/core/context/frame-types.js +0 -1
  64. package/dist/src/core/context/index.js +0 -1
  65. package/dist/src/core/context/permission-manager.js +0 -1
  66. package/dist/src/core/context/recursive-context-manager.js +3 -2
  67. package/dist/src/core/context/refactored-frame-manager.js +0 -1
  68. package/dist/src/core/context/shared-context-layer.js +0 -1
  69. package/dist/src/core/context/stack-merge-resolver.js +0 -1
  70. package/dist/src/core/context/validation.js +0 -1
  71. package/dist/src/core/database/batch-operations.js +0 -1
  72. package/dist/src/core/database/connection-pool.js +0 -1
  73. package/dist/src/core/database/database-adapter.js +0 -1
  74. package/dist/src/core/database/embedding-provider-factory.js +0 -1
  75. package/dist/src/core/database/embedding-provider.js +0 -1
  76. package/dist/src/core/database/migration-manager.js +0 -1
  77. package/dist/src/core/database/ollama-embedding-provider.js +0 -1
  78. package/dist/src/core/database/openai-embedding-provider.js +0 -1
  79. package/dist/src/core/database/query-cache.js +0 -1
  80. package/dist/src/core/database/query-router.js +0 -1
  81. package/dist/src/core/database/sqlite-adapter.js +18 -108
  82. package/dist/src/core/database/transformers-embedding-provider.js +0 -1
  83. package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -1
  84. package/dist/src/core/digest/frame-digest-integration.js +0 -1
  85. package/dist/src/core/digest/hybrid-digest-generator.js +0 -1
  86. package/dist/src/core/digest/index.js +0 -1
  87. package/dist/src/core/digest/types.js +0 -1
  88. package/dist/src/core/errors/error-utils.js +0 -1
  89. package/dist/src/core/errors/index.js +0 -1
  90. package/dist/src/core/errors/recovery.js +0 -1
  91. package/dist/src/core/execution/parallel-executor.js +0 -1
  92. package/dist/src/core/extensions/custom-tools.js +0 -1
  93. package/dist/src/core/extensions/index.js +0 -1
  94. package/dist/src/core/extensions/loader.js +0 -1
  95. package/dist/src/core/extensions/plugin-system.js +0 -1
  96. package/dist/src/core/extensions/provider-adapter.js +0 -1
  97. package/dist/src/core/extensions/sandbox-runtime.js +0 -1
  98. package/dist/src/core/extensions/types.js +0 -1
  99. package/dist/src/core/frame/workflow-templates.js +0 -1
  100. package/dist/src/core/merge/conflict-detector.js +0 -1
  101. package/dist/src/core/merge/index.js +0 -1
  102. package/dist/src/core/merge/resolution-engine.js +0 -1
  103. package/dist/src/core/merge/stack-diff.js +0 -1
  104. package/dist/src/core/merge/types.js +0 -1
  105. package/dist/src/core/merge/unified-merge-resolver.js +0 -1
  106. package/dist/src/core/models/fallback-monitor.js +0 -1
  107. package/dist/src/core/models/model-router.js +0 -1
  108. package/dist/src/core/monitoring/error-handler.js +0 -1
  109. package/dist/src/core/monitoring/logger.js +0 -1
  110. package/dist/src/core/monitoring/metrics.js +0 -1
  111. package/dist/src/core/monitoring/progress-tracker.js +0 -1
  112. package/dist/src/core/monitoring/session-monitor.js +0 -1
  113. package/dist/src/core/performance/context-cache.js +0 -1
  114. package/dist/src/core/performance/index.js +0 -1
  115. package/dist/src/core/performance/lazy-context-loader.js +3 -8
  116. package/dist/src/core/performance/monitor.js +0 -1
  117. package/dist/src/core/performance/optimized-frame-context.js +0 -1
  118. package/dist/src/core/performance/performance-benchmark.js +0 -1
  119. package/dist/src/core/performance/performance-profiler.js +0 -1
  120. package/dist/src/core/performance/streaming-jsonl-parser.js +0 -1
  121. package/dist/src/core/persistence/postgres-adapter.js +0 -1
  122. package/dist/src/core/projects/project-isolation.js +0 -1
  123. package/dist/src/core/projects/project-manager.js +0 -1
  124. package/dist/src/core/query/query-parser.js +0 -1
  125. package/dist/src/core/query/query-templates.js +0 -1
  126. package/dist/src/core/retrieval/context-retriever.js +0 -1
  127. package/dist/src/core/retrieval/index.js +0 -1
  128. package/dist/src/core/retrieval/llm-context-retrieval.js +0 -1
  129. package/dist/src/core/retrieval/llm-provider.js +0 -1
  130. package/dist/src/core/retrieval/privacy-filter.js +0 -1
  131. package/dist/src/core/retrieval/retrieval-audit.js +0 -1
  132. package/dist/src/core/retrieval/summary-generator.js +15 -6
  133. package/dist/src/core/retrieval/types.js +0 -1
  134. package/dist/src/core/retrieval/unified-context-assembler.js +0 -1
  135. package/dist/src/core/security/index.js +0 -1
  136. package/dist/src/core/security/input-sanitizer.js +0 -1
  137. package/dist/src/core/session/clear-survival.js +0 -1
  138. package/dist/src/core/session/enhanced-handoff.js +0 -1
  139. package/dist/src/core/session/handoff-generator.js +0 -1
  140. package/dist/src/core/session/index.js +0 -1
  141. package/dist/src/core/session/session-manager.js +0 -1
  142. package/dist/src/core/skills/index.js +0 -1
  143. package/dist/src/core/skills/skill-storage.js +0 -1
  144. package/dist/src/core/skills/types.js +0 -1
  145. package/dist/src/core/storage/chromadb-adapter.js +0 -1
  146. package/dist/src/core/storage/infinite-storage.js +0 -1
  147. package/dist/src/core/storage/project-registry.js +0 -1
  148. package/dist/src/core/storage/remote-storage.js +4 -2
  149. package/dist/src/core/storage/storage-tier-manager.js +0 -1
  150. package/dist/src/core/storage/two-tier-storage.js +0 -1
  151. package/dist/src/core/trace/cli-trace-wrapper.js +0 -1
  152. package/dist/src/core/trace/db-trace-wrapper.js +0 -1
  153. package/dist/src/core/trace/debug-trace.js +0 -1
  154. package/dist/src/core/trace/index.js +0 -1
  155. package/dist/src/core/trace/linear-api-wrapper.js +0 -1
  156. package/dist/src/core/trace/trace-detector.js +0 -1
  157. package/dist/src/core/trace/trace-store.js +4 -5
  158. package/dist/src/core/trace/types.js +0 -1
  159. package/dist/src/core/types.js +0 -1
  160. package/dist/src/core/utils/async-mutex.js +0 -1
  161. package/dist/src/core/utils/compression.js +0 -1
  162. package/dist/src/core/utils/update-checker.js +0 -1
  163. package/dist/src/core/worktree/worktree-manager.js +0 -1
  164. package/dist/src/daemon/daemon-config.js +0 -1
  165. package/dist/src/daemon/services/context-service.js +0 -1
  166. package/dist/src/daemon/services/linear-service.js +0 -1
  167. package/dist/src/daemon/services/maintenance-service.js +0 -1
  168. package/dist/src/daemon/services/memory-service.js +0 -1
  169. package/dist/src/daemon/session-daemon.js +0 -1
  170. package/dist/src/daemon/unified-daemon.js +0 -1
  171. package/dist/src/features/analytics/api/analytics-api.js +0 -1
  172. package/dist/src/features/analytics/core/analytics-service.js +1 -2
  173. package/dist/src/features/analytics/index.js +0 -1
  174. package/dist/src/features/analytics/queries/metrics-queries.js +8 -9
  175. package/dist/src/features/analytics/types/metrics.js +0 -1
  176. package/dist/src/features/browser/browser-mcp.js +0 -1
  177. package/dist/src/features/sweep/index.js +0 -1
  178. package/dist/src/features/sweep/prediction-client.js +0 -1
  179. package/dist/src/features/sweep/prompt-builder.js +0 -1
  180. package/dist/src/features/sweep/pty-wrapper.js +11 -2
  181. package/dist/src/features/sweep/state-watcher.js +0 -1
  182. package/dist/src/features/sweep/status-bar.js +0 -1
  183. package/dist/src/features/sweep/sweep-server-manager.js +0 -1
  184. package/dist/src/features/sweep/tab-interceptor.js +0 -1
  185. package/dist/src/features/sweep/types.js +0 -1
  186. package/dist/src/features/tasks/linear-task-manager.js +0 -1
  187. package/dist/src/features/tasks/task-aware-context.js +0 -1
  188. package/dist/src/features/tui/simple-monitor.js +0 -1
  189. package/dist/src/features/tui/swarm-monitor.js +0 -1
  190. package/dist/src/features/web/client/stores/task-store.js +0 -1
  191. package/dist/src/features/web/server/index.js +0 -1
  192. package/dist/src/features/workers/tmux-manager.js +0 -1
  193. package/dist/src/features/workers/worker-registry.js +0 -1
  194. package/dist/src/hooks/auto-background.js +0 -1
  195. package/dist/src/hooks/config.js +0 -1
  196. package/dist/src/hooks/daemon.js +0 -1
  197. package/dist/src/hooks/diffmem-hooks.js +0 -1
  198. package/dist/src/hooks/events.js +0 -1
  199. package/dist/src/hooks/index.js +0 -4
  200. package/dist/src/hooks/linear-task-picker.js +0 -1
  201. package/dist/src/hooks/schemas.js +0 -118
  202. package/dist/src/hooks/secure-fs.js +0 -1
  203. package/dist/src/hooks/security-logger.js +0 -1
  204. package/dist/src/hooks/session-summary.js +0 -1
  205. package/dist/src/index.js +0 -1
  206. package/dist/src/integrations/anthropic/client.js +0 -1
  207. package/dist/src/integrations/claude-code/agent-bridge.js +0 -1
  208. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -1
  209. package/dist/src/integrations/claude-code/lifecycle-hooks.js +0 -1
  210. package/dist/src/integrations/claude-code/post-task-hooks.js +0 -1
  211. package/dist/src/integrations/claude-code/subagent-client-stub.js +0 -1
  212. package/dist/src/integrations/claude-code/subagent-client.js +0 -1
  213. package/dist/src/integrations/claude-code/task-coordinator.js +0 -1
  214. package/dist/src/integrations/diffmem/client.js +0 -1
  215. package/dist/src/integrations/diffmem/config.js +0 -1
  216. package/dist/src/integrations/diffmem/index.js +0 -1
  217. package/dist/src/integrations/diffmem/types.js +0 -1
  218. package/dist/src/integrations/linear/auth.js +0 -1
  219. package/dist/src/integrations/linear/auto-sync.js +0 -1
  220. package/dist/src/integrations/linear/client.js +0 -1
  221. package/dist/src/integrations/linear/config.js +0 -1
  222. package/dist/src/integrations/linear/migration.js +0 -1
  223. package/dist/src/integrations/linear/oauth-server.js +0 -1
  224. package/dist/src/integrations/linear/rest-client.js +0 -1
  225. package/dist/src/integrations/linear/sync-manager.js +0 -1
  226. package/dist/src/integrations/linear/sync-service.js +0 -1
  227. package/dist/src/integrations/linear/sync.js +0 -1
  228. package/dist/src/integrations/linear/types.js +0 -1
  229. package/dist/src/integrations/linear/unified-sync.js +0 -1
  230. package/dist/src/integrations/linear/webhook-handler.js +0 -1
  231. package/dist/src/integrations/linear/webhook-server.js +0 -1
  232. package/dist/src/integrations/linear/webhook.js +0 -1
  233. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +0 -1
  234. package/dist/src/integrations/mcp/handlers/context-handlers.js +43 -30
  235. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js +0 -1
  236. package/dist/src/integrations/mcp/handlers/discovery-handlers.js +0 -1
  237. package/dist/src/integrations/mcp/handlers/index.js +1 -3
  238. package/dist/src/integrations/mcp/handlers/linear-handlers.js +24 -61
  239. package/dist/src/integrations/mcp/handlers/skill-handlers.js +0 -1
  240. package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -1
  241. package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -1
  242. package/dist/src/integrations/mcp/index.js +0 -1
  243. package/dist/src/integrations/mcp/middleware/tool-scoring.js +3 -2
  244. package/dist/src/integrations/mcp/pending-utils.js +0 -1
  245. package/dist/src/integrations/mcp/refactored-server.js +0 -1
  246. package/dist/src/integrations/mcp/remote-server.js +0 -1
  247. package/dist/src/integrations/mcp/schemas.js +0 -1
  248. package/dist/src/integrations/mcp/server.js +20 -24
  249. package/dist/src/integrations/mcp/tool-definitions-code.js +0 -1
  250. package/dist/src/integrations/mcp/tool-definitions.js +0 -1
  251. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -1
  252. package/dist/src/integrations/ralph/context/context-budget-manager.js +0 -1
  253. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +0 -1
  254. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +0 -1
  255. package/dist/src/integrations/ralph/index.js +0 -1
  256. package/dist/src/integrations/ralph/learning/pattern-learner.js +0 -1
  257. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +5 -5
  258. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +0 -1
  259. package/dist/src/integrations/ralph/monitoring/swarm-registry.js +0 -1
  260. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -1
  261. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -1
  262. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +0 -1
  263. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +0 -1
  264. package/dist/src/integrations/ralph/performance/performance-optimizer.js +0 -1
  265. package/dist/src/integrations/ralph/recovery/crash-recovery.js +0 -1
  266. package/dist/src/integrations/ralph/state/state-reconciler.js +25 -9
  267. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +0 -1
  268. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +0 -1
  269. package/dist/src/integrations/ralph/types.js +0 -1
  270. package/dist/src/integrations/ralph/visualization/ralph-debugger.js +0 -1
  271. package/dist/src/mcp/stackmemory-mcp-server.js +0 -1
  272. package/dist/src/middleware/exponential-rate-limiter.js +0 -1
  273. package/dist/src/models/user.model.js +0 -1
  274. package/dist/src/orchestrators/multimodal/constants.js +0 -1
  275. package/dist/src/orchestrators/multimodal/harness.js +0 -1
  276. package/dist/src/orchestrators/multimodal/providers.js +0 -1
  277. package/dist/src/orchestrators/multimodal/types.js +0 -1
  278. package/dist/src/orchestrators/multimodal/utils.js +0 -1
  279. package/dist/src/servers/production/auth-middleware.js +0 -1
  280. package/dist/src/services/config-service.js +0 -1
  281. package/dist/src/services/context-service.js +0 -1
  282. package/dist/src/skills/api-discovery.js +0 -1
  283. package/dist/src/skills/api-skill.js +0 -1
  284. package/dist/src/skills/claude-skills.js +0 -1
  285. package/dist/src/skills/dashboard-launcher.js +0 -1
  286. package/dist/src/skills/linear-task-runner.js +0 -1
  287. package/dist/src/skills/recursive-agent-orchestrator.js +0 -1
  288. package/dist/src/skills/repo-ingestion-skill.js +0 -1
  289. package/dist/src/skills/spec-generator-skill.js +0 -1
  290. package/dist/src/skills/unified-rlm-orchestrator.js +0 -1
  291. package/dist/src/types/task.js +0 -1
  292. package/dist/src/utils/env.js +0 -1
  293. package/dist/src/utils/formatting.js +0 -1
  294. package/dist/src/utils/process-cleanup.js +0 -1
  295. package/package.json +33 -8
  296. package/scripts/smoke-init-db.sh +77 -0
  297. package/dist/scripts/benchmark-performance.js +0 -48
  298. package/dist/scripts/benchmark-performance.js.map +0 -7
  299. package/dist/scripts/check-redis.js +0 -42
  300. package/dist/scripts/check-redis.js.map +0 -7
  301. package/dist/scripts/initialize.js +0 -183
  302. package/dist/scripts/initialize.js.map +0 -7
  303. package/dist/scripts/list-linear-tasks.js +0 -124
  304. package/dist/scripts/list-linear-tasks.js.map +0 -7
  305. package/dist/scripts/measure-handoff-impact.js +0 -340
  306. package/dist/scripts/measure-handoff-impact.js.map +0 -7
  307. package/dist/scripts/query-chromadb.js +0 -160
  308. package/dist/scripts/query-chromadb.js.map +0 -7
  309. package/dist/scripts/show-linear-summary.js +0 -119
  310. package/dist/scripts/show-linear-summary.js.map +0 -7
  311. package/dist/scripts/simple-swarm-demo.js +0 -90
  312. package/dist/scripts/simple-swarm-demo.js.map +0 -7
  313. package/dist/scripts/status.js +0 -155
  314. package/dist/scripts/status.js.map +0 -7
  315. package/dist/scripts/test-chromadb-sync.js +0 -192
  316. package/dist/scripts/test-chromadb-sync.js.map +0 -7
  317. package/dist/scripts/test-ralph-iteration-fix.js +0 -86
  318. package/dist/scripts/test-ralph-iteration-fix.js.map +0 -7
  319. package/dist/scripts/test-ralph-iterations.js +0 -121
  320. package/dist/scripts/test-ralph-iterations.js.map +0 -7
  321. package/dist/scripts/test-redis-storage.js +0 -389
  322. package/dist/scripts/test-redis-storage.js.map +0 -7
  323. package/dist/scripts/test-simple-ralph-state-sync.js +0 -115
  324. package/dist/scripts/test-simple-ralph-state-sync.js.map +0 -7
  325. package/dist/scripts/test-swarm-fixes.js +0 -125
  326. package/dist/scripts/test-swarm-fixes.js.map +0 -7
  327. package/dist/scripts/test-swarm-tui.js +0 -23
  328. package/dist/scripts/test-swarm-tui.js.map +0 -7
  329. package/dist/scripts/test-tui-shortcuts.js +0 -52
  330. package/dist/scripts/test-tui-shortcuts.js.map +0 -7
  331. package/dist/scripts/validate-tui-shortcuts.js +0 -60
  332. package/dist/scripts/validate-tui-shortcuts.js.map +0 -7
  333. package/dist/src/agents/core/agent-task-manager.js.map +0 -7
  334. package/dist/src/agents/verifiers/base-verifier.js.map +0 -7
  335. package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -7
  336. package/dist/src/agents/verifiers/llm-judge.js.map +0 -7
  337. package/dist/src/cli/auto-detect.js.map +0 -7
  338. package/dist/src/cli/claude-sm-danger.js.map +0 -7
  339. package/dist/src/cli/claude-sm.js.map +0 -7
  340. package/dist/src/cli/codex-sm-danger.js.map +0 -7
  341. package/dist/src/cli/codex-sm.js.map +0 -7
  342. package/dist/src/cli/commands/api.js.map +0 -7
  343. package/dist/src/cli/commands/auto-background.js.map +0 -7
  344. package/dist/src/cli/commands/cleanup-processes.js.map +0 -7
  345. package/dist/src/cli/commands/clear.js.map +0 -7
  346. package/dist/src/cli/commands/config.js.map +0 -7
  347. package/dist/src/cli/commands/context-rehydrate.js.map +0 -7
  348. package/dist/src/cli/commands/context.js.map +0 -7
  349. package/dist/src/cli/commands/daemon.js.map +0 -7
  350. package/dist/src/cli/commands/dashboard.js.map +0 -7
  351. package/dist/src/cli/commands/db.js.map +0 -7
  352. package/dist/src/cli/commands/decision.js.map +0 -7
  353. package/dist/src/cli/commands/discovery.js.map +0 -7
  354. package/dist/src/cli/commands/handoff.js.map +0 -7
  355. package/dist/src/cli/commands/hooks.js.map +0 -7
  356. package/dist/src/cli/commands/linear.js.map +0 -7
  357. package/dist/src/cli/commands/log.js.map +0 -7
  358. package/dist/src/cli/commands/login.js.map +0 -7
  359. package/dist/src/cli/commands/migrate.js.map +0 -7
  360. package/dist/src/cli/commands/model.js.map +0 -7
  361. package/dist/src/cli/commands/onboard.js.map +0 -7
  362. package/dist/src/cli/commands/ping.js.map +0 -7
  363. package/dist/src/cli/commands/projects.js.map +0 -7
  364. package/dist/src/cli/commands/ralph.js.map +0 -7
  365. package/dist/src/cli/commands/retrieval.js.map +0 -7
  366. package/dist/src/cli/commands/search.js.map +0 -7
  367. package/dist/src/cli/commands/service.js.map +0 -7
  368. package/dist/src/cli/commands/session.js.map +0 -7
  369. package/dist/src/cli/commands/settings.js +0 -306
  370. package/dist/src/cli/commands/settings.js.map +0 -7
  371. package/dist/src/cli/commands/setup.js.map +0 -7
  372. package/dist/src/cli/commands/shell.js.map +0 -7
  373. package/dist/src/cli/commands/signup.js.map +0 -7
  374. package/dist/src/cli/commands/skills.js.map +0 -7
  375. package/dist/src/cli/commands/sms-notify.js +0 -795
  376. package/dist/src/cli/commands/sms-notify.js.map +0 -7
  377. package/dist/src/cli/commands/storage-tier.js.map +0 -7
  378. package/dist/src/cli/commands/sweep.js.map +0 -7
  379. package/dist/src/cli/commands/tasks.js.map +0 -7
  380. package/dist/src/cli/commands/worktree.js.map +0 -7
  381. package/dist/src/cli/index.js.map +0 -7
  382. package/dist/src/cli/opencode-sm.js.map +0 -7
  383. package/dist/src/cli/utils/viewer.js.map +0 -7
  384. package/dist/src/core/config/config-manager.js.map +0 -7
  385. package/dist/src/core/config/feature-flags.js.map +0 -7
  386. package/dist/src/core/config/storage-config.js.map +0 -7
  387. package/dist/src/core/config/types.js.map +0 -7
  388. package/dist/src/core/context/auto-context.js.map +0 -7
  389. package/dist/src/core/context/dual-stack-manager.js.map +0 -7
  390. package/dist/src/core/context/enhanced-rehydration.js.map +0 -7
  391. package/dist/src/core/context/frame-database.js.map +0 -7
  392. package/dist/src/core/context/frame-digest.js.map +0 -7
  393. package/dist/src/core/context/frame-handoff-manager.js.map +0 -7
  394. package/dist/src/core/context/frame-lifecycle-hooks.js.map +0 -7
  395. package/dist/src/core/context/frame-recovery.js.map +0 -7
  396. package/dist/src/core/context/frame-stack.js.map +0 -7
  397. package/dist/src/core/context/frame-types.js.map +0 -7
  398. package/dist/src/core/context/index.js.map +0 -7
  399. package/dist/src/core/context/permission-manager.js.map +0 -7
  400. package/dist/src/core/context/recursive-context-manager.js.map +0 -7
  401. package/dist/src/core/context/refactored-frame-manager.js.map +0 -7
  402. package/dist/src/core/context/shared-context-layer.js.map +0 -7
  403. package/dist/src/core/context/stack-merge-resolver.js.map +0 -7
  404. package/dist/src/core/context/validation.js.map +0 -7
  405. package/dist/src/core/database/batch-operations.js.map +0 -7
  406. package/dist/src/core/database/connection-pool.js.map +0 -7
  407. package/dist/src/core/database/database-adapter.js.map +0 -7
  408. package/dist/src/core/database/embedding-provider-factory.js.map +0 -7
  409. package/dist/src/core/database/embedding-provider.js.map +0 -7
  410. package/dist/src/core/database/migration-manager.js.map +0 -7
  411. package/dist/src/core/database/ollama-embedding-provider.js.map +0 -7
  412. package/dist/src/core/database/openai-embedding-provider.js.map +0 -7
  413. package/dist/src/core/database/query-cache.js.map +0 -7
  414. package/dist/src/core/database/query-router.js.map +0 -7
  415. package/dist/src/core/database/sqlite-adapter.js.map +0 -7
  416. package/dist/src/core/database/transformers-embedding-provider.js.map +0 -7
  417. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -7
  418. package/dist/src/core/digest/frame-digest-integration.js.map +0 -7
  419. package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -7
  420. package/dist/src/core/digest/index.js.map +0 -7
  421. package/dist/src/core/digest/types.js.map +0 -7
  422. package/dist/src/core/errors/error-utils.js.map +0 -7
  423. package/dist/src/core/errors/index.js.map +0 -7
  424. package/dist/src/core/errors/recovery.js.map +0 -7
  425. package/dist/src/core/execution/parallel-executor.js.map +0 -7
  426. package/dist/src/core/extensions/custom-tools.js.map +0 -7
  427. package/dist/src/core/extensions/index.js.map +0 -7
  428. package/dist/src/core/extensions/loader.js.map +0 -7
  429. package/dist/src/core/extensions/plugin-system.js.map +0 -7
  430. package/dist/src/core/extensions/provider-adapter.js.map +0 -7
  431. package/dist/src/core/extensions/sandbox-runtime.js.map +0 -7
  432. package/dist/src/core/extensions/types.js.map +0 -7
  433. package/dist/src/core/frame/workflow-templates.js.map +0 -7
  434. package/dist/src/core/merge/conflict-detector.js.map +0 -7
  435. package/dist/src/core/merge/index.js.map +0 -7
  436. package/dist/src/core/merge/resolution-engine.js.map +0 -7
  437. package/dist/src/core/merge/stack-diff.js.map +0 -7
  438. package/dist/src/core/merge/types.js.map +0 -7
  439. package/dist/src/core/merge/unified-merge-resolver.js.map +0 -7
  440. package/dist/src/core/models/fallback-monitor.js.map +0 -7
  441. package/dist/src/core/models/model-router.js.map +0 -7
  442. package/dist/src/core/monitoring/error-handler.js.map +0 -7
  443. package/dist/src/core/monitoring/logger.js.map +0 -7
  444. package/dist/src/core/monitoring/metrics.js.map +0 -7
  445. package/dist/src/core/monitoring/progress-tracker.js.map +0 -7
  446. package/dist/src/core/monitoring/session-monitor.js.map +0 -7
  447. package/dist/src/core/performance/context-cache.js.map +0 -7
  448. package/dist/src/core/performance/index.js.map +0 -7
  449. package/dist/src/core/performance/lazy-context-loader.js.map +0 -7
  450. package/dist/src/core/performance/monitor.js.map +0 -7
  451. package/dist/src/core/performance/optimized-frame-context.js.map +0 -7
  452. package/dist/src/core/performance/performance-benchmark.js.map +0 -7
  453. package/dist/src/core/performance/performance-profiler.js.map +0 -7
  454. package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -7
  455. package/dist/src/core/persistence/postgres-adapter.js.map +0 -7
  456. package/dist/src/core/projects/project-isolation.js.map +0 -7
  457. package/dist/src/core/projects/project-manager.js.map +0 -7
  458. package/dist/src/core/query/query-parser.js.map +0 -7
  459. package/dist/src/core/query/query-templates.js.map +0 -7
  460. package/dist/src/core/retrieval/context-retriever.js.map +0 -7
  461. package/dist/src/core/retrieval/index.js.map +0 -7
  462. package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -7
  463. package/dist/src/core/retrieval/llm-provider.js.map +0 -7
  464. package/dist/src/core/retrieval/privacy-filter.js.map +0 -7
  465. package/dist/src/core/retrieval/retrieval-audit.js.map +0 -7
  466. package/dist/src/core/retrieval/summary-generator.js.map +0 -7
  467. package/dist/src/core/retrieval/types.js.map +0 -7
  468. package/dist/src/core/retrieval/unified-context-assembler.js.map +0 -7
  469. package/dist/src/core/security/index.js.map +0 -7
  470. package/dist/src/core/security/input-sanitizer.js.map +0 -7
  471. package/dist/src/core/session/clear-survival.js.map +0 -7
  472. package/dist/src/core/session/enhanced-handoff.js.map +0 -7
  473. package/dist/src/core/session/handoff-generator.js.map +0 -7
  474. package/dist/src/core/session/index.js.map +0 -7
  475. package/dist/src/core/session/session-manager.js.map +0 -7
  476. package/dist/src/core/skills/index.js.map +0 -7
  477. package/dist/src/core/skills/skill-storage.js.map +0 -7
  478. package/dist/src/core/skills/types.js.map +0 -7
  479. package/dist/src/core/storage/chromadb-adapter.js.map +0 -7
  480. package/dist/src/core/storage/infinite-storage.js.map +0 -7
  481. package/dist/src/core/storage/project-registry.js.map +0 -7
  482. package/dist/src/core/storage/remote-storage.js.map +0 -7
  483. package/dist/src/core/storage/storage-tier-manager.js.map +0 -7
  484. package/dist/src/core/storage/two-tier-storage.js.map +0 -7
  485. package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -7
  486. package/dist/src/core/trace/db-trace-wrapper.js.map +0 -7
  487. package/dist/src/core/trace/debug-trace.js.map +0 -7
  488. package/dist/src/core/trace/index.js.map +0 -7
  489. package/dist/src/core/trace/linear-api-wrapper.js.map +0 -7
  490. package/dist/src/core/trace/trace-detector.js.map +0 -7
  491. package/dist/src/core/trace/trace-store.js.map +0 -7
  492. package/dist/src/core/trace/types.js.map +0 -7
  493. package/dist/src/core/types.js.map +0 -7
  494. package/dist/src/core/utils/async-mutex.js.map +0 -7
  495. package/dist/src/core/utils/compression.js.map +0 -7
  496. package/dist/src/core/utils/update-checker.js.map +0 -7
  497. package/dist/src/core/worktree/worktree-manager.js.map +0 -7
  498. package/dist/src/daemon/daemon-config.js.map +0 -7
  499. package/dist/src/daemon/services/context-service.js.map +0 -7
  500. package/dist/src/daemon/services/linear-service.js.map +0 -7
  501. package/dist/src/daemon/services/maintenance-service.js.map +0 -7
  502. package/dist/src/daemon/services/memory-service.js.map +0 -7
  503. package/dist/src/daemon/session-daemon.js.map +0 -7
  504. package/dist/src/daemon/unified-daemon.js.map +0 -7
  505. package/dist/src/features/analytics/api/analytics-api.js.map +0 -7
  506. package/dist/src/features/analytics/core/analytics-service.js.map +0 -7
  507. package/dist/src/features/analytics/index.js.map +0 -7
  508. package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -7
  509. package/dist/src/features/analytics/types/metrics.js.map +0 -7
  510. package/dist/src/features/browser/browser-mcp.js.map +0 -7
  511. package/dist/src/features/sweep/index.js.map +0 -7
  512. package/dist/src/features/sweep/prediction-client.js.map +0 -7
  513. package/dist/src/features/sweep/prompt-builder.js.map +0 -7
  514. package/dist/src/features/sweep/pty-wrapper.js.map +0 -7
  515. package/dist/src/features/sweep/state-watcher.js.map +0 -7
  516. package/dist/src/features/sweep/status-bar.js.map +0 -7
  517. package/dist/src/features/sweep/sweep-server-manager.js.map +0 -7
  518. package/dist/src/features/sweep/tab-interceptor.js.map +0 -7
  519. package/dist/src/features/sweep/types.js.map +0 -7
  520. package/dist/src/features/tasks/linear-task-manager.js.map +0 -7
  521. package/dist/src/features/tasks/task-aware-context.js.map +0 -7
  522. package/dist/src/features/tui/simple-monitor.js.map +0 -7
  523. package/dist/src/features/tui/swarm-monitor.js.map +0 -7
  524. package/dist/src/features/web/client/stores/task-store.js.map +0 -7
  525. package/dist/src/features/web/server/index.js.map +0 -7
  526. package/dist/src/features/workers/tmux-manager.js.map +0 -7
  527. package/dist/src/features/workers/worker-registry.js.map +0 -7
  528. package/dist/src/hooks/auto-background.js.map +0 -7
  529. package/dist/src/hooks/claude-code-whatsapp-hook.js +0 -197
  530. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +0 -7
  531. package/dist/src/hooks/config.js.map +0 -7
  532. package/dist/src/hooks/daemon.js.map +0 -7
  533. package/dist/src/hooks/diffmem-hooks.js.map +0 -7
  534. package/dist/src/hooks/events.js.map +0 -7
  535. package/dist/src/hooks/index.js.map +0 -7
  536. package/dist/src/hooks/linear-task-picker.js.map +0 -7
  537. package/dist/src/hooks/schemas.js.map +0 -7
  538. package/dist/src/hooks/secure-fs.js.map +0 -7
  539. package/dist/src/hooks/security-logger.js.map +0 -7
  540. package/dist/src/hooks/session-summary.js.map +0 -7
  541. package/dist/src/hooks/sms-action-runner.js +0 -371
  542. package/dist/src/hooks/sms-action-runner.js.map +0 -7
  543. package/dist/src/hooks/sms-notify.js +0 -506
  544. package/dist/src/hooks/sms-notify.js.map +0 -7
  545. package/dist/src/hooks/sms-watcher.js +0 -93
  546. package/dist/src/hooks/sms-watcher.js.map +0 -7
  547. package/dist/src/hooks/sms-webhook.js +0 -555
  548. package/dist/src/hooks/sms-webhook.js.map +0 -7
  549. package/dist/src/hooks/whatsapp-commands.js +0 -479
  550. package/dist/src/hooks/whatsapp-commands.js.map +0 -7
  551. package/dist/src/hooks/whatsapp-scheduler.js +0 -317
  552. package/dist/src/hooks/whatsapp-scheduler.js.map +0 -7
  553. package/dist/src/hooks/whatsapp-sync.js +0 -409
  554. package/dist/src/hooks/whatsapp-sync.js.map +0 -7
  555. package/dist/src/index.js.map +0 -7
  556. package/dist/src/integrations/anthropic/client.js.map +0 -7
  557. package/dist/src/integrations/claude-code/agent-bridge.js.map +0 -7
  558. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  559. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  560. package/dist/src/integrations/claude-code/post-task-hooks.js.map +0 -7
  561. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +0 -7
  562. package/dist/src/integrations/claude-code/subagent-client.js.map +0 -7
  563. package/dist/src/integrations/claude-code/task-coordinator.js.map +0 -7
  564. package/dist/src/integrations/diffmem/client.js.map +0 -7
  565. package/dist/src/integrations/diffmem/config.js.map +0 -7
  566. package/dist/src/integrations/diffmem/index.js.map +0 -7
  567. package/dist/src/integrations/diffmem/types.js.map +0 -7
  568. package/dist/src/integrations/linear/auth.js.map +0 -7
  569. package/dist/src/integrations/linear/auto-sync.js.map +0 -7
  570. package/dist/src/integrations/linear/client.js.map +0 -7
  571. package/dist/src/integrations/linear/config.js.map +0 -7
  572. package/dist/src/integrations/linear/migration.js.map +0 -7
  573. package/dist/src/integrations/linear/oauth-server.js.map +0 -7
  574. package/dist/src/integrations/linear/rest-client.js.map +0 -7
  575. package/dist/src/integrations/linear/sync-manager.js.map +0 -7
  576. package/dist/src/integrations/linear/sync-service.js.map +0 -7
  577. package/dist/src/integrations/linear/sync.js.map +0 -7
  578. package/dist/src/integrations/linear/types.js.map +0 -7
  579. package/dist/src/integrations/linear/unified-sync.js.map +0 -7
  580. package/dist/src/integrations/linear/webhook-handler.js.map +0 -7
  581. package/dist/src/integrations/linear/webhook-server.js.map +0 -7
  582. package/dist/src/integrations/linear/webhook.js.map +0 -7
  583. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  584. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -7
  585. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js.map +0 -7
  586. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  587. package/dist/src/integrations/mcp/handlers/index.js.map +0 -7
  588. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  589. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  590. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -7
  591. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  592. package/dist/src/integrations/mcp/index.js.map +0 -7
  593. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  594. package/dist/src/integrations/mcp/pending-utils.js.map +0 -7
  595. package/dist/src/integrations/mcp/refactored-server.js.map +0 -7
  596. package/dist/src/integrations/mcp/remote-server.js.map +0 -7
  597. package/dist/src/integrations/mcp/schemas.js.map +0 -7
  598. package/dist/src/integrations/mcp/server.js.map +0 -7
  599. package/dist/src/integrations/mcp/tool-definitions-code.js.map +0 -7
  600. package/dist/src/integrations/mcp/tool-definitions.js.map +0 -7
  601. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  602. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +0 -7
  603. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  604. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  605. package/dist/src/integrations/ralph/index.js.map +0 -7
  606. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +0 -7
  607. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  608. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  609. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  610. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  611. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  612. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  613. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  614. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  615. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  616. package/dist/src/integrations/ralph/state/state-reconciler.js.map +0 -7
  617. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  618. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  619. package/dist/src/integrations/ralph/types.js.map +0 -7
  620. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  621. package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -7
  622. package/dist/src/middleware/exponential-rate-limiter.js.map +0 -7
  623. package/dist/src/models/user.model.js.map +0 -7
  624. package/dist/src/orchestrators/multimodal/constants.js.map +0 -7
  625. package/dist/src/orchestrators/multimodal/harness.js.map +0 -7
  626. package/dist/src/orchestrators/multimodal/providers.js.map +0 -7
  627. package/dist/src/orchestrators/multimodal/types.js.map +0 -7
  628. package/dist/src/orchestrators/multimodal/utils.js.map +0 -7
  629. package/dist/src/servers/production/auth-middleware.js.map +0 -7
  630. package/dist/src/services/config-service.js.map +0 -7
  631. package/dist/src/services/context-service.js.map +0 -7
  632. package/dist/src/skills/api-discovery.js.map +0 -7
  633. package/dist/src/skills/api-skill.js.map +0 -7
  634. package/dist/src/skills/claude-skills.js.map +0 -7
  635. package/dist/src/skills/dashboard-launcher.js.map +0 -7
  636. package/dist/src/skills/linear-task-runner.js.map +0 -7
  637. package/dist/src/skills/recursive-agent-orchestrator.js.map +0 -7
  638. package/dist/src/skills/repo-ingestion-skill.js.map +0 -7
  639. package/dist/src/skills/spec-generator-skill.js.map +0 -7
  640. package/dist/src/skills/unified-rlm-orchestrator.js.map +0 -7
  641. package/dist/src/types/task.js.map +0 -7
  642. package/dist/src/utils/env.js.map +0 -7
  643. package/dist/src/utils/formatting.js.map +0 -7
  644. package/dist/src/utils/process-cleanup.js.map +0 -7
  645. package/scripts/README-TESTING.md +0 -186
  646. package/scripts/analyze-cli-security.js +0 -288
  647. package/scripts/archive/add-phase-tasks-to-linear.js +0 -163
  648. package/scripts/archive/analyze-linear-duplicates.js +0 -214
  649. package/scripts/archive/analyze-remaining-duplicates.js +0 -230
  650. package/scripts/archive/analyze-sta-duplicates.js +0 -292
  651. package/scripts/archive/analyze-sta-graphql.js +0 -399
  652. package/scripts/archive/cancel-duplicate-tasks.ts +0 -246
  653. package/scripts/archive/check-all-duplicates.ts +0 -419
  654. package/scripts/archive/clean-duplicate-tasks.js +0 -114
  655. package/scripts/archive/cleanup-duplicate-tasks.ts +0 -286
  656. package/scripts/archive/create-phase-tasks.js +0 -387
  657. package/scripts/archive/delete-linear-duplicates.js +0 -182
  658. package/scripts/archive/delete-remaining-duplicates.js +0 -158
  659. package/scripts/archive/delete-sta-duplicates.js +0 -201
  660. package/scripts/archive/delete-sta-oauth.js +0 -201
  661. package/scripts/archive/export-sta-tasks.js +0 -62
  662. package/scripts/archive/install-auto-sync.js +0 -266
  663. package/scripts/archive/install-chromadb-hooks.sh +0 -133
  664. package/scripts/archive/install-enhanced-clear-hooks.sh +0 -431
  665. package/scripts/archive/install-post-task-hooks.sh +0 -289
  666. package/scripts/archive/install-stackmemory-hooks.sh +0 -420
  667. package/scripts/archive/merge-linear-duplicates-safe.ts +0 -362
  668. package/scripts/archive/merge-linear-duplicates.ts +0 -182
  669. package/scripts/archive/remove-sta-tasks.js +0 -70
  670. package/scripts/archive/setup-background-sync.sh +0 -168
  671. package/scripts/archive/setup-claude-auto-triggers.sh +0 -181
  672. package/scripts/archive/setup-claude-autostart.sh +0 -305
  673. package/scripts/archive/setup-git-hooks.sh +0 -25
  674. package/scripts/archive/setup-linear-oauth.sh +0 -46
  675. package/scripts/archive/setup-mcp.sh +0 -113
  676. package/scripts/archive/setup-railway-deployment.sh +0 -81
  677. package/scripts/auto-handoff.sh +0 -262
  678. package/scripts/background-sync-manager.js +0 -478
  679. package/scripts/benchmark-performance.ts +0 -57
  680. package/scripts/check-redis.ts +0 -48
  681. package/scripts/chromadb-auto-loader.sh +0 -128
  682. package/scripts/chromadb-context-loader.js +0 -479
  683. package/scripts/claude-chromadb-hook.js +0 -460
  684. package/scripts/claude-linear-skill.js +0 -455
  685. package/scripts/claude-pre-commit.sh +0 -302
  686. package/scripts/claude-sm-autostart.js +0 -579
  687. package/scripts/claude-with-chromadb.sh +0 -69
  688. package/scripts/clean-linear-backlog.js +0 -273
  689. package/scripts/cleanup-old-sessions.sh +0 -57
  690. package/scripts/create-cleanup-issues.js +0 -302
  691. package/scripts/create-sandbox.sh +0 -269
  692. package/scripts/debug-linear-update.js +0 -174
  693. package/scripts/delete-linear-tasks.js +0 -167
  694. package/scripts/demos/browser-test.ts +0 -39
  695. package/scripts/demos/ralph-integration-demo.ts +0 -245
  696. package/scripts/demos/trace-demo.ts +0 -200
  697. package/scripts/demos/trace-detector.demo.ts +0 -171
  698. package/scripts/demos/trace-test.ts +0 -79
  699. package/scripts/deploy-ralph-swarm.sh +0 -365
  700. package/scripts/deploy.sh +0 -89
  701. package/scripts/deployment/test-deployment.js +0 -194
  702. package/scripts/detect-and-rehydrate.js +0 -162
  703. package/scripts/detect-and-rehydrate.mjs +0 -165
  704. package/scripts/development/create-demo-tasks.js +0 -143
  705. package/scripts/development/debug-frame-test.js +0 -16
  706. package/scripts/development/demo-auto-sync.js +0 -128
  707. package/scripts/development/fix-all-imports.js +0 -213
  708. package/scripts/development/fix-imports.js +0 -229
  709. package/scripts/development/fix-lint-loop.cjs +0 -103
  710. package/scripts/development/fix-project-id.ts +0 -161
  711. package/scripts/development/fix-strict-mode-issues.ts +0 -291
  712. package/scripts/development/reorganize-structure.sh +0 -228
  713. package/scripts/development/test-persistence-direct.js +0 -148
  714. package/scripts/development/test-persistence.js +0 -114
  715. package/scripts/development/test-tasks.js +0 -93
  716. package/scripts/development/update-imports.js +0 -212
  717. package/scripts/fetch-linear-status.js +0 -125
  718. package/scripts/initialize.ts +0 -220
  719. package/scripts/install-notify-hook.sh +0 -84
  720. package/scripts/linear-auto-sync.js +0 -262
  721. package/scripts/linear-auto-sync.sh +0 -161
  722. package/scripts/linear-sync-daemon.js +0 -150
  723. package/scripts/linear-task-review.js +0 -237
  724. package/scripts/list-linear-tasks.ts +0 -178
  725. package/scripts/mcp-proxy.js +0 -66
  726. package/scripts/measure-handoff-impact.mjs +0 -395
  727. package/scripts/measure-handoff-impact.ts +0 -450
  728. package/scripts/publish-local.js +0 -74
  729. package/scripts/query-chromadb.ts +0 -201
  730. package/scripts/ralph-integration-test.js +0 -274
  731. package/scripts/reconcile-local-tasks.js +0 -170
  732. package/scripts/recreate-frames-db.js +0 -89
  733. package/scripts/setup-notify-webhook.sh +0 -103
  734. package/scripts/show-linear-summary.ts +0 -172
  735. package/scripts/simple-swarm-demo.ts +0 -114
  736. package/scripts/stackmemory-auto-handoff.sh +0 -231
  737. package/scripts/start-linear-sync-daemon.sh +0 -141
  738. package/scripts/start-temporal-paradox.sh +0 -214
  739. package/scripts/status.ts +0 -224
  740. package/scripts/stop-notify-webhook.sh +0 -19
  741. package/scripts/swarm-monitor.js +0 -509
  742. package/scripts/sync-and-clean-tasks.js +0 -258
  743. package/scripts/sync-linear-graphql.js +0 -303
  744. package/scripts/sync-linear-tasks.js +0 -186
  745. package/scripts/test-auto-triggers.sh +0 -57
  746. package/scripts/test-browser-mcp.js +0 -74
  747. package/scripts/test-chromadb-full.js +0 -115
  748. package/scripts/test-chromadb-hooks.sh +0 -28
  749. package/scripts/test-chromadb-sync.ts +0 -245
  750. package/scripts/test-claude-config.sh +0 -123
  751. package/scripts/test-cli-security.js +0 -293
  752. package/scripts/test-code-execution.js +0 -143
  753. package/scripts/test-hooks-persistence.sh +0 -220
  754. package/scripts/test-installation-scenarios.sh +0 -359
  755. package/scripts/test-installation.sh +0 -224
  756. package/scripts/test-mcp.js +0 -163
  757. package/scripts/test-parallel-swarms.js +0 -443
  758. package/scripts/test-pre-publish-quick.sh +0 -77
  759. package/scripts/test-quality-gates.sh +0 -263
  760. package/scripts/test-ralph-iteration-fix.ts +0 -118
  761. package/scripts/test-ralph-iterations.ts +0 -164
  762. package/scripts/test-redis-storage.ts +0 -490
  763. package/scripts/test-rlm-basic.sh +0 -122
  764. package/scripts/test-rlm-comprehensive.sh +0 -260
  765. package/scripts/test-rlm-e2e.sh +0 -268
  766. package/scripts/test-rlm-simple.js +0 -90
  767. package/scripts/test-rlm.js +0 -110
  768. package/scripts/test-session-handoff.sh +0 -165
  769. package/scripts/test-setup-e2e.sh +0 -154
  770. package/scripts/test-shell-integration.sh +0 -275
  771. package/scripts/test-simple-ralph-state-sync.ts +0 -178
  772. package/scripts/test-swarm-fixes.ts +0 -161
  773. package/scripts/test-swarm-git-workflow.js +0 -338
  774. package/scripts/test-swarm-tui.ts +0 -34
  775. package/scripts/test-tui-shortcuts.ts +0 -66
  776. package/scripts/testing/ab-test-runner.ts +0 -510
  777. package/scripts/testing/collect-metrics.ts +0 -457
  778. package/scripts/testing/quick-effectiveness-demo.js +0 -187
  779. package/scripts/testing/ralph-cli-test.js +0 -88
  780. package/scripts/testing/ralph-integration-validation.js +0 -727
  781. package/scripts/testing/ralph-swarm-test-scenarios.js +0 -613
  782. package/scripts/testing/real-performance-test.js +0 -422
  783. package/scripts/testing/results/real-performance-results.json +0 -90
  784. package/scripts/testing/run-effectiveness-tests.sh +0 -176
  785. package/scripts/testing/simple-effectiveness-test.js +0 -310
  786. package/scripts/testing/test-tier-migration.js +0 -100
  787. package/scripts/update-linear-status.js +0 -268
  788. package/scripts/update-linear-tasks-fixed.js +0 -284
  789. package/scripts/validate-claude-config.sh +0 -155
  790. package/scripts/validate-swarm-implementation.js +0 -467
  791. package/scripts/validate-tui-shortcuts.ts +0 -83
  792. package/templates/claude-hooks/notify-review-hook.js +0 -360
  793. package/templates/claude-hooks/sms-response-handler.js +0 -174
@@ -1,340 +0,0 @@
1
- #!/usr/bin/env npx 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 { readFileSync, existsSync, readdirSync, statSync } from "fs";
7
- import { join } from "path";
8
- import { homedir } from "os";
9
- import Database from "better-sqlite3";
10
- function estimateTokensAccurate(text) {
11
- const baseEstimate = text.length / 3.5;
12
- const codeIndicators = (text.match(/[{}\[\]();=]/g) || []).length;
13
- const codeScore = codeIndicators / text.length * 100;
14
- if (codeScore > 5) {
15
- return Math.ceil(baseEstimate * 1.2);
16
- }
17
- return Math.ceil(baseEstimate);
18
- }
19
- function measureHandoffs() {
20
- const handoffPath = join(homedir(), ".stackmemory", "context.db");
21
- const metrics = [];
22
- if (!existsSync(handoffPath)) {
23
- console.log("No context.db found at", handoffPath);
24
- return metrics;
25
- }
26
- try {
27
- const db = new Database(handoffPath, { readonly: true });
28
- const tableCheck = db.prepare(
29
- `
30
- SELECT name FROM sqlite_master
31
- WHERE type='table' AND name='handoff_requests'
32
- `
33
- ).get();
34
- if (!tableCheck) {
35
- console.log("No handoff_requests table found");
36
- db.close();
37
- return metrics;
38
- }
39
- const handoffs = db.prepare(
40
- `
41
- SELECT id, message, created_at
42
- FROM handoff_requests
43
- ORDER BY created_at DESC
44
- LIMIT 10
45
- `
46
- ).all();
47
- for (const h of handoffs) {
48
- const message = h.message || "";
49
- metrics.push({
50
- handoffId: h.id,
51
- handoffChars: message.length,
52
- handoffTokens: estimateTokensAccurate(message),
53
- createdAt: new Date(h.created_at).toISOString()
54
- });
55
- }
56
- db.close();
57
- } catch (err) {
58
- console.log("Error reading handoffs:", err);
59
- }
60
- return metrics;
61
- }
62
- function measureLastHandoffFile() {
63
- const handoffPath = join(process.cwd(), ".stackmemory", "last-handoff.md");
64
- if (!existsSync(handoffPath)) {
65
- const homeHandoff = join(homedir(), ".stackmemory", "last-handoff.md");
66
- if (!existsSync(homeHandoff)) {
67
- return null;
68
- }
69
- const content2 = readFileSync(homeHandoff, "utf-8");
70
- return {
71
- source: homeHandoff,
72
- charCount: content2.length,
73
- estimatedTokens: estimateTokensAccurate(content2),
74
- lineCount: content2.split("\n").length
75
- };
76
- }
77
- const content = readFileSync(handoffPath, "utf-8");
78
- return {
79
- source: handoffPath,
80
- charCount: content.length,
81
- estimatedTokens: estimateTokensAccurate(content),
82
- lineCount: content.split("\n").length
83
- };
84
- }
85
- function measureClaudeConversations() {
86
- const claudeProjectsDir = join(homedir(), ".claude", "projects");
87
- const metrics = [];
88
- if (!existsSync(claudeProjectsDir)) {
89
- return metrics;
90
- }
91
- const projectDirs = readdirSync(claudeProjectsDir);
92
- for (const dir of projectDirs.slice(0, 5)) {
93
- const projectPath = join(claudeProjectsDir, dir);
94
- const stat = statSync(projectPath);
95
- if (stat.isDirectory()) {
96
- const files = readdirSync(projectPath).filter(
97
- (f) => f.endsWith(".jsonl")
98
- );
99
- for (const file of files.slice(0, 3)) {
100
- const filePath = join(projectPath, file);
101
- try {
102
- const content = readFileSync(filePath, "utf-8");
103
- metrics.push({
104
- source: file,
105
- charCount: content.length,
106
- estimatedTokens: estimateTokensAccurate(content),
107
- lineCount: content.split("\n").length
108
- });
109
- } catch {
110
- }
111
- }
112
- }
113
- }
114
- return metrics;
115
- }
116
- function measureFramesAndEvents() {
117
- const dbPath = join(homedir(), ".stackmemory", "context.db");
118
- if (!existsSync(dbPath)) {
119
- return null;
120
- }
121
- try {
122
- const db = new Database(dbPath, { readonly: true });
123
- const frameResult = db.prepare(
124
- `
125
- SELECT COUNT(*) as count,
126
- SUM(LENGTH(COALESCE(name, '') || COALESCE(json(inputs), '') || COALESCE(json(outputs), '') || COALESCE(json(digest_json), ''))) as totalChars
127
- FROM frames
128
- `
129
- ).get();
130
- const eventResult = db.prepare(
131
- `
132
- SELECT COUNT(*) as count,
133
- SUM(LENGTH(COALESCE(event_type, '') || COALESCE(json(payload), ''))) as totalChars
134
- FROM events
135
- `
136
- ).get();
137
- db.close();
138
- const frameChars = frameResult?.totalChars || 0;
139
- const eventChars = eventResult?.totalChars || 0;
140
- const totalChars = frameChars + eventChars;
141
- return {
142
- sessionId: "aggregate",
143
- frameCount: frameResult?.count || 0,
144
- eventCount: eventResult?.count || 0,
145
- estimatedSessionTokens: estimateTokensAccurate(
146
- String(totalChars).repeat(Math.floor(totalChars / 10) || 1)
147
- )
148
- };
149
- } catch (err) {
150
- console.log("Error measuring frames/events:", err);
151
- return null;
152
- }
153
- }
154
- function formatNumber(n) {
155
- if (n >= 1e3) {
156
- return (n / 1e3).toFixed(1) + "K";
157
- }
158
- return n.toString();
159
- }
160
- async function main() {
161
- console.log("========================================");
162
- console.log(" HANDOFF CONTEXT IMPACT ANALYSIS");
163
- console.log(" (Actual Measurements)");
164
- console.log("========================================\n");
165
- console.log("1. LAST HANDOFF FILE");
166
- console.log("--------------------");
167
- const lastHandoff = measureLastHandoffFile();
168
- if (lastHandoff) {
169
- console.log(` Source: ${lastHandoff.source}`);
170
- console.log(` Characters: ${formatNumber(lastHandoff.charCount)}`);
171
- console.log(` Lines: ${lastHandoff.lineCount}`);
172
- console.log(
173
- ` Estimated tokens: ${formatNumber(lastHandoff.estimatedTokens)}`
174
- );
175
- } else {
176
- console.log(" No handoff file found");
177
- }
178
- console.log("");
179
- console.log("2. HANDOFFS FROM DATABASE");
180
- console.log("-------------------------");
181
- const handoffs = measureHandoffs();
182
- if (handoffs.length > 0) {
183
- let totalTokens = 0;
184
- for (const h of handoffs) {
185
- console.log(
186
- ` ${h.handoffId.slice(0, 8)}: ${formatNumber(h.handoffTokens)} tokens (${formatNumber(h.handoffChars)} chars)`
187
- );
188
- totalTokens += h.handoffTokens;
189
- }
190
- const avgTokens = Math.round(totalTokens / handoffs.length);
191
- console.log(` Average: ${formatNumber(avgTokens)} tokens per handoff`);
192
- } else {
193
- console.log(" No handoffs in database");
194
- }
195
- console.log("");
196
- console.log("3. CLAUDE CONVERSATION FILES");
197
- console.log("----------------------------");
198
- const conversations = measureClaudeConversations();
199
- if (conversations.length > 0) {
200
- let totalConvTokens = 0;
201
- let maxConvTokens = 0;
202
- for (const c of conversations) {
203
- console.log(
204
- ` ${c.source}: ${formatNumber(c.estimatedTokens)} tokens (${formatNumber(c.charCount)} chars, ${c.lineCount} lines)`
205
- );
206
- totalConvTokens += c.estimatedTokens;
207
- maxConvTokens = Math.max(maxConvTokens, c.estimatedTokens);
208
- }
209
- const avgConvTokens = Math.round(totalConvTokens / conversations.length);
210
- console.log(
211
- ` Average: ${formatNumber(avgConvTokens)} tokens per conversation`
212
- );
213
- console.log(` Max: ${formatNumber(maxConvTokens)} tokens`);
214
- } else {
215
- console.log(" No conversation files found");
216
- }
217
- console.log("");
218
- console.log("4. STACKMEMORY DATABASE CONTENT");
219
- console.log("-------------------------------");
220
- const dbMetrics = measureFramesAndEvents();
221
- if (dbMetrics) {
222
- console.log(` Frames: ${dbMetrics.frameCount}`);
223
- console.log(` Events: ${dbMetrics.eventCount}`);
224
- console.log(
225
- ` Total stored data: ~${formatNumber(dbMetrics.estimatedSessionTokens)} tokens equivalent`
226
- );
227
- } else {
228
- console.log(" No database metrics available");
229
- }
230
- console.log("");
231
- console.log("5. COMPRESSION ANALYSIS");
232
- console.log("-----------------------");
233
- const avgHandoffTokens = handoffs.length > 0 ? Math.round(
234
- handoffs.reduce((sum, h) => sum + h.handoffTokens, 0) / handoffs.length
235
- ) : lastHandoff?.estimatedTokens || 2e3;
236
- const avgConversationTokens = conversations.length > 0 ? Math.round(
237
- conversations.reduce((sum, c) => sum + c.estimatedTokens, 0) / conversations.length
238
- ) : 8e4;
239
- const sessionSizes = {
240
- short: 35e3,
241
- // 2hr session
242
- medium: 78e3,
243
- // 4hr session
244
- long: 142e3,
245
- // 8hr session
246
- actual: avgConversationTokens
247
- };
248
- console.log("\n Compression Ratios (using actual handoff size):");
249
- console.log(` Handoff size: ${formatNumber(avgHandoffTokens)} tokens
250
- `);
251
- for (const [label, size] of Object.entries(sessionSizes)) {
252
- const reduction = ((size - avgHandoffTokens) / size * 100).toFixed(1);
253
- const saved = size - avgHandoffTokens;
254
- console.log(
255
- ` ${label.padEnd(8)}: ${formatNumber(size)} -> ${formatNumber(avgHandoffTokens)} = ${reduction}% reduction (${formatNumber(saved)} saved)`
256
- );
257
- }
258
- console.log("");
259
- console.log("6. CONTEXT WINDOW IMPACT");
260
- console.log("------------------------");
261
- const contextWindow = 2e5;
262
- const systemPrompt = 2e3;
263
- const currentTools = 1e4;
264
- const withoutHandoff = {
265
- used: systemPrompt + avgConversationTokens + currentTools,
266
- available: 0
267
- };
268
- withoutHandoff.available = contextWindow - withoutHandoff.used;
269
- const withHandoff = {
270
- used: systemPrompt + avgHandoffTokens + currentTools,
271
- available: 0
272
- };
273
- withHandoff.available = contextWindow - withHandoff.used;
274
- console.log(` Context window: ${formatNumber(contextWindow)} tokens`);
275
- console.log(` System prompt: ${formatNumber(systemPrompt)} tokens`);
276
- console.log(` Current tools: ${formatNumber(currentTools)} tokens
277
- `);
278
- console.log(" WITHOUT HANDOFF:");
279
- console.log(
280
- ` Conversation history: ${formatNumber(avgConversationTokens)} tokens`
281
- );
282
- console.log(` Total used: ${formatNumber(withoutHandoff.used)} tokens`);
283
- console.log(
284
- ` Available for work: ${formatNumber(withoutHandoff.available)} tokens (${(withoutHandoff.available / contextWindow * 100).toFixed(1)}%)`
285
- );
286
- console.log("");
287
- console.log(" WITH HANDOFF:");
288
- console.log(` Handoff summary: ${formatNumber(avgHandoffTokens)} tokens`);
289
- console.log(` Total used: ${formatNumber(withHandoff.used)} tokens`);
290
- console.log(
291
- ` Available for work: ${formatNumber(withHandoff.available)} tokens (${(withHandoff.available / contextWindow * 100).toFixed(1)}%)`
292
- );
293
- console.log("");
294
- const improvement = withHandoff.available - withoutHandoff.available;
295
- const improvementPct = (improvement / withoutHandoff.available * 100).toFixed(1);
296
- console.log(
297
- ` IMPROVEMENT: +${formatNumber(improvement)} tokens (+${improvementPct}% more capacity)`
298
- );
299
- console.log("\n========================================");
300
- console.log(" SUMMARY");
301
- console.log("========================================\n");
302
- const actualReduction = ((avgConversationTokens - avgHandoffTokens) / avgConversationTokens * 100).toFixed(1);
303
- console.log(
304
- ` Actual handoff size: ${formatNumber(avgHandoffTokens)} tokens`
305
- );
306
- console.log(
307
- ` Actual conversation size: ${formatNumber(avgConversationTokens)} tokens`
308
- );
309
- console.log(` Actual compression: ${actualReduction}%`);
310
- console.log(` Actual context freed: ${formatNumber(improvement)} tokens`);
311
- console.log("");
312
- console.log(" CLAIM VALIDATION:");
313
- console.log(" -----------------");
314
- const claimedReduction = "85-98%";
315
- const claimedHandoff = "1K-5K tokens";
316
- const claimedConversation = "50K-150K tokens";
317
- console.log(` Claimed reduction: ${claimedReduction}`);
318
- console.log(` Measured reduction: ${actualReduction}%`);
319
- console.log(
320
- ` Status: ${parseFloat(actualReduction) >= 85 ? "VALIDATED" : "NEEDS REVISION"}`
321
- );
322
- console.log("");
323
- console.log(` Claimed handoff size: ${claimedHandoff}`);
324
- console.log(
325
- ` Measured handoff size: ${formatNumber(avgHandoffTokens)} tokens`
326
- );
327
- console.log(
328
- ` Status: ${avgHandoffTokens >= 1e3 && avgHandoffTokens <= 5e3 ? "VALIDATED" : "NEEDS REVISION"}`
329
- );
330
- console.log("");
331
- console.log(` Claimed conversation: ${claimedConversation}`);
332
- console.log(
333
- ` Measured conversation: ${formatNumber(avgConversationTokens)} tokens`
334
- );
335
- console.log(
336
- ` Status: ${avgConversationTokens >= 5e4 && avgConversationTokens <= 15e4 ? "VALIDATED" : "NEEDS REVISION"}`
337
- );
338
- }
339
- main().catch(console.error);
340
- //# sourceMappingURL=measure-handoff-impact.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../scripts/measure-handoff-impact.ts"],
4
- "sourcesContent": ["#!/usr/bin/env npx ts-node\n/**\n * Measure actual handoff context impact with real data\n * Validates claims about token savings\n */\n\nimport { readFileSync, existsSync, readdirSync, statSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\nimport Database from 'better-sqlite3';\n\ninterface TokenMetrics {\n source: string;\n charCount: number;\n estimatedTokens: number;\n lineCount: number;\n}\n\ninterface HandoffMetrics {\n handoffId: string;\n handoffTokens: number;\n handoffChars: number;\n createdAt: string;\n}\n\ninterface SessionMetrics {\n sessionId: string;\n frameCount: number;\n eventCount: number;\n estimatedSessionTokens: number;\n}\n\n// Token estimation considering code vs prose\nfunction estimateTokensAccurate(text: string): number {\n const baseEstimate = text.length / 3.5;\n\n // Check if code-heavy (more tokens per char)\n const codeIndicators = (text.match(/[{}\\[\\]();=]/g) || []).length;\n const codeScore = (codeIndicators / text.length) * 100;\n\n if (codeScore > 5) {\n return Math.ceil(baseEstimate * 1.2);\n }\n return Math.ceil(baseEstimate);\n}\n\nfunction measureHandoffs(): HandoffMetrics[] {\n const handoffPath = join(homedir(), '.stackmemory', 'context.db');\n const metrics: HandoffMetrics[] = [];\n\n if (!existsSync(handoffPath)) {\n console.log('No context.db found at', handoffPath);\n return metrics;\n }\n\n try {\n const db = new Database(handoffPath, { readonly: true });\n\n // Check if handoff_requests table exists\n const tableCheck = db\n .prepare(\n `\n SELECT name FROM sqlite_master\n WHERE type='table' AND name='handoff_requests'\n `\n )\n .get();\n\n if (!tableCheck) {\n console.log('No handoff_requests table found');\n db.close();\n return metrics;\n }\n\n const handoffs = db\n .prepare(\n `\n SELECT id, message, created_at\n FROM handoff_requests\n ORDER BY created_at DESC\n LIMIT 10\n `\n )\n .all() as Array<{ id: string; message: string; created_at: number }>;\n\n for (const h of handoffs) {\n const message = h.message || '';\n metrics.push({\n handoffId: h.id,\n handoffChars: message.length,\n handoffTokens: estimateTokensAccurate(message),\n createdAt: new Date(h.created_at).toISOString(),\n });\n }\n\n db.close();\n } catch (err) {\n console.log('Error reading handoffs:', err);\n }\n\n return metrics;\n}\n\nfunction measureLastHandoffFile(): TokenMetrics | null {\n const handoffPath = join(process.cwd(), '.stackmemory', 'last-handoff.md');\n\n if (!existsSync(handoffPath)) {\n // Try home directory\n const homeHandoff = join(homedir(), '.stackmemory', 'last-handoff.md');\n if (!existsSync(homeHandoff)) {\n return null;\n }\n const content = readFileSync(homeHandoff, 'utf-8');\n return {\n source: homeHandoff,\n charCount: content.length,\n estimatedTokens: estimateTokensAccurate(content),\n lineCount: content.split('\\n').length,\n };\n }\n\n const content = readFileSync(handoffPath, 'utf-8');\n return {\n source: handoffPath,\n charCount: content.length,\n estimatedTokens: estimateTokensAccurate(content),\n lineCount: content.split('\\n').length,\n };\n}\n\nfunction measureClaudeConversations(): TokenMetrics[] {\n const claudeProjectsDir = join(homedir(), '.claude', 'projects');\n const metrics: TokenMetrics[] = [];\n\n if (!existsSync(claudeProjectsDir)) {\n return metrics;\n }\n\n // Find conversation files\n const projectDirs = readdirSync(claudeProjectsDir);\n\n for (const dir of projectDirs.slice(0, 5)) {\n const projectPath = join(claudeProjectsDir, dir);\n const stat = statSync(projectPath);\n\n if (stat.isDirectory()) {\n const files = readdirSync(projectPath).filter((f) =>\n f.endsWith('.jsonl')\n );\n\n for (const file of files.slice(0, 3)) {\n const filePath = join(projectPath, file);\n try {\n const content = readFileSync(filePath, 'utf-8');\n metrics.push({\n source: file,\n charCount: content.length,\n estimatedTokens: estimateTokensAccurate(content),\n lineCount: content.split('\\n').length,\n });\n } catch {\n // Skip unreadable files\n }\n }\n }\n }\n\n return metrics;\n}\n\nfunction measureFramesAndEvents(): SessionMetrics | null {\n const dbPath = join(homedir(), '.stackmemory', 'context.db');\n\n if (!existsSync(dbPath)) {\n return null;\n }\n\n try {\n const db = new Database(dbPath, { readonly: true });\n\n // Get frame count and content\n const frameResult = db\n .prepare(\n `\n SELECT COUNT(*) as count,\n SUM(LENGTH(COALESCE(name, '') || COALESCE(json(inputs), '') || COALESCE(json(outputs), '') || COALESCE(json(digest_json), ''))) as totalChars\n FROM frames\n `\n )\n .get() as { count: number; totalChars: number } | undefined;\n\n // Get event count and content\n const eventResult = db\n .prepare(\n `\n SELECT COUNT(*) as count,\n SUM(LENGTH(COALESCE(event_type, '') || COALESCE(json(payload), ''))) as totalChars\n FROM events\n `\n )\n .get() as { count: number; totalChars: number } | undefined;\n\n db.close();\n\n const frameChars = frameResult?.totalChars || 0;\n const eventChars = eventResult?.totalChars || 0;\n const totalChars = frameChars + eventChars;\n\n return {\n sessionId: 'aggregate',\n frameCount: frameResult?.count || 0,\n eventCount: eventResult?.count || 0,\n estimatedSessionTokens: estimateTokensAccurate(\n String(totalChars).repeat(Math.floor(totalChars / 10) || 1)\n ),\n };\n } catch (err) {\n console.log('Error measuring frames/events:', err);\n return null;\n }\n}\n\nfunction formatNumber(n: number): string {\n if (n >= 1000) {\n return (n / 1000).toFixed(1) + 'K';\n }\n return n.toString();\n}\n\nasync function main() {\n console.log('========================================');\n console.log(' HANDOFF CONTEXT IMPACT ANALYSIS');\n console.log(' (Actual Measurements)');\n console.log('========================================\\n');\n\n // 1. Measure last handoff file\n console.log('1. LAST HANDOFF FILE');\n console.log('--------------------');\n const lastHandoff = measureLastHandoffFile();\n if (lastHandoff) {\n console.log(` Source: ${lastHandoff.source}`);\n console.log(` Characters: ${formatNumber(lastHandoff.charCount)}`);\n console.log(` Lines: ${lastHandoff.lineCount}`);\n console.log(\n ` Estimated tokens: ${formatNumber(lastHandoff.estimatedTokens)}`\n );\n } else {\n console.log(' No handoff file found');\n }\n console.log('');\n\n // 2. Measure handoffs from database\n console.log('2. HANDOFFS FROM DATABASE');\n console.log('-------------------------');\n const handoffs = measureHandoffs();\n if (handoffs.length > 0) {\n let totalTokens = 0;\n for (const h of handoffs) {\n console.log(\n ` ${h.handoffId.slice(0, 8)}: ${formatNumber(h.handoffTokens)} tokens (${formatNumber(h.handoffChars)} chars)`\n );\n totalTokens += h.handoffTokens;\n }\n const avgTokens = Math.round(totalTokens / handoffs.length);\n console.log(` Average: ${formatNumber(avgTokens)} tokens per handoff`);\n } else {\n console.log(' No handoffs in database');\n }\n console.log('');\n\n // 3. Measure Claude conversation files\n console.log('3. CLAUDE CONVERSATION FILES');\n console.log('----------------------------');\n const conversations = measureClaudeConversations();\n if (conversations.length > 0) {\n let totalConvTokens = 0;\n let maxConvTokens = 0;\n for (const c of conversations) {\n console.log(\n ` ${c.source}: ${formatNumber(c.estimatedTokens)} tokens (${formatNumber(c.charCount)} chars, ${c.lineCount} lines)`\n );\n totalConvTokens += c.estimatedTokens;\n maxConvTokens = Math.max(maxConvTokens, c.estimatedTokens);\n }\n const avgConvTokens = Math.round(totalConvTokens / conversations.length);\n console.log(\n ` Average: ${formatNumber(avgConvTokens)} tokens per conversation`\n );\n console.log(` Max: ${formatNumber(maxConvTokens)} tokens`);\n } else {\n console.log(' No conversation files found');\n }\n console.log('');\n\n // 4. Measure StackMemory database\n console.log('4. STACKMEMORY DATABASE CONTENT');\n console.log('-------------------------------');\n const dbMetrics = measureFramesAndEvents();\n if (dbMetrics) {\n console.log(` Frames: ${dbMetrics.frameCount}`);\n console.log(` Events: ${dbMetrics.eventCount}`);\n console.log(\n ` Total stored data: ~${formatNumber(dbMetrics.estimatedSessionTokens)} tokens equivalent`\n );\n } else {\n console.log(' No database metrics available');\n }\n console.log('');\n\n // 5. Calculate compression ratios\n console.log('5. COMPRESSION ANALYSIS');\n console.log('-----------------------');\n\n const avgHandoffTokens =\n handoffs.length > 0\n ? Math.round(\n handoffs.reduce((sum, h) => sum + h.handoffTokens, 0) /\n handoffs.length\n )\n : lastHandoff?.estimatedTokens || 2000;\n\n const avgConversationTokens =\n conversations.length > 0\n ? Math.round(\n conversations.reduce((sum, c) => sum + c.estimatedTokens, 0) /\n conversations.length\n )\n : 80000;\n\n // Typical session sizes based on actual data\n const sessionSizes = {\n short: 35000, // 2hr session\n medium: 78000, // 4hr session\n long: 142000, // 8hr session\n actual: avgConversationTokens,\n };\n\n console.log('\\n Compression Ratios (using actual handoff size):');\n console.log(` Handoff size: ${formatNumber(avgHandoffTokens)} tokens\\n`);\n\n for (const [label, size] of Object.entries(sessionSizes)) {\n const reduction = (((size - avgHandoffTokens) / size) * 100).toFixed(1);\n const saved = size - avgHandoffTokens;\n console.log(\n ` ${label.padEnd(8)}: ${formatNumber(size)} -> ${formatNumber(avgHandoffTokens)} = ${reduction}% reduction (${formatNumber(saved)} saved)`\n );\n }\n\n console.log('');\n\n // 6. Context window impact\n console.log('6. CONTEXT WINDOW IMPACT');\n console.log('------------------------');\n const contextWindow = 200000;\n const systemPrompt = 2000;\n const currentTools = 10000;\n\n const withoutHandoff = {\n used: systemPrompt + avgConversationTokens + currentTools,\n available: 0,\n };\n withoutHandoff.available = contextWindow - withoutHandoff.used;\n\n const withHandoff = {\n used: systemPrompt + avgHandoffTokens + currentTools,\n available: 0,\n };\n withHandoff.available = contextWindow - withHandoff.used;\n\n console.log(` Context window: ${formatNumber(contextWindow)} tokens`);\n console.log(` System prompt: ${formatNumber(systemPrompt)} tokens`);\n console.log(` Current tools: ${formatNumber(currentTools)} tokens\\n`);\n\n console.log(' WITHOUT HANDOFF:');\n console.log(\n ` Conversation history: ${formatNumber(avgConversationTokens)} tokens`\n );\n console.log(` Total used: ${formatNumber(withoutHandoff.used)} tokens`);\n console.log(\n ` Available for work: ${formatNumber(withoutHandoff.available)} tokens (${((withoutHandoff.available / contextWindow) * 100).toFixed(1)}%)`\n );\n console.log('');\n\n console.log(' WITH HANDOFF:');\n console.log(` Handoff summary: ${formatNumber(avgHandoffTokens)} tokens`);\n console.log(` Total used: ${formatNumber(withHandoff.used)} tokens`);\n console.log(\n ` Available for work: ${formatNumber(withHandoff.available)} tokens (${((withHandoff.available / contextWindow) * 100).toFixed(1)}%)`\n );\n console.log('');\n\n const improvement = withHandoff.available - withoutHandoff.available;\n const improvementPct = (\n (improvement / withoutHandoff.available) *\n 100\n ).toFixed(1);\n console.log(\n ` IMPROVEMENT: +${formatNumber(improvement)} tokens (+${improvementPct}% more capacity)`\n );\n\n console.log('\\n========================================');\n console.log(' SUMMARY');\n console.log('========================================\\n');\n\n const actualReduction = (\n ((avgConversationTokens - avgHandoffTokens) / avgConversationTokens) *\n 100\n ).toFixed(1);\n\n console.log(\n ` Actual handoff size: ${formatNumber(avgHandoffTokens)} tokens`\n );\n console.log(\n ` Actual conversation size: ${formatNumber(avgConversationTokens)} tokens`\n );\n console.log(` Actual compression: ${actualReduction}%`);\n console.log(` Actual context freed: ${formatNumber(improvement)} tokens`);\n console.log('');\n\n // Validate claims from document\n console.log(' CLAIM VALIDATION:');\n console.log(' -----------------');\n const claimedReduction = '85-98%';\n const claimedHandoff = '1K-5K tokens';\n const claimedConversation = '50K-150K tokens';\n\n console.log(` Claimed reduction: ${claimedReduction}`);\n console.log(` Measured reduction: ${actualReduction}%`);\n console.log(\n ` Status: ${parseFloat(actualReduction) >= 85 ? 'VALIDATED' : 'NEEDS REVISION'}`\n );\n console.log('');\n console.log(` Claimed handoff size: ${claimedHandoff}`);\n console.log(\n ` Measured handoff size: ${formatNumber(avgHandoffTokens)} tokens`\n );\n console.log(\n ` Status: ${avgHandoffTokens >= 1000 && avgHandoffTokens <= 5000 ? 'VALIDATED' : 'NEEDS REVISION'}`\n );\n console.log('');\n console.log(` Claimed conversation: ${claimedConversation}`);\n console.log(\n ` Measured conversation: ${formatNumber(avgConversationTokens)} tokens`\n );\n console.log(\n ` Status: ${avgConversationTokens >= 50000 && avgConversationTokens <= 150000 ? 'VALIDATED' : 'NEEDS REVISION'}`\n );\n}\n\nmain().catch(console.error);\n"],
5
- "mappings": "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",
6
- "names": ["content"]
7
- }
@@ -1,160 +0,0 @@
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 { ChromaClient } from "chromadb";
7
- import dotenv from "dotenv";
8
- import chalk from "chalk";
9
- dotenv.config();
10
- async function queryChromaDB() {
11
- const apiKey = process.env.CHROMADB_API_KEY;
12
- const tenant = process.env.CHROMADB_TENANT;
13
- const database = process.env.CHROMADB_DATABASE || "stackmemory";
14
- console.log(chalk.cyan("\u{1F50D} Querying ChromaDB Contexts\n"));
15
- const client = new ChromaClient({
16
- ssl: true,
17
- host: "api.trychroma.com",
18
- port: 443,
19
- headers: {
20
- "X-Chroma-Token": apiKey
21
- },
22
- tenant,
23
- database
24
- });
25
- const collections = await client.listCollections();
26
- console.log(chalk.yellow("\u{1F4DA} Available Collections:"));
27
- collections.forEach((col) => {
28
- console.log(` - ${col.name}`);
29
- });
30
- console.log();
31
- let collection;
32
- try {
33
- collection = await client.getCollection({
34
- name: "claude_context"
35
- });
36
- console.log(chalk.green("\u2713 Using collection: claude_context\n"));
37
- } catch {
38
- collection = await client.getCollection({
39
- name: "stackmemory_contexts"
40
- });
41
- console.log(chalk.green("\u2713 Using collection: stackmemory_contexts\n"));
42
- }
43
- console.log(chalk.yellow("\u{1F4CA} Collection Stats:"));
44
- const count = await collection.count();
45
- console.log(` Total documents: ${count}
46
- `);
47
- console.log(chalk.cyan("\u{1F4DA} All Stored Contexts:\n"));
48
- const allDocs = await collection.get({
49
- limit: 100
50
- });
51
- if (allDocs.ids.length > 0) {
52
- for (let i = 0; i < allDocs.ids.length; i++) {
53
- const metadata = allDocs.metadatas[i];
54
- const document = allDocs.documents[i];
55
- console.log(chalk.green(`${i + 1}. ${allDocs.ids[i]}`));
56
- console.log(` Type: ${metadata.type}`);
57
- console.log(` Timestamp: ${metadata.timestamp}`);
58
- console.log(` User: ${metadata.user_id}`);
59
- console.log(` Project: ${metadata.project}`);
60
- console.log(` Content: ${document?.substring(0, 100)}...`);
61
- console.log();
62
- }
63
- }
64
- console.log(chalk.cyan('\n\u{1F50E} Search Results for "TypeScript lint error":\n'));
65
- const searchResults = await collection.query({
66
- queryTexts: ["TypeScript lint error fix"],
67
- nResults: 5
68
- });
69
- if (searchResults.ids[0].length > 0) {
70
- for (let i = 0; i < searchResults.ids[0].length; i++) {
71
- const metadata = searchResults.metadatas[0][i];
72
- const document = searchResults.documents[0][i];
73
- const distance = searchResults.distances[0][i];
74
- console.log(chalk.yellow(`Match ${i + 1} (distance: ${distance.toFixed(3)}):`));
75
- console.log(` ID: ${searchResults.ids[0][i]}`);
76
- console.log(` Type: ${metadata.type}`);
77
- console.log(` Timestamp: ${metadata.timestamp}`);
78
- console.log(` Content: ${document?.substring(0, 150)}...`);
79
- console.log();
80
- }
81
- } else {
82
- console.log("No results found");
83
- }
84
- console.log(chalk.cyan("\n\u{1F4CB} Recent Task Completions:\n"));
85
- const taskCompletions = await collection.get({
86
- where: {
87
- type: "task_complete"
88
- },
89
- limit: 10
90
- });
91
- if (taskCompletions.ids.length > 0) {
92
- for (let i = 0; i < taskCompletions.ids.length; i++) {
93
- const metadata = taskCompletions.metadatas[i];
94
- const document = taskCompletions.documents[i];
95
- console.log(chalk.green(`Task ${i + 1}:`));
96
- console.log(` ID: ${taskCompletions.ids[i]}`);
97
- console.log(` Timestamp: ${metadata.timestamp}`);
98
- console.log(` Task ID: ${metadata.task_id}`);
99
- console.log(` Duration: ${metadata.duration}ms`);
100
- console.log(` Files Changed: ${metadata.files_changed}`);
101
- console.log(` Content: ${document?.substring(0, 100)}...`);
102
- console.log();
103
- }
104
- } else {
105
- console.log("No task completions found");
106
- }
107
- console.log(chalk.cyan("\n\u23F0 Periodic Checkpoints:\n"));
108
- const periodicSaves = await collection.get({
109
- where: {
110
- type: "periodic_save"
111
- },
112
- limit: 10
113
- });
114
- if (periodicSaves.ids.length > 0) {
115
- for (let i = 0; i < periodicSaves.ids.length; i++) {
116
- const metadata = periodicSaves.metadatas[i];
117
- const document = periodicSaves.documents[i];
118
- console.log(chalk.blue(`Checkpoint ${i + 1}:`));
119
- console.log(` Timestamp: ${metadata.timestamp}`);
120
- console.log(` Interval: ${metadata.interval}`);
121
- console.log(` Active Files: ${metadata.active_files}`);
122
- console.log(` Git Status: ${document?.substring(0, 150)}...`);
123
- console.log();
124
- }
125
- } else {
126
- console.log("No periodic saves found");
127
- }
128
- console.log(chalk.cyan("\n\u{1F4A1} Decisions Made:\n"));
129
- const decisions = await collection.get({
130
- where: {
131
- type: "decision_made"
132
- },
133
- limit: 10
134
- });
135
- if (decisions.ids.length > 0) {
136
- for (let i = 0; i < decisions.ids.length; i++) {
137
- const metadata = decisions.metadatas[i];
138
- const document = decisions.documents[i];
139
- console.log(chalk.magenta(`Decision ${i + 1}:`));
140
- console.log(` Category: ${metadata.category}`);
141
- console.log(` Alternatives: ${metadata.alternatives}`);
142
- console.log(` Reasoning: ${metadata.reasoning}`);
143
- console.log(` Decision: ${document?.substring(0, 200)}...`);
144
- console.log();
145
- }
146
- } else {
147
- console.log("No decisions found");
148
- }
149
- console.log(chalk.cyan("\n\u{1F4C8} Context Types Summary:\n"));
150
- const types = /* @__PURE__ */ new Map();
151
- for (let i = 0; i < allDocs.ids.length; i++) {
152
- const type = allDocs.metadatas[i].type || "unknown";
153
- types.set(type, (types.get(type) || 0) + 1);
154
- }
155
- for (const [type, count2] of types.entries()) {
156
- console.log(` ${type}: ${count2} documents`);
157
- }
158
- }
159
- queryChromaDB().catch(console.error);
160
- //# sourceMappingURL=query-chromadb.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../scripts/query-chromadb.ts"],
4
- "sourcesContent": ["#!/usr/bin/env tsx\n\n/**\n * Query ChromaDB for stored contexts\n */\n\nimport { ChromaClient } from 'chromadb';\nimport dotenv from 'dotenv';\nimport chalk from 'chalk';\n\n// Load environment variables\ndotenv.config();\n\nasync function queryChromaDB() {\n const apiKey = process.env.CHROMADB_API_KEY;\n const tenant = process.env.CHROMADB_TENANT;\n const database = process.env.CHROMADB_DATABASE || 'stackmemory';\n\n console.log(chalk.cyan('\uD83D\uDD0D Querying ChromaDB Contexts\\n'));\n\n // Connect to ChromaDB\n const client = new ChromaClient({\n ssl: true,\n host: 'api.trychroma.com',\n port: 443,\n headers: {\n 'X-Chroma-Token': apiKey\n },\n tenant: tenant,\n database: database\n });\n\n // List all collections first\n const collections = await client.listCollections();\n console.log(chalk.yellow('\uD83D\uDCDA Available Collections:'));\n collections.forEach(col => {\n console.log(` - ${col.name}`);\n });\n console.log();\n\n // Get collection - try claude_context first (from hooks), then stackmemory_contexts\n let collection;\n try {\n collection = await client.getCollection({\n name: 'claude_context'\n });\n console.log(chalk.green('\u2713 Using collection: claude_context\\n'));\n } catch {\n collection = await client.getCollection({\n name: 'stackmemory_contexts'\n });\n console.log(chalk.green('\u2713 Using collection: stackmemory_contexts\\n'));\n }\n\n console.log(chalk.yellow('\uD83D\uDCCA Collection Stats:'));\n const count = await collection.count();\n console.log(` Total documents: ${count}\\n`);\n\n // Query 1: Get all documents\n console.log(chalk.cyan('\uD83D\uDCDA All Stored Contexts:\\n'));\n \n const allDocs = await collection.get({\n limit: 100\n });\n\n if (allDocs.ids.length > 0) {\n for (let i = 0; i < allDocs.ids.length; i++) {\n const metadata = allDocs.metadatas[i];\n const document = allDocs.documents[i];\n \n console.log(chalk.green(`${i + 1}. ${allDocs.ids[i]}`));\n console.log(` Type: ${metadata.type}`);\n console.log(` Timestamp: ${metadata.timestamp}`);\n console.log(` User: ${metadata.user_id}`);\n console.log(` Project: ${metadata.project}`);\n console.log(` Content: ${document?.substring(0, 100)}...`);\n console.log();\n }\n }\n\n // Query 2: Search for specific content\n console.log(chalk.cyan('\\n\uD83D\uDD0E Search Results for \"TypeScript lint error\":\\n'));\n \n const searchResults = await collection.query({\n queryTexts: ['TypeScript lint error fix'],\n nResults: 5\n });\n\n if (searchResults.ids[0].length > 0) {\n for (let i = 0; i < searchResults.ids[0].length; i++) {\n const metadata = searchResults.metadatas[0][i];\n const document = searchResults.documents[0][i];\n const distance = searchResults.distances[0][i];\n \n console.log(chalk.yellow(`Match ${i + 1} (distance: ${distance.toFixed(3)}):`));\n console.log(` ID: ${searchResults.ids[0][i]}`);\n console.log(` Type: ${metadata.type}`);\n console.log(` Timestamp: ${metadata.timestamp}`);\n console.log(` Content: ${document?.substring(0, 150)}...`);\n console.log();\n }\n } else {\n console.log('No results found');\n }\n\n // Query 3: Filter by metadata\n console.log(chalk.cyan('\\n\uD83D\uDCCB Recent Task Completions:\\n'));\n \n const taskCompletions = await collection.get({\n where: {\n type: 'task_complete'\n },\n limit: 10\n });\n\n if (taskCompletions.ids.length > 0) {\n for (let i = 0; i < taskCompletions.ids.length; i++) {\n const metadata = taskCompletions.metadatas[i];\n const document = taskCompletions.documents[i];\n \n console.log(chalk.green(`Task ${i + 1}:`));\n console.log(` ID: ${taskCompletions.ids[i]}`);\n console.log(` Timestamp: ${metadata.timestamp}`);\n console.log(` Task ID: ${metadata.task_id}`);\n console.log(` Duration: ${metadata.duration}ms`);\n console.log(` Files Changed: ${metadata.files_changed}`);\n console.log(` Content: ${document?.substring(0, 100)}...`);\n console.log();\n }\n } else {\n console.log('No task completions found');\n }\n\n // Query 4: Get periodic saves\n console.log(chalk.cyan('\\n\u23F0 Periodic Checkpoints:\\n'));\n \n const periodicSaves = await collection.get({\n where: {\n type: 'periodic_save'\n },\n limit: 10\n });\n\n if (periodicSaves.ids.length > 0) {\n for (let i = 0; i < periodicSaves.ids.length; i++) {\n const metadata = periodicSaves.metadatas[i];\n const document = periodicSaves.documents[i];\n \n console.log(chalk.blue(`Checkpoint ${i + 1}:`));\n console.log(` Timestamp: ${metadata.timestamp}`);\n console.log(` Interval: ${metadata.interval}`);\n console.log(` Active Files: ${metadata.active_files}`);\n console.log(` Git Status: ${document?.substring(0, 150)}...`);\n console.log();\n }\n } else {\n console.log('No periodic saves found');\n }\n\n // Query 5: Get decisions\n console.log(chalk.cyan('\\n\uD83D\uDCA1 Decisions Made:\\n'));\n \n const decisions = await collection.get({\n where: {\n type: 'decision_made'\n },\n limit: 10\n });\n\n if (decisions.ids.length > 0) {\n for (let i = 0; i < decisions.ids.length; i++) {\n const metadata = decisions.metadatas[i];\n const document = decisions.documents[i];\n \n console.log(chalk.magenta(`Decision ${i + 1}:`));\n console.log(` Category: ${metadata.category}`);\n console.log(` Alternatives: ${metadata.alternatives}`);\n console.log(` Reasoning: ${metadata.reasoning}`);\n console.log(` Decision: ${document?.substring(0, 200)}...`);\n console.log();\n }\n } else {\n console.log('No decisions found');\n }\n\n // Query 6: Group by type\n console.log(chalk.cyan('\\n\uD83D\uDCC8 Context Types Summary:\\n'));\n \n const types = new Map();\n for (let i = 0; i < allDocs.ids.length; i++) {\n const type = allDocs.metadatas[i].type || 'unknown';\n types.set(type, (types.get(type) || 0) + 1);\n }\n\n for (const [type, count] of types.entries()) {\n console.log(` ${type}: ${count} documents`);\n }\n}\n\n// Run query\nqueryChromaDB().catch(console.error);"],
5
- "mappings": "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",
6
- "names": ["count"]
7
- }