@stackmemoryai/stackmemory 0.5.58 → 0.5.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -1
- package/dist/scripts/benchmark-performance.js +48 -0
- package/dist/scripts/benchmark-performance.js.map +7 -0
- package/dist/scripts/check-redis.js +42 -0
- package/dist/scripts/check-redis.js.map +7 -0
- package/dist/scripts/initialize.js +116 -0
- package/dist/scripts/initialize.js.map +7 -0
- package/dist/scripts/list-linear-tasks.js +124 -0
- package/dist/scripts/list-linear-tasks.js.map +7 -0
- package/dist/scripts/measure-handoff-impact.js +340 -0
- package/dist/scripts/measure-handoff-impact.js.map +7 -0
- package/dist/scripts/query-chromadb.js +160 -0
- package/dist/scripts/query-chromadb.js.map +7 -0
- package/dist/scripts/show-linear-summary.js +119 -0
- package/dist/scripts/show-linear-summary.js.map +7 -0
- package/dist/scripts/simple-swarm-demo.js +90 -0
- package/dist/scripts/simple-swarm-demo.js.map +7 -0
- package/dist/scripts/status.js +155 -0
- package/dist/scripts/status.js.map +7 -0
- package/dist/scripts/test-chromadb-sync.js +192 -0
- package/dist/scripts/test-chromadb-sync.js.map +7 -0
- package/dist/scripts/test-ralph-iteration-fix.js +86 -0
- package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
- package/dist/scripts/test-ralph-iterations.js +121 -0
- package/dist/scripts/test-ralph-iterations.js.map +7 -0
- package/dist/scripts/test-redis-storage.js +389 -0
- package/dist/scripts/test-redis-storage.js.map +7 -0
- package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
- package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
- package/dist/scripts/test-swarm-fixes.js +125 -0
- package/dist/scripts/test-swarm-fixes.js.map +7 -0
- package/dist/scripts/test-swarm-tui.js +23 -0
- package/dist/scripts/test-swarm-tui.js.map +7 -0
- package/dist/scripts/test-tui-shortcuts.js +52 -0
- package/dist/scripts/test-tui-shortcuts.js.map +7 -0
- package/dist/scripts/validate-tui-shortcuts.js +60 -0
- package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
- package/dist/src/agents/core/agent-task-manager.js.map +7 -0
- package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
- package/dist/src/cli/auto-detect.js.map +7 -0
- package/dist/src/cli/claude-sm-danger.js.map +7 -0
- package/dist/src/cli/claude-sm.js +1236 -0
- package/dist/src/cli/claude-sm.js.map +7 -0
- package/dist/src/cli/codex-sm-danger.js.map +7 -0
- package/dist/src/cli/codex-sm.js.map +7 -0
- package/dist/src/cli/commands/api.js.map +7 -0
- package/dist/src/cli/commands/auto-background.js.map +7 -0
- package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
- package/dist/src/cli/commands/clear.js.map +7 -0
- package/dist/src/cli/commands/config.js.map +7 -0
- package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
- package/dist/src/cli/commands/context.js.map +7 -0
- package/dist/src/cli/commands/daemon.js.map +7 -0
- package/dist/src/cli/commands/dashboard.js.map +7 -0
- package/dist/src/cli/commands/db.js.map +7 -0
- package/dist/src/cli/commands/decision.js.map +7 -0
- package/dist/src/cli/commands/discovery.js.map +7 -0
- package/dist/src/cli/commands/handoff.js.map +7 -0
- package/dist/src/cli/commands/hooks.js.map +7 -0
- package/dist/src/cli/commands/linear.js.map +7 -0
- package/dist/src/cli/commands/log.js.map +7 -0
- package/dist/src/cli/commands/login.js.map +7 -0
- package/dist/src/cli/commands/migrate.js.map +7 -0
- package/dist/src/cli/commands/model.js.map +7 -0
- package/dist/src/cli/commands/onboard.js.map +7 -0
- package/dist/src/cli/commands/projects.js.map +7 -0
- package/dist/src/cli/commands/ralph.js.map +7 -0
- package/dist/src/cli/commands/retrieval.js.map +7 -0
- package/dist/src/cli/commands/search.js +173 -0
- package/dist/src/cli/commands/search.js.map +7 -0
- package/dist/src/cli/commands/service.js.map +7 -0
- package/dist/src/cli/commands/session.js.map +7 -0
- package/dist/src/cli/commands/settings.js.map +7 -0
- package/dist/src/cli/commands/setup.js.map +7 -0
- package/dist/src/cli/commands/shell.js.map +7 -0
- package/dist/src/cli/commands/signup.js.map +7 -0
- package/dist/src/cli/commands/skills.js.map +7 -0
- package/dist/src/cli/commands/sms-notify.js.map +7 -0
- package/dist/src/cli/commands/storage-tier.js.map +7 -0
- package/dist/src/cli/commands/sweep.js.map +7 -0
- package/dist/src/cli/commands/tasks.js.map +7 -0
- package/dist/src/cli/commands/worktree.js.map +7 -0
- package/dist/src/cli/index.js +609 -0
- package/dist/src/cli/index.js.map +7 -0
- package/dist/src/cli/opencode-sm.js.map +7 -0
- package/dist/src/cli/utils/viewer.js.map +7 -0
- package/dist/src/core/config/config-manager.js.map +7 -0
- package/dist/src/core/config/feature-flags.js.map +7 -0
- package/dist/src/core/config/storage-config.js.map +7 -0
- package/dist/src/core/config/types.js.map +7 -0
- package/dist/src/core/context/auto-context.js.map +7 -0
- package/dist/src/core/context/dual-stack-manager.js.map +7 -0
- package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
- package/dist/src/core/context/frame-database.js.map +7 -0
- package/dist/src/core/context/frame-digest.js.map +7 -0
- package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
- package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
- package/dist/src/core/context/frame-recovery.js.map +7 -0
- package/dist/src/core/context/frame-stack.js.map +7 -0
- package/dist/src/core/context/index.js.map +7 -0
- package/dist/src/core/context/permission-manager.js.map +7 -0
- package/dist/src/core/context/recursive-context-manager.js.map +7 -0
- package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
- package/dist/src/core/context/shared-context-layer.js.map +7 -0
- package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
- package/dist/src/core/context/validation.js.map +7 -0
- package/dist/src/core/database/batch-operations.js.map +7 -0
- package/dist/src/core/database/connection-pool.js.map +7 -0
- package/dist/src/core/database/database-adapter.js.map +7 -0
- package/dist/src/core/database/migration-manager.js.map +7 -0
- package/dist/src/core/database/query-cache.js.map +7 -0
- package/dist/src/core/database/query-router.js.map +7 -0
- package/dist/src/core/database/sqlite-adapter.js +738 -0
- package/dist/src/core/database/sqlite-adapter.js.map +7 -0
- package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
- package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
- package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
- package/dist/src/core/digest/index.js.map +7 -0
- package/dist/src/core/digest/types.js.map +7 -0
- package/dist/src/core/errors/error-utils.js +208 -0
- package/dist/src/core/errors/error-utils.js.map +7 -0
- package/dist/src/core/errors/index.js +521 -0
- package/dist/src/core/errors/index.js.map +7 -0
- package/dist/src/core/errors/recovery.js.map +7 -0
- package/dist/src/core/execution/parallel-executor.js.map +7 -0
- package/dist/src/core/extensions/custom-tools.js +567 -0
- package/dist/src/core/extensions/custom-tools.js.map +7 -0
- package/dist/src/core/extensions/index.js +55 -0
- package/dist/src/core/extensions/index.js.map +7 -0
- package/dist/src/core/extensions/loader.js +709 -0
- package/dist/src/core/extensions/loader.js.map +7 -0
- package/dist/src/core/extensions/plugin-system.js +506 -0
- package/dist/src/core/extensions/plugin-system.js.map +7 -0
- package/dist/src/core/extensions/provider-adapter.js +617 -0
- package/dist/src/core/extensions/provider-adapter.js.map +7 -0
- package/dist/src/core/extensions/sandbox-runtime.js +664 -0
- package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
- package/dist/src/core/frame/workflow-templates.js.map +7 -0
- package/dist/src/core/merge/conflict-detector.js.map +7 -0
- package/dist/src/core/merge/index.js.map +7 -0
- package/dist/src/core/merge/resolution-engine.js.map +7 -0
- package/dist/src/core/merge/stack-diff.js.map +7 -0
- package/dist/src/core/merge/unified-merge-resolver.js +303 -0
- package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
- package/dist/src/core/models/fallback-monitor.js.map +7 -0
- package/dist/src/core/models/model-router.js.map +7 -0
- package/dist/src/core/monitoring/error-handler.js.map +7 -0
- package/dist/src/core/monitoring/logger.js +202 -0
- package/dist/src/core/monitoring/logger.js.map +7 -0
- package/dist/src/core/monitoring/metrics.js.map +7 -0
- package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
- package/dist/src/core/monitoring/session-monitor.js.map +7 -0
- package/dist/src/core/performance/context-cache.js.map +7 -0
- package/dist/src/core/performance/index.js.map +7 -0
- package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
- package/dist/src/core/performance/monitor.js.map +7 -0
- package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
- package/dist/src/core/performance/performance-benchmark.js.map +7 -0
- package/dist/src/core/performance/performance-profiler.js.map +7 -0
- package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
- package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
- package/dist/src/core/projects/project-isolation.js.map +7 -0
- package/dist/src/core/projects/project-manager.js.map +7 -0
- package/dist/src/core/query/query-parser.js.map +7 -0
- package/dist/src/core/query/query-templates.js.map +7 -0
- package/dist/src/core/retrieval/context-retriever.js.map +7 -0
- package/dist/src/core/retrieval/index.js.map +7 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
- package/dist/src/core/retrieval/llm-provider.js.map +7 -0
- package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
- package/dist/src/core/retrieval/summary-generator.js.map +7 -0
- package/dist/src/core/retrieval/types.js.map +7 -0
- package/dist/src/core/security/index.js +35 -0
- package/dist/src/core/security/index.js.map +7 -0
- package/dist/src/core/security/input-sanitizer.js +321 -0
- package/dist/src/core/security/input-sanitizer.js.map +7 -0
- package/dist/src/core/session/clear-survival.js.map +7 -0
- package/dist/src/core/session/enhanced-handoff.js.map +7 -0
- package/dist/src/core/session/handoff-generator.js.map +7 -0
- package/dist/src/core/session/index.js.map +7 -0
- package/dist/src/core/session/session-manager.js.map +7 -0
- package/dist/src/core/skills/index.js.map +7 -0
- package/dist/src/core/skills/skill-storage.js.map +7 -0
- package/dist/src/core/skills/types.js.map +7 -0
- package/dist/src/core/storage/chromadb-adapter.js +380 -0
- package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
- package/dist/src/core/storage/infinite-storage.js.map +7 -0
- package/dist/src/core/storage/remote-storage.js.map +7 -0
- package/dist/src/core/storage/two-tier-storage.js.map +7 -0
- package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/debug-trace.js.map +7 -0
- package/dist/src/core/trace/index.js.map +7 -0
- package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
- package/dist/src/core/trace/trace-detector.js.map +7 -0
- package/dist/src/core/trace/trace-store.js.map +7 -0
- package/dist/src/core/trace/types.js.map +7 -0
- package/dist/src/core/utils/async-mutex.js.map +7 -0
- package/dist/src/core/utils/compression.js.map +7 -0
- package/dist/src/core/utils/update-checker.js.map +7 -0
- package/dist/src/core/worktree/worktree-manager.js.map +7 -0
- package/dist/src/daemon/daemon-config.js.map +7 -0
- package/dist/src/daemon/services/context-service.js.map +7 -0
- package/dist/src/daemon/services/linear-service.js.map +7 -0
- package/dist/src/daemon/session-daemon.js.map +7 -0
- package/dist/src/daemon/unified-daemon.js.map +7 -0
- package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
- package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
- package/dist/src/features/analytics/index.js.map +7 -0
- package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
- package/dist/src/features/browser/browser-mcp.js.map +7 -0
- package/dist/src/features/sweep/index.js.map +7 -0
- package/dist/src/features/sweep/prediction-client.js.map +7 -0
- package/dist/src/features/sweep/prompt-builder.js.map +7 -0
- package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
- package/dist/src/features/sweep/state-watcher.js.map +7 -0
- package/dist/src/features/sweep/status-bar.js.map +7 -0
- package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
- package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
- package/dist/src/features/sweep/types.js.map +7 -0
- package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
- package/dist/src/features/tasks/task-aware-context.js.map +7 -0
- package/dist/src/features/tui/simple-monitor.js.map +7 -0
- package/dist/src/features/tui/swarm-monitor.js.map +7 -0
- package/dist/src/features/web/client/stores/task-store.js.map +7 -0
- package/dist/src/features/web/server/index.js.map +7 -0
- package/dist/src/hooks/auto-background.js.map +7 -0
- package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
- package/dist/src/hooks/config.js.map +7 -0
- package/dist/src/hooks/daemon.js.map +7 -0
- package/dist/src/hooks/events.js.map +7 -0
- package/dist/src/hooks/index.js.map +7 -0
- package/dist/src/hooks/linear-task-picker.js.map +7 -0
- package/dist/src/hooks/schemas.js.map +7 -0
- package/dist/src/hooks/secure-fs.js.map +7 -0
- package/dist/src/hooks/security-logger.js.map +7 -0
- package/dist/src/hooks/session-summary.js.map +7 -0
- package/dist/src/hooks/sms-action-runner.js.map +7 -0
- package/dist/src/hooks/sms-notify.js.map +7 -0
- package/dist/src/hooks/sms-watcher.js.map +7 -0
- package/dist/src/hooks/sms-webhook.js.map +7 -0
- package/dist/src/hooks/whatsapp-commands.js.map +7 -0
- package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
- package/dist/src/hooks/whatsapp-sync.js.map +7 -0
- package/dist/src/index.js.map +7 -0
- package/dist/src/integrations/anthropic/client.js.map +7 -0
- package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
- package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
- package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
- package/dist/src/integrations/linear/auth.js.map +7 -0
- package/dist/src/integrations/linear/auto-sync.js.map +7 -0
- package/dist/src/integrations/linear/client.js +634 -0
- package/dist/src/integrations/linear/client.js.map +7 -0
- package/dist/src/integrations/linear/config.js.map +7 -0
- package/dist/src/integrations/linear/migration.js.map +7 -0
- package/dist/src/integrations/linear/oauth-server.js.map +7 -0
- package/dist/src/integrations/linear/rest-client.js.map +7 -0
- package/dist/src/integrations/linear/sync-manager.js.map +7 -0
- package/dist/src/integrations/linear/sync-service.js.map +7 -0
- package/dist/src/integrations/linear/sync.js.map +7 -0
- package/dist/src/integrations/linear/unified-sync.js.map +7 -0
- package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
- package/dist/src/integrations/linear/webhook-server.js.map +7 -0
- package/dist/src/integrations/linear/webhook.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/index.js.map +7 -0
- package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
- package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
- package/dist/src/integrations/mcp/remote-server.js +682 -0
- package/dist/src/integrations/mcp/remote-server.js.map +7 -0
- package/dist/src/integrations/mcp/schemas.js.map +7 -0
- package/dist/src/integrations/mcp/server.js +1975 -0
- package/dist/src/integrations/mcp/server.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
- package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
- package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
- package/dist/src/integrations/ralph/index.js.map +7 -0
- package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
- package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
- package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
- package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
- package/dist/src/integrations/ralph/types.js +5 -0
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
- package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
- package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
- package/dist/src/models/user.model.js.map +7 -0
- package/dist/src/servers/production/auth-middleware.js.map +7 -0
- package/dist/src/services/config-service.js.map +7 -0
- package/dist/src/services/context-service.js.map +7 -0
- package/dist/src/skills/api-discovery.js.map +7 -0
- package/dist/src/skills/api-skill.js.map +7 -0
- package/dist/src/skills/claude-skills.js.map +7 -0
- package/dist/src/skills/dashboard-launcher.js.map +7 -0
- package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
- package/dist/src/skills/repo-ingestion-skill.js +632 -0
- package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
- package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
- package/dist/src/types/task.js.map +7 -0
- package/dist/src/utils/env.js.map +7 -0
- package/dist/src/utils/formatting.js.map +7 -0
- package/dist/src/utils/process-cleanup.js.map +7 -0
- package/package.json +13 -9
- package/scripts/background-sync-manager.js +145 -83
- package/scripts/claude-sm-autostart.js +17 -12
- package/scripts/gepa/README.md +275 -0
- package/scripts/gepa/config.json +53 -0
- package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
- package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
- package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
- package/scripts/gepa/generations/gen-000/baseline.md +124 -0
- package/scripts/gepa/hooks/auto-optimize.js +494 -0
- package/scripts/gepa/hooks/eval-tracker.js +203 -0
- package/scripts/gepa/hooks/reflect.js +311 -0
- package/scripts/gepa/optimize.js +611 -0
- package/scripts/gepa/state.json +14 -0
- package/scripts/initialize.ts +16 -7
- package/scripts/install.sh +14 -62
- package/scripts/status.ts +111 -46
- package/scripts/test-pre-publish-quick.sh +1 -1
- package/dist/agents/core/agent-task-manager.js.map +0 -7
- package/dist/agents/testing-agent.js +0 -614
- package/dist/agents/testing-agent.js.map +0 -7
- package/dist/agents/verifiers/base-verifier.js.map +0 -7
- package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
- package/dist/agents/verifiers/llm-judge.js.map +0 -7
- package/dist/cli/auto-detect.js.map +0 -7
- package/dist/cli/browser-test.js +0 -33
- package/dist/cli/browser-test.js.map +0 -7
- package/dist/cli/claude-sm-danger.js.map +0 -7
- package/dist/cli/claude-sm.js +0 -1156
- package/dist/cli/claude-sm.js.map +0 -7
- package/dist/cli/codex-sm-danger.js.map +0 -7
- package/dist/cli/codex-sm.js.map +0 -7
- package/dist/cli/commands/api.js.map +0 -7
- package/dist/cli/commands/auto-background.js.map +0 -7
- package/dist/cli/commands/cleanup-processes.js.map +0 -7
- package/dist/cli/commands/clear.js.map +0 -7
- package/dist/cli/commands/config.js.map +0 -7
- package/dist/cli/commands/context-rehydrate.js.map +0 -7
- package/dist/cli/commands/context.js.map +0 -7
- package/dist/cli/commands/daemon.js.map +0 -7
- package/dist/cli/commands/dashboard.js.map +0 -7
- package/dist/cli/commands/db.js.map +0 -7
- package/dist/cli/commands/decision.js.map +0 -7
- package/dist/cli/commands/discovery.js.map +0 -7
- package/dist/cli/commands/handoff.js.map +0 -7
- package/dist/cli/commands/hooks.js.map +0 -7
- package/dist/cli/commands/linear-unified.js +0 -353
- package/dist/cli/commands/linear-unified.js.map +0 -7
- package/dist/cli/commands/linear.js.map +0 -7
- package/dist/cli/commands/log.js.map +0 -7
- package/dist/cli/commands/login.js.map +0 -7
- package/dist/cli/commands/migrate.js.map +0 -7
- package/dist/cli/commands/model.js.map +0 -7
- package/dist/cli/commands/monitor.js +0 -313
- package/dist/cli/commands/monitor.js.map +0 -7
- package/dist/cli/commands/onboard.js.map +0 -7
- package/dist/cli/commands/projects.js.map +0 -7
- package/dist/cli/commands/quality.js +0 -413
- package/dist/cli/commands/quality.js.map +0 -7
- package/dist/cli/commands/ralph.js.map +0 -7
- package/dist/cli/commands/retrieval.js.map +0 -7
- package/dist/cli/commands/search.js +0 -156
- package/dist/cli/commands/search.js.map +0 -7
- package/dist/cli/commands/service.js.map +0 -7
- package/dist/cli/commands/session.js.map +0 -7
- package/dist/cli/commands/settings.js.map +0 -7
- package/dist/cli/commands/setup.js.map +0 -7
- package/dist/cli/commands/shell.js.map +0 -7
- package/dist/cli/commands/signup.js.map +0 -7
- package/dist/cli/commands/skills.js.map +0 -7
- package/dist/cli/commands/sms-notify.js.map +0 -7
- package/dist/cli/commands/storage-tier.js.map +0 -7
- package/dist/cli/commands/storage.js +0 -360
- package/dist/cli/commands/storage.js.map +0 -7
- package/dist/cli/commands/sweep.js.map +0 -7
- package/dist/cli/commands/tasks.js.map +0 -7
- package/dist/cli/commands/test.js +0 -286
- package/dist/cli/commands/test.js.map +0 -7
- package/dist/cli/commands/workflow.js +0 -142
- package/dist/cli/commands/workflow.js.map +0 -7
- package/dist/cli/commands/worktree.js.map +0 -7
- package/dist/cli/index.js +0 -594
- package/dist/cli/index.js.map +0 -7
- package/dist/cli/opencode-sm.js.map +0 -7
- package/dist/cli/utils/viewer.js.map +0 -7
- package/dist/core/analytics/team-analytics.js +0 -378
- package/dist/core/analytics/team-analytics.js.map +0 -7
- package/dist/core/config/config-manager.js.map +0 -7
- package/dist/core/config/feature-flags.js.map +0 -7
- package/dist/core/config/storage-config.js.map +0 -7
- package/dist/core/config/types.js.map +0 -7
- package/dist/core/context/auto-context.js.map +0 -7
- package/dist/core/context/dual-stack-manager.js.map +0 -7
- package/dist/core/context/enhanced-rehydration.js.map +0 -7
- package/dist/core/context/frame-database.js.map +0 -7
- package/dist/core/context/frame-digest.js.map +0 -7
- package/dist/core/context/frame-handoff-manager.js.map +0 -7
- package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
- package/dist/core/context/frame-manager.js +0 -1069
- package/dist/core/context/frame-manager.js.map +0 -7
- package/dist/core/context/frame-recovery.js.map +0 -7
- package/dist/core/context/frame-stack.js.map +0 -7
- package/dist/core/context/incremental-gc.js +0 -290
- package/dist/core/context/incremental-gc.js.map +0 -7
- package/dist/core/context/index.js.map +0 -7
- package/dist/core/context/model-aware-compaction.js +0 -623
- package/dist/core/context/model-aware-compaction.js.map +0 -7
- package/dist/core/context/permission-manager.js.map +0 -7
- package/dist/core/context/recursive-context-manager.js.map +0 -7
- package/dist/core/context/refactored-frame-manager.js.map +0 -7
- package/dist/core/context/shared-context-layer.js.map +0 -7
- package/dist/core/context/stack-merge-resolver.js.map +0 -7
- package/dist/core/context/validation.js.map +0 -7
- package/dist/core/database/batch-operations.js.map +0 -7
- package/dist/core/database/connection-pool.js.map +0 -7
- package/dist/core/database/database-adapter.js.map +0 -7
- package/dist/core/database/migration-manager.js.map +0 -7
- package/dist/core/database/paradedb-adapter.js +0 -990
- package/dist/core/database/paradedb-adapter.js.map +0 -7
- package/dist/core/database/query-cache.js.map +0 -7
- package/dist/core/database/query-router.js.map +0 -7
- package/dist/core/database/sqlite-adapter.js +0 -728
- package/dist/core/database/sqlite-adapter.js.map +0 -7
- package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
- package/dist/core/digest/frame-digest-integration.js.map +0 -7
- package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
- package/dist/core/digest/index.js.map +0 -7
- package/dist/core/digest/types.js.map +0 -7
- package/dist/core/errors/index.js +0 -512
- package/dist/core/errors/index.js.map +0 -7
- package/dist/core/errors/recovery.js.map +0 -7
- package/dist/core/execution/parallel-executor.js.map +0 -7
- package/dist/core/frame/workflow-templates.js.map +0 -7
- package/dist/core/merge/conflict-detector.js.map +0 -7
- package/dist/core/merge/index.js.map +0 -7
- package/dist/core/merge/resolution-engine.js.map +0 -7
- package/dist/core/merge/stack-diff.js.map +0 -7
- package/dist/core/models/fallback-monitor.js.map +0 -7
- package/dist/core/models/model-router.js.map +0 -7
- package/dist/core/monitoring/error-handler.js.map +0 -7
- package/dist/core/monitoring/logger.js +0 -150
- package/dist/core/monitoring/logger.js.map +0 -7
- package/dist/core/monitoring/metrics.js.map +0 -7
- package/dist/core/monitoring/progress-tracker.js.map +0 -7
- package/dist/core/monitoring/session-monitor.js.map +0 -7
- package/dist/core/performance/context-cache.js.map +0 -7
- package/dist/core/performance/index.js.map +0 -7
- package/dist/core/performance/lazy-context-loader.js.map +0 -7
- package/dist/core/performance/monitor.js.map +0 -7
- package/dist/core/performance/optimized-frame-context.js.map +0 -7
- package/dist/core/performance/performance-benchmark.js.map +0 -7
- package/dist/core/performance/performance-profiler.js.map +0 -7
- package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
- package/dist/core/persistence/postgres-adapter.js.map +0 -7
- package/dist/core/projects/project-isolation.js.map +0 -7
- package/dist/core/projects/project-manager.js.map +0 -7
- package/dist/core/query/query-parser.js.map +0 -7
- package/dist/core/query/query-templates.js.map +0 -7
- package/dist/core/retrieval/context-retriever.js.map +0 -7
- package/dist/core/retrieval/graph-retrieval.js +0 -662
- package/dist/core/retrieval/graph-retrieval.js.map +0 -7
- package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
- package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
- package/dist/core/retrieval/index.js.map +0 -7
- package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
- package/dist/core/retrieval/llm-provider.js.map +0 -7
- package/dist/core/retrieval/retrieval-audit.js.map +0 -7
- package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
- package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
- package/dist/core/retrieval/summary-generator.js.map +0 -7
- package/dist/core/retrieval/types.js.map +0 -7
- package/dist/core/session/clear-survival.js.map +0 -7
- package/dist/core/session/enhanced-handoff.js.map +0 -7
- package/dist/core/session/handoff-generator.js.map +0 -7
- package/dist/core/session/index.js.map +0 -7
- package/dist/core/session/session-manager.js.map +0 -7
- package/dist/core/skills/index.js.map +0 -7
- package/dist/core/skills/skill-storage.js.map +0 -7
- package/dist/core/skills/types.js.map +0 -7
- package/dist/core/storage/chromadb-adapter.js +0 -354
- package/dist/core/storage/chromadb-adapter.js.map +0 -7
- package/dist/core/storage/infinite-storage.js.map +0 -7
- package/dist/core/storage/railway-optimized-storage.js +0 -591
- package/dist/core/storage/railway-optimized-storage.js.map +0 -7
- package/dist/core/storage/remote-storage.js.map +0 -7
- package/dist/core/storage/two-tier-storage.js.map +0 -7
- package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
- package/dist/core/trace/db-trace-wrapper.js.map +0 -7
- package/dist/core/trace/debug-trace.js.map +0 -7
- package/dist/core/trace/index.js.map +0 -7
- package/dist/core/trace/linear-api-wrapper.js.map +0 -7
- package/dist/core/trace/trace-demo.js +0 -154
- package/dist/core/trace/trace-demo.js.map +0 -7
- package/dist/core/trace/trace-detector.demo.js +0 -142
- package/dist/core/trace/trace-detector.demo.js.map +0 -7
- package/dist/core/trace/trace-detector.js.map +0 -7
- package/dist/core/trace/trace-store.js.map +0 -7
- package/dist/core/trace/types.js.map +0 -7
- package/dist/core/utils/async-mutex.js.map +0 -7
- package/dist/core/utils/compression.js.map +0 -7
- package/dist/core/utils/update-checker.js.map +0 -7
- package/dist/core/worktree/worktree-manager.js.map +0 -7
- package/dist/daemon/daemon-config.js.map +0 -7
- package/dist/daemon/services/context-service.js.map +0 -7
- package/dist/daemon/services/linear-service.js.map +0 -7
- package/dist/daemon/session-daemon.js.map +0 -7
- package/dist/daemon/unified-daemon.js.map +0 -7
- package/dist/features/analytics/api/analytics-api.js.map +0 -7
- package/dist/features/analytics/core/analytics-service.js.map +0 -7
- package/dist/features/analytics/index.js.map +0 -7
- package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
- package/dist/features/browser/browser-mcp.js.map +0 -7
- package/dist/features/sweep/index.js.map +0 -7
- package/dist/features/sweep/prediction-client.js.map +0 -7
- package/dist/features/sweep/prompt-builder.js.map +0 -7
- package/dist/features/sweep/pty-wrapper.js.map +0 -7
- package/dist/features/sweep/state-watcher.js.map +0 -7
- package/dist/features/sweep/status-bar.js.map +0 -7
- package/dist/features/sweep/sweep-server-manager.js.map +0 -7
- package/dist/features/sweep/tab-interceptor.js.map +0 -7
- package/dist/features/sweep/types.js.map +0 -7
- package/dist/features/tasks/linear-task-manager.js.map +0 -7
- package/dist/features/tasks/task-aware-context.js.map +0 -7
- package/dist/features/tui/simple-monitor.js.map +0 -7
- package/dist/features/tui/swarm-monitor.js.map +0 -7
- package/dist/features/web/client/stores/task-store.js.map +0 -7
- package/dist/features/web/server/index.js.map +0 -7
- package/dist/hooks/auto-background.js.map +0 -7
- package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
- package/dist/hooks/config.js.map +0 -7
- package/dist/hooks/daemon.js.map +0 -7
- package/dist/hooks/events.js.map +0 -7
- package/dist/hooks/index.js.map +0 -7
- package/dist/hooks/linear-task-picker.js.map +0 -7
- package/dist/hooks/schemas.js.map +0 -7
- package/dist/hooks/secure-fs.js.map +0 -7
- package/dist/hooks/security-logger.js.map +0 -7
- package/dist/hooks/session-summary.js.map +0 -7
- package/dist/hooks/sms-action-runner.js.map +0 -7
- package/dist/hooks/sms-notify.js.map +0 -7
- package/dist/hooks/sms-watcher.js.map +0 -7
- package/dist/hooks/sms-webhook.js.map +0 -7
- package/dist/hooks/whatsapp-commands.js.map +0 -7
- package/dist/hooks/whatsapp-scheduler.js.map +0 -7
- package/dist/hooks/whatsapp-sync.js.map +0 -7
- package/dist/index.js.map +0 -7
- package/dist/integrations/anthropic/client.js.map +0 -7
- package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
- package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
- package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client.js.map +0 -7
- package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
- package/dist/integrations/linear/auth.js.map +0 -7
- package/dist/integrations/linear/auto-sync.js.map +0 -7
- package/dist/integrations/linear/client.js +0 -630
- package/dist/integrations/linear/client.js.map +0 -7
- package/dist/integrations/linear/config.js.map +0 -7
- package/dist/integrations/linear/migration.js.map +0 -7
- package/dist/integrations/linear/oauth-server.js.map +0 -7
- package/dist/integrations/linear/rest-client.js.map +0 -7
- package/dist/integrations/linear/sync-manager.js.map +0 -7
- package/dist/integrations/linear/sync-service.js.map +0 -7
- package/dist/integrations/linear/sync.js.map +0 -7
- package/dist/integrations/linear/unified-sync.js.map +0 -7
- package/dist/integrations/linear/webhook-handler.js.map +0 -7
- package/dist/integrations/linear/webhook-server.js.map +0 -7
- package/dist/integrations/linear/webhook.js.map +0 -7
- package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/index.js.map +0 -7
- package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
- package/dist/integrations/mcp/index.js.map +0 -7
- package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
- package/dist/integrations/mcp/refactored-server.js.map +0 -7
- package/dist/integrations/mcp/remote-server.js +0 -691
- package/dist/integrations/mcp/remote-server.js.map +0 -7
- package/dist/integrations/mcp/schemas.js.map +0 -7
- package/dist/integrations/mcp/server.js +0 -1960
- package/dist/integrations/mcp/server.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions.js.map +0 -7
- package/dist/integrations/mcp/trace-test.js +0 -48
- package/dist/integrations/mcp/trace-test.js.map +0 -7
- package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
- package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
- package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
- package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
- package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
- package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
- package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
- package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
- package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
- package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
- package/dist/integrations/ralph/index.js.map +0 -7
- package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
- package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
- package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
- package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
- package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
- package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
- package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
- package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
- package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
- package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
- package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
- package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
- package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
- package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
- package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
- package/dist/middleware/exponential-rate-limiter.js.map +0 -7
- package/dist/models/user.model.js.map +0 -7
- package/dist/servers/production/auth-middleware.js.map +0 -7
- package/dist/servers/railway/config.js +0 -55
- package/dist/servers/railway/config.js.map +0 -7
- package/dist/servers/railway/index-enhanced.js +0 -160
- package/dist/servers/railway/index-enhanced.js.map +0 -7
- package/dist/servers/railway/index.js +0 -1349
- package/dist/servers/railway/index.js.map +0 -7
- package/dist/servers/railway/simple.js +0 -64
- package/dist/servers/railway/simple.js.map +0 -7
- package/dist/servers/railway/storage-test.js +0 -459
- package/dist/servers/railway/storage-test.js.map +0 -7
- package/dist/services/config-service.js.map +0 -7
- package/dist/services/context-service.js.map +0 -7
- package/dist/skills/api-discovery.js.map +0 -7
- package/dist/skills/api-skill.js.map +0 -7
- package/dist/skills/claude-skills.js.map +0 -7
- package/dist/skills/dashboard-launcher.js.map +0 -7
- package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
- package/dist/skills/repo-ingestion-skill.js +0 -609
- package/dist/skills/repo-ingestion-skill.js.map +0 -7
- package/dist/skills/security-secrets-scanner.js +0 -284
- package/dist/skills/security-secrets-scanner.js.map +0 -7
- package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/formatting.js.map +0 -7
- package/dist/utils/process-cleanup.js.map +0 -7
- package/dist/validation/schemas.js +0 -222
- package/dist/validation/schemas.js.map +0 -7
- /package/dist/{agents → src/agents}/core/agent-task-manager.js +0 -0
- /package/dist/{agents → src/agents}/verifiers/base-verifier.js +0 -0
- /package/dist/{agents → src/agents}/verifiers/formatter-verifier.js +0 -0
- /package/dist/{agents → src/agents}/verifiers/llm-judge.js +0 -0
- /package/dist/{cli → src/cli}/auto-detect.js +0 -0
- /package/dist/{cli → src/cli}/claude-sm-danger.js +0 -0
- /package/dist/{cli → src/cli}/codex-sm-danger.js +0 -0
- /package/dist/{cli → src/cli}/codex-sm.js +0 -0
- /package/dist/{cli → src/cli}/commands/api.js +0 -0
- /package/dist/{cli → src/cli}/commands/auto-background.js +0 -0
- /package/dist/{cli → src/cli}/commands/cleanup-processes.js +0 -0
- /package/dist/{cli → src/cli}/commands/clear.js +0 -0
- /package/dist/{cli → src/cli}/commands/config.js +0 -0
- /package/dist/{cli → src/cli}/commands/context-rehydrate.js +0 -0
- /package/dist/{cli → src/cli}/commands/context.js +0 -0
- /package/dist/{cli → src/cli}/commands/daemon.js +0 -0
- /package/dist/{cli → src/cli}/commands/dashboard.js +0 -0
- /package/dist/{cli → src/cli}/commands/db.js +0 -0
- /package/dist/{cli → src/cli}/commands/decision.js +0 -0
- /package/dist/{cli → src/cli}/commands/discovery.js +0 -0
- /package/dist/{cli → src/cli}/commands/handoff.js +0 -0
- /package/dist/{cli → src/cli}/commands/hooks.js +0 -0
- /package/dist/{cli → src/cli}/commands/linear.js +0 -0
- /package/dist/{cli → src/cli}/commands/log.js +0 -0
- /package/dist/{cli → src/cli}/commands/login.js +0 -0
- /package/dist/{cli → src/cli}/commands/migrate.js +0 -0
- /package/dist/{cli → src/cli}/commands/model.js +0 -0
- /package/dist/{cli → src/cli}/commands/onboard.js +0 -0
- /package/dist/{cli → src/cli}/commands/projects.js +0 -0
- /package/dist/{cli → src/cli}/commands/ralph.js +0 -0
- /package/dist/{cli → src/cli}/commands/retrieval.js +0 -0
- /package/dist/{cli → src/cli}/commands/service.js +0 -0
- /package/dist/{cli → src/cli}/commands/session.js +0 -0
- /package/dist/{cli → src/cli}/commands/settings.js +0 -0
- /package/dist/{cli → src/cli}/commands/setup.js +0 -0
- /package/dist/{cli → src/cli}/commands/shell.js +0 -0
- /package/dist/{cli → src/cli}/commands/signup.js +0 -0
- /package/dist/{cli → src/cli}/commands/skills.js +0 -0
- /package/dist/{cli → src/cli}/commands/sms-notify.js +0 -0
- /package/dist/{cli → src/cli}/commands/storage-tier.js +0 -0
- /package/dist/{cli → src/cli}/commands/sweep.js +0 -0
- /package/dist/{cli → src/cli}/commands/tasks.js +0 -0
- /package/dist/{cli → src/cli}/commands/worktree.js +0 -0
- /package/dist/{cli → src/cli}/opencode-sm.js +0 -0
- /package/dist/{cli → src/cli}/utils/viewer.js +0 -0
- /package/dist/{core → src/core}/config/config-manager.js +0 -0
- /package/dist/{core → src/core}/config/feature-flags.js +0 -0
- /package/dist/{core → src/core}/config/storage-config.js +0 -0
- /package/dist/{core → src/core}/config/types.js +0 -0
- /package/dist/{core → src/core}/context/auto-context.js +0 -0
- /package/dist/{core → src/core}/context/dual-stack-manager.js +0 -0
- /package/dist/{core → src/core}/context/enhanced-rehydration.js +0 -0
- /package/dist/{core → src/core}/context/frame-database.js +0 -0
- /package/dist/{core → src/core}/context/frame-digest.js +0 -0
- /package/dist/{core → src/core}/context/frame-handoff-manager.js +0 -0
- /package/dist/{core → src/core}/context/frame-lifecycle-hooks.js +0 -0
- /package/dist/{core → src/core}/context/frame-recovery.js +0 -0
- /package/dist/{core → src/core}/context/frame-stack.js +0 -0
- /package/dist/{core → src/core}/context/frame-types.js +0 -0
- /package/dist/{core → src/core}/context/frame-types.js.map +0 -0
- /package/dist/{core → src/core}/context/index.js +0 -0
- /package/dist/{core → src/core}/context/permission-manager.js +0 -0
- /package/dist/{core → src/core}/context/recursive-context-manager.js +0 -0
- /package/dist/{core → src/core}/context/refactored-frame-manager.js +0 -0
- /package/dist/{core → src/core}/context/shared-context-layer.js +0 -0
- /package/dist/{core → src/core}/context/stack-merge-resolver.js +0 -0
- /package/dist/{core → src/core}/context/validation.js +0 -0
- /package/dist/{core → src/core}/database/batch-operations.js +0 -0
- /package/dist/{core → src/core}/database/connection-pool.js +0 -0
- /package/dist/{core → src/core}/database/database-adapter.js +0 -0
- /package/dist/{core → src/core}/database/migration-manager.js +0 -0
- /package/dist/{core → src/core}/database/query-cache.js +0 -0
- /package/dist/{core → src/core}/database/query-router.js +0 -0
- /package/dist/{core → src/core}/digest/enhanced-hybrid-digest.js +0 -0
- /package/dist/{core → src/core}/digest/frame-digest-integration.js +0 -0
- /package/dist/{core → src/core}/digest/hybrid-digest-generator.js +0 -0
- /package/dist/{core → src/core}/digest/index.js +0 -0
- /package/dist/{core → src/core}/digest/types.js +0 -0
- /package/dist/{core → src/core}/errors/recovery.js +0 -0
- /package/dist/{core → src/core}/execution/parallel-executor.js +0 -0
- /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
- /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
- /package/dist/{core → src/core}/frame/workflow-templates.js +0 -0
- /package/dist/{core → src/core}/merge/conflict-detector.js +0 -0
- /package/dist/{core → src/core}/merge/index.js +0 -0
- /package/dist/{core → src/core}/merge/resolution-engine.js +0 -0
- /package/dist/{core → src/core}/merge/stack-diff.js +0 -0
- /package/dist/{core → src/core/merge}/types.js +0 -0
- /package/dist/{core → src/core/merge}/types.js.map +0 -0
- /package/dist/{core → src/core}/models/fallback-monitor.js +0 -0
- /package/dist/{core → src/core}/models/model-router.js +0 -0
- /package/dist/{core → src/core}/monitoring/error-handler.js +0 -0
- /package/dist/{core → src/core}/monitoring/metrics.js +0 -0
- /package/dist/{core → src/core}/monitoring/progress-tracker.js +0 -0
- /package/dist/{core → src/core}/monitoring/session-monitor.js +0 -0
- /package/dist/{core → src/core}/performance/context-cache.js +0 -0
- /package/dist/{core → src/core}/performance/index.js +0 -0
- /package/dist/{core → src/core}/performance/lazy-context-loader.js +0 -0
- /package/dist/{core → src/core}/performance/monitor.js +0 -0
- /package/dist/{core → src/core}/performance/optimized-frame-context.js +0 -0
- /package/dist/{core → src/core}/performance/performance-benchmark.js +0 -0
- /package/dist/{core → src/core}/performance/performance-profiler.js +0 -0
- /package/dist/{core → src/core}/performance/streaming-jsonl-parser.js +0 -0
- /package/dist/{core → src/core}/persistence/postgres-adapter.js +0 -0
- /package/dist/{core → src/core}/projects/project-isolation.js +0 -0
- /package/dist/{core → src/core}/projects/project-manager.js +0 -0
- /package/dist/{core → src/core}/query/query-parser.js +0 -0
- /package/dist/{core → src/core}/query/query-templates.js +0 -0
- /package/dist/{core → src/core}/retrieval/context-retriever.js +0 -0
- /package/dist/{core → src/core}/retrieval/index.js +0 -0
- /package/dist/{core → src/core}/retrieval/llm-context-retrieval.js +0 -0
- /package/dist/{core → src/core}/retrieval/llm-provider.js +0 -0
- /package/dist/{core → src/core}/retrieval/retrieval-audit.js +0 -0
- /package/dist/{core → src/core}/retrieval/summary-generator.js +0 -0
- /package/dist/{core → src/core}/retrieval/types.js +0 -0
- /package/dist/{core → src/core}/session/clear-survival.js +0 -0
- /package/dist/{core → src/core}/session/enhanced-handoff.js +0 -0
- /package/dist/{core → src/core}/session/handoff-generator.js +0 -0
- /package/dist/{core → src/core}/session/index.js +0 -0
- /package/dist/{core → src/core}/session/session-manager.js +0 -0
- /package/dist/{core → src/core}/skills/index.js +0 -0
- /package/dist/{core → src/core}/skills/skill-storage.js +0 -0
- /package/dist/{core → src/core}/skills/types.js +0 -0
- /package/dist/{core → src/core}/storage/infinite-storage.js +0 -0
- /package/dist/{core → src/core}/storage/remote-storage.js +0 -0
- /package/dist/{core → src/core}/storage/two-tier-storage.js +0 -0
- /package/dist/{core → src/core}/trace/cli-trace-wrapper.js +0 -0
- /package/dist/{core → src/core}/trace/db-trace-wrapper.js +0 -0
- /package/dist/{core → src/core}/trace/debug-trace.js +0 -0
- /package/dist/{core → src/core}/trace/index.js +0 -0
- /package/dist/{core → src/core}/trace/linear-api-wrapper.js +0 -0
- /package/dist/{core → src/core}/trace/trace-detector.js +0 -0
- /package/dist/{core → src/core}/trace/trace-store.js +0 -0
- /package/dist/{core → src/core}/trace/types.js +0 -0
- /package/dist/{integrations/linear → src/core}/types.js +0 -0
- /package/dist/{integrations/linear → src/core}/types.js.map +0 -0
- /package/dist/{core → src/core}/utils/async-mutex.js +0 -0
- /package/dist/{core → src/core}/utils/compression.js +0 -0
- /package/dist/{core → src/core}/utils/update-checker.js +0 -0
- /package/dist/{core → src/core}/worktree/worktree-manager.js +0 -0
- /package/dist/{daemon → src/daemon}/daemon-config.js +0 -0
- /package/dist/{daemon → src/daemon}/services/context-service.js +0 -0
- /package/dist/{daemon → src/daemon}/services/linear-service.js +0 -0
- /package/dist/{daemon → src/daemon}/session-daemon.js +0 -0
- /package/dist/{daemon → src/daemon}/unified-daemon.js +0 -0
- /package/dist/{features → src/features}/analytics/api/analytics-api.js +0 -0
- /package/dist/{features → src/features}/analytics/core/analytics-service.js +0 -0
- /package/dist/{features → src/features}/analytics/index.js +0 -0
- /package/dist/{features → src/features}/analytics/queries/metrics-queries.js +0 -0
- /package/dist/{features → src/features}/analytics/types/metrics.js +0 -0
- /package/dist/{features → src/features}/analytics/types/metrics.js.map +0 -0
- /package/dist/{features → src/features}/browser/browser-mcp.js +0 -0
- /package/dist/{features → src/features}/sweep/index.js +0 -0
- /package/dist/{features → src/features}/sweep/prediction-client.js +0 -0
- /package/dist/{features → src/features}/sweep/prompt-builder.js +0 -0
- /package/dist/{features → src/features}/sweep/pty-wrapper.js +0 -0
- /package/dist/{features → src/features}/sweep/state-watcher.js +0 -0
- /package/dist/{features → src/features}/sweep/status-bar.js +0 -0
- /package/dist/{features → src/features}/sweep/sweep-server-manager.js +0 -0
- /package/dist/{features → src/features}/sweep/tab-interceptor.js +0 -0
- /package/dist/{features → src/features}/sweep/types.js +0 -0
- /package/dist/{features → src/features}/tasks/linear-task-manager.js +0 -0
- /package/dist/{features → src/features}/tasks/task-aware-context.js +0 -0
- /package/dist/{features → src/features}/tui/simple-monitor.js +0 -0
- /package/dist/{features → src/features}/tui/swarm-monitor.js +0 -0
- /package/dist/{features → src/features}/web/client/stores/task-store.js +0 -0
- /package/dist/{features → src/features}/web/server/index.js +0 -0
- /package/dist/{hooks → src/hooks}/auto-background.js +0 -0
- /package/dist/{hooks → src/hooks}/claude-code-whatsapp-hook.js +0 -0
- /package/dist/{hooks → src/hooks}/config.js +0 -0
- /package/dist/{hooks → src/hooks}/daemon.js +0 -0
- /package/dist/{hooks → src/hooks}/events.js +0 -0
- /package/dist/{hooks → src/hooks}/index.js +0 -0
- /package/dist/{hooks → src/hooks}/linear-task-picker.js +0 -0
- /package/dist/{hooks → src/hooks}/schemas.js +0 -0
- /package/dist/{hooks → src/hooks}/secure-fs.js +0 -0
- /package/dist/{hooks → src/hooks}/security-logger.js +0 -0
- /package/dist/{hooks → src/hooks}/session-summary.js +0 -0
- /package/dist/{hooks → src/hooks}/sms-action-runner.js +0 -0
- /package/dist/{hooks → src/hooks}/sms-notify.js +0 -0
- /package/dist/{hooks → src/hooks}/sms-watcher.js +0 -0
- /package/dist/{hooks → src/hooks}/sms-webhook.js +0 -0
- /package/dist/{hooks → src/hooks}/whatsapp-commands.js +0 -0
- /package/dist/{hooks → src/hooks}/whatsapp-scheduler.js +0 -0
- /package/dist/{hooks → src/hooks}/whatsapp-sync.js +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{integrations → src/integrations}/anthropic/client.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/agent-bridge.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/enhanced-pre-clear-hooks.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/lifecycle-hooks.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/post-task-hooks.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/subagent-client-stub.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/subagent-client.js +0 -0
- /package/dist/{integrations → src/integrations}/claude-code/task-coordinator.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/auth.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/auto-sync.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/config.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/migration.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/oauth-server.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/rest-client.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/sync-manager.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/sync-service.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/sync.js +0 -0
- /package/dist/{integrations/ralph → src/integrations/linear}/types.js +0 -0
- /package/dist/{integrations/ralph → src/integrations/linear}/types.js.map +0 -0
- /package/dist/{integrations → src/integrations}/linear/unified-sync.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/webhook-handler.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/webhook-server.js +0 -0
- /package/dist/{integrations → src/integrations}/linear/webhook.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/code-execution-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/context-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/discovery-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/index.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/linear-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/skill-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/task-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/handlers/trace-handlers.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/index.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/middleware/tool-scoring.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/refactored-server.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/schemas.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/tool-definitions-code.js +0 -0
- /package/dist/{integrations → src/integrations}/mcp/tool-definitions.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/bridge/ralph-stackmemory-bridge.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/context/context-budget-manager.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/context/stackmemory-context-loader.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/coordination/enhanced-coordination.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/index.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/learning/pattern-learner.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/lifecycle/iteration-lifecycle.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-dashboard.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/monitoring/swarm-registry.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/orchestration/multi-loop-orchestrator.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/patterns/compounding-engineering-pattern.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/patterns/extended-coherence-sessions.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/patterns/oracle-worker-pattern.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/performance/performance-optimizer.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/recovery/crash-recovery.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/state/state-reconciler.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/swarm/git-workflow-manager.js +0 -0
- /package/dist/{integrations → src/integrations}/ralph/swarm/swarm-coordinator.js +0 -0
- /package/dist/{types/task.js.map → src/integrations/ralph/types.js.map} +0 -0
- /package/dist/{integrations → src/integrations}/ralph/visualization/ralph-debugger.js +0 -0
- /package/dist/{mcp → src/mcp}/stackmemory-mcp-server.js +0 -0
- /package/dist/{middleware → src/middleware}/exponential-rate-limiter.js +0 -0
- /package/dist/{models → src/models}/user.model.js +0 -0
- /package/dist/{servers → src/servers}/production/auth-middleware.js +0 -0
- /package/dist/{services → src/services}/config-service.js +0 -0
- /package/dist/{services → src/services}/context-service.js +0 -0
- /package/dist/{skills → src/skills}/api-discovery.js +0 -0
- /package/dist/{skills → src/skills}/api-skill.js +0 -0
- /package/dist/{skills → src/skills}/claude-skills.js +0 -0
- /package/dist/{skills → src/skills}/dashboard-launcher.js +0 -0
- /package/dist/{skills → src/skills}/recursive-agent-orchestrator.js +0 -0
- /package/dist/{skills → src/skills}/unified-rlm-orchestrator.js +0 -0
- /package/dist/{types → src/types}/task.js +0 -0
- /package/dist/{utils → src/utils}/env.js +0 -0
- /package/dist/{utils → src/utils}/formatting.js +0 -0
- /package/dist/{utils → src/utils}/process-cleanup.js +0 -0
|
@@ -0,0 +1,340 @@
|
|
|
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
|
|
@@ -0,0 +1,7 @@
|
|
|
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": ";;;;;AAMA,SAAS,cAAc,YAAY,aAAa,gBAAgB;AAChE,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,OAAO,cAAc;AAwBrB,SAAS,uBAAuB,MAAsB;AACpD,QAAM,eAAe,KAAK,SAAS;AAGnC,QAAM,kBAAkB,KAAK,MAAM,eAAe,KAAK,CAAC,GAAG;AAC3D,QAAM,YAAa,iBAAiB,KAAK,SAAU;AAEnD,MAAI,YAAY,GAAG;AACjB,WAAO,KAAK,KAAK,eAAe,GAAG;AAAA,EACrC;AACA,SAAO,KAAK,KAAK,YAAY;AAC/B;AAEA,SAAS,kBAAoC;AAC3C,QAAM,cAAc,KAAK,QAAQ,GAAG,gBAAgB,YAAY;AAChE,QAAM,UAA4B,CAAC;AAEnC,MAAI,CAAC,WAAW,WAAW,GAAG;AAC5B,YAAQ,IAAI,0BAA0B,WAAW;AACjD,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,KAAK,IAAI,SAAS,aAAa,EAAE,UAAU,KAAK,CAAC;AAGvD,UAAM,aAAa,GAChB;AAAA,MACC;AAAA;AAAA;AAAA;AAAA,IAIF,EACC,IAAI;AAEP,QAAI,CAAC,YAAY;AACf,cAAQ,IAAI,iCAAiC;AAC7C,SAAG,MAAM;AACT,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,GACd;AAAA,MACC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMF,EACC,IAAI;AAEP,eAAW,KAAK,UAAU;AACxB,YAAM,UAAU,EAAE,WAAW;AAC7B,cAAQ,KAAK;AAAA,QACX,WAAW,EAAE;AAAA,QACb,cAAc,QAAQ;AAAA,QACtB,eAAe,uBAAuB,OAAO;AAAA,QAC7C,WAAW,IAAI,KAAK,EAAE,UAAU,EAAE,YAAY;AAAA,MAChD,CAAC;AAAA,IACH;AAEA,OAAG,MAAM;AAAA,EACX,SAAS,KAAK;AACZ,YAAQ,IAAI,2BAA2B,GAAG;AAAA,EAC5C;AAEA,SAAO;AACT;AAEA,SAAS,yBAA8C;AACrD,QAAM,cAAc,KAAK,QAAQ,IAAI,GAAG,gBAAgB,iBAAiB;AAEzE,MAAI,CAAC,WAAW,WAAW,GAAG;AAE5B,UAAM,cAAc,KAAK,QAAQ,GAAG,gBAAgB,iBAAiB;AACrE,QAAI,CAAC,WAAW,WAAW,GAAG;AAC5B,aAAO;AAAA,IACT;AACA,UAAMA,WAAU,aAAa,aAAa,OAAO;AACjD,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,WAAWA,SAAQ;AAAA,MACnB,iBAAiB,uBAAuBA,QAAO;AAAA,MAC/C,WAAWA,SAAQ,MAAM,IAAI,EAAE;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,UAAU,aAAa,aAAa,OAAO;AACjD,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,WAAW,QAAQ;AAAA,IACnB,iBAAiB,uBAAuB,OAAO;AAAA,IAC/C,WAAW,QAAQ,MAAM,IAAI,EAAE;AAAA,EACjC;AACF;AAEA,SAAS,6BAA6C;AACpD,QAAM,oBAAoB,KAAK,QAAQ,GAAG,WAAW,UAAU;AAC/D,QAAM,UAA0B,CAAC;AAEjC,MAAI,CAAC,WAAW,iBAAiB,GAAG;AAClC,WAAO;AAAA,EACT;AAGA,QAAM,cAAc,YAAY,iBAAiB;AAEjD,aAAW,OAAO,YAAY,MAAM,GAAG,CAAC,GAAG;AACzC,UAAM,cAAc,KAAK,mBAAmB,GAAG;AAC/C,UAAM,OAAO,SAAS,WAAW;AAEjC,QAAI,KAAK,YAAY,GAAG;AACtB,YAAM,QAAQ,YAAY,WAAW,EAAE;AAAA,QAAO,CAAC,MAC7C,EAAE,SAAS,QAAQ;AAAA,MACrB;AAEA,iBAAW,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG;AACpC,cAAM,WAAW,KAAK,aAAa,IAAI;AACvC,YAAI;AACF,gBAAM,UAAU,aAAa,UAAU,OAAO;AAC9C,kBAAQ,KAAK;AAAA,YACX,QAAQ;AAAA,YACR,WAAW,QAAQ;AAAA,YACnB,iBAAiB,uBAAuB,OAAO;AAAA,YAC/C,WAAW,QAAQ,MAAM,IAAI,EAAE;AAAA,UACjC,CAAC;AAAA,QACH,QAAQ;AAAA,QAER;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,yBAAgD;AACvD,QAAM,SAAS,KAAK,QAAQ,GAAG,gBAAgB,YAAY;AAE3D,MAAI,CAAC,WAAW,MAAM,GAAG;AACvB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,KAAK,IAAI,SAAS,QAAQ,EAAE,UAAU,KAAK,CAAC;AAGlD,UAAM,cAAc,GACjB;AAAA,MACC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKF,EACC,IAAI;AAGP,UAAM,cAAc,GACjB;AAAA,MACC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKF,EACC,IAAI;AAEP,OAAG,MAAM;AAET,UAAM,aAAa,aAAa,cAAc;AAC9C,UAAM,aAAa,aAAa,cAAc;AAC9C,UAAM,aAAa,aAAa;AAEhC,WAAO;AAAA,MACL,WAAW;AAAA,MACX,YAAY,aAAa,SAAS;AAAA,MAClC,YAAY,aAAa,SAAS;AAAA,MAClC,wBAAwB;AAAA,QACtB,OAAO,UAAU,EAAE,OAAO,KAAK,MAAM,aAAa,EAAE,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,IAAI,kCAAkC,GAAG;AACjD,WAAO;AAAA,EACT;AACF;AAEA,SAAS,aAAa,GAAmB;AACvC,MAAI,KAAK,KAAM;AACb,YAAQ,IAAI,KAAM,QAAQ,CAAC,IAAI;AAAA,EACjC;AACA,SAAO,EAAE,SAAS;AACpB;AAEA,eAAe,OAAO;AACpB,UAAQ,IAAI,0CAA0C;AACtD,UAAQ,IAAI,oCAAoC;AAChD,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,4CAA4C;AAGxD,UAAQ,IAAI,sBAAsB;AAClC,UAAQ,IAAI,sBAAsB;AAClC,QAAM,cAAc,uBAAuB;AAC3C,MAAI,aAAa;AACf,YAAQ,IAAI,cAAc,YAAY,MAAM,EAAE;AAC9C,YAAQ,IAAI,kBAAkB,aAAa,YAAY,SAAS,CAAC,EAAE;AACnE,YAAQ,IAAI,aAAa,YAAY,SAAS,EAAE;AAChD,YAAQ;AAAA,MACN,wBAAwB,aAAa,YAAY,eAAe,CAAC;AAAA,IACnE;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,0BAA0B;AAAA,EACxC;AACA,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,2BAA2B;AACvC,UAAQ,IAAI,2BAA2B;AACvC,QAAM,WAAW,gBAAgB;AACjC,MAAI,SAAS,SAAS,GAAG;AACvB,QAAI,cAAc;AAClB,eAAW,KAAK,UAAU;AACxB,cAAQ;AAAA,QACN,MAAM,EAAE,UAAU,MAAM,GAAG,CAAC,CAAC,KAAK,aAAa,EAAE,aAAa,CAAC,YAAY,aAAa,EAAE,YAAY,CAAC;AAAA,MACzG;AACA,qBAAe,EAAE;AAAA,IACnB;AACA,UAAM,YAAY,KAAK,MAAM,cAAc,SAAS,MAAM;AAC1D,YAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,qBAAqB;AAAA,EACzE,OAAO;AACL,YAAQ,IAAI,4BAA4B;AAAA,EAC1C;AACA,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,8BAA8B;AAC1C,UAAQ,IAAI,8BAA8B;AAC1C,QAAM,gBAAgB,2BAA2B;AACjD,MAAI,cAAc,SAAS,GAAG;AAC5B,QAAI,kBAAkB;AACtB,QAAI,gBAAgB;AACpB,eAAW,KAAK,eAAe;AAC7B,cAAQ;AAAA,QACN,MAAM,EAAE,MAAM,KAAK,aAAa,EAAE,eAAe,CAAC,YAAY,aAAa,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS;AAAA,MAC/G;AACA,yBAAmB,EAAE;AACrB,sBAAgB,KAAK,IAAI,eAAe,EAAE,eAAe;AAAA,IAC3D;AACA,UAAM,gBAAgB,KAAK,MAAM,kBAAkB,cAAc,MAAM;AACvE,YAAQ;AAAA,MACN,eAAe,aAAa,aAAa,CAAC;AAAA,IAC5C;AACA,YAAQ,IAAI,WAAW,aAAa,aAAa,CAAC,SAAS;AAAA,EAC7D,OAAO;AACL,YAAQ,IAAI,gCAAgC;AAAA,EAC9C;AACA,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,iCAAiC;AAC7C,UAAQ,IAAI,iCAAiC;AAC7C,QAAM,YAAY,uBAAuB;AACzC,MAAI,WAAW;AACb,YAAQ,IAAI,cAAc,UAAU,UAAU,EAAE;AAChD,YAAQ,IAAI,cAAc,UAAU,UAAU,EAAE;AAChD,YAAQ;AAAA,MACN,0BAA0B,aAAa,UAAU,sBAAsB,CAAC;AAAA,IAC1E;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,kCAAkC;AAAA,EAChD;AACA,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,yBAAyB;AACrC,UAAQ,IAAI,yBAAyB;AAErC,QAAM,mBACJ,SAAS,SAAS,IACd,KAAK;AAAA,IACH,SAAS,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,eAAe,CAAC,IAClD,SAAS;AAAA,EACb,IACA,aAAa,mBAAmB;AAEtC,QAAM,wBACJ,cAAc,SAAS,IACnB,KAAK;AAAA,IACH,cAAc,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,iBAAiB,CAAC,IACzD,cAAc;AAAA,EAClB,IACA;AAGN,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA;AAAA,IACR,MAAM;AAAA;AAAA,IACN,QAAQ;AAAA,EACV;AAEA,UAAQ,IAAI,sDAAsD;AAClE,UAAQ,IAAI,oBAAoB,aAAa,gBAAgB,CAAC;AAAA,CAAW;AAEzE,aAAW,CAAC,OAAO,IAAI,KAAK,OAAO,QAAQ,YAAY,GAAG;AACxD,UAAM,cAAe,OAAO,oBAAoB,OAAQ,KAAK,QAAQ,CAAC;AACtE,UAAM,QAAQ,OAAO;AACrB,YAAQ;AAAA,MACN,MAAM,MAAM,OAAO,CAAC,CAAC,KAAK,aAAa,IAAI,CAAC,OAAO,aAAa,gBAAgB,CAAC,MAAM,SAAS,gBAAgB,aAAa,KAAK,CAAC;AAAA,IACrI;AAAA,EACF;AAEA,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,0BAA0B;AACtC,UAAQ,IAAI,0BAA0B;AACtC,QAAM,gBAAgB;AACtB,QAAM,eAAe;AACrB,QAAM,eAAe;AAErB,QAAM,iBAAiB;AAAA,IACrB,MAAM,eAAe,wBAAwB;AAAA,IAC7C,WAAW;AAAA,EACb;AACA,iBAAe,YAAY,gBAAgB,eAAe;AAE1D,QAAM,cAAc;AAAA,IAClB,MAAM,eAAe,mBAAmB;AAAA,IACxC,WAAW;AAAA,EACb;AACA,cAAY,YAAY,gBAAgB,YAAY;AAEpD,UAAQ,IAAI,sBAAsB,aAAa,aAAa,CAAC,SAAS;AACtE,UAAQ,IAAI,qBAAqB,aAAa,YAAY,CAAC,SAAS;AACpE,UAAQ,IAAI,qBAAqB,aAAa,YAAY,CAAC;AAAA,CAAW;AAEtE,UAAQ,IAAI,qBAAqB;AACjC,UAAQ;AAAA,IACN,8BAA8B,aAAa,qBAAqB,CAAC;AAAA,EACnE;AACA,UAAQ,IAAI,oBAAoB,aAAa,eAAe,IAAI,CAAC,SAAS;AAC1E,UAAQ;AAAA,IACN,4BAA4B,aAAa,eAAe,SAAS,CAAC,aAAc,eAAe,YAAY,gBAAiB,KAAK,QAAQ,CAAC,CAAC;AAAA,EAC7I;AACA,UAAQ,IAAI,EAAE;AAEd,UAAQ,IAAI,kBAAkB;AAC9B,UAAQ,IAAI,yBAAyB,aAAa,gBAAgB,CAAC,SAAS;AAC5E,UAAQ,IAAI,oBAAoB,aAAa,YAAY,IAAI,CAAC,SAAS;AACvE,UAAQ;AAAA,IACN,4BAA4B,aAAa,YAAY,SAAS,CAAC,aAAc,YAAY,YAAY,gBAAiB,KAAK,QAAQ,CAAC,CAAC;AAAA,EACvI;AACA,UAAQ,IAAI,EAAE;AAEd,QAAM,cAAc,YAAY,YAAY,eAAe;AAC3D,QAAM,kBACH,cAAc,eAAe,YAC9B,KACA,QAAQ,CAAC;AACX,UAAQ;AAAA,IACN,oBAAoB,aAAa,WAAW,CAAC,aAAa,cAAc;AAAA,EAC1E;AAEA,UAAQ,IAAI,4CAA4C;AACxD,UAAQ,IAAI,YAAY;AACxB,UAAQ,IAAI,4CAA4C;AAExD,QAAM,oBACF,wBAAwB,oBAAoB,wBAC9C,KACA,QAAQ,CAAC;AAEX,UAAQ;AAAA,IACN,2BAA2B,aAAa,gBAAgB,CAAC;AAAA,EAC3D;AACA,UAAQ;AAAA,IACN,gCAAgC,aAAa,qBAAqB,CAAC;AAAA,EACrE;AACA,UAAQ,IAAI,0BAA0B,eAAe,GAAG;AACxD,UAAQ,IAAI,4BAA4B,aAAa,WAAW,CAAC,SAAS;AAC1E,UAAQ,IAAI,EAAE;AAGd,UAAQ,IAAI,sBAAsB;AAClC,UAAQ,IAAI,sBAAsB;AAClC,QAAM,mBAAmB;AACzB,QAAM,iBAAiB;AACvB,QAAM,sBAAsB;AAE5B,UAAQ,IAAI,yBAAyB,gBAAgB,EAAE;AACvD,UAAQ,IAAI,0BAA0B,eAAe,GAAG;AACxD,UAAQ;AAAA,IACN,cAAc,WAAW,eAAe,KAAK,KAAK,cAAc,gBAAgB;AAAA,EAClF;AACA,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,4BAA4B,cAAc,EAAE;AACxD,UAAQ;AAAA,IACN,6BAA6B,aAAa,gBAAgB,CAAC;AAAA,EAC7D;AACA,UAAQ;AAAA,IACN,cAAc,oBAAoB,OAAQ,oBAAoB,MAAO,cAAc,gBAAgB;AAAA,EACrG;AACA,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,4BAA4B,mBAAmB,EAAE;AAC7D,UAAQ;AAAA,IACN,6BAA6B,aAAa,qBAAqB,CAAC;AAAA,EAClE;AACA,UAAQ;AAAA,IACN,cAAc,yBAAyB,OAAS,yBAAyB,OAAS,cAAc,gBAAgB;AAAA,EAClH;AACF;AAEA,KAAK,EAAE,MAAM,QAAQ,KAAK;",
|
|
6
|
+
"names": ["content"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
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
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|