@stackmemoryai/stackmemory 0.8.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (792) hide show
  1. package/LICENSE +64 -0
  2. package/README.md +81 -273
  3. package/dist/src/agents/core/agent-task-manager.js +0 -1
  4. package/dist/src/agents/verifiers/base-verifier.js +0 -1
  5. package/dist/src/agents/verifiers/formatter-verifier.js +0 -1
  6. package/dist/src/agents/verifiers/llm-judge.js +0 -1
  7. package/dist/src/cli/auto-detect.js +0 -1
  8. package/dist/src/cli/claude-sm-danger.js +0 -1
  9. package/dist/src/cli/claude-sm.js +9 -1
  10. package/dist/src/cli/codex-sm-danger.js +0 -1
  11. package/dist/src/cli/codex-sm.js +9 -1
  12. package/dist/src/cli/commands/api.js +0 -1
  13. package/dist/src/cli/commands/auto-background.js +0 -1
  14. package/dist/src/cli/commands/cleanup-processes.js +0 -1
  15. package/dist/src/cli/commands/clear.js +0 -1
  16. package/dist/src/cli/commands/config.js +0 -1
  17. package/dist/src/cli/commands/context-rehydrate.js +0 -1
  18. package/dist/src/cli/commands/context.js +0 -1
  19. package/dist/src/cli/commands/daemon.js +0 -1
  20. package/dist/src/cli/commands/dashboard.js +4 -5
  21. package/dist/src/cli/commands/db.js +0 -1
  22. package/dist/src/cli/commands/decision.js +0 -1
  23. package/dist/src/cli/commands/discovery.js +0 -1
  24. package/dist/src/cli/commands/handoff.js +0 -1
  25. package/dist/src/cli/commands/hooks.js +0 -1
  26. package/dist/src/cli/commands/linear.js +0 -1
  27. package/dist/src/cli/commands/log.js +0 -1
  28. package/dist/src/cli/commands/login.js +0 -1
  29. package/dist/src/cli/commands/migrate.js +0 -1
  30. package/dist/src/cli/commands/model.js +0 -1
  31. package/dist/src/cli/commands/onboard.js +0 -1
  32. package/dist/src/cli/commands/ping.js +0 -1
  33. package/dist/src/cli/commands/projects.js +0 -1
  34. package/dist/src/cli/commands/ralph.js +0 -1
  35. package/dist/src/cli/commands/retrieval.js +0 -1
  36. package/dist/src/cli/commands/search.js +0 -1
  37. package/dist/src/cli/commands/service.js +0 -1
  38. package/dist/src/cli/commands/session.js +0 -1
  39. package/dist/src/cli/commands/setup.js +0 -4
  40. package/dist/src/cli/commands/shell.js +0 -1
  41. package/dist/src/cli/commands/signup.js +0 -1
  42. package/dist/src/cli/commands/skills.js +4 -3
  43. package/dist/src/cli/commands/storage-tier.js +0 -1
  44. package/dist/src/cli/commands/sweep.js +0 -1
  45. package/dist/src/cli/commands/tasks.js +0 -1
  46. package/dist/src/cli/commands/worktree.js +10 -5
  47. package/dist/src/cli/index.js +8 -5
  48. package/dist/src/cli/opencode-sm.js +0 -1
  49. package/dist/src/cli/utils/viewer.js +0 -1
  50. package/dist/src/core/config/config-manager.js +0 -1
  51. package/dist/src/core/config/feature-flags.js +0 -1
  52. package/dist/src/core/config/storage-config.js +0 -1
  53. package/dist/src/core/config/types.js +0 -1
  54. package/dist/src/core/context/auto-context.js +0 -1
  55. package/dist/src/core/context/dual-stack-manager.js +0 -1
  56. package/dist/src/core/context/enhanced-rehydration.js +0 -2
  57. package/dist/src/core/context/frame-database.js +60 -6
  58. package/dist/src/core/context/frame-digest.js +0 -1
  59. package/dist/src/core/context/frame-handoff-manager.js +0 -1
  60. package/dist/src/core/context/frame-lifecycle-hooks.js +0 -1
  61. package/dist/src/core/context/frame-recovery.js +0 -1
  62. package/dist/src/core/context/frame-stack.js +0 -1
  63. package/dist/src/core/context/frame-types.js +0 -1
  64. package/dist/src/core/context/index.js +0 -1
  65. package/dist/src/core/context/permission-manager.js +0 -1
  66. package/dist/src/core/context/recursive-context-manager.js +3 -2
  67. package/dist/src/core/context/refactored-frame-manager.js +0 -1
  68. package/dist/src/core/context/shared-context-layer.js +0 -1
  69. package/dist/src/core/context/stack-merge-resolver.js +0 -1
  70. package/dist/src/core/context/validation.js +0 -1
  71. package/dist/src/core/database/batch-operations.js +0 -1
  72. package/dist/src/core/database/connection-pool.js +0 -1
  73. package/dist/src/core/database/database-adapter.js +0 -1
  74. package/dist/src/core/database/embedding-provider-factory.js +0 -1
  75. package/dist/src/core/database/embedding-provider.js +0 -1
  76. package/dist/src/core/database/migration-manager.js +0 -1
  77. package/dist/src/core/database/ollama-embedding-provider.js +0 -1
  78. package/dist/src/core/database/openai-embedding-provider.js +0 -1
  79. package/dist/src/core/database/query-cache.js +0 -1
  80. package/dist/src/core/database/query-router.js +0 -1
  81. package/dist/src/core/database/sqlite-adapter.js +18 -108
  82. package/dist/src/core/database/transformers-embedding-provider.js +0 -1
  83. package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -1
  84. package/dist/src/core/digest/frame-digest-integration.js +0 -1
  85. package/dist/src/core/digest/hybrid-digest-generator.js +0 -1
  86. package/dist/src/core/digest/index.js +0 -1
  87. package/dist/src/core/digest/types.js +0 -1
  88. package/dist/src/core/errors/error-utils.js +0 -1
  89. package/dist/src/core/errors/index.js +0 -1
  90. package/dist/src/core/errors/recovery.js +0 -1
  91. package/dist/src/core/execution/parallel-executor.js +0 -1
  92. package/dist/src/core/extensions/custom-tools.js +0 -1
  93. package/dist/src/core/extensions/index.js +0 -1
  94. package/dist/src/core/extensions/loader.js +0 -1
  95. package/dist/src/core/extensions/plugin-system.js +0 -1
  96. package/dist/src/core/extensions/provider-adapter.js +0 -1
  97. package/dist/src/core/extensions/sandbox-runtime.js +0 -1
  98. package/dist/src/core/extensions/types.js +0 -1
  99. package/dist/src/core/frame/workflow-templates.js +0 -1
  100. package/dist/src/core/merge/conflict-detector.js +0 -1
  101. package/dist/src/core/merge/index.js +0 -1
  102. package/dist/src/core/merge/resolution-engine.js +0 -1
  103. package/dist/src/core/merge/stack-diff.js +0 -1
  104. package/dist/src/core/merge/types.js +0 -1
  105. package/dist/src/core/merge/unified-merge-resolver.js +0 -1
  106. package/dist/src/core/models/fallback-monitor.js +0 -1
  107. package/dist/src/core/models/model-router.js +0 -1
  108. package/dist/src/core/monitoring/error-handler.js +0 -1
  109. package/dist/src/core/monitoring/logger.js +0 -1
  110. package/dist/src/core/monitoring/metrics.js +0 -1
  111. package/dist/src/core/monitoring/progress-tracker.js +0 -1
  112. package/dist/src/core/monitoring/session-monitor.js +0 -1
  113. package/dist/src/core/performance/context-cache.js +0 -1
  114. package/dist/src/core/performance/index.js +0 -1
  115. package/dist/src/core/performance/lazy-context-loader.js +3 -8
  116. package/dist/src/core/performance/monitor.js +0 -1
  117. package/dist/src/core/performance/optimized-frame-context.js +0 -1
  118. package/dist/src/core/performance/performance-benchmark.js +0 -1
  119. package/dist/src/core/performance/performance-profiler.js +0 -1
  120. package/dist/src/core/performance/streaming-jsonl-parser.js +0 -1
  121. package/dist/src/core/persistence/postgres-adapter.js +0 -1
  122. package/dist/src/core/projects/project-isolation.js +0 -1
  123. package/dist/src/core/projects/project-manager.js +0 -1
  124. package/dist/src/core/query/query-parser.js +0 -1
  125. package/dist/src/core/query/query-templates.js +0 -1
  126. package/dist/src/core/retrieval/context-retriever.js +0 -1
  127. package/dist/src/core/retrieval/index.js +0 -1
  128. package/dist/src/core/retrieval/llm-context-retrieval.js +0 -1
  129. package/dist/src/core/retrieval/llm-provider.js +0 -1
  130. package/dist/src/core/retrieval/privacy-filter.js +0 -1
  131. package/dist/src/core/retrieval/retrieval-audit.js +0 -1
  132. package/dist/src/core/retrieval/summary-generator.js +15 -6
  133. package/dist/src/core/retrieval/types.js +0 -1
  134. package/dist/src/core/retrieval/unified-context-assembler.js +0 -1
  135. package/dist/src/core/security/index.js +0 -1
  136. package/dist/src/core/security/input-sanitizer.js +0 -1
  137. package/dist/src/core/session/clear-survival.js +0 -1
  138. package/dist/src/core/session/enhanced-handoff.js +0 -1
  139. package/dist/src/core/session/handoff-generator.js +0 -1
  140. package/dist/src/core/session/index.js +0 -1
  141. package/dist/src/core/session/session-manager.js +0 -1
  142. package/dist/src/core/skills/index.js +0 -1
  143. package/dist/src/core/skills/skill-storage.js +0 -1
  144. package/dist/src/core/skills/types.js +0 -1
  145. package/dist/src/core/storage/chromadb-adapter.js +0 -1
  146. package/dist/src/core/storage/infinite-storage.js +0 -1
  147. package/dist/src/core/storage/project-registry.js +0 -1
  148. package/dist/src/core/storage/remote-storage.js +4 -2
  149. package/dist/src/core/storage/storage-tier-manager.js +0 -1
  150. package/dist/src/core/storage/two-tier-storage.js +0 -1
  151. package/dist/src/core/trace/cli-trace-wrapper.js +0 -1
  152. package/dist/src/core/trace/db-trace-wrapper.js +0 -1
  153. package/dist/src/core/trace/debug-trace.js +0 -1
  154. package/dist/src/core/trace/index.js +0 -1
  155. package/dist/src/core/trace/linear-api-wrapper.js +0 -1
  156. package/dist/src/core/trace/trace-detector.js +0 -1
  157. package/dist/src/core/trace/trace-store.js +4 -5
  158. package/dist/src/core/trace/types.js +0 -1
  159. package/dist/src/core/types.js +0 -1
  160. package/dist/src/core/utils/async-mutex.js +0 -1
  161. package/dist/src/core/utils/compression.js +0 -1
  162. package/dist/src/core/utils/update-checker.js +0 -1
  163. package/dist/src/core/worktree/worktree-manager.js +0 -1
  164. package/dist/src/daemon/daemon-config.js +0 -1
  165. package/dist/src/daemon/services/context-service.js +0 -1
  166. package/dist/src/daemon/services/linear-service.js +0 -1
  167. package/dist/src/daemon/services/maintenance-service.js +0 -1
  168. package/dist/src/daemon/services/memory-service.js +0 -1
  169. package/dist/src/daemon/session-daemon.js +0 -1
  170. package/dist/src/daemon/unified-daemon.js +0 -1
  171. package/dist/src/features/analytics/api/analytics-api.js +0 -1
  172. package/dist/src/features/analytics/core/analytics-service.js +1 -2
  173. package/dist/src/features/analytics/index.js +0 -1
  174. package/dist/src/features/analytics/queries/metrics-queries.js +8 -9
  175. package/dist/src/features/analytics/types/metrics.js +0 -1
  176. package/dist/src/features/browser/browser-mcp.js +0 -1
  177. package/dist/src/features/sweep/index.js +0 -1
  178. package/dist/src/features/sweep/prediction-client.js +0 -1
  179. package/dist/src/features/sweep/prompt-builder.js +0 -1
  180. package/dist/src/features/sweep/pty-wrapper.js +9 -1
  181. package/dist/src/features/sweep/state-watcher.js +0 -1
  182. package/dist/src/features/sweep/status-bar.js +0 -1
  183. package/dist/src/features/sweep/sweep-server-manager.js +0 -1
  184. package/dist/src/features/sweep/tab-interceptor.js +0 -1
  185. package/dist/src/features/sweep/types.js +0 -1
  186. package/dist/src/features/tasks/linear-task-manager.js +0 -1
  187. package/dist/src/features/tasks/task-aware-context.js +0 -1
  188. package/dist/src/features/tui/simple-monitor.js +0 -1
  189. package/dist/src/features/tui/swarm-monitor.js +0 -1
  190. package/dist/src/features/web/client/stores/task-store.js +0 -1
  191. package/dist/src/features/web/server/index.js +0 -1
  192. package/dist/src/features/workers/tmux-manager.js +0 -1
  193. package/dist/src/features/workers/worker-registry.js +0 -1
  194. package/dist/src/hooks/auto-background.js +0 -1
  195. package/dist/src/hooks/config.js +0 -1
  196. package/dist/src/hooks/daemon.js +8 -1
  197. package/dist/src/hooks/diffmem-hooks.js +0 -1
  198. package/dist/src/hooks/events.js +0 -1
  199. package/dist/src/hooks/graphiti-hooks.js +104 -0
  200. package/dist/src/hooks/index.js +0 -1
  201. package/dist/src/hooks/linear-task-picker.js +0 -1
  202. package/dist/src/hooks/schemas.js +0 -1
  203. package/dist/src/hooks/secure-fs.js +0 -1
  204. package/dist/src/hooks/security-logger.js +0 -1
  205. package/dist/src/hooks/session-summary.js +0 -1
  206. package/dist/src/index.js +0 -1
  207. package/dist/src/integrations/anthropic/client.js +0 -1
  208. package/dist/src/integrations/claude-code/agent-bridge.js +0 -1
  209. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -1
  210. package/dist/src/integrations/claude-code/lifecycle-hooks.js +0 -1
  211. package/dist/src/integrations/claude-code/post-task-hooks.js +0 -1
  212. package/dist/src/integrations/claude-code/subagent-client-stub.js +0 -1
  213. package/dist/src/integrations/claude-code/subagent-client.js +0 -1
  214. package/dist/src/integrations/claude-code/task-coordinator.js +0 -1
  215. package/dist/src/integrations/diffmem/client.js +0 -1
  216. package/dist/src/integrations/diffmem/config.js +0 -1
  217. package/dist/src/integrations/diffmem/index.js +0 -1
  218. package/dist/src/integrations/diffmem/types.js +0 -1
  219. package/dist/src/integrations/graphiti/client.js +103 -0
  220. package/dist/src/integrations/graphiti/config.js +17 -0
  221. package/dist/src/integrations/graphiti/types.js +4 -0
  222. package/dist/src/integrations/linear/auth.js +0 -1
  223. package/dist/src/integrations/linear/auto-sync.js +0 -1
  224. package/dist/src/integrations/linear/client.js +0 -1
  225. package/dist/src/integrations/linear/config.js +0 -1
  226. package/dist/src/integrations/linear/migration.js +0 -1
  227. package/dist/src/integrations/linear/oauth-server.js +0 -1
  228. package/dist/src/integrations/linear/rest-client.js +0 -1
  229. package/dist/src/integrations/linear/sync-manager.js +0 -1
  230. package/dist/src/integrations/linear/sync-service.js +0 -1
  231. package/dist/src/integrations/linear/sync.js +0 -1
  232. package/dist/src/integrations/linear/types.js +0 -1
  233. package/dist/src/integrations/linear/unified-sync.js +0 -1
  234. package/dist/src/integrations/linear/webhook-handler.js +0 -1
  235. package/dist/src/integrations/linear/webhook-server.js +0 -1
  236. package/dist/src/integrations/linear/webhook.js +0 -1
  237. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +0 -1
  238. package/dist/src/integrations/mcp/handlers/context-handlers.js +43 -30
  239. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js +0 -1
  240. package/dist/src/integrations/mcp/handlers/discovery-handlers.js +0 -1
  241. package/dist/src/integrations/mcp/handlers/index.js +1 -3
  242. package/dist/src/integrations/mcp/handlers/linear-handlers.js +24 -61
  243. package/dist/src/integrations/mcp/handlers/skill-handlers.js +0 -1
  244. package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -1
  245. package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -1
  246. package/dist/src/integrations/mcp/index.js +0 -1
  247. package/dist/src/integrations/mcp/middleware/tool-scoring.js +3 -2
  248. package/dist/src/integrations/mcp/pending-utils.js +0 -1
  249. package/dist/src/integrations/mcp/refactored-server.js +0 -1
  250. package/dist/src/integrations/mcp/remote-server.js +0 -1
  251. package/dist/src/integrations/mcp/schemas.js +0 -1
  252. package/dist/src/integrations/mcp/server.js +20 -24
  253. package/dist/src/integrations/mcp/tool-definitions-code.js +0 -1
  254. package/dist/src/integrations/mcp/tool-definitions.js +0 -1
  255. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -1
  256. package/dist/src/integrations/ralph/context/context-budget-manager.js +0 -1
  257. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +0 -1
  258. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +0 -1
  259. package/dist/src/integrations/ralph/index.js +0 -1
  260. package/dist/src/integrations/ralph/learning/pattern-learner.js +0 -1
  261. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +5 -5
  262. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +0 -1
  263. package/dist/src/integrations/ralph/monitoring/swarm-registry.js +0 -1
  264. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -1
  265. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -1
  266. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +0 -1
  267. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +0 -1
  268. package/dist/src/integrations/ralph/performance/performance-optimizer.js +0 -1
  269. package/dist/src/integrations/ralph/recovery/crash-recovery.js +0 -1
  270. package/dist/src/integrations/ralph/state/state-reconciler.js +25 -9
  271. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +0 -1
  272. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +0 -1
  273. package/dist/src/integrations/ralph/types.js +0 -1
  274. package/dist/src/integrations/ralph/visualization/ralph-debugger.js +0 -1
  275. package/dist/src/mcp/stackmemory-mcp-server.js +0 -1
  276. package/dist/src/middleware/exponential-rate-limiter.js +0 -1
  277. package/dist/src/models/user.model.js +0 -1
  278. package/dist/src/orchestrators/multimodal/constants.js +0 -1
  279. package/dist/src/orchestrators/multimodal/harness.js +0 -1
  280. package/dist/src/orchestrators/multimodal/providers.js +0 -1
  281. package/dist/src/orchestrators/multimodal/types.js +0 -1
  282. package/dist/src/orchestrators/multimodal/utils.js +0 -1
  283. package/dist/src/servers/production/auth-middleware.js +0 -1
  284. package/dist/src/services/config-service.js +0 -1
  285. package/dist/src/services/context-service.js +0 -1
  286. package/dist/src/skills/api-discovery.js +0 -1
  287. package/dist/src/skills/api-skill.js +0 -1
  288. package/dist/src/skills/claude-skills.js +0 -1
  289. package/dist/src/skills/dashboard-launcher.js +0 -1
  290. package/dist/src/skills/linear-task-runner.js +0 -1
  291. package/dist/src/skills/recursive-agent-orchestrator.js +0 -1
  292. package/dist/src/skills/repo-ingestion-skill.js +0 -1
  293. package/dist/src/skills/spec-generator-skill.js +0 -1
  294. package/dist/src/skills/unified-rlm-orchestrator.js +0 -1
  295. package/dist/src/types/task.js +0 -1
  296. package/dist/src/utils/env.js +0 -1
  297. package/dist/src/utils/formatting.js +0 -1
  298. package/dist/src/utils/process-cleanup.js +0 -1
  299. package/package.json +32 -7
  300. package/dist/scripts/benchmark-performance.js +0 -48
  301. package/dist/scripts/benchmark-performance.js.map +0 -7
  302. package/dist/scripts/check-redis.js +0 -42
  303. package/dist/scripts/check-redis.js.map +0 -7
  304. package/dist/scripts/initialize.js +0 -183
  305. package/dist/scripts/initialize.js.map +0 -7
  306. package/dist/scripts/list-linear-tasks.js +0 -124
  307. package/dist/scripts/list-linear-tasks.js.map +0 -7
  308. package/dist/scripts/measure-handoff-impact.js +0 -340
  309. package/dist/scripts/measure-handoff-impact.js.map +0 -7
  310. package/dist/scripts/query-chromadb.js +0 -160
  311. package/dist/scripts/query-chromadb.js.map +0 -7
  312. package/dist/scripts/show-linear-summary.js +0 -119
  313. package/dist/scripts/show-linear-summary.js.map +0 -7
  314. package/dist/scripts/simple-swarm-demo.js +0 -90
  315. package/dist/scripts/simple-swarm-demo.js.map +0 -7
  316. package/dist/scripts/status.js +0 -155
  317. package/dist/scripts/status.js.map +0 -7
  318. package/dist/scripts/test-chromadb-sync.js +0 -192
  319. package/dist/scripts/test-chromadb-sync.js.map +0 -7
  320. package/dist/scripts/test-ralph-iteration-fix.js +0 -86
  321. package/dist/scripts/test-ralph-iteration-fix.js.map +0 -7
  322. package/dist/scripts/test-ralph-iterations.js +0 -121
  323. package/dist/scripts/test-ralph-iterations.js.map +0 -7
  324. package/dist/scripts/test-redis-storage.js +0 -389
  325. package/dist/scripts/test-redis-storage.js.map +0 -7
  326. package/dist/scripts/test-simple-ralph-state-sync.js +0 -115
  327. package/dist/scripts/test-simple-ralph-state-sync.js.map +0 -7
  328. package/dist/scripts/test-swarm-fixes.js +0 -125
  329. package/dist/scripts/test-swarm-fixes.js.map +0 -7
  330. package/dist/scripts/test-swarm-tui.js +0 -23
  331. package/dist/scripts/test-swarm-tui.js.map +0 -7
  332. package/dist/scripts/test-tui-shortcuts.js +0 -52
  333. package/dist/scripts/test-tui-shortcuts.js.map +0 -7
  334. package/dist/scripts/validate-tui-shortcuts.js +0 -60
  335. package/dist/scripts/validate-tui-shortcuts.js.map +0 -7
  336. package/dist/src/agents/core/agent-task-manager.js.map +0 -7
  337. package/dist/src/agents/verifiers/base-verifier.js.map +0 -7
  338. package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -7
  339. package/dist/src/agents/verifiers/llm-judge.js.map +0 -7
  340. package/dist/src/cli/auto-detect.js.map +0 -7
  341. package/dist/src/cli/claude-sm-danger.js.map +0 -7
  342. package/dist/src/cli/claude-sm.js.map +0 -7
  343. package/dist/src/cli/codex-sm-danger.js.map +0 -7
  344. package/dist/src/cli/codex-sm.js.map +0 -7
  345. package/dist/src/cli/commands/api.js.map +0 -7
  346. package/dist/src/cli/commands/auto-background.js.map +0 -7
  347. package/dist/src/cli/commands/cleanup-processes.js.map +0 -7
  348. package/dist/src/cli/commands/clear.js.map +0 -7
  349. package/dist/src/cli/commands/config.js.map +0 -7
  350. package/dist/src/cli/commands/context-rehydrate.js.map +0 -7
  351. package/dist/src/cli/commands/context.js.map +0 -7
  352. package/dist/src/cli/commands/daemon.js.map +0 -7
  353. package/dist/src/cli/commands/dashboard.js.map +0 -7
  354. package/dist/src/cli/commands/db.js.map +0 -7
  355. package/dist/src/cli/commands/decision.js.map +0 -7
  356. package/dist/src/cli/commands/discovery.js.map +0 -7
  357. package/dist/src/cli/commands/handoff.js.map +0 -7
  358. package/dist/src/cli/commands/hooks.js.map +0 -7
  359. package/dist/src/cli/commands/linear.js.map +0 -7
  360. package/dist/src/cli/commands/log.js.map +0 -7
  361. package/dist/src/cli/commands/login.js.map +0 -7
  362. package/dist/src/cli/commands/migrate.js.map +0 -7
  363. package/dist/src/cli/commands/model.js.map +0 -7
  364. package/dist/src/cli/commands/onboard.js.map +0 -7
  365. package/dist/src/cli/commands/ping.js.map +0 -7
  366. package/dist/src/cli/commands/projects.js.map +0 -7
  367. package/dist/src/cli/commands/ralph.js.map +0 -7
  368. package/dist/src/cli/commands/retrieval.js.map +0 -7
  369. package/dist/src/cli/commands/search.js.map +0 -7
  370. package/dist/src/cli/commands/service.js.map +0 -7
  371. package/dist/src/cli/commands/session.js.map +0 -7
  372. package/dist/src/cli/commands/settings.js +0 -306
  373. package/dist/src/cli/commands/settings.js.map +0 -7
  374. package/dist/src/cli/commands/setup.js.map +0 -7
  375. package/dist/src/cli/commands/shell.js.map +0 -7
  376. package/dist/src/cli/commands/signup.js.map +0 -7
  377. package/dist/src/cli/commands/skills.js.map +0 -7
  378. package/dist/src/cli/commands/sms-notify.js +0 -795
  379. package/dist/src/cli/commands/sms-notify.js.map +0 -7
  380. package/dist/src/cli/commands/storage-tier.js.map +0 -7
  381. package/dist/src/cli/commands/sweep.js.map +0 -7
  382. package/dist/src/cli/commands/tasks.js.map +0 -7
  383. package/dist/src/cli/commands/worktree.js.map +0 -7
  384. package/dist/src/cli/index.js.map +0 -7
  385. package/dist/src/cli/opencode-sm.js.map +0 -7
  386. package/dist/src/cli/utils/viewer.js.map +0 -7
  387. package/dist/src/core/config/config-manager.js.map +0 -7
  388. package/dist/src/core/config/feature-flags.js.map +0 -7
  389. package/dist/src/core/config/storage-config.js.map +0 -7
  390. package/dist/src/core/config/types.js.map +0 -7
  391. package/dist/src/core/context/auto-context.js.map +0 -7
  392. package/dist/src/core/context/dual-stack-manager.js.map +0 -7
  393. package/dist/src/core/context/enhanced-rehydration.js.map +0 -7
  394. package/dist/src/core/context/frame-database.js.map +0 -7
  395. package/dist/src/core/context/frame-digest.js.map +0 -7
  396. package/dist/src/core/context/frame-handoff-manager.js.map +0 -7
  397. package/dist/src/core/context/frame-lifecycle-hooks.js.map +0 -7
  398. package/dist/src/core/context/frame-recovery.js.map +0 -7
  399. package/dist/src/core/context/frame-stack.js.map +0 -7
  400. package/dist/src/core/context/frame-types.js.map +0 -7
  401. package/dist/src/core/context/index.js.map +0 -7
  402. package/dist/src/core/context/permission-manager.js.map +0 -7
  403. package/dist/src/core/context/recursive-context-manager.js.map +0 -7
  404. package/dist/src/core/context/refactored-frame-manager.js.map +0 -7
  405. package/dist/src/core/context/shared-context-layer.js.map +0 -7
  406. package/dist/src/core/context/stack-merge-resolver.js.map +0 -7
  407. package/dist/src/core/context/validation.js.map +0 -7
  408. package/dist/src/core/database/batch-operations.js.map +0 -7
  409. package/dist/src/core/database/connection-pool.js.map +0 -7
  410. package/dist/src/core/database/database-adapter.js.map +0 -7
  411. package/dist/src/core/database/embedding-provider-factory.js.map +0 -7
  412. package/dist/src/core/database/embedding-provider.js.map +0 -7
  413. package/dist/src/core/database/migration-manager.js.map +0 -7
  414. package/dist/src/core/database/ollama-embedding-provider.js.map +0 -7
  415. package/dist/src/core/database/openai-embedding-provider.js.map +0 -7
  416. package/dist/src/core/database/query-cache.js.map +0 -7
  417. package/dist/src/core/database/query-router.js.map +0 -7
  418. package/dist/src/core/database/sqlite-adapter.js.map +0 -7
  419. package/dist/src/core/database/transformers-embedding-provider.js.map +0 -7
  420. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -7
  421. package/dist/src/core/digest/frame-digest-integration.js.map +0 -7
  422. package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -7
  423. package/dist/src/core/digest/index.js.map +0 -7
  424. package/dist/src/core/digest/types.js.map +0 -7
  425. package/dist/src/core/errors/error-utils.js.map +0 -7
  426. package/dist/src/core/errors/index.js.map +0 -7
  427. package/dist/src/core/errors/recovery.js.map +0 -7
  428. package/dist/src/core/execution/parallel-executor.js.map +0 -7
  429. package/dist/src/core/extensions/custom-tools.js.map +0 -7
  430. package/dist/src/core/extensions/index.js.map +0 -7
  431. package/dist/src/core/extensions/loader.js.map +0 -7
  432. package/dist/src/core/extensions/plugin-system.js.map +0 -7
  433. package/dist/src/core/extensions/provider-adapter.js.map +0 -7
  434. package/dist/src/core/extensions/sandbox-runtime.js.map +0 -7
  435. package/dist/src/core/extensions/types.js.map +0 -7
  436. package/dist/src/core/frame/workflow-templates.js.map +0 -7
  437. package/dist/src/core/merge/conflict-detector.js.map +0 -7
  438. package/dist/src/core/merge/index.js.map +0 -7
  439. package/dist/src/core/merge/resolution-engine.js.map +0 -7
  440. package/dist/src/core/merge/stack-diff.js.map +0 -7
  441. package/dist/src/core/merge/types.js.map +0 -7
  442. package/dist/src/core/merge/unified-merge-resolver.js.map +0 -7
  443. package/dist/src/core/models/fallback-monitor.js.map +0 -7
  444. package/dist/src/core/models/model-router.js.map +0 -7
  445. package/dist/src/core/monitoring/error-handler.js.map +0 -7
  446. package/dist/src/core/monitoring/logger.js.map +0 -7
  447. package/dist/src/core/monitoring/metrics.js.map +0 -7
  448. package/dist/src/core/monitoring/progress-tracker.js.map +0 -7
  449. package/dist/src/core/monitoring/session-monitor.js.map +0 -7
  450. package/dist/src/core/performance/context-cache.js.map +0 -7
  451. package/dist/src/core/performance/index.js.map +0 -7
  452. package/dist/src/core/performance/lazy-context-loader.js.map +0 -7
  453. package/dist/src/core/performance/monitor.js.map +0 -7
  454. package/dist/src/core/performance/optimized-frame-context.js.map +0 -7
  455. package/dist/src/core/performance/performance-benchmark.js.map +0 -7
  456. package/dist/src/core/performance/performance-profiler.js.map +0 -7
  457. package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -7
  458. package/dist/src/core/persistence/postgres-adapter.js.map +0 -7
  459. package/dist/src/core/projects/project-isolation.js.map +0 -7
  460. package/dist/src/core/projects/project-manager.js.map +0 -7
  461. package/dist/src/core/query/query-parser.js.map +0 -7
  462. package/dist/src/core/query/query-templates.js.map +0 -7
  463. package/dist/src/core/retrieval/context-retriever.js.map +0 -7
  464. package/dist/src/core/retrieval/index.js.map +0 -7
  465. package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -7
  466. package/dist/src/core/retrieval/llm-provider.js.map +0 -7
  467. package/dist/src/core/retrieval/privacy-filter.js.map +0 -7
  468. package/dist/src/core/retrieval/retrieval-audit.js.map +0 -7
  469. package/dist/src/core/retrieval/summary-generator.js.map +0 -7
  470. package/dist/src/core/retrieval/types.js.map +0 -7
  471. package/dist/src/core/retrieval/unified-context-assembler.js.map +0 -7
  472. package/dist/src/core/security/index.js.map +0 -7
  473. package/dist/src/core/security/input-sanitizer.js.map +0 -7
  474. package/dist/src/core/session/clear-survival.js.map +0 -7
  475. package/dist/src/core/session/enhanced-handoff.js.map +0 -7
  476. package/dist/src/core/session/handoff-generator.js.map +0 -7
  477. package/dist/src/core/session/index.js.map +0 -7
  478. package/dist/src/core/session/session-manager.js.map +0 -7
  479. package/dist/src/core/skills/index.js.map +0 -7
  480. package/dist/src/core/skills/skill-storage.js.map +0 -7
  481. package/dist/src/core/skills/types.js.map +0 -7
  482. package/dist/src/core/storage/chromadb-adapter.js.map +0 -7
  483. package/dist/src/core/storage/infinite-storage.js.map +0 -7
  484. package/dist/src/core/storage/project-registry.js.map +0 -7
  485. package/dist/src/core/storage/remote-storage.js.map +0 -7
  486. package/dist/src/core/storage/storage-tier-manager.js.map +0 -7
  487. package/dist/src/core/storage/two-tier-storage.js.map +0 -7
  488. package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -7
  489. package/dist/src/core/trace/db-trace-wrapper.js.map +0 -7
  490. package/dist/src/core/trace/debug-trace.js.map +0 -7
  491. package/dist/src/core/trace/index.js.map +0 -7
  492. package/dist/src/core/trace/linear-api-wrapper.js.map +0 -7
  493. package/dist/src/core/trace/trace-detector.js.map +0 -7
  494. package/dist/src/core/trace/trace-store.js.map +0 -7
  495. package/dist/src/core/trace/types.js.map +0 -7
  496. package/dist/src/core/types.js.map +0 -7
  497. package/dist/src/core/utils/async-mutex.js.map +0 -7
  498. package/dist/src/core/utils/compression.js.map +0 -7
  499. package/dist/src/core/utils/update-checker.js.map +0 -7
  500. package/dist/src/core/worktree/worktree-manager.js.map +0 -7
  501. package/dist/src/daemon/daemon-config.js.map +0 -7
  502. package/dist/src/daemon/services/context-service.js.map +0 -7
  503. package/dist/src/daemon/services/linear-service.js.map +0 -7
  504. package/dist/src/daemon/services/maintenance-service.js.map +0 -7
  505. package/dist/src/daemon/services/memory-service.js.map +0 -7
  506. package/dist/src/daemon/session-daemon.js.map +0 -7
  507. package/dist/src/daemon/unified-daemon.js.map +0 -7
  508. package/dist/src/features/analytics/api/analytics-api.js.map +0 -7
  509. package/dist/src/features/analytics/core/analytics-service.js.map +0 -7
  510. package/dist/src/features/analytics/index.js.map +0 -7
  511. package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -7
  512. package/dist/src/features/analytics/types/metrics.js.map +0 -7
  513. package/dist/src/features/browser/browser-mcp.js.map +0 -7
  514. package/dist/src/features/sweep/index.js.map +0 -7
  515. package/dist/src/features/sweep/prediction-client.js.map +0 -7
  516. package/dist/src/features/sweep/prompt-builder.js.map +0 -7
  517. package/dist/src/features/sweep/pty-wrapper.js.map +0 -7
  518. package/dist/src/features/sweep/state-watcher.js.map +0 -7
  519. package/dist/src/features/sweep/status-bar.js.map +0 -7
  520. package/dist/src/features/sweep/sweep-server-manager.js.map +0 -7
  521. package/dist/src/features/sweep/tab-interceptor.js.map +0 -7
  522. package/dist/src/features/sweep/types.js.map +0 -7
  523. package/dist/src/features/tasks/linear-task-manager.js.map +0 -7
  524. package/dist/src/features/tasks/task-aware-context.js.map +0 -7
  525. package/dist/src/features/tui/simple-monitor.js.map +0 -7
  526. package/dist/src/features/tui/swarm-monitor.js.map +0 -7
  527. package/dist/src/features/web/client/stores/task-store.js.map +0 -7
  528. package/dist/src/features/web/server/index.js.map +0 -7
  529. package/dist/src/features/workers/tmux-manager.js.map +0 -7
  530. package/dist/src/features/workers/worker-registry.js.map +0 -7
  531. package/dist/src/hooks/auto-background.js.map +0 -7
  532. package/dist/src/hooks/claude-code-whatsapp-hook.js +0 -197
  533. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +0 -7
  534. package/dist/src/hooks/config.js.map +0 -7
  535. package/dist/src/hooks/daemon.js.map +0 -7
  536. package/dist/src/hooks/diffmem-hooks.js.map +0 -7
  537. package/dist/src/hooks/events.js.map +0 -7
  538. package/dist/src/hooks/index.js.map +0 -7
  539. package/dist/src/hooks/linear-task-picker.js.map +0 -7
  540. package/dist/src/hooks/schemas.js.map +0 -7
  541. package/dist/src/hooks/secure-fs.js.map +0 -7
  542. package/dist/src/hooks/security-logger.js.map +0 -7
  543. package/dist/src/hooks/session-summary.js.map +0 -7
  544. package/dist/src/hooks/sms-action-runner.js +0 -371
  545. package/dist/src/hooks/sms-action-runner.js.map +0 -7
  546. package/dist/src/hooks/sms-notify.js +0 -506
  547. package/dist/src/hooks/sms-notify.js.map +0 -7
  548. package/dist/src/hooks/sms-watcher.js +0 -93
  549. package/dist/src/hooks/sms-watcher.js.map +0 -7
  550. package/dist/src/hooks/sms-webhook.js +0 -555
  551. package/dist/src/hooks/sms-webhook.js.map +0 -7
  552. package/dist/src/hooks/whatsapp-commands.js +0 -479
  553. package/dist/src/hooks/whatsapp-commands.js.map +0 -7
  554. package/dist/src/hooks/whatsapp-scheduler.js +0 -317
  555. package/dist/src/hooks/whatsapp-scheduler.js.map +0 -7
  556. package/dist/src/hooks/whatsapp-sync.js +0 -409
  557. package/dist/src/hooks/whatsapp-sync.js.map +0 -7
  558. package/dist/src/index.js.map +0 -7
  559. package/dist/src/integrations/anthropic/client.js.map +0 -7
  560. package/dist/src/integrations/claude-code/agent-bridge.js.map +0 -7
  561. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
  562. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +0 -7
  563. package/dist/src/integrations/claude-code/post-task-hooks.js.map +0 -7
  564. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +0 -7
  565. package/dist/src/integrations/claude-code/subagent-client.js.map +0 -7
  566. package/dist/src/integrations/claude-code/task-coordinator.js.map +0 -7
  567. package/dist/src/integrations/diffmem/client.js.map +0 -7
  568. package/dist/src/integrations/diffmem/config.js.map +0 -7
  569. package/dist/src/integrations/diffmem/index.js.map +0 -7
  570. package/dist/src/integrations/diffmem/types.js.map +0 -7
  571. package/dist/src/integrations/linear/auth.js.map +0 -7
  572. package/dist/src/integrations/linear/auto-sync.js.map +0 -7
  573. package/dist/src/integrations/linear/client.js.map +0 -7
  574. package/dist/src/integrations/linear/config.js.map +0 -7
  575. package/dist/src/integrations/linear/migration.js.map +0 -7
  576. package/dist/src/integrations/linear/oauth-server.js.map +0 -7
  577. package/dist/src/integrations/linear/rest-client.js.map +0 -7
  578. package/dist/src/integrations/linear/sync-manager.js.map +0 -7
  579. package/dist/src/integrations/linear/sync-service.js.map +0 -7
  580. package/dist/src/integrations/linear/sync.js.map +0 -7
  581. package/dist/src/integrations/linear/types.js.map +0 -7
  582. package/dist/src/integrations/linear/unified-sync.js.map +0 -7
  583. package/dist/src/integrations/linear/webhook-handler.js.map +0 -7
  584. package/dist/src/integrations/linear/webhook-server.js.map +0 -7
  585. package/dist/src/integrations/linear/webhook.js.map +0 -7
  586. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
  587. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -7
  588. package/dist/src/integrations/mcp/handlers/diffmem-handlers.js.map +0 -7
  589. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
  590. package/dist/src/integrations/mcp/handlers/index.js.map +0 -7
  591. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -7
  592. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +0 -7
  593. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -7
  594. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -7
  595. package/dist/src/integrations/mcp/index.js.map +0 -7
  596. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +0 -7
  597. package/dist/src/integrations/mcp/pending-utils.js.map +0 -7
  598. package/dist/src/integrations/mcp/refactored-server.js.map +0 -7
  599. package/dist/src/integrations/mcp/remote-server.js.map +0 -7
  600. package/dist/src/integrations/mcp/schemas.js.map +0 -7
  601. package/dist/src/integrations/mcp/server.js.map +0 -7
  602. package/dist/src/integrations/mcp/tool-definitions-code.js.map +0 -7
  603. package/dist/src/integrations/mcp/tool-definitions.js.map +0 -7
  604. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
  605. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +0 -7
  606. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
  607. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
  608. package/dist/src/integrations/ralph/index.js.map +0 -7
  609. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +0 -7
  610. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
  611. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
  612. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
  613. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
  614. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
  615. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
  616. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
  617. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +0 -7
  618. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +0 -7
  619. package/dist/src/integrations/ralph/state/state-reconciler.js.map +0 -7
  620. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
  621. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
  622. package/dist/src/integrations/ralph/types.js.map +0 -7
  623. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
  624. package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -7
  625. package/dist/src/middleware/exponential-rate-limiter.js.map +0 -7
  626. package/dist/src/models/user.model.js.map +0 -7
  627. package/dist/src/orchestrators/multimodal/constants.js.map +0 -7
  628. package/dist/src/orchestrators/multimodal/harness.js.map +0 -7
  629. package/dist/src/orchestrators/multimodal/providers.js.map +0 -7
  630. package/dist/src/orchestrators/multimodal/types.js.map +0 -7
  631. package/dist/src/orchestrators/multimodal/utils.js.map +0 -7
  632. package/dist/src/servers/production/auth-middleware.js.map +0 -7
  633. package/dist/src/services/config-service.js.map +0 -7
  634. package/dist/src/services/context-service.js.map +0 -7
  635. package/dist/src/skills/api-discovery.js.map +0 -7
  636. package/dist/src/skills/api-skill.js.map +0 -7
  637. package/dist/src/skills/claude-skills.js.map +0 -7
  638. package/dist/src/skills/dashboard-launcher.js.map +0 -7
  639. package/dist/src/skills/linear-task-runner.js.map +0 -7
  640. package/dist/src/skills/recursive-agent-orchestrator.js.map +0 -7
  641. package/dist/src/skills/repo-ingestion-skill.js.map +0 -7
  642. package/dist/src/skills/spec-generator-skill.js.map +0 -7
  643. package/dist/src/skills/unified-rlm-orchestrator.js.map +0 -7
  644. package/dist/src/types/task.js.map +0 -7
  645. package/dist/src/utils/env.js.map +0 -7
  646. package/dist/src/utils/formatting.js.map +0 -7
  647. package/dist/src/utils/process-cleanup.js.map +0 -7
  648. package/scripts/README-TESTING.md +0 -186
  649. package/scripts/analyze-cli-security.js +0 -288
  650. package/scripts/archive/add-phase-tasks-to-linear.js +0 -163
  651. package/scripts/archive/analyze-linear-duplicates.js +0 -214
  652. package/scripts/archive/analyze-remaining-duplicates.js +0 -230
  653. package/scripts/archive/analyze-sta-duplicates.js +0 -292
  654. package/scripts/archive/analyze-sta-graphql.js +0 -399
  655. package/scripts/archive/cancel-duplicate-tasks.ts +0 -246
  656. package/scripts/archive/check-all-duplicates.ts +0 -419
  657. package/scripts/archive/clean-duplicate-tasks.js +0 -114
  658. package/scripts/archive/cleanup-duplicate-tasks.ts +0 -286
  659. package/scripts/archive/create-phase-tasks.js +0 -387
  660. package/scripts/archive/delete-linear-duplicates.js +0 -182
  661. package/scripts/archive/delete-remaining-duplicates.js +0 -158
  662. package/scripts/archive/delete-sta-duplicates.js +0 -201
  663. package/scripts/archive/delete-sta-oauth.js +0 -201
  664. package/scripts/archive/export-sta-tasks.js +0 -62
  665. package/scripts/archive/install-auto-sync.js +0 -266
  666. package/scripts/archive/install-chromadb-hooks.sh +0 -133
  667. package/scripts/archive/install-enhanced-clear-hooks.sh +0 -431
  668. package/scripts/archive/install-post-task-hooks.sh +0 -289
  669. package/scripts/archive/install-stackmemory-hooks.sh +0 -420
  670. package/scripts/archive/merge-linear-duplicates-safe.ts +0 -362
  671. package/scripts/archive/merge-linear-duplicates.ts +0 -182
  672. package/scripts/archive/remove-sta-tasks.js +0 -70
  673. package/scripts/archive/setup-background-sync.sh +0 -168
  674. package/scripts/archive/setup-claude-auto-triggers.sh +0 -181
  675. package/scripts/archive/setup-claude-autostart.sh +0 -305
  676. package/scripts/archive/setup-git-hooks.sh +0 -25
  677. package/scripts/archive/setup-linear-oauth.sh +0 -46
  678. package/scripts/archive/setup-mcp.sh +0 -113
  679. package/scripts/archive/setup-railway-deployment.sh +0 -81
  680. package/scripts/auto-handoff.sh +0 -262
  681. package/scripts/background-sync-manager.js +0 -478
  682. package/scripts/benchmark-performance.ts +0 -57
  683. package/scripts/check-redis.ts +0 -48
  684. package/scripts/chromadb-auto-loader.sh +0 -128
  685. package/scripts/chromadb-context-loader.js +0 -479
  686. package/scripts/claude-chromadb-hook.js +0 -460
  687. package/scripts/claude-linear-skill.js +0 -455
  688. package/scripts/claude-pre-commit.sh +0 -302
  689. package/scripts/claude-sm-autostart.js +0 -579
  690. package/scripts/claude-with-chromadb.sh +0 -69
  691. package/scripts/clean-linear-backlog.js +0 -273
  692. package/scripts/cleanup-old-sessions.sh +0 -57
  693. package/scripts/create-cleanup-issues.js +0 -302
  694. package/scripts/create-sandbox.sh +0 -269
  695. package/scripts/debug-linear-update.js +0 -174
  696. package/scripts/delete-linear-tasks.js +0 -167
  697. package/scripts/demos/browser-test.ts +0 -39
  698. package/scripts/demos/ralph-integration-demo.ts +0 -245
  699. package/scripts/demos/trace-demo.ts +0 -200
  700. package/scripts/demos/trace-detector.demo.ts +0 -171
  701. package/scripts/demos/trace-test.ts +0 -79
  702. package/scripts/deploy-ralph-swarm.sh +0 -365
  703. package/scripts/deploy.sh +0 -89
  704. package/scripts/deployment/test-deployment.js +0 -194
  705. package/scripts/detect-and-rehydrate.js +0 -162
  706. package/scripts/detect-and-rehydrate.mjs +0 -165
  707. package/scripts/development/create-demo-tasks.js +0 -143
  708. package/scripts/development/debug-frame-test.js +0 -16
  709. package/scripts/development/demo-auto-sync.js +0 -128
  710. package/scripts/development/fix-all-imports.js +0 -213
  711. package/scripts/development/fix-imports.js +0 -229
  712. package/scripts/development/fix-lint-loop.cjs +0 -103
  713. package/scripts/development/fix-project-id.ts +0 -161
  714. package/scripts/development/fix-strict-mode-issues.ts +0 -291
  715. package/scripts/development/reorganize-structure.sh +0 -228
  716. package/scripts/development/test-persistence-direct.js +0 -148
  717. package/scripts/development/test-persistence.js +0 -114
  718. package/scripts/development/test-tasks.js +0 -93
  719. package/scripts/development/update-imports.js +0 -212
  720. package/scripts/fetch-linear-status.js +0 -125
  721. package/scripts/initialize.ts +0 -220
  722. package/scripts/linear-auto-sync.js +0 -262
  723. package/scripts/linear-auto-sync.sh +0 -161
  724. package/scripts/linear-sync-daemon.js +0 -150
  725. package/scripts/linear-task-review.js +0 -237
  726. package/scripts/list-linear-tasks.ts +0 -178
  727. package/scripts/mcp-proxy.js +0 -66
  728. package/scripts/measure-handoff-impact.mjs +0 -395
  729. package/scripts/measure-handoff-impact.ts +0 -450
  730. package/scripts/publish-local.js +0 -74
  731. package/scripts/query-chromadb.ts +0 -201
  732. package/scripts/ralph-integration-test.js +0 -274
  733. package/scripts/reconcile-local-tasks.js +0 -170
  734. package/scripts/recreate-frames-db.js +0 -89
  735. package/scripts/show-linear-summary.ts +0 -172
  736. package/scripts/simple-swarm-demo.ts +0 -114
  737. package/scripts/stackmemory-auto-handoff.sh +0 -231
  738. package/scripts/start-linear-sync-daemon.sh +0 -141
  739. package/scripts/start-temporal-paradox.sh +0 -214
  740. package/scripts/status.ts +0 -224
  741. package/scripts/stop-notify-webhook.sh +0 -19
  742. package/scripts/swarm-monitor.js +0 -509
  743. package/scripts/sync-and-clean-tasks.js +0 -258
  744. package/scripts/sync-linear-graphql.js +0 -303
  745. package/scripts/sync-linear-tasks.js +0 -186
  746. package/scripts/test-auto-triggers.sh +0 -57
  747. package/scripts/test-browser-mcp.js +0 -74
  748. package/scripts/test-chromadb-full.js +0 -115
  749. package/scripts/test-chromadb-hooks.sh +0 -28
  750. package/scripts/test-chromadb-sync.ts +0 -245
  751. package/scripts/test-claude-config.sh +0 -123
  752. package/scripts/test-cli-security.js +0 -293
  753. package/scripts/test-code-execution.js +0 -143
  754. package/scripts/test-hooks-persistence.sh +0 -220
  755. package/scripts/test-installation-scenarios.sh +0 -359
  756. package/scripts/test-installation.sh +0 -224
  757. package/scripts/test-mcp.js +0 -163
  758. package/scripts/test-parallel-swarms.js +0 -443
  759. package/scripts/test-pre-publish-quick.sh +0 -69
  760. package/scripts/test-quality-gates.sh +0 -263
  761. package/scripts/test-ralph-iteration-fix.ts +0 -118
  762. package/scripts/test-ralph-iterations.ts +0 -164
  763. package/scripts/test-redis-storage.ts +0 -490
  764. package/scripts/test-rlm-basic.sh +0 -122
  765. package/scripts/test-rlm-comprehensive.sh +0 -260
  766. package/scripts/test-rlm-e2e.sh +0 -268
  767. package/scripts/test-rlm-simple.js +0 -90
  768. package/scripts/test-rlm.js +0 -110
  769. package/scripts/test-session-handoff.sh +0 -165
  770. package/scripts/test-setup-e2e.sh +0 -154
  771. package/scripts/test-shell-integration.sh +0 -275
  772. package/scripts/test-simple-ralph-state-sync.ts +0 -178
  773. package/scripts/test-swarm-fixes.ts +0 -161
  774. package/scripts/test-swarm-git-workflow.js +0 -338
  775. package/scripts/test-swarm-tui.ts +0 -34
  776. package/scripts/test-tui-shortcuts.ts +0 -66
  777. package/scripts/testing/ab-test-runner.ts +0 -510
  778. package/scripts/testing/collect-metrics.ts +0 -457
  779. package/scripts/testing/quick-effectiveness-demo.js +0 -187
  780. package/scripts/testing/ralph-cli-test.js +0 -88
  781. package/scripts/testing/ralph-integration-validation.js +0 -727
  782. package/scripts/testing/ralph-swarm-test-scenarios.js +0 -613
  783. package/scripts/testing/real-performance-test.js +0 -422
  784. package/scripts/testing/results/real-performance-results.json +0 -90
  785. package/scripts/testing/run-effectiveness-tests.sh +0 -176
  786. package/scripts/testing/simple-effectiveness-test.js +0 -310
  787. package/scripts/testing/test-tier-migration.js +0 -100
  788. package/scripts/update-linear-status.js +0 -268
  789. package/scripts/update-linear-tasks-fixed.js +0 -284
  790. package/scripts/validate-claude-config.sh +0 -155
  791. package/scripts/validate-swarm-implementation.js +0 -467
  792. package/scripts/validate-tui-shortcuts.ts +0 -83
@@ -1,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
- }