@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
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/hierarchical-retrieval.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Hierarchical Retrieval System with Progressive Summarization\n * Implements multi-level tree structure to prevent semantic collapse at scale\n *\n * Based on: Encyclopedia \u2192 Chapter \u2192 Section \u2192 Paragraph model\n * Reduces search space from 50K to ~200 at each hop\n */\n\nimport Database from 'better-sqlite3';\nimport { logger } from '../monitoring/logger.js';\nimport { Trace, CompressedTrace } from '../trace/types.js';\nimport { Frame, Anchor, Event } from '../context/index.js';\nimport * as zlib from 'zlib';\nimport { promisify } from 'util';\nimport crypto from 'crypto';\n\nconst gzipAsync = promisify(zlib.gzip);\nconst gunzipAsync = promisify(zlib.gunzip);\n\nexport interface HierarchyLevel {\n level: 'encyclopedia' | 'chapter' | 'section' | 'paragraph' | 'atom';\n id: string;\n parentId?: string;\n title: string;\n summary: string;\n embeddings?: number[];\n childCount: number;\n tokenCount: number;\n score: number;\n timeRange: {\n start: number;\n end: number;\n };\n metadata: {\n compressionRatio?: number;\n semanticDensity?: number;\n accessPattern?: 'hot' | 'warm' | 'cold';\n lastAccessed?: number;\n };\n}\n\nexport interface RetrievalNode {\n id: string;\n level: HierarchyLevel;\n children?: RetrievalNode[];\n content?: string; // Only for leaf nodes\n compressed?: boolean;\n}\n\nexport interface HierarchicalConfig {\n maxEncyclopediaSize: number; // Total documents (~50K)\n maxChapterSize: number; // Documents per chapter (~6K)\n maxSectionSize: number; // Docs per section (~250)\n maxParagraphSize: number; // Docs per paragraph (~10-20)\n compressionThreshold: number; // Token threshold for compression\n semanticThreshold: number; // Similarity threshold for grouping\n}\n\nexport const DEFAULT_HIERARCHY_CONFIG: HierarchicalConfig = {\n maxEncyclopediaSize: 50000,\n maxChapterSize: 6000,\n maxSectionSize: 250,\n maxParagraphSize: 20,\n compressionThreshold: 1000,\n semanticThreshold: 0.7,\n};\n\n/**\n * Manages hierarchical retrieval with progressive summarization\n */\nexport class HierarchicalRetrieval {\n private db: Database.Database;\n private config: HierarchicalConfig;\n private hierarchyCache: Map<string, RetrievalNode> = new Map();\n private summaryCache: Map<string, string> = new Map();\n\n constructor(db: Database.Database, config: Partial<HierarchicalConfig> = {}) {\n this.db = db;\n this.config = { ...DEFAULT_HIERARCHY_CONFIG, ...config };\n this.initializeSchema();\n }\n\n private initializeSchema(): void {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS hierarchy_nodes (\n id TEXT PRIMARY KEY,\n level TEXT NOT NULL,\n parent_id TEXT,\n title TEXT NOT NULL,\n summary TEXT,\n embeddings BLOB,\n child_count INTEGER DEFAULT 0,\n token_count INTEGER DEFAULT 0,\n score REAL DEFAULT 0,\n time_start INTEGER,\n time_end INTEGER,\n compression_ratio REAL,\n semantic_density REAL,\n access_pattern TEXT DEFAULT 'cold',\n last_accessed INTEGER,\n created_at INTEGER DEFAULT (unixepoch() * 1000),\n FOREIGN KEY (parent_id) REFERENCES hierarchy_nodes(id) ON DELETE CASCADE\n )\n `);\n\n this.db.exec(`\n CREATE INDEX IF NOT EXISTS idx_hierarchy_level ON hierarchy_nodes(level);\n CREATE INDEX IF NOT EXISTS idx_hierarchy_parent ON hierarchy_nodes(parent_id);\n CREATE INDEX IF NOT EXISTS idx_hierarchy_score ON hierarchy_nodes(score DESC);\n CREATE INDEX IF NOT EXISTS idx_hierarchy_time ON hierarchy_nodes(time_start, time_end);\n `);\n\n // Content storage for leaf nodes\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS hierarchy_content (\n node_id TEXT PRIMARY KEY,\n content TEXT,\n compressed BOOLEAN DEFAULT 0,\n original_size INTEGER,\n compressed_size INTEGER,\n FOREIGN KEY (node_id) REFERENCES hierarchy_nodes(id) ON DELETE CASCADE\n )\n `);\n }\n\n /**\n * Build hierarchical structure from traces\n */\n async buildHierarchy(traces: Trace[]): Promise<RetrievalNode> {\n logger.info('Building hierarchical retrieval structure', {\n traceCount: traces.length,\n });\n\n // Sort traces by time and score\n traces.sort((a, b) => {\n const timeDiff = b.metadata.startTime - a.metadata.startTime;\n return timeDiff !== 0 ? timeDiff : b.score - a.score;\n });\n\n // Create root encyclopedia node\n const encyclopediaId = this.generateId('encyclopedia');\n const encyclopedia: RetrievalNode = {\n id: encyclopediaId,\n level: {\n level: 'encyclopedia',\n id: encyclopediaId,\n title: 'Knowledge Base',\n summary: await this.generateSummary(traces, 'encyclopedia'),\n childCount: 0,\n tokenCount: traces.reduce((sum, t) => sum + (t.tokenCount || 0), 0),\n score: Math.max(...traces.map((t) => t.score)),\n timeRange: {\n start: Math.min(...traces.map((t) => t.metadata.startTime)),\n end: Math.max(...traces.map((t) => t.metadata.endTime)),\n },\n metadata: {\n semanticDensity: 1.0,\n accessPattern: 'hot',\n },\n },\n children: [],\n };\n\n // Partition into chapters\n const chapters = await this.partitionIntoChapters(traces);\n\n for (const chapterTraces of chapters) {\n const chapter = await this.buildChapter(chapterTraces, encyclopediaId);\n encyclopedia.children!.push(chapter);\n }\n\n // Update child count\n encyclopedia.level.childCount = encyclopedia.children!.length;\n\n // Store in database\n await this.storeNode(encyclopedia);\n\n return encyclopedia;\n }\n\n /**\n * Partition traces into chapters based on semantic similarity and time\n */\n private async partitionIntoChapters(traces: Trace[]): Promise<Trace[][]> {\n const chapters: Trace[][] = [];\n let currentChapter: Trace[] = [];\n\n for (const trace of traces) {\n if (currentChapter.length >= this.config.maxChapterSize) {\n chapters.push(currentChapter);\n currentChapter = [trace];\n } else if (currentChapter.length > 0) {\n // Check semantic similarity with chapter\n const similarity = await this.calculateSimilarity(\n trace,\n currentChapter[currentChapter.length - 1]\n );\n\n if (similarity < this.config.semanticThreshold) {\n // Start new chapter if semantically different\n chapters.push(currentChapter);\n currentChapter = [trace];\n } else {\n currentChapter.push(trace);\n }\n } else {\n currentChapter.push(trace);\n }\n }\n\n if (currentChapter.length > 0) {\n chapters.push(currentChapter);\n }\n\n return chapters;\n }\n\n /**\n * Build a chapter node\n */\n private async buildChapter(\n traces: Trace[],\n parentId: string\n ): Promise<RetrievalNode> {\n const chapterId = this.generateId('chapter');\n\n const chapter: RetrievalNode = {\n id: chapterId,\n level: {\n level: 'chapter',\n id: chapterId,\n parentId,\n title: this.generateChapterTitle(traces),\n summary: await this.generateSummary(traces, 'chapter'),\n childCount: 0,\n tokenCount: traces.reduce((sum, t) => sum + (t.tokenCount || 0), 0),\n score: Math.max(...traces.map((t) => t.score)),\n timeRange: {\n start: Math.min(...traces.map((t) => t.metadata.startTime)),\n end: Math.max(...traces.map((t) => t.metadata.endTime)),\n },\n metadata: {\n compressionRatio: 0.8,\n semanticDensity: 0.8,\n accessPattern: 'warm',\n },\n },\n children: [],\n };\n\n // Partition into sections\n const sections = await this.partitionIntoSections(traces);\n\n for (const sectionTraces of sections) {\n const section = await this.buildSection(sectionTraces, chapterId);\n chapter.children!.push(section);\n }\n\n chapter.level.childCount = chapter.children!.length;\n return chapter;\n }\n\n /**\n * Build a section node\n */\n private async buildSection(\n traces: Trace[],\n parentId: string\n ): Promise<RetrievalNode> {\n const sectionId = this.generateId('section');\n\n const section: RetrievalNode = {\n id: sectionId,\n level: {\n level: 'section',\n id: sectionId,\n parentId,\n title: this.generateSectionTitle(traces),\n summary: await this.generateSummary(traces, 'section'),\n childCount: 0,\n tokenCount: traces.reduce((sum, t) => sum + (t.tokenCount || 0), 0),\n score: Math.max(...traces.map((t) => t.score)),\n timeRange: {\n start: Math.min(...traces.map((t) => t.metadata.startTime)),\n end: Math.max(...traces.map((t) => t.metadata.endTime)),\n },\n metadata: {\n compressionRatio: 0.6,\n semanticDensity: 0.6,\n accessPattern: 'cold',\n },\n },\n children: [],\n };\n\n // Partition into paragraphs\n const paragraphs = await this.partitionIntoParagraphs(traces);\n\n for (const paragraphTraces of paragraphs) {\n const paragraph = await this.buildParagraph(paragraphTraces, sectionId);\n section.children!.push(paragraph);\n }\n\n section.level.childCount = section.children!.length;\n return section;\n }\n\n /**\n * Build a paragraph (leaf) node\n */\n private async buildParagraph(\n traces: Trace[],\n parentId: string\n ): Promise<RetrievalNode> {\n const paragraphId = this.generateId('paragraph');\n\n // Combine trace content\n const content = traces\n .map((t) => {\n return `[${new Date(t.metadata.startTime).toISOString()}] ${t.type}: ${t.summary}`;\n })\n .join('\\n\\n');\n\n // Compress if large\n let storedContent = content;\n let compressed = false;\n\n if (content.length > this.config.compressionThreshold) {\n const compressedData = await gzipAsync(content);\n storedContent = compressedData.toString('base64');\n compressed = true;\n }\n\n const paragraph: RetrievalNode = {\n id: paragraphId,\n level: {\n level: 'paragraph',\n id: paragraphId,\n parentId,\n title: this.generateParagraphTitle(traces),\n summary: await this.generateSummary(traces, 'paragraph'),\n childCount: traces.length,\n tokenCount: traces.reduce((sum, t) => sum + (t.tokenCount || 0), 0),\n score: Math.max(...traces.map((t) => t.score)),\n timeRange: {\n start: Math.min(...traces.map((t) => t.metadata.startTime)),\n end: Math.max(...traces.map((t) => t.metadata.endTime)),\n },\n metadata: {\n compressionRatio: compressed ? 0.3 : 1.0,\n semanticDensity: 0.4,\n accessPattern: 'cold',\n },\n },\n content: storedContent,\n compressed,\n };\n\n return paragraph;\n }\n\n /**\n * Partition traces into sections\n */\n private async partitionIntoSections(traces: Trace[]): Promise<Trace[][]> {\n const sections: Trace[][] = [];\n const sectionSize = Math.ceil(\n traces.length / Math.ceil(traces.length / this.config.maxSectionSize)\n );\n\n for (let i = 0; i < traces.length; i += sectionSize) {\n sections.push(traces.slice(i, i + sectionSize));\n }\n\n return sections;\n }\n\n /**\n * Partition traces into paragraphs\n */\n private async partitionIntoParagraphs(traces: Trace[]): Promise<Trace[][]> {\n const paragraphs: Trace[][] = [];\n const paragraphSize = Math.ceil(\n traces.length / Math.ceil(traces.length / this.config.maxParagraphSize)\n );\n\n for (let i = 0; i < traces.length; i += paragraphSize) {\n paragraphs.push(traces.slice(i, i + paragraphSize));\n }\n\n return paragraphs;\n }\n\n /**\n * Traverse hierarchy to retrieve relevant content\n */\n async retrieve(\n query: string,\n maxDepth: number = 4,\n tokenBudget: number = 4000\n ): Promise<string> {\n logger.info('Hierarchical retrieval', { query, maxDepth, tokenBudget });\n\n // Start from encyclopedia\n const encyclopedia = await this.loadRootNode();\n if (!encyclopedia) {\n return 'No content available';\n }\n\n const path: RetrievalNode[] = [encyclopedia];\n let currentNode = encyclopedia;\n let tokensUsed = 0;\n\n // Traverse down the hierarchy\n for (let depth = 1; depth < maxDepth && tokensUsed < tokenBudget; depth++) {\n if (!currentNode.children || currentNode.children.length === 0) {\n break;\n }\n\n // Select best matching child\n const bestChild = await this.selectBestChild(\n currentNode.children,\n query,\n tokenBudget - tokensUsed\n );\n\n if (!bestChild) break;\n\n path.push(bestChild);\n currentNode = bestChild;\n tokensUsed += bestChild.level.tokenCount;\n\n // Update access pattern\n await this.updateAccessPattern(bestChild.id);\n }\n\n // Build context from path\n return this.buildContextFromPath(path, tokenBudget);\n }\n\n /**\n * Select best matching child node\n */\n private async selectBestChild(\n children: RetrievalNode[],\n query: string,\n remainingBudget: number\n ): Promise<RetrievalNode | null> {\n let bestChild: RetrievalNode | null = null;\n let bestScore = 0;\n\n for (const child of children) {\n if (child.level.tokenCount > remainingBudget) {\n continue;\n }\n\n // Calculate relevance score\n const score = await this.calculateRelevance(child, query);\n\n if (score > bestScore) {\n bestScore = score;\n bestChild = child;\n }\n }\n\n return bestChild;\n }\n\n /**\n * Calculate relevance of node to query\n */\n private async calculateRelevance(\n node: RetrievalNode,\n query: string\n ): Promise<number> {\n // Simple keyword matching for now\n // In production, use embeddings\n const queryWords = query.toLowerCase().split(/\\s+/);\n const nodeText = `${node.level.title} ${node.level.summary}`.toLowerCase();\n\n let matches = 0;\n for (const word of queryWords) {\n if (nodeText.includes(word)) {\n matches++;\n }\n }\n\n const keywordScore = matches / queryWords.length;\n const recencyScore =\n 1 / (1 + (Date.now() - node.level.timeRange.end) / (1000 * 60 * 60 * 24));\n const importanceScore = node.level.score;\n\n return keywordScore * 0.5 + recencyScore * 0.3 + importanceScore * 0.2;\n }\n\n /**\n * Build context string from retrieval path\n */\n private async buildContextFromPath(\n path: RetrievalNode[],\n tokenBudget: number\n ): Promise<string> {\n const sections: string[] = [];\n\n sections.push('## Retrieval Path');\n sections.push(path.map((n) => n.level.title).join(' \u2192 '));\n sections.push('');\n\n // Add summaries from each level\n for (const node of path) {\n sections.push(`### ${node.level.level}: ${node.level.title}`);\n sections.push(node.level.summary);\n\n if (node.content) {\n // Decompress if needed\n let content = node.content;\n if (node.compressed) {\n const compressed = Buffer.from(content, 'base64');\n const decompressed = await gunzipAsync(compressed);\n content = decompressed.toString();\n }\n sections.push('');\n sections.push('**Content:**');\n sections.push(content);\n }\n sections.push('');\n }\n\n // Add statistics\n sections.push('## Retrieval Statistics');\n sections.push(`- Levels traversed: ${path.length}`);\n sections.push(\n `- Search space reduction: ${this.calculateReduction(path)}x`\n );\n sections.push(\n `- Semantic density: ${this.calculateDensity(path).toFixed(2)}`\n );\n\n return sections.join('\\n');\n }\n\n /**\n * Calculate search space reduction\n */\n private calculateReduction(path: RetrievalNode[]): number {\n if (path.length < 2) return 1;\n\n const initial = path[0].level.childCount;\n const final = path[path.length - 1].level.childCount || 1;\n\n return Math.round(initial / final);\n }\n\n /**\n * Calculate semantic density along path\n */\n private calculateDensity(path: RetrievalNode[]): number {\n const densities = path.map((n) => n.level.metadata.semanticDensity || 1);\n return densities.reduce((sum, d) => sum + d, 0) / densities.length;\n }\n\n /**\n * Generate summary for a level\n */\n private async generateSummary(\n traces: Trace[],\n level: string\n ): Promise<string> {\n // Cache key\n const cacheKey = `${level}:${traces.map((t) => t.id).join(',')}`;\n\n if (this.summaryCache.has(cacheKey)) {\n return this.summaryCache.get(cacheKey)!;\n }\n\n // Generate summary based on level\n let summary: string;\n\n switch (level) {\n case 'encyclopedia':\n summary = `Complete knowledge base with ${traces.length} traces covering ${this.getTopics(traces).join(', ')}`;\n break;\n case 'chapter':\n summary = `${traces.length} operations focused on ${this.getDominantOperation(traces)}`;\n break;\n case 'section':\n summary = `${traces.length} traces: ${this.getKeyActivities(traces).join(', ')}`;\n break;\n case 'paragraph':\n summary = traces\n .slice(0, 3)\n .map((t) => t.summary)\n .join('. ');\n break;\n default:\n summary = `${traces.length} items`;\n }\n\n this.summaryCache.set(cacheKey, summary);\n return summary;\n }\n\n /**\n * Extract topics from traces\n */\n private getTopics(traces: Trace[]): string[] {\n const topics = new Set<string>();\n\n for (const trace of traces) {\n topics.add(trace.type);\n }\n\n return Array.from(topics).slice(0, 5);\n }\n\n /**\n * Get dominant operation type\n */\n private getDominantOperation(traces: Trace[]): string {\n const counts: Record<string, number> = {};\n\n for (const trace of traces) {\n counts[trace.type] = (counts[trace.type] || 0) + 1;\n }\n\n const sorted = Object.entries(counts).sort((a, b) => b[1] - a[1]);\n return sorted[0]?.[0] || 'mixed operations';\n }\n\n /**\n * Get key activities\n */\n private getKeyActivities(traces: Trace[]): string[] {\n return traces.slice(0, 3).map((t) => t.type);\n }\n\n /**\n * Generate titles\n */\n private generateChapterTitle(traces: Trace[]): string {\n const start = new Date(traces[0].metadata.startTime);\n const operation = this.getDominantOperation(traces);\n return `${operation} (${start.toLocaleDateString()})`;\n }\n\n private generateSectionTitle(traces: Trace[]): string {\n const start = new Date(traces[0].metadata.startTime);\n return `Section ${start.toLocaleTimeString()}`;\n }\n\n private generateParagraphTitle(traces: Trace[]): string {\n return `${traces.length} traces`;\n }\n\n /**\n * Calculate similarity between traces\n */\n private async calculateSimilarity(a: Trace, b: Trace): Promise<number> {\n // Simple similarity based on type and time\n const typeSimilarity = a.type === b.type ? 1 : 0;\n const timeDiff = Math.abs(a.metadata.startTime - b.metadata.startTime);\n const timeSimilarity = 1 / (1 + timeDiff / (1000 * 60 * 60)); // Hour scale\n\n return typeSimilarity * 0.5 + timeSimilarity * 0.5;\n }\n\n /**\n * Store node in database\n */\n private async storeNode(node: RetrievalNode): Promise<void> {\n const stmt = this.db.prepare(`\n INSERT OR REPLACE INTO hierarchy_nodes (\n id, level, parent_id, title, summary,\n child_count, token_count, score,\n time_start, time_end,\n compression_ratio, semantic_density, access_pattern\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n stmt.run(\n node.id,\n node.level.level,\n node.level.parentId || null,\n node.level.title,\n node.level.summary,\n node.level.childCount,\n node.level.tokenCount,\n node.level.score,\n node.level.timeRange.start,\n node.level.timeRange.end,\n node.level.metadata.compressionRatio || 1,\n node.level.metadata.semanticDensity || 1,\n node.level.metadata.accessPattern || 'cold'\n );\n\n // Store content if present\n if (node.content) {\n this.db\n .prepare(\n `\n INSERT OR REPLACE INTO hierarchy_content (\n node_id, content, compressed, original_size, compressed_size\n ) VALUES (?, ?, ?, ?, ?)\n `\n )\n .run(\n node.id,\n node.content,\n node.compressed ? 1 : 0,\n node.compressed ? node.content.length * 2 : node.content.length,\n node.content.length\n );\n }\n\n // Recursively store children\n if (node.children) {\n for (const child of node.children) {\n await this.storeNode(child);\n }\n }\n }\n\n /**\n * Load root encyclopedia node\n */\n private async loadRootNode(): Promise<RetrievalNode | null> {\n const row = this.db\n .prepare(\n `\n SELECT * FROM hierarchy_nodes\n WHERE level = 'encyclopedia'\n ORDER BY created_at DESC\n LIMIT 1\n `\n )\n .get() as any;\n\n if (!row) return null;\n\n return this.loadNode(row.id);\n }\n\n /**\n * Load node from database\n */\n private async loadNode(nodeId: string): Promise<RetrievalNode | null> {\n // Check cache\n if (this.hierarchyCache.has(nodeId)) {\n return this.hierarchyCache.get(nodeId)!;\n }\n\n const nodeRow = this.db\n .prepare(\n `\n SELECT * FROM hierarchy_nodes WHERE id = ?\n `\n )\n .get(nodeId) as any;\n\n if (!nodeRow) return null;\n\n // Load content if exists\n const contentRow = this.db\n .prepare(\n `\n SELECT * FROM hierarchy_content WHERE node_id = ?\n `\n )\n .get(nodeId) as any;\n\n // Load children\n const childRows = this.db\n .prepare(\n `\n SELECT id FROM hierarchy_nodes WHERE parent_id = ?\n `\n )\n .all(nodeId) as any[];\n\n const children: RetrievalNode[] = [];\n for (const childRow of childRows) {\n const child = await this.loadNode(childRow.id);\n if (child) children.push(child);\n }\n\n const node: RetrievalNode = {\n id: nodeRow.id,\n level: {\n level: nodeRow.level as any,\n id: nodeRow.id,\n parentId: nodeRow.parent_id,\n title: nodeRow.title,\n summary: nodeRow.summary,\n childCount: nodeRow.child_count,\n tokenCount: nodeRow.token_count,\n score: nodeRow.score,\n timeRange: {\n start: nodeRow.time_start,\n end: nodeRow.time_end,\n },\n metadata: {\n compressionRatio: nodeRow.compression_ratio,\n semanticDensity: nodeRow.semantic_density,\n accessPattern: nodeRow.access_pattern as any,\n lastAccessed: nodeRow.last_accessed,\n },\n },\n children: children.length > 0 ? children : undefined,\n content: contentRow?.content,\n compressed: contentRow?.compressed === 1,\n };\n\n // Cache the node\n this.hierarchyCache.set(nodeId, node);\n\n return node;\n }\n\n /**\n * Update access pattern for a node\n */\n private async updateAccessPattern(nodeId: string): Promise<void> {\n this.db\n .prepare(\n `\n UPDATE hierarchy_nodes\n SET last_accessed = ?, access_pattern = 'hot'\n WHERE id = ?\n `\n )\n .run(Date.now(), nodeId);\n }\n\n /**\n * Generate unique ID\n */\n private generateId(prefix: string): string {\n return `${prefix}_${crypto.randomBytes(8).toString('hex')}`;\n }\n\n /**\n * Get hierarchy statistics\n */\n getStatistics(): any {\n const stats = this.db\n .prepare(\n `\n SELECT \n level,\n COUNT(*) as count,\n AVG(token_count) as avg_tokens,\n AVG(child_count) as avg_children,\n AVG(compression_ratio) as avg_compression,\n AVG(semantic_density) as avg_density\n FROM hierarchy_nodes\n GROUP BY level\n `\n )\n .all();\n\n const totalNodes = this.db\n .prepare(\n `\n SELECT COUNT(*) as count FROM hierarchy_nodes\n `\n )\n .get() as any;\n\n const totalContent = this.db\n .prepare(\n `\n SELECT \n SUM(original_size) as original,\n SUM(compressed_size) as compressed\n FROM hierarchy_content\n `\n )\n .get() as any;\n\n return {\n nodesByLevel: stats,\n totalNodes: totalNodes.count,\n totalContent: {\n original: totalContent?.original || 0,\n compressed: totalContent?.compressed || 0,\n ratio: totalContent?.original\n ? (1 - totalContent.compressed / totalContent.original).toFixed(2)\n : 0,\n },\n cacheSize: this.hierarchyCache.size,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * LLM-Driven Context Retrieval Module\n * Exports all retrieval functionality\n */\n\nexport * from './types.js';\nexport * from './summary-generator.js';\nexport * from './llm-context-retrieval.js';\n"],
|
|
5
|
-
"mappings": ";;;;AAKA,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/llm-context-retrieval.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * LLM-Driven Context Retrieval System\n * Uses LLM analysis to intelligently select relevant context\n */\n\nimport Database from 'better-sqlite3';\nimport {\n FrameManager,\n Frame,\n Anchor,\n Event,\n} from '../context/index.js';\nimport { QueryParser, StackMemoryQuery } from '../query/query-parser.js';\nimport { CompressedSummaryGenerator } from './summary-generator.js';\nimport {\n CompressedSummary,\n LLMAnalysisRequest,\n LLMAnalysisResponse,\n RetrievedContext,\n FrameRetrievalPlan,\n ContextRecommendation,\n RetrievalConfig,\n DEFAULT_RETRIEVAL_CONFIG,\n RetrievalHints,\n RetrievalMetadata,\n} from './types.js';\nimport { logger } from '../monitoring/logger.js';\nimport { LazyContextLoader } from '../performance/lazy-context-loader.js';\nimport { ContextCache } from '../performance/context-cache.js';\nimport { LLMProvider, createLLMProvider } from './llm-provider.js';\nimport { RetrievalAuditStore } from './retrieval-audit.js';\n\n// Re-export LLMProvider type for external use\nexport type { LLMProvider } from './llm-provider.js';\n\n/**\n * LLM provider interface for context analysis\n * @deprecated Use import from './llm-provider.js' instead\n */\nexport interface LLMProviderInterface {\n analyze(prompt: string, maxTokens: number): Promise<string>;\n}\n\n/**\n * Simple heuristic-based fallback when LLM is unavailable\n */\nclass HeuristicAnalyzer {\n analyze(\n query: string,\n summary: CompressedSummary,\n parsedQuery?: StackMemoryQuery\n ): LLMAnalysisResponse {\n const framesToRetrieve: FrameRetrievalPlan[] = [];\n const recommendations: ContextRecommendation[] = [];\n const matchedPatterns: string[] = [];\n\n // Score frames based on query relevance\n const queryLower = query.toLowerCase();\n const queryWords = queryLower.split(/\\W+/).filter((w) => w.length > 2);\n\n for (const frame of summary.recentSession.frames) {\n let priority = 5; // Base priority\n const reasons: string[] = [];\n\n // Recency boost\n const ageHours = (Date.now() - frame.createdAt) / (1000 * 60 * 60);\n if (ageHours < 1) {\n priority += 3;\n reasons.push('very recent');\n } else if (ageHours < 6) {\n priority += 2;\n reasons.push('recent');\n }\n\n // Score boost\n priority += Math.floor(frame.score * 3);\n\n // Name matching\n const nameLower = frame.name.toLowerCase();\n const nameMatches = queryWords.filter((w) => nameLower.includes(w));\n if (nameMatches.length > 0) {\n priority += nameMatches.length * 2;\n reasons.push(`matches: ${nameMatches.join(', ')}`);\n matchedPatterns.push(`name_match:${nameMatches.join(',')}`);\n }\n\n // Type matching from parsed query\n if (parsedQuery?.frame?.type) {\n const frameType = frame.type.toLowerCase();\n if (parsedQuery.frame.type.some((t) => t.toLowerCase() === frameType)) {\n priority += 2;\n reasons.push('type match');\n }\n }\n\n // Topic matching\n if (parsedQuery?.content?.topic) {\n const topics = parsedQuery.content.topic;\n const topicMatches = topics.filter(\n (t) =>\n nameLower.includes(t.toLowerCase()) ||\n (frame.digestPreview &&\n frame.digestPreview.toLowerCase().includes(t.toLowerCase()))\n );\n if (topicMatches.length > 0) {\n priority += topicMatches.length;\n reasons.push(`topic: ${topicMatches.join(', ')}`);\n }\n }\n\n // Cap priority at 10\n priority = Math.min(priority, 10);\n\n if (priority >= 5) {\n framesToRetrieve.push({\n frameId: frame.frameId,\n priority,\n reason: reasons.length > 0 ? reasons.join('; ') : 'relevant context',\n includeEvents: priority >= 7,\n includeAnchors: true,\n includeDigest: true,\n estimatedTokens: this.estimateFrameTokens(frame),\n });\n }\n }\n\n // Sort by priority\n framesToRetrieve.sort((a, b) => b.priority - a.priority);\n\n // Generate recommendations based on errors\n if (summary.recentSession.errorsEncountered.length > 0) {\n recommendations.push({\n type: 'include',\n target: 'error_context',\n reason: `${summary.recentSession.errorsEncountered.length} errors encountered recently`,\n impact: 'medium',\n });\n }\n\n // Recommend including decisions if query seems decision-related\n if (\n queryLower.includes('decision') ||\n queryLower.includes('why') ||\n queryLower.includes('chose')\n ) {\n recommendations.push({\n type: 'include',\n target: 'decisions',\n reason: 'Query appears to be about past decisions',\n impact: 'high',\n });\n }\n\n // Calculate confidence based on match quality\n const avgPriority =\n framesToRetrieve.length > 0\n ? framesToRetrieve.reduce((sum, f) => sum + f.priority, 0) /\n framesToRetrieve.length\n : 0;\n const confidenceScore = Math.min(avgPriority / 10, 0.95);\n\n // Generate reasoning\n const reasoning = this.generateReasoning(\n query,\n framesToRetrieve,\n summary,\n matchedPatterns\n );\n\n return {\n reasoning,\n framesToRetrieve: framesToRetrieve.slice(0, 10), // Limit to top 10\n confidenceScore,\n recommendations,\n metadata: {\n analysisTimeMs: 0, // Will be set by caller\n summaryTokens: this.estimateSummaryTokens(summary),\n queryComplexity: this.assessQueryComplexity(query, parsedQuery),\n matchedPatterns,\n fallbackUsed: true,\n },\n };\n }\n\n private estimateFrameTokens(frame: {\n eventCount: number;\n anchorCount: number;\n digestPreview?: string;\n }): number {\n let tokens = 50; // Base frame header\n tokens += frame.eventCount * 30; // Estimate per event\n tokens += frame.anchorCount * 40; // Estimate per anchor\n if (frame.digestPreview) tokens += frame.digestPreview.length / 4;\n return Math.floor(tokens);\n }\n\n private estimateSummaryTokens(summary: CompressedSummary): number {\n return Math.floor(JSON.stringify(summary).length / 4);\n }\n\n private assessQueryComplexity(\n query: string,\n parsedQuery?: StackMemoryQuery\n ): 'simple' | 'moderate' | 'complex' {\n const wordCount = query.split(/\\s+/).length;\n const hasTimeFilter = !!parsedQuery?.time;\n const hasContentFilter = !!parsedQuery?.content;\n const hasPeopleFilter = !!parsedQuery?.people;\n const hasFrameFilter = !!parsedQuery?.frame;\n\n const filterCount = [\n hasTimeFilter,\n hasContentFilter,\n hasPeopleFilter,\n hasFrameFilter,\n ].filter(Boolean).length;\n\n if (wordCount <= 5 && filterCount <= 1) return 'simple';\n if (wordCount <= 15 && filterCount <= 2) return 'moderate';\n return 'complex';\n }\n\n private generateReasoning(\n query: string,\n frames: FrameRetrievalPlan[],\n summary: CompressedSummary,\n matchedPatterns: string[]\n ): string {\n const parts: string[] = [];\n\n parts.push(`Query: \"${query}\"`);\n parts.push(\n `Analyzed ${summary.recentSession.frames.length} recent frames.`\n );\n\n if (matchedPatterns.length > 0) {\n parts.push(`Matched patterns: ${matchedPatterns.join(', ')}`);\n }\n\n if (frames.length > 0) {\n parts.push(`Selected ${frames.length} frames for retrieval.`);\n const topFrames = frames.slice(0, 3);\n parts.push(\n `Top frames: ${topFrames.map((f) => `${f.frameId} (priority: ${f.priority})`).join(', ')}`\n );\n } else {\n parts.push('No highly relevant frames found. Using general context.');\n }\n\n return parts.join(' ');\n }\n}\n\n/**\n * Main LLM Context Retrieval class\n */\nexport class LLMContextRetrieval {\n private db: Database.Database;\n private frameManager: FrameManager;\n private summaryGenerator: CompressedSummaryGenerator;\n private queryParser: QueryParser;\n private heuristicAnalyzer: HeuristicAnalyzer;\n private llmProvider?: LLMProvider;\n private config: RetrievalConfig;\n private projectId: string;\n private lazyLoader: LazyContextLoader;\n private contextCache: ContextCache<RetrievedContext>;\n private auditStore: RetrievalAuditStore;\n private enableAudit: boolean;\n\n constructor(\n db: Database.Database,\n frameManager: FrameManager,\n projectId: string,\n config: Partial<RetrievalConfig> = {},\n llmProvider?: LLMProvider\n ) {\n this.db = db;\n this.frameManager = frameManager;\n this.projectId = projectId;\n this.config = { ...DEFAULT_RETRIEVAL_CONFIG, ...config };\n\n // Auto-create LLM provider if not provided and API key is available\n this.llmProvider = llmProvider ?? createLLMProvider();\n if (this.llmProvider) {\n logger.info('LLM provider configured for context retrieval', {\n projectId,\n provider: this.config.llmConfig.provider,\n });\n }\n\n this.summaryGenerator = new CompressedSummaryGenerator(\n db,\n frameManager,\n projectId,\n config\n );\n this.queryParser = new QueryParser();\n this.heuristicAnalyzer = new HeuristicAnalyzer();\n\n // Initialize audit store\n this.auditStore = new RetrievalAuditStore(db, projectId);\n this.enableAudit = true; // Can be made configurable\n\n // Initialize performance optimizations\n this.lazyLoader = new LazyContextLoader(db, projectId);\n this.contextCache = new ContextCache<RetrievedContext>({\n maxSize: 50 * 1024 * 1024, // 50MB for context cache\n maxItems: 100,\n defaultTTL: 600000, // 10 minutes\n });\n\n // Start cache cleanup\n this.contextCache.startCleanup(60000);\n }\n\n /**\n * Get the audit store for external access\n */\n getAuditStore(): RetrievalAuditStore {\n return this.auditStore;\n }\n\n /**\n * Check if LLM provider is available\n */\n hasLLMProvider(): boolean {\n return !!this.llmProvider;\n }\n\n /**\n * Retrieve context based on query using LLM analysis (with caching)\n */\n public async retrieveContext(\n query: string,\n options: {\n tokenBudget?: number;\n hints?: RetrievalHints;\n forceRefresh?: boolean;\n } = {}\n ): Promise<RetrievedContext> {\n const startTime = Date.now();\n const tokenBudget = options.tokenBudget || this.config.defaultTokenBudget;\n\n // Check cache first unless force refresh\n if (!options.forceRefresh) {\n const cacheKey = `${query}:${tokenBudget}:${JSON.stringify(options.hints || {})}`;\n const cached = this.contextCache.get(cacheKey);\n if (cached) {\n logger.debug('Context cache hit', {\n query: query.substring(0, 50),\n cacheStats: this.contextCache.getStats(),\n });\n return cached;\n }\n }\n\n logger.info('Starting context retrieval', {\n projectId: this.projectId,\n query: query.substring(0, 100),\n tokenBudget,\n });\n\n // 1. Parse the query\n const parsedQuery = this.queryParser.parseNaturalLanguage(query);\n\n // 2. Generate compressed summary\n const summary = this.summaryGenerator.generateSummary({\n forceRefresh: options.forceRefresh,\n });\n\n // 3. Perform LLM analysis\n const analysis = await this.analyzeWithLLM({\n currentQuery: query,\n parsedQuery,\n compressedSummary: summary,\n tokenBudget,\n hints: options.hints,\n });\n\n // 4. Retrieve frames based on analysis\n const { frames, anchors, events, tokensUsed } = await this.retrieveFrames(\n analysis,\n tokenBudget\n );\n\n // 5. Assemble context string\n const context = this.assembleContext(frames, anchors, events, analysis);\n\n const metadata: RetrievalMetadata = {\n retrievalTimeMs: Date.now() - startTime,\n cacheHit: false, // Would need cache tracking\n framesScanned: summary.recentSession.frames.length,\n framesIncluded: frames.length,\n compressionRatio: tokensUsed > 0 ? tokenBudget / tokensUsed : 1,\n };\n\n logger.info('Context retrieval complete', {\n projectId: this.projectId,\n framesIncluded: frames.length,\n tokensUsed,\n retrievalTimeMs: metadata.retrievalTimeMs,\n confidence: analysis.confidenceScore,\n });\n\n const result: RetrievedContext = {\n context,\n frames,\n anchors,\n events,\n analysis,\n tokenUsage: {\n budget: tokenBudget,\n used: tokensUsed,\n remaining: tokenBudget - tokensUsed,\n },\n metadata,\n };\n\n // Record audit entry\n if (this.enableAudit) {\n const provider = analysis.metadata.fallbackUsed\n ? 'heuristic'\n : this.llmProvider\n ? 'anthropic'\n : 'heuristic';\n this.auditStore.record(query, analysis, {\n tokensUsed,\n tokenBudget,\n provider,\n });\n }\n\n // Cache the result\n if (!options.forceRefresh) {\n const cacheKey = `${query}:${tokenBudget}:${JSON.stringify(options.hints || {})}`;\n this.contextCache.set(cacheKey, result, {\n ttl: 600000, // 10 minutes\n });\n }\n\n return result;\n }\n\n /**\n * Perform LLM analysis or fall back to heuristics\n */\n private async analyzeWithLLM(\n request: LLMAnalysisRequest\n ): Promise<LLMAnalysisResponse> {\n const startTime = Date.now();\n\n // Try LLM analysis if provider is available\n if (this.llmProvider) {\n try {\n const prompt = this.buildAnalysisPrompt(request);\n const response = await this.llmProvider.analyze(\n prompt,\n this.config.llmConfig.maxTokens\n );\n const analysis = this.parseAnalysisResponse(response, request);\n analysis.metadata.analysisTimeMs = Date.now() - startTime;\n analysis.metadata.fallbackUsed = false;\n\n // Validate confidence threshold\n if (analysis.confidenceScore >= this.config.minConfidenceThreshold) {\n return analysis;\n }\n\n logger.warn('LLM confidence below threshold, using fallback', {\n confidence: analysis.confidenceScore,\n threshold: this.config.minConfidenceThreshold,\n });\n } catch (error: any) {\n logger.error(\n 'LLM analysis failed, using fallback',\n error instanceof Error ? error : new Error(String(error))\n );\n }\n }\n\n // Fall back to heuristic analysis\n if (this.config.enableFallback) {\n const analysis = this.heuristicAnalyzer.analyze(\n request.currentQuery,\n request.compressedSummary,\n request.parsedQuery\n );\n analysis.metadata.analysisTimeMs = Date.now() - startTime;\n return analysis;\n }\n\n // Return empty analysis if no fallback\n return {\n reasoning:\n 'Unable to perform analysis - LLM unavailable and fallback disabled',\n framesToRetrieve: [],\n confidenceScore: 0,\n recommendations: [],\n metadata: {\n analysisTimeMs: Date.now() - startTime,\n summaryTokens: 0,\n queryComplexity: 'simple',\n matchedPatterns: [],\n fallbackUsed: false,\n },\n };\n }\n\n /**\n * Build the prompt for LLM analysis\n */\n private buildAnalysisPrompt(request: LLMAnalysisRequest): string {\n const summary = request.compressedSummary;\n\n return `You are analyzing a code project's memory to retrieve relevant context.\n\n## Current Query\n\"${request.currentQuery}\"\n\n## Token Budget\n${request.tokenBudget} tokens available\n\n## Recent Session Summary\n- Frames: ${summary.recentSession.frames.length}\n- Time range: ${new Date(summary.recentSession.timeRange.start).toISOString()} to ${new Date(summary.recentSession.timeRange.end).toISOString()}\n- Dominant operations: ${summary.recentSession.dominantOperations.map((o) => `${o.operation}(${o.count})`).join(', ')}\n- Files touched: ${summary.recentSession.filesTouched\n .slice(0, 5)\n .map((f) => f.path)\n .join(', ')}\n- Errors: ${summary.recentSession.errorsEncountered.length}\n\n## Available Frames\n${summary.recentSession.frames\n .slice(0, 15)\n .map(\n (f) =>\n `- ${f.frameId}: \"${f.name}\" (${f.type}, score: ${f.score.toFixed(2)}, events: ${f.eventCount})`\n )\n .join('\\n')}\n\n## Key Decisions\n${summary.historicalPatterns.keyDecisions\n .slice(0, 5)\n .map((d) => `- ${d.text.substring(0, 80)}...`)\n .join('\\n')}\n\n## Task\nAnalyze the query and select the most relevant frames to retrieve.\nReturn a JSON object with:\n{\n \"reasoning\": \"Your analysis of why these frames are relevant\",\n \"framesToRetrieve\": [\n {\"frameId\": \"...\", \"priority\": 1-10, \"reason\": \"...\", \"includeEvents\": true/false, \"includeAnchors\": true/false}\n ],\n \"confidenceScore\": 0.0-1.0,\n \"recommendations\": [{\"type\": \"include/exclude/summarize\", \"target\": \"...\", \"reason\": \"...\", \"impact\": \"low/medium/high\"}]\n}\n\n${request.hints ? `\\n## Hints\\n${JSON.stringify(request.hints)}` : ''}\n\nRespond with only the JSON object, no other text.`;\n }\n\n /**\n * Parse LLM response into structured analysis\n */\n private parseAnalysisResponse(\n response: string,\n request: LLMAnalysisRequest\n ): LLMAnalysisResponse {\n try {\n // Extract JSON from response (handle markdown code blocks)\n let jsonStr = response;\n const jsonMatch = response.match(/```(?:json)?\\s*([\\s\\S]*?)```/);\n if (jsonMatch) {\n jsonStr = jsonMatch[1];\n }\n\n const parsed = JSON.parse(jsonStr.trim());\n\n // Validate and normalize the response\n return {\n reasoning: parsed.reasoning || 'No reasoning provided',\n framesToRetrieve: (parsed.framesToRetrieve || []).map((f: any) => ({\n frameId: f.frameId,\n priority: Math.min(10, Math.max(1, f.priority || 5)),\n reason: f.reason || 'Selected by LLM',\n includeEvents: f.includeEvents ?? true,\n includeAnchors: f.includeAnchors ?? true,\n includeDigest: f.includeDigest ?? true,\n estimatedTokens: f.estimatedTokens || 100,\n })),\n confidenceScore: Math.min(\n 1,\n Math.max(0, parsed.confidenceScore || 0.5)\n ),\n recommendations: (parsed.recommendations || []).map((r: any) => ({\n type: r.type || 'include',\n target: r.target || '',\n reason: r.reason || '',\n impact: r.impact || 'medium',\n })),\n metadata: {\n analysisTimeMs: 0,\n summaryTokens: Math.floor(\n JSON.stringify(request.compressedSummary).length / 4\n ),\n queryComplexity: this.assessQueryComplexity(request.currentQuery),\n matchedPatterns: [],\n fallbackUsed: false,\n },\n };\n } catch (error: unknown) {\n logger.warn('Failed to parse LLM response, using fallback', {\n error,\n response,\n });\n return this.heuristicAnalyzer.analyze(\n request.currentQuery,\n request.compressedSummary,\n request.parsedQuery\n );\n }\n }\n\n private assessQueryComplexity(\n query: string\n ): 'simple' | 'moderate' | 'complex' {\n const wordCount = query.split(/\\s+/).length;\n if (wordCount <= 5) return 'simple';\n if (wordCount <= 15) return 'moderate';\n return 'complex';\n }\n\n /**\n * Retrieve frames based on analysis (with lazy loading)\n */\n private async retrieveFrames(\n analysis: LLMAnalysisResponse,\n tokenBudget: number\n ): Promise<{\n frames: Frame[];\n anchors: Anchor[];\n events: Event[];\n tokensUsed: number;\n }> {\n const frames: Frame[] = [];\n const anchors: Anchor[] = [];\n const events: Event[] = [];\n let tokensUsed = 0;\n\n // Preload frames for better performance\n const frameIds = analysis.framesToRetrieve.map((p: any) => p.frameId);\n await this.lazyLoader.preloadContext(frameIds, {\n parallel: true,\n depth: 2, // Load frames, anchors, and events\n });\n\n // Retrieve frames in priority order within budget\n for (const plan of analysis.framesToRetrieve) {\n if (tokensUsed + plan.estimatedTokens > tokenBudget) {\n logger.debug('Token budget exceeded, stopping retrieval', {\n tokensUsed,\n budget: tokenBudget,\n });\n break;\n }\n\n // Use lazy loader for efficient retrieval\n try {\n const frame = await this.lazyLoader.lazyFrame(plan.frameId).get();\n frames.push(frame);\n tokensUsed += 50; // Base frame tokens\n\n // Include anchors if requested\n if (plan.includeAnchors) {\n const frameAnchors = await this.lazyLoader\n .lazyAnchors(plan.frameId)\n .get();\n anchors.push(...frameAnchors);\n tokensUsed += frameAnchors.length * 40;\n }\n\n // Include events if requested\n if (plan.includeEvents) {\n const frameEvents = await this.lazyLoader\n .lazyEvents(plan.frameId, 10)\n .get();\n events.push(...frameEvents);\n tokensUsed += frameEvents.length * 30;\n }\n } catch (error: unknown) {\n logger.warn('Failed to retrieve frame', {\n frameId: plan.frameId,\n error,\n });\n }\n }\n\n return { frames, anchors, events, tokensUsed };\n }\n\n private getFrameAnchors(frameId: string): Anchor[] {\n try {\n const rows = this.db\n .prepare(\n `\n SELECT * FROM anchors WHERE frame_id = ?\n ORDER BY priority DESC, created_at DESC\n `\n )\n .all(frameId) as any[];\n\n return rows.map((row) => ({\n ...row,\n metadata: JSON.parse(row.metadata || '{}'),\n }));\n } catch {\n return [];\n }\n }\n\n /**\n * Assemble final context string\n */\n private assembleContext(\n frames: Frame[],\n anchors: Anchor[],\n events: Event[],\n analysis: LLMAnalysisResponse\n ): string {\n const sections: string[] = [];\n\n // Add retrieval reasoning (auditable)\n sections.push('## Context Retrieval Analysis');\n sections.push(\n `*Confidence: ${(analysis.confidenceScore * 100).toFixed(0)}%*`\n );\n sections.push(analysis.reasoning);\n sections.push('');\n\n // Add frames\n if (frames.length > 0) {\n sections.push('## Relevant Frames');\n for (const frame of frames) {\n sections.push(`### ${frame.name} (${frame.type})`);\n if (frame.digest_text) {\n sections.push(frame.digest_text);\n }\n sections.push('');\n }\n }\n\n // Add key anchors\n const decisions = anchors.filter((a) => a.type === 'DECISION');\n const constraints = anchors.filter((a) => a.type === 'CONSTRAINT');\n const facts = anchors.filter((a) => a.type === 'FACT');\n\n if (decisions.length > 0) {\n sections.push('## Key Decisions');\n for (const d of decisions.slice(0, 5)) {\n sections.push(`- ${d.text}`);\n }\n sections.push('');\n }\n\n if (constraints.length > 0) {\n sections.push('## Active Constraints');\n for (const c of constraints.slice(0, 5)) {\n sections.push(`- ${c.text}`);\n }\n sections.push('');\n }\n\n if (facts.length > 0) {\n sections.push('## Important Facts');\n for (const f of facts.slice(0, 5)) {\n sections.push(`- ${f.text}`);\n }\n sections.push('');\n }\n\n // Add recent events summary\n if (events.length > 0) {\n sections.push('## Recent Activity');\n const eventSummary = this.summarizeEvents(events);\n sections.push(eventSummary);\n sections.push('');\n }\n\n // Add recommendations\n if (analysis.recommendations.length > 0) {\n sections.push('## Recommendations');\n for (const rec of analysis.recommendations) {\n const icon =\n rec.type === 'include' ? '+' : rec.type === 'exclude' ? '-' : '~';\n sections.push(`${icon} [${rec.impact.toUpperCase()}] ${rec.reason}`);\n }\n }\n\n return sections.join('\\n');\n }\n\n private summarizeEvents(events: Event[]): string {\n const byType: Record<string, number> = {};\n for (const event of events) {\n byType[event.event_type] = (byType[event.event_type] || 0) + 1;\n }\n\n return Object.entries(byType)\n .map(([type, count]) => `- ${type}: ${count} occurrences`)\n .join('\\n');\n }\n\n /**\n * Get just the compressed summary (useful for external analysis)\n */\n public getSummary(forceRefresh = false): CompressedSummary {\n return this.summaryGenerator.generateSummary({ forceRefresh });\n }\n\n /**\n * Set LLM provider\n */\n public setLLMProvider(provider: LLMProvider): void {\n this.llmProvider = provider;\n }\n\n /**\n * Clear all caches\n */\n public clearCache(): void {\n this.summaryGenerator.clearCache();\n this.lazyLoader.clearCache();\n this.contextCache.clear();\n logger.info('Cleared all caches', {\n projectId: this.projectId,\n cacheStats: this.contextCache.getStats(),\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/llm-provider.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * LLM Provider Implementation for Context Retrieval\n * Provides real Anthropic API integration for intelligent context analysis\n */\n\nimport Anthropic from '@anthropic-ai/sdk';\nimport { logger } from '../monitoring/logger.js';\n\n/**\n * LLM provider interface for context analysis\n */\nexport interface LLMProvider {\n analyze(prompt: string, maxTokens: number): Promise<string>;\n}\n\n/**\n * Configuration for Anthropic LLM provider\n */\nexport interface AnthropicProviderConfig {\n apiKey: string;\n model?: string;\n temperature?: number;\n maxRetries?: number;\n timeout?: number;\n}\n\n/**\n * Real Anthropic LLM provider using the official SDK\n */\nexport class AnthropicLLMProvider implements LLMProvider {\n private client: Anthropic;\n private model: string;\n private temperature: number;\n private maxRetries: number;\n private timeout: number;\n\n constructor(config: AnthropicProviderConfig) {\n this.client = new Anthropic({\n apiKey: config.apiKey,\n });\n this.model = config.model || 'claude-3-haiku-20240307';\n this.temperature = config.temperature ?? 0.3;\n this.maxRetries = config.maxRetries ?? 2;\n this.timeout = config.timeout ?? 30000;\n\n logger.info('AnthropicLLMProvider initialized', {\n model: this.model,\n temperature: this.temperature,\n });\n }\n\n /**\n * Analyze a prompt using the Anthropic API\n */\n async analyze(prompt: string, maxTokens: number): Promise<string> {\n const startTime = Date.now();\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n try {\n const response = await this.makeRequest(prompt, maxTokens);\n\n logger.debug('LLM analysis completed', {\n model: this.model,\n promptLength: prompt.length,\n responseLength: response.length,\n durationMs: Date.now() - startTime,\n attempt,\n });\n\n return response;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n // Check if retryable\n if (this.isRetryableError(error) && attempt < this.maxRetries) {\n const backoffMs = Math.pow(2, attempt) * 1000;\n logger.warn('LLM request failed, retrying', {\n attempt,\n backoffMs,\n error: lastError.message,\n });\n await this.sleep(backoffMs);\n continue;\n }\n\n break;\n }\n }\n\n logger.error('LLM analysis failed after retries', lastError!);\n throw lastError;\n }\n\n /**\n * Make the actual API request\n */\n private async makeRequest(\n prompt: string,\n maxTokens: number\n ): Promise<string> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await this.client.messages.create({\n model: this.model,\n max_tokens: maxTokens,\n temperature: this.temperature,\n messages: [\n {\n role: 'user',\n content: prompt,\n },\n ],\n });\n\n // Extract text from response\n const textContent = response.content.find((c) => c.type === 'text');\n if (!textContent || textContent.type !== 'text') {\n throw new Error('No text content in response');\n }\n\n return textContent.text;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Check if an error is retryable\n */\n private isRetryableError(error: unknown): boolean {\n if (error instanceof Anthropic.RateLimitError) {\n return true;\n }\n if (error instanceof Anthropic.APIConnectionError) {\n return true;\n }\n if (error instanceof Anthropic.InternalServerError) {\n return true;\n }\n // Timeout errors are retryable\n if (error instanceof Error && error.name === 'AbortError') {\n return true;\n }\n return false;\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n\n/**\n * Local fallback LLM provider - uses heuristic summarization without external APIs\n * This ensures StackMemory works in LOCAL_ONLY mode\n */\nexport class LocalFallbackProvider implements LLMProvider {\n async analyze(prompt: string, maxTokens: number): Promise<string> {\n // Extract content from prompt and create a heuristic summary\n const lines = prompt.split('\\n').filter((l) => l.trim());\n const contentStart = lines.findIndex((l) => l.includes('Content:'));\n\n if (contentStart === -1 || lines.length < 3) {\n return 'Context summary not available (local mode)';\n }\n\n // Extract key information heuristically\n const content = lines.slice(contentStart + 1).join('\\n');\n const sentences = content\n .split(/[.!?]+/)\n .filter((s) => s.trim().length > 10);\n\n // Take first few sentences up to maxTokens (rough approximation: 4 chars = 1 token)\n const maxChars = maxTokens * 4;\n let summary = '';\n for (const sentence of sentences.slice(0, 5)) {\n if (summary.length + sentence.length > maxChars) break;\n summary += sentence.trim() + '. ';\n }\n\n return (\n summary.trim() || 'Context available (use LLM API for detailed analysis)'\n );\n }\n}\n\n/**\n * Factory function to create an LLM provider based on environment\n */\nexport function createLLMProvider(): LLMProvider | undefined {\n // Check for local-only mode\n if (\n process.env['STACKMEMORY_LOCAL'] === 'true' ||\n process.env['LOCAL_ONLY'] === 'true'\n ) {\n logger.info('LOCAL mode - using heuristic summarization');\n return new LocalFallbackProvider();\n }\n\n const apiKey = process.env['ANTHROPIC_API_KEY'];\n\n if (!apiKey) {\n logger.info(\n 'No ANTHROPIC_API_KEY found, LLM retrieval will use heuristics'\n );\n return new LocalFallbackProvider();\n }\n\n return new AnthropicLLMProvider({\n apiKey,\n model: process.env['ANTHROPIC_MODEL'] || 'claude-3-haiku-20240307',\n temperature: parseFloat(process.env['ANTHROPIC_TEMPERATURE'] || '0.3'),\n });\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/retrieval-audit.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Retrieval Audit Store\n * Records retrieval decisions for auditing and debugging\n */\n\nimport Database from 'better-sqlite3';\nimport { v4 as uuidv4 } from 'uuid';\nimport { logger } from '../monitoring/logger.js';\nimport { LLMAnalysisResponse } from './types.js';\n\n/**\n * A single retrieval audit entry\n */\nexport interface RetrievalAuditEntry {\n id: string;\n timestamp: number;\n projectId: string;\n query: string;\n reasoning: string;\n framesRetrieved: string[];\n confidenceScore: number;\n provider: 'anthropic' | 'heuristic' | 'cached';\n tokensUsed: number;\n tokenBudget: number;\n analysisTimeMs: number;\n queryComplexity: 'simple' | 'moderate' | 'complex';\n}\n\n/**\n * Stores retrieval audit entries for later inspection\n */\nexport class RetrievalAuditStore {\n private db: Database.Database;\n private projectId: string;\n private initialized = false;\n\n constructor(db: Database.Database, projectId: string) {\n this.db = db;\n this.projectId = projectId;\n this.initSchema();\n }\n\n /**\n * Initialize the audit table schema\n */\n private initSchema(): void {\n if (this.initialized) return;\n\n try {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS retrieval_audit (\n id TEXT PRIMARY KEY,\n timestamp INTEGER NOT NULL,\n project_id TEXT NOT NULL,\n query TEXT NOT NULL,\n reasoning TEXT NOT NULL,\n frames_retrieved TEXT NOT NULL,\n confidence_score REAL NOT NULL,\n provider TEXT NOT NULL,\n tokens_used INTEGER NOT NULL,\n token_budget INTEGER NOT NULL,\n analysis_time_ms INTEGER NOT NULL,\n query_complexity TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_retrieval_audit_project_time\n ON retrieval_audit(project_id, timestamp DESC);\n\n CREATE INDEX IF NOT EXISTS idx_retrieval_audit_query\n ON retrieval_audit(project_id, query);\n `);\n\n this.initialized = true;\n logger.debug('Retrieval audit schema initialized');\n } catch (error) {\n logger.warn('Failed to initialize retrieval audit schema', {\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n /**\n * Record a retrieval decision\n */\n record(\n query: string,\n analysis: LLMAnalysisResponse,\n options: {\n tokensUsed: number;\n tokenBudget: number;\n provider: 'anthropic' | 'heuristic' | 'cached';\n }\n ): string {\n const id = uuidv4();\n const timestamp = Date.now();\n\n try {\n const stmt = this.db.prepare(`\n INSERT INTO retrieval_audit (\n id, timestamp, project_id, query, reasoning, frames_retrieved,\n confidence_score, provider, tokens_used, token_budget,\n analysis_time_ms, query_complexity\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n stmt.run(\n id,\n timestamp,\n this.projectId,\n query,\n analysis.reasoning,\n JSON.stringify(analysis.framesToRetrieve.map((f) => f.frameId)),\n analysis.confidenceScore,\n options.provider,\n options.tokensUsed,\n options.tokenBudget,\n analysis.metadata.analysisTimeMs,\n analysis.metadata.queryComplexity\n );\n\n logger.debug('Recorded retrieval audit entry', {\n id,\n query: query.slice(0, 50),\n });\n return id;\n } catch (error) {\n logger.warn('Failed to record retrieval audit', {\n error: error instanceof Error ? error.message : String(error),\n });\n return id; // Return ID even on failure\n }\n }\n\n /**\n * Get recent retrieval audit entries\n */\n getRecent(limit = 10): RetrievalAuditEntry[] {\n try {\n const stmt = this.db.prepare(`\n SELECT * FROM retrieval_audit\n WHERE project_id = ?\n ORDER BY timestamp DESC\n LIMIT ?\n `);\n\n const rows = stmt.all(this.projectId, limit) as any[];\n return rows.map(this.rowToEntry);\n } catch (error) {\n logger.warn('Failed to get recent audit entries', {\n error: error instanceof Error ? error.message : String(error),\n });\n return [];\n }\n }\n\n /**\n * Get audit entry by ID\n */\n getById(id: string): RetrievalAuditEntry | null {\n try {\n const stmt = this.db.prepare(`\n SELECT * FROM retrieval_audit WHERE id = ?\n `);\n\n const row = stmt.get(id) as any;\n return row ? this.rowToEntry(row) : null;\n } catch (error) {\n logger.warn('Failed to get audit entry', {\n error: error instanceof Error ? error.message : String(error),\n id,\n });\n return null;\n }\n }\n\n /**\n * Search audit entries by query text\n */\n searchByQuery(searchTerm: string, limit = 10): RetrievalAuditEntry[] {\n try {\n const stmt = this.db.prepare(`\n SELECT * FROM retrieval_audit\n WHERE project_id = ? AND query LIKE ?\n ORDER BY timestamp DESC\n LIMIT ?\n `);\n\n const rows = stmt.all(this.projectId, `%${searchTerm}%`, limit) as any[];\n return rows.map(this.rowToEntry);\n } catch (error) {\n logger.warn('Failed to search audit entries', {\n error: error instanceof Error ? error.message : String(error),\n });\n return [];\n }\n }\n\n /**\n * Get statistics about retrieval patterns\n */\n getStats(): {\n totalRetrievals: number;\n avgConfidence: number;\n providerBreakdown: Record<string, number>;\n avgTokensUsed: number;\n avgAnalysisTime: number;\n } {\n try {\n const statsStmt = this.db.prepare(`\n SELECT\n COUNT(*) as total,\n AVG(confidence_score) as avg_confidence,\n AVG(tokens_used) as avg_tokens,\n AVG(analysis_time_ms) as avg_time\n FROM retrieval_audit\n WHERE project_id = ?\n `);\n\n const providerStmt = this.db.prepare(`\n SELECT provider, COUNT(*) as count\n FROM retrieval_audit\n WHERE project_id = ?\n GROUP BY provider\n `);\n\n const stats = statsStmt.get(this.projectId) as any;\n const providers = providerStmt.all(this.projectId) as any[];\n\n const providerBreakdown: Record<string, number> = {};\n for (const p of providers) {\n providerBreakdown[p.provider] = p.count;\n }\n\n return {\n totalRetrievals: stats?.total || 0,\n avgConfidence: stats?.avg_confidence || 0,\n providerBreakdown,\n avgTokensUsed: stats?.avg_tokens || 0,\n avgAnalysisTime: stats?.avg_time || 0,\n };\n } catch (error) {\n logger.warn('Failed to get audit stats', {\n error: error instanceof Error ? error.message : String(error),\n });\n return {\n totalRetrievals: 0,\n avgConfidence: 0,\n providerBreakdown: {},\n avgTokensUsed: 0,\n avgAnalysisTime: 0,\n };\n }\n }\n\n /**\n * Clean up old audit entries\n */\n cleanup(maxAgeMs = 7 * 24 * 60 * 60 * 1000): number {\n try {\n const cutoff = Date.now() - maxAgeMs;\n const stmt = this.db.prepare(`\n DELETE FROM retrieval_audit\n WHERE project_id = ? AND timestamp < ?\n `);\n\n const result = stmt.run(this.projectId, cutoff);\n logger.info('Cleaned up old audit entries', { deleted: result.changes });\n return result.changes;\n } catch (error) {\n logger.warn('Failed to cleanup audit entries', {\n error: error instanceof Error ? error.message : String(error),\n });\n return 0;\n }\n }\n\n private rowToEntry(row: any): RetrievalAuditEntry {\n return {\n id: row.id,\n timestamp: row.timestamp,\n projectId: row.project_id,\n query: row.query,\n reasoning: row.reasoning,\n framesRetrieved: JSON.parse(row.frames_retrieved),\n confidenceScore: row.confidence_score,\n provider: row.provider as 'anthropic' | 'heuristic' | 'cached',\n tokensUsed: row.tokens_used,\n tokenBudget: row.token_budget,\n analysisTimeMs: row.analysis_time_ms,\n queryComplexity: row.query_complexity as\n | 'simple'\n | 'moderate'\n | 'complex',\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|