@stackmemoryai/stackmemory 0.2.6 → 0.2.8
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 +262 -83
- package/dist/scripts/cancel-duplicate-tasks.d.ts +7 -0
- package/dist/scripts/cancel-duplicate-tasks.d.ts.map +1 -0
- package/dist/scripts/cancel-duplicate-tasks.js +172 -0
- package/dist/scripts/cancel-duplicate-tasks.js.map +1 -0
- package/dist/scripts/list-linear-tasks.d.ts +6 -0
- package/dist/scripts/list-linear-tasks.d.ts.map +1 -0
- package/dist/scripts/list-linear-tasks.js +121 -0
- package/dist/scripts/list-linear-tasks.js.map +1 -0
- package/dist/scripts/merge-linear-duplicates-safe.d.ts +7 -0
- package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +1 -0
- package/dist/scripts/merge-linear-duplicates-safe.js +267 -0
- package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -0
- package/dist/scripts/show-linear-summary.d.ts +6 -0
- package/dist/scripts/show-linear-summary.d.ts.map +1 -0
- package/dist/scripts/show-linear-summary.js +120 -0
- package/dist/scripts/show-linear-summary.js.map +1 -0
- package/dist/scripts/status.js +6 -2
- package/dist/scripts/status.js.map +1 -1
- package/dist/src/cli/auto-detect.d.ts +61 -0
- package/dist/src/cli/auto-detect.d.ts.map +1 -0
- package/dist/src/cli/auto-detect.js +350 -0
- package/dist/src/cli/auto-detect.js.map +1 -0
- package/dist/src/cli/claude-sm.d.ts +7 -0
- package/dist/src/cli/claude-sm.d.ts.map +1 -0
- package/dist/src/cli/claude-sm.js +357 -0
- package/dist/src/cli/claude-sm.js.map +1 -0
- package/dist/src/cli/commands/config.d.ts +6 -0
- package/dist/src/cli/commands/config.d.ts.map +1 -0
- package/dist/src/cli/commands/config.js +224 -0
- package/dist/src/cli/commands/config.js.map +1 -0
- package/dist/src/cli/commands/context.d.ts +7 -0
- package/dist/src/cli/commands/context.d.ts.map +1 -0
- package/dist/src/cli/commands/context.js +365 -0
- package/dist/src/cli/commands/context.js.map +1 -0
- package/dist/src/cli/commands/linear-test.d.ts +6 -0
- package/dist/src/cli/commands/linear-test.d.ts.map +1 -0
- package/dist/src/cli/commands/linear-test.js +123 -0
- package/dist/src/cli/commands/linear-test.js.map +1 -0
- package/dist/src/cli/commands/linear.d.ts +6 -0
- package/dist/src/cli/commands/linear.d.ts.map +1 -0
- package/dist/src/cli/commands/linear.js +393 -0
- package/dist/src/cli/commands/linear.js.map +1 -0
- package/dist/src/cli/commands/log.d.ts +7 -0
- package/dist/src/cli/commands/log.d.ts.map +1 -0
- package/dist/src/cli/commands/log.js +168 -0
- package/dist/src/cli/commands/log.js.map +1 -0
- package/dist/src/cli/commands/onboard.d.ts +8 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -0
- package/dist/src/cli/commands/onboard.js +363 -0
- package/dist/src/cli/commands/onboard.js.map +1 -0
- package/dist/src/cli/commands/projects.js +1 -1
- package/dist/src/cli/commands/projects.js.map +1 -1
- package/dist/src/cli/commands/search.d.ts +7 -0
- package/dist/src/cli/commands/search.d.ts.map +1 -0
- package/dist/src/cli/commands/search.js +162 -0
- package/dist/src/cli/commands/search.js.map +1 -0
- package/dist/src/cli/commands/session.d.ts +7 -0
- package/dist/src/cli/commands/session.d.ts.map +1 -0
- package/dist/src/cli/commands/session.js +222 -0
- package/dist/src/cli/commands/session.js.map +1 -0
- package/dist/src/cli/commands/tasks.d.ts +7 -0
- package/dist/src/cli/commands/tasks.d.ts.map +1 -0
- package/dist/src/cli/commands/tasks.js +229 -0
- package/dist/src/cli/commands/tasks.js.map +1 -0
- package/dist/src/cli/commands/webhook.d.ts +3 -0
- package/dist/src/cli/commands/webhook.d.ts.map +1 -0
- package/dist/src/cli/commands/webhook.js +157 -0
- package/dist/src/cli/commands/webhook.js.map +1 -0
- package/dist/src/cli/commands/worktree.d.ts +8 -0
- package/dist/src/cli/commands/worktree.d.ts.map +1 -0
- package/dist/src/cli/commands/worktree.js +339 -0
- package/dist/src/cli/commands/worktree.js.map +1 -0
- package/dist/src/cli/index.d.ts +2 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +337 -50
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/viewer.d.ts.map +1 -1
- package/dist/src/cli/utils/viewer.js +3 -1
- package/dist/src/cli/utils/viewer.js.map +1 -1
- package/dist/src/core/config/config-manager.d.ts +95 -0
- package/dist/src/core/config/config-manager.d.ts.map +1 -0
- package/dist/src/core/config/config-manager.js +359 -0
- package/dist/src/core/config/config-manager.js.map +1 -0
- package/dist/src/core/config/types.d.ts +72 -0
- package/dist/src/core/config/types.d.ts.map +1 -0
- package/dist/src/core/config/types.js +127 -0
- package/dist/src/core/config/types.js.map +1 -0
- package/dist/src/core/context/auto-context.d.ts +22 -0
- package/dist/src/core/context/auto-context.d.ts.map +1 -0
- package/dist/src/core/context/auto-context.js +77 -0
- package/dist/src/core/context/auto-context.js.map +1 -0
- package/dist/src/core/context/compaction-handler.d.ts +119 -0
- package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
- package/dist/src/core/context/compaction-handler.js +306 -0
- package/dist/src/core/context/compaction-handler.js.map +1 -0
- package/dist/src/core/context/frame-manager.d.ts +4 -0
- package/dist/src/core/context/frame-manager.d.ts.map +1 -1
- package/dist/src/core/context/frame-manager.js +350 -144
- package/dist/src/core/context/frame-manager.js.map +1 -1
- package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
- package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
- package/dist/src/core/context/model-aware-compaction.js +616 -0
- package/dist/src/core/context/model-aware-compaction.js.map +1 -0
- package/dist/src/core/errors/index.d.ts +135 -0
- package/dist/src/core/errors/index.d.ts.map +1 -0
- package/dist/src/core/errors/index.js +274 -0
- package/dist/src/core/errors/index.js.map +1 -0
- package/dist/src/core/errors/recovery.d.ts +86 -0
- package/dist/src/core/errors/recovery.d.ts.map +1 -0
- package/dist/src/core/errors/recovery.js +274 -0
- package/dist/src/core/errors/recovery.js.map +1 -0
- package/dist/src/core/projects/project-manager.d.ts.map +1 -1
- package/dist/src/core/projects/project-manager.js +240 -122
- package/dist/src/core/projects/project-manager.js.map +1 -1
- package/dist/src/core/query/query-parser.d.ts +104 -0
- package/dist/src/core/query/query-parser.d.ts.map +1 -0
- package/dist/src/core/query/query-parser.js +347 -0
- package/dist/src/core/query/query-parser.js.map +1 -0
- package/dist/src/core/retrieval/index.d.ts +8 -0
- package/dist/src/core/retrieval/index.d.ts.map +1 -0
- package/dist/src/core/retrieval/index.js +8 -0
- package/dist/src/core/retrieval/index.js.map +1 -0
- package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
- package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
- package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
- package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
- package/dist/src/core/retrieval/summary-generator.js +622 -0
- package/dist/src/core/retrieval/summary-generator.js.map +1 -0
- package/dist/src/core/retrieval/types.d.ts +257 -0
- package/dist/src/core/retrieval/types.d.ts.map +1 -0
- package/dist/src/core/retrieval/types.js +18 -0
- package/dist/src/core/retrieval/types.js.map +1 -0
- package/dist/src/core/session/index.d.ts +2 -0
- package/dist/src/core/session/index.d.ts.map +1 -0
- package/dist/src/core/session/index.js +2 -0
- package/dist/src/core/session/index.js.map +1 -0
- package/dist/src/core/session/session-manager.d.ts +69 -0
- package/dist/src/core/session/session-manager.d.ts.map +1 -0
- package/dist/src/core/session/session-manager.js +311 -0
- package/dist/src/core/session/session-manager.js.map +1 -0
- package/dist/src/core/trace/trace-detector.d.ts +108 -0
- package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
- package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
- package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
- package/dist/src/core/trace/trace-detector.demo.js +145 -0
- package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
- package/dist/src/core/trace/trace-detector.js +425 -0
- package/dist/src/core/trace/trace-detector.js.map +1 -0
- package/dist/src/core/trace/trace-store.d.ts +60 -0
- package/dist/src/core/trace/trace-store.d.ts.map +1 -0
- package/dist/src/core/trace/trace-store.js +323 -0
- package/dist/src/core/trace/trace-store.js.map +1 -0
- package/dist/src/core/trace/types.d.ts +81 -0
- package/dist/src/core/trace/types.d.ts.map +1 -0
- package/dist/src/core/trace/types.js +70 -0
- package/dist/src/core/trace/types.js.map +1 -0
- package/dist/src/core/utils/update-checker.d.ts.map +1 -1
- package/dist/src/core/utils/update-checker.js +82 -25
- package/dist/src/core/utils/update-checker.js.map +1 -1
- package/dist/src/core/worktree/worktree-manager.d.ts +110 -0
- package/dist/src/core/worktree/worktree-manager.d.ts.map +1 -0
- package/dist/src/core/worktree/worktree-manager.js +456 -0
- package/dist/src/core/worktree/worktree-manager.js.map +1 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts +6 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -1
- package/dist/src/features/analytics/core/analytics-service.js +125 -10
- package/dist/src/features/analytics/core/analytics-service.js.map +1 -1
- package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -1
- package/dist/src/features/analytics/queries/metrics-queries.js +220 -163
- package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -1
- package/dist/src/features/browser/browser-mcp.d.ts.map +1 -1
- package/dist/src/features/browser/browser-mcp.js +3 -0
- package/dist/src/features/browser/browser-mcp.js.map +1 -1
- package/dist/src/features/tasks/pebbles-task-store.d.ts +4 -0
- package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -1
- package/dist/src/features/tasks/pebbles-task-store.js +299 -141
- package/dist/src/features/tasks/pebbles-task-store.js.map +1 -1
- package/dist/src/integrations/linear/client.d.ts +28 -1
- package/dist/src/integrations/linear/client.d.ts.map +1 -1
- package/dist/src/integrations/linear/client.js +87 -0
- package/dist/src/integrations/linear/client.js.map +1 -1
- package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
- package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
- package/dist/src/integrations/linear/sync-manager.js +223 -0
- package/dist/src/integrations/linear/sync-manager.js.map +1 -0
- package/dist/src/integrations/linear/sync-service.d.ts +25 -0
- package/dist/src/integrations/linear/sync-service.d.ts.map +1 -0
- package/dist/src/integrations/linear/sync-service.js +198 -0
- package/dist/src/integrations/linear/sync-service.js.map +1 -0
- package/dist/src/integrations/linear/sync.d.ts +23 -1
- package/dist/src/integrations/linear/sync.d.ts.map +1 -1
- package/dist/src/integrations/linear/sync.js +156 -9
- package/dist/src/integrations/linear/sync.js.map +1 -1
- package/dist/src/integrations/linear/types.d.ts +75 -0
- package/dist/src/integrations/linear/types.d.ts.map +1 -0
- package/dist/src/integrations/linear/types.js +2 -0
- package/dist/src/integrations/linear/types.js.map +1 -0
- package/dist/src/integrations/linear/webhook-server.d.ts +32 -0
- package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -0
- package/dist/src/integrations/linear/webhook-server.js +188 -0
- package/dist/src/integrations/linear/webhook-server.js.map +1 -0
- package/dist/src/integrations/linear/webhook.d.ts +95 -0
- package/dist/src/integrations/linear/webhook.d.ts.map +1 -0
- package/dist/src/integrations/linear/webhook.js +204 -0
- package/dist/src/integrations/linear/webhook.js.map +1 -0
- package/dist/src/integrations/mcp/server.d.ts +14 -0
- package/dist/src/integrations/mcp/server.d.ts.map +1 -1
- package/dist/src/integrations/mcp/server.js +849 -61
- package/dist/src/integrations/mcp/server.js.map +1 -1
- package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
- package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
- package/dist/src/integrations/mcp/trace-test.js +54 -0
- package/dist/src/integrations/mcp/trace-test.js.map +1 -0
- package/dist/src/servers/production/auth-middleware.d.ts +2 -2
- package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
- package/dist/src/servers/production/auth-middleware.js +1 -1
- package/dist/src/servers/production/auth-middleware.js.map +1 -1
- package/dist/src/services/config-service.d.ts +44 -0
- package/dist/src/services/config-service.d.ts.map +1 -0
- package/dist/src/services/config-service.js +61 -0
- package/dist/src/services/config-service.js.map +1 -0
- package/dist/src/services/context-service.d.ts +17 -0
- package/dist/src/services/context-service.d.ts.map +1 -0
- package/dist/src/services/context-service.js +88 -0
- package/dist/src/services/context-service.js.map +1 -0
- package/dist/src/types/task.d.ts +27 -0
- package/dist/src/types/task.d.ts.map +1 -0
- package/dist/src/types/task.js +2 -0
- package/dist/src/types/task.js.map +1 -0
- package/dist/src/utils/logger.d.ts +13 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +52 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/package.json +24 -10
- package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
- package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
- package/dist/attention-scoring/src/attention-tracker.js +0 -488
- package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
- package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
- package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
- package/dist/attention-scoring/src/mcp-integration.js +0 -369
- package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
- package/dist/index.js +0 -382
- package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
- package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
- package/dist/p2p-sync/src/p2p-sync.js +0 -457
- package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
- package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
- package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
- package/dist/p2p-sync/src/team-context-sync.js +0 -491
- package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
- package/dist/src/analytics/api/analytics-api.d.ts +0 -24
- package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
- package/dist/src/analytics/api/analytics-api.js +0 -279
- package/dist/src/analytics/api/analytics-api.js.map +0 -1
- package/dist/src/analytics/core/analytics-service.d.ts +0 -23
- package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
- package/dist/src/analytics/core/analytics-service.js +0 -160
- package/dist/src/analytics/core/analytics-service.js.map +0 -1
- package/dist/src/analytics/index.d.ts +0 -12
- package/dist/src/analytics/index.d.ts.map +0 -1
- package/dist/src/analytics/index.js +0 -11
- package/dist/src/analytics/index.js.map +0 -1
- package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
- package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
- package/dist/src/analytics/queries/metrics-queries.js +0 -179
- package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
- package/dist/src/analytics/types/metrics.d.ts +0 -60
- package/dist/src/analytics/types/metrics.d.ts.map +0 -1
- package/dist/src/analytics/types/metrics.js +0 -2
- package/dist/src/analytics/types/metrics.js.map +0 -1
- package/dist/src/beads/beads-task-store.d.ts +0 -117
- package/dist/src/beads/beads-task-store.d.ts.map +0 -1
- package/dist/src/beads/beads-task-store.js +0 -318
- package/dist/src/beads/beads-task-store.js.map +0 -1
- package/dist/src/beads/task-aware-context.d.ts +0 -103
- package/dist/src/beads/task-aware-context.d.ts.map +0 -1
- package/dist/src/beads/task-aware-context.js +0 -395
- package/dist/src/beads/task-aware-context.js.map +0 -1
- package/dist/src/beads-task-store.d.ts +0 -117
- package/dist/src/beads-task-store.d.ts.map +0 -1
- package/dist/src/beads-task-store.js +0 -318
- package/dist/src/beads-task-store.js.map +0 -1
- package/dist/src/cli/analytics-viewer.d.ts +0 -3
- package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
- package/dist/src/cli/analytics-viewer.js +0 -89
- package/dist/src/cli/analytics-viewer.js.map +0 -1
- package/dist/src/cli/cli.d.ts +0 -7
- package/dist/src/cli/cli.d.ts.map +0 -1
- package/dist/src/cli/cli.js +0 -704
- package/dist/src/cli/cli.js.map +0 -1
- package/dist/src/cli/project-commands.d.ts +0 -8
- package/dist/src/cli/project-commands.d.ts.map +0 -1
- package/dist/src/cli/project-commands.js +0 -212
- package/dist/src/cli/project-commands.js.map +0 -1
- package/dist/src/cli.d.ts +0 -7
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -73
- package/dist/src/cli.js.map +0 -1
- package/dist/src/core/error-handler.d.ts +0 -46
- package/dist/src/core/error-handler.d.ts.map +0 -1
- package/dist/src/core/error-handler.js +0 -212
- package/dist/src/core/error-handler.js.map +0 -1
- package/dist/src/core/frame-manager.d.ts +0 -106
- package/dist/src/core/frame-manager.d.ts.map +0 -1
- package/dist/src/core/frame-manager.js +0 -387
- package/dist/src/core/frame-manager.js.map +0 -1
- package/dist/src/core/logger.d.ts +0 -24
- package/dist/src/core/logger.d.ts.map +0 -1
- package/dist/src/core/logger.js +0 -121
- package/dist/src/core/logger.js.map +0 -1
- package/dist/src/core/logger.test.d.ts +0 -2
- package/dist/src/core/logger.test.d.ts.map +0 -1
- package/dist/src/core/logger.test.js +0 -31
- package/dist/src/core/logger.test.js.map +0 -1
- package/dist/src/core/progress-tracker.d.ts +0 -95
- package/dist/src/core/progress-tracker.d.ts.map +0 -1
- package/dist/src/core/progress-tracker.js +0 -178
- package/dist/src/core/progress-tracker.js.map +0 -1
- package/dist/src/core/project-manager.d.ts +0 -130
- package/dist/src/core/project-manager.d.ts.map +0 -1
- package/dist/src/core/project-manager.js +0 -582
- package/dist/src/core/project-manager.js.map +0 -1
- package/dist/src/core/update-checker.d.ts +0 -38
- package/dist/src/core/update-checker.d.ts.map +0 -1
- package/dist/src/core/update-checker.js +0 -156
- package/dist/src/core/update-checker.js.map +0 -1
- package/dist/src/error-handler.d.ts +0 -42
- package/dist/src/error-handler.d.ts.map +0 -1
- package/dist/src/error-handler.js +0 -155
- package/dist/src/error-handler.js.map +0 -1
- package/dist/src/frame-manager.d.ts +0 -106
- package/dist/src/frame-manager.d.ts.map +0 -1
- package/dist/src/frame-manager.js +0 -361
- package/dist/src/frame-manager.js.map +0 -1
- package/dist/src/integrations/browser-mcp.d.ts +0 -94
- package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
- package/dist/src/integrations/browser-mcp.js +0 -431
- package/dist/src/integrations/browser-mcp.js.map +0 -1
- package/dist/src/integrations/linear-auth.d.ts +0 -99
- package/dist/src/integrations/linear-auth.d.ts.map +0 -1
- package/dist/src/integrations/linear-auth.js +0 -319
- package/dist/src/integrations/linear-auth.js.map +0 -1
- package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
- package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
- package/dist/src/integrations/linear-auto-sync.js +0 -268
- package/dist/src/integrations/linear-auto-sync.js.map +0 -1
- package/dist/src/integrations/linear-client.d.ts +0 -86
- package/dist/src/integrations/linear-client.d.ts.map +0 -1
- package/dist/src/integrations/linear-client.js +0 -277
- package/dist/src/integrations/linear-client.js.map +0 -1
- package/dist/src/integrations/linear-config.d.ts +0 -51
- package/dist/src/integrations/linear-config.d.ts.map +0 -1
- package/dist/src/integrations/linear-config.js +0 -103
- package/dist/src/integrations/linear-config.js.map +0 -1
- package/dist/src/integrations/linear-sync.d.ts +0 -97
- package/dist/src/integrations/linear-sync.d.ts.map +0 -1
- package/dist/src/integrations/linear-sync.js +0 -391
- package/dist/src/integrations/linear-sync.js.map +0 -1
- package/dist/src/logger.d.ts +0 -24
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -120
- package/dist/src/logger.js.map +0 -1
- package/dist/src/mcp/mcp-server.d.ts +0 -40
- package/dist/src/mcp/mcp-server.d.ts.map +0 -1
- package/dist/src/mcp/mcp-server.js +0 -828
- package/dist/src/mcp/mcp-server.js.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -32
- package/dist/src/mcp-server.d.ts.map +0 -1
- package/dist/src/mcp-server.js +0 -441
- package/dist/src/mcp-server.js.map +0 -1
- package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
- package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
- package/dist/src/pebbles/pebbles-task-store.js +0 -335
- package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
- package/dist/src/pebbles/task-aware-context.d.ts +0 -103
- package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
- package/dist/src/pebbles/task-aware-context.js +0 -412
- package/dist/src/pebbles/task-aware-context.js.map +0 -1
- package/dist/src/railway/index.d.ts +0 -7
- package/dist/src/railway/index.d.ts.map +0 -1
- package/dist/src/railway/index.js +0 -401
- package/dist/src/railway/index.js.map +0 -1
- package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
- package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
- package/dist/src/runway/auth/auth-middleware.js +0 -337
- package/dist/src/runway/auth/auth-middleware.js.map +0 -1
- package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
- package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
- package/dist/src/runway/server/runway-mcp-server.js +0 -601
- package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
- package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
- package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
- package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
- package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
- package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
- package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
- package/dist/src/task-aware-context.d.ts +0 -103
- package/dist/src/task-aware-context.d.ts.map +0 -1
- package/dist/src/task-aware-context.js +0 -395
- package/dist/src/task-aware-context.js.map +0 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration types for StackMemory
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_WEIGHTS = {
|
|
5
|
+
base: 0.4,
|
|
6
|
+
impact: 0.3,
|
|
7
|
+
persistence: 0.2,
|
|
8
|
+
reference: 0.1,
|
|
9
|
+
};
|
|
10
|
+
export const DEFAULT_TOOL_SCORES = {
|
|
11
|
+
search: 0.95,
|
|
12
|
+
task_creation: 0.9,
|
|
13
|
+
decision_recording: 0.9,
|
|
14
|
+
context_retrieval: 0.85,
|
|
15
|
+
write: 0.75,
|
|
16
|
+
edit: 0.5,
|
|
17
|
+
test: 0.45,
|
|
18
|
+
bash: 0.4,
|
|
19
|
+
read: 0.25,
|
|
20
|
+
grep: 0.15,
|
|
21
|
+
};
|
|
22
|
+
export const PRESET_PROFILES = {
|
|
23
|
+
default: {
|
|
24
|
+
name: 'default',
|
|
25
|
+
description: 'Balanced configuration for general use',
|
|
26
|
+
scoring: {
|
|
27
|
+
weights: DEFAULT_WEIGHTS,
|
|
28
|
+
tool_scores: DEFAULT_TOOL_SCORES,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
'security-focused': {
|
|
32
|
+
name: 'security-focused',
|
|
33
|
+
description: 'Prioritizes security decisions and audit trails',
|
|
34
|
+
scoring: {
|
|
35
|
+
weights: {
|
|
36
|
+
base: 0.2,
|
|
37
|
+
impact: 0.5,
|
|
38
|
+
persistence: 0.2,
|
|
39
|
+
reference: 0.1,
|
|
40
|
+
},
|
|
41
|
+
tool_scores: {
|
|
42
|
+
decision_recording: 0.95,
|
|
43
|
+
bash: 0.8, // Security-critical commands
|
|
44
|
+
test: 0.7, // Security tests important
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
retention: {
|
|
48
|
+
local: {
|
|
49
|
+
young: '7d',
|
|
50
|
+
mature: '30d',
|
|
51
|
+
old: '90d', // Keep security decisions longer
|
|
52
|
+
max_size: '100MB',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
'exploration-heavy': {
|
|
57
|
+
name: 'exploration-heavy',
|
|
58
|
+
description: 'Optimized for codebase exploration and learning',
|
|
59
|
+
scoring: {
|
|
60
|
+
weights: {
|
|
61
|
+
base: 0.3,
|
|
62
|
+
impact: 0.1,
|
|
63
|
+
persistence: 0.1,
|
|
64
|
+
reference: 0.5, // Discovery paths matter most
|
|
65
|
+
},
|
|
66
|
+
tool_scores: {
|
|
67
|
+
search: 0.99,
|
|
68
|
+
grep: 0.3, // Grep more valuable during exploration
|
|
69
|
+
read: 0.4,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
performance: {
|
|
73
|
+
retrieval_timeout_ms: 1000, // Allow deeper searches
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
'production-system': {
|
|
77
|
+
name: 'production-system',
|
|
78
|
+
description: 'For production environments with stability focus',
|
|
79
|
+
scoring: {
|
|
80
|
+
weights: {
|
|
81
|
+
base: 0.2,
|
|
82
|
+
impact: 0.4,
|
|
83
|
+
persistence: 0.3, // Permanent changes critical
|
|
84
|
+
reference: 0.1,
|
|
85
|
+
},
|
|
86
|
+
tool_scores: {
|
|
87
|
+
write: 0.9, // File changes very important
|
|
88
|
+
edit: 0.85,
|
|
89
|
+
test: 0.8, // Testing critical
|
|
90
|
+
bash: 0.7, // Deploy commands
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
export const DEFAULT_CONFIG = {
|
|
96
|
+
version: '1.0',
|
|
97
|
+
scoring: {
|
|
98
|
+
weights: DEFAULT_WEIGHTS,
|
|
99
|
+
tool_scores: DEFAULT_TOOL_SCORES,
|
|
100
|
+
},
|
|
101
|
+
retention: {
|
|
102
|
+
local: {
|
|
103
|
+
young: '1d',
|
|
104
|
+
mature: '7d',
|
|
105
|
+
old: '30d',
|
|
106
|
+
max_size: '2GB',
|
|
107
|
+
},
|
|
108
|
+
remote: {
|
|
109
|
+
enabled: true,
|
|
110
|
+
endpoint: 'api.stackmemory.io',
|
|
111
|
+
retention: 'infinite',
|
|
112
|
+
},
|
|
113
|
+
generational_gc: {
|
|
114
|
+
young_strategy: 'keep_all',
|
|
115
|
+
mature_strategy: 'digest_only',
|
|
116
|
+
old_strategy: 'anchors_only',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
performance: {
|
|
120
|
+
max_stack_depth: 10000,
|
|
121
|
+
max_frame_events: 5000,
|
|
122
|
+
retrieval_timeout_ms: 500,
|
|
123
|
+
batch_upload_size: 100,
|
|
124
|
+
},
|
|
125
|
+
profiles: PRESET_PROFILES,
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-context management
|
|
3
|
+
* Automatically creates and manages context frames
|
|
4
|
+
*/
|
|
5
|
+
import { FrameManager } from './frame-manager.js';
|
|
6
|
+
export declare class AutoContext {
|
|
7
|
+
private frameManager;
|
|
8
|
+
constructor(frameManager: FrameManager);
|
|
9
|
+
/**
|
|
10
|
+
* Initialize a session context
|
|
11
|
+
*/
|
|
12
|
+
initializeSession(command?: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Create a command context
|
|
15
|
+
*/
|
|
16
|
+
createCommandContext(command: string, args?: any): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Auto-save important context
|
|
19
|
+
*/
|
|
20
|
+
autoSaveContext(data: any, importance?: number): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=auto-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-context.d.ts","sourceRoot":"","sources":["../../../../src/core/context/auto-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,EAAE,YAAY;IAItC;;OAEG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBzC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI;IAqBhE;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;CAezD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-context management
|
|
3
|
+
* Automatically creates and manages context frames
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from '../monitoring/logger.js';
|
|
6
|
+
export class AutoContext {
|
|
7
|
+
frameManager;
|
|
8
|
+
constructor(frameManager) {
|
|
9
|
+
this.frameManager = frameManager;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Initialize a session context
|
|
13
|
+
*/
|
|
14
|
+
initializeSession(command) {
|
|
15
|
+
try {
|
|
16
|
+
// Create a root session frame
|
|
17
|
+
const sessionFrame = this.frameManager.createFrame({
|
|
18
|
+
type: 'task',
|
|
19
|
+
name: 'Session',
|
|
20
|
+
inputs: {
|
|
21
|
+
command,
|
|
22
|
+
timestamp: new Date().toISOString(),
|
|
23
|
+
cwd: process.cwd(),
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
logger.info('Session context initialized', {
|
|
27
|
+
frameId: sessionFrame,
|
|
28
|
+
depth: this.frameManager.getStackDepth()
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
logger.error('Failed to initialize session context', error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a command context
|
|
37
|
+
*/
|
|
38
|
+
createCommandContext(command, args) {
|
|
39
|
+
try {
|
|
40
|
+
const frameId = this.frameManager.createFrame({
|
|
41
|
+
type: 'tool_scope',
|
|
42
|
+
name: command,
|
|
43
|
+
inputs: args
|
|
44
|
+
});
|
|
45
|
+
logger.info('Command context created', {
|
|
46
|
+
frameId,
|
|
47
|
+
command,
|
|
48
|
+
depth: this.frameManager.getStackDepth()
|
|
49
|
+
});
|
|
50
|
+
return frameId;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
logger.error('Failed to create command context', error);
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Auto-save important context
|
|
59
|
+
*/
|
|
60
|
+
autoSaveContext(data, importance = 5) {
|
|
61
|
+
try {
|
|
62
|
+
const currentFrame = this.frameManager.getCurrentFrameId();
|
|
63
|
+
if (currentFrame) {
|
|
64
|
+
this.frameManager.addEvent('observation', {
|
|
65
|
+
type: 'context_save',
|
|
66
|
+
data,
|
|
67
|
+
importance,
|
|
68
|
+
timestamp: new Date().toISOString()
|
|
69
|
+
}, currentFrame);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger.error('Failed to auto-save context', error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=auto-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-context.js","sourceRoot":"","sources":["../../../../src/core/context/auto-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,OAAO,WAAW;IACd,YAAY,CAAe;IAEnC,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAgB;QAChC,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;gBACjD,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE;oBACN,OAAO;oBACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;iBACnB;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACzC,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAc,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAe,EAAE,IAAU;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;gBAC5C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACrC,OAAO;gBACP,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;aACzC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAc,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAS,EAAE,aAAqB,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAC3D,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE;oBACxC,IAAI,EAAE,cAAc;oBACpB,IAAI;oBACJ,UAAU;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,EAAE,YAAY,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAc,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compaction Handler for Claude Code Autocompaction
|
|
3
|
+
* Preserves critical context across token limit boundaries
|
|
4
|
+
*/
|
|
5
|
+
import { FrameManager } from './frame-manager.js';
|
|
6
|
+
export interface CompactionMetrics {
|
|
7
|
+
estimatedTokens: number;
|
|
8
|
+
warningThreshold: number;
|
|
9
|
+
criticalThreshold: number;
|
|
10
|
+
lastCompactionAt?: number;
|
|
11
|
+
anchorsPreserved: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ToolCallSummary {
|
|
14
|
+
tool: string;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
key_inputs: Record<string, any>;
|
|
17
|
+
key_outputs: Record<string, any>;
|
|
18
|
+
files_affected: string[];
|
|
19
|
+
success: boolean;
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface CriticalContextAnchor {
|
|
23
|
+
anchor_id: string;
|
|
24
|
+
type: 'COMPACTION_PRESERVE';
|
|
25
|
+
priority: 10;
|
|
26
|
+
content: {
|
|
27
|
+
tool_calls: ToolCallSummary[];
|
|
28
|
+
decisions: string[];
|
|
29
|
+
file_operations: FileOperation[];
|
|
30
|
+
error_resolutions: ErrorPattern[];
|
|
31
|
+
};
|
|
32
|
+
created_at: number;
|
|
33
|
+
token_estimate: number;
|
|
34
|
+
}
|
|
35
|
+
export interface FileOperation {
|
|
36
|
+
type: 'read' | 'write' | 'edit' | 'delete' | 'create';
|
|
37
|
+
path: string;
|
|
38
|
+
timestamp: number;
|
|
39
|
+
success: boolean;
|
|
40
|
+
error?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ErrorPattern {
|
|
43
|
+
error: string;
|
|
44
|
+
resolution: string;
|
|
45
|
+
tool_sequence: string[];
|
|
46
|
+
timestamp: number;
|
|
47
|
+
}
|
|
48
|
+
export declare class CompactionHandler {
|
|
49
|
+
private frameManager;
|
|
50
|
+
private metrics;
|
|
51
|
+
private tokenAccumulator;
|
|
52
|
+
private preservedAnchors;
|
|
53
|
+
constructor(frameManager: FrameManager);
|
|
54
|
+
/**
|
|
55
|
+
* Track token usage from a message
|
|
56
|
+
*/
|
|
57
|
+
trackTokens(content: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Check if approaching compaction threshold
|
|
60
|
+
*/
|
|
61
|
+
isApproachingCompaction(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Check if past critical threshold
|
|
64
|
+
*/
|
|
65
|
+
isPastCriticalThreshold(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Detect if compaction likely occurred
|
|
68
|
+
*/
|
|
69
|
+
detectCompactionEvent(content: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Preserve critical context before compaction
|
|
72
|
+
*/
|
|
73
|
+
preserveCriticalContext(): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Extract tool calls from events
|
|
76
|
+
*/
|
|
77
|
+
private extractToolCalls;
|
|
78
|
+
/**
|
|
79
|
+
* Extract key inputs from tool call
|
|
80
|
+
*/
|
|
81
|
+
private extractKeyInputs;
|
|
82
|
+
/**
|
|
83
|
+
* Extract key outputs from tool result
|
|
84
|
+
*/
|
|
85
|
+
private extractKeyOutputs;
|
|
86
|
+
/**
|
|
87
|
+
* Extract affected files from tool events
|
|
88
|
+
*/
|
|
89
|
+
private extractAffectedFiles;
|
|
90
|
+
/**
|
|
91
|
+
* Extract file operations from events
|
|
92
|
+
*/
|
|
93
|
+
private extractFileOperations;
|
|
94
|
+
/**
|
|
95
|
+
* Map tool name to file operation type
|
|
96
|
+
*/
|
|
97
|
+
private mapToolToOperation;
|
|
98
|
+
/**
|
|
99
|
+
* Extract decisions from events
|
|
100
|
+
*/
|
|
101
|
+
private extractDecisions;
|
|
102
|
+
/**
|
|
103
|
+
* Extract error patterns and resolutions
|
|
104
|
+
*/
|
|
105
|
+
private extractErrorPatterns;
|
|
106
|
+
/**
|
|
107
|
+
* Restore context after compaction detected
|
|
108
|
+
*/
|
|
109
|
+
restoreContext(): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Get current metrics
|
|
112
|
+
*/
|
|
113
|
+
getMetrics(): CompactionMetrics;
|
|
114
|
+
/**
|
|
115
|
+
* Reset token counter (e.g., at session start)
|
|
116
|
+
*/
|
|
117
|
+
resetTokenCount(): void;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=compaction-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-handler.d.ts","sourceRoot":"","sources":["../../../../src/core/context/compaction-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAGjE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE;QACP,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,EAAE,aAAa,EAAE,CAAC;QACjC,iBAAiB,EAAE,YAAY,EAAE,CAAC;KACnC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,gBAAgB,CAAiD;gBAE7D,YAAY,EAAE,YAAY;IAUtC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAYlC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgB/C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwD9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkErC;;OAEG;IACH,UAAU,IAAI,iBAAiB;IAI/B;;OAEG;IACH,eAAe,IAAI,IAAI;CAKxB"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compaction Handler for Claude Code Autocompaction
|
|
3
|
+
* Preserves critical context across token limit boundaries
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from '../monitoring/logger.js';
|
|
6
|
+
export class CompactionHandler {
|
|
7
|
+
frameManager;
|
|
8
|
+
metrics;
|
|
9
|
+
tokenAccumulator = 0;
|
|
10
|
+
preservedAnchors = new Map();
|
|
11
|
+
constructor(frameManager) {
|
|
12
|
+
this.frameManager = frameManager;
|
|
13
|
+
this.metrics = {
|
|
14
|
+
estimatedTokens: 0,
|
|
15
|
+
warningThreshold: 150000, // 150K tokens
|
|
16
|
+
criticalThreshold: 170000, // 170K tokens
|
|
17
|
+
anchorsPreserved: 0,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Track token usage from a message
|
|
22
|
+
*/
|
|
23
|
+
trackTokens(content) {
|
|
24
|
+
// Rough estimation: 1 token ≈ 4 characters
|
|
25
|
+
const estimatedTokens = Math.ceil(content.length / 4);
|
|
26
|
+
this.tokenAccumulator += estimatedTokens;
|
|
27
|
+
this.metrics.estimatedTokens += estimatedTokens;
|
|
28
|
+
// Check thresholds
|
|
29
|
+
if (this.isApproachingCompaction()) {
|
|
30
|
+
this.preserveCriticalContext();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if approaching compaction threshold
|
|
35
|
+
*/
|
|
36
|
+
isApproachingCompaction() {
|
|
37
|
+
return this.metrics.estimatedTokens >= this.metrics.warningThreshold;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if past critical threshold
|
|
41
|
+
*/
|
|
42
|
+
isPastCriticalThreshold() {
|
|
43
|
+
return this.metrics.estimatedTokens >= this.metrics.criticalThreshold;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detect if compaction likely occurred
|
|
47
|
+
*/
|
|
48
|
+
detectCompactionEvent(content) {
|
|
49
|
+
const compactionIndicators = [
|
|
50
|
+
'earlier in this conversation',
|
|
51
|
+
'previously discussed',
|
|
52
|
+
'as mentioned before',
|
|
53
|
+
'summarized for brevity',
|
|
54
|
+
'[conversation compressed]',
|
|
55
|
+
'[context truncated]',
|
|
56
|
+
];
|
|
57
|
+
const lowerContent = content.toLowerCase();
|
|
58
|
+
return compactionIndicators.some((indicator) => lowerContent.includes(indicator));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Preserve critical context before compaction
|
|
62
|
+
*/
|
|
63
|
+
async preserveCriticalContext() {
|
|
64
|
+
try {
|
|
65
|
+
const currentFrameId = this.frameManager.getCurrentFrameId();
|
|
66
|
+
if (!currentFrameId) {
|
|
67
|
+
logger.warn('No active frame to preserve context from');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Get events from current frame
|
|
71
|
+
const events = this.frameManager.getFrameEvents(currentFrameId);
|
|
72
|
+
// Extract critical information
|
|
73
|
+
const toolCalls = this.extractToolCalls(events);
|
|
74
|
+
const fileOps = this.extractFileOperations(events);
|
|
75
|
+
const decisions = this.extractDecisions(events);
|
|
76
|
+
const errorPatterns = this.extractErrorPatterns(events);
|
|
77
|
+
// Create preservation anchor
|
|
78
|
+
const anchor = {
|
|
79
|
+
anchor_id: `compact_${Date.now()}`,
|
|
80
|
+
type: 'COMPACTION_PRESERVE',
|
|
81
|
+
priority: 10,
|
|
82
|
+
content: {
|
|
83
|
+
tool_calls: toolCalls,
|
|
84
|
+
file_operations: fileOps,
|
|
85
|
+
decisions: decisions,
|
|
86
|
+
error_resolutions: errorPatterns,
|
|
87
|
+
},
|
|
88
|
+
created_at: Date.now(),
|
|
89
|
+
token_estimate: this.metrics.estimatedTokens,
|
|
90
|
+
};
|
|
91
|
+
// Store in frame manager as high-priority anchor
|
|
92
|
+
this.frameManager.addAnchor('CONSTRAINT', // Using CONSTRAINT type for now
|
|
93
|
+
JSON.stringify(anchor), 10, {
|
|
94
|
+
compaction_preserve: true,
|
|
95
|
+
token_count: this.metrics.estimatedTokens,
|
|
96
|
+
}, currentFrameId);
|
|
97
|
+
// Store locally for quick access
|
|
98
|
+
this.preservedAnchors.set(anchor.anchor_id, anchor);
|
|
99
|
+
this.metrics.anchorsPreserved++;
|
|
100
|
+
logger.info(`Preserved critical context at ${this.metrics.estimatedTokens} tokens`);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
logger.error('Failed to preserve critical context:', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Extract tool calls from events
|
|
108
|
+
*/
|
|
109
|
+
extractToolCalls(events) {
|
|
110
|
+
const toolCalls = [];
|
|
111
|
+
const toolEvents = events.filter((e) => e.event_type === 'tool_call');
|
|
112
|
+
for (const event of toolEvents) {
|
|
113
|
+
const resultEvent = events.find((e) => e.event_type === 'tool_result' &&
|
|
114
|
+
e.seq > event.seq &&
|
|
115
|
+
e.payload.tool_name === event.payload.tool_name);
|
|
116
|
+
toolCalls.push({
|
|
117
|
+
tool: event.payload.tool_name || 'unknown',
|
|
118
|
+
timestamp: event.ts,
|
|
119
|
+
key_inputs: this.extractKeyInputs(event.payload),
|
|
120
|
+
key_outputs: resultEvent
|
|
121
|
+
? this.extractKeyOutputs(resultEvent.payload)
|
|
122
|
+
: {},
|
|
123
|
+
files_affected: this.extractAffectedFiles(event.payload, resultEvent?.payload),
|
|
124
|
+
success: resultEvent ? !resultEvent.payload.error : false,
|
|
125
|
+
error: resultEvent?.payload.error,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return toolCalls;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Extract key inputs from tool call
|
|
132
|
+
*/
|
|
133
|
+
extractKeyInputs(payload) {
|
|
134
|
+
const keys = [
|
|
135
|
+
'file_path',
|
|
136
|
+
'command',
|
|
137
|
+
'query',
|
|
138
|
+
'path',
|
|
139
|
+
'pattern',
|
|
140
|
+
'content',
|
|
141
|
+
];
|
|
142
|
+
const result = {};
|
|
143
|
+
for (const key of keys) {
|
|
144
|
+
if (payload.arguments?.[key]) {
|
|
145
|
+
result[key] = payload.arguments[key];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Extract key outputs from tool result
|
|
152
|
+
*/
|
|
153
|
+
extractKeyOutputs(payload) {
|
|
154
|
+
return {
|
|
155
|
+
success: !payload.error,
|
|
156
|
+
error: payload.error,
|
|
157
|
+
result_type: payload.result_type,
|
|
158
|
+
files_created: payload.files_created,
|
|
159
|
+
files_modified: payload.files_modified,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Extract affected files from tool events
|
|
164
|
+
*/
|
|
165
|
+
extractAffectedFiles(callPayload, resultPayload) {
|
|
166
|
+
const files = new Set();
|
|
167
|
+
// From tool call
|
|
168
|
+
if (callPayload?.arguments?.file_path) {
|
|
169
|
+
files.add(callPayload.arguments.file_path);
|
|
170
|
+
}
|
|
171
|
+
if (callPayload?.arguments?.path) {
|
|
172
|
+
files.add(callPayload.arguments.path);
|
|
173
|
+
}
|
|
174
|
+
// From tool result
|
|
175
|
+
if (resultPayload?.files_created) {
|
|
176
|
+
resultPayload.files_created.forEach((f) => files.add(f));
|
|
177
|
+
}
|
|
178
|
+
if (resultPayload?.files_modified) {
|
|
179
|
+
resultPayload.files_modified.forEach((f) => files.add(f));
|
|
180
|
+
}
|
|
181
|
+
return Array.from(files);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Extract file operations from events
|
|
185
|
+
*/
|
|
186
|
+
extractFileOperations(events) {
|
|
187
|
+
const fileOps = [];
|
|
188
|
+
const fileTools = ['Read', 'Write', 'Edit', 'MultiEdit', 'Delete'];
|
|
189
|
+
const toolEvents = events.filter((e) => e.event_type === 'tool_call' && fileTools.includes(e.payload.tool_name));
|
|
190
|
+
for (const event of toolEvents) {
|
|
191
|
+
const operation = this.mapToolToOperation(event.payload.tool_name);
|
|
192
|
+
const path = event.payload.arguments?.file_path ||
|
|
193
|
+
event.payload.arguments?.path ||
|
|
194
|
+
'unknown';
|
|
195
|
+
fileOps.push({
|
|
196
|
+
type: operation,
|
|
197
|
+
path: path,
|
|
198
|
+
timestamp: event.ts,
|
|
199
|
+
success: true, // Will be updated from result
|
|
200
|
+
error: undefined,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return fileOps;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Map tool name to file operation type
|
|
207
|
+
*/
|
|
208
|
+
mapToolToOperation(toolName) {
|
|
209
|
+
const mapping = {
|
|
210
|
+
Read: 'read',
|
|
211
|
+
Write: 'write',
|
|
212
|
+
Edit: 'edit',
|
|
213
|
+
MultiEdit: 'edit',
|
|
214
|
+
Delete: 'delete',
|
|
215
|
+
};
|
|
216
|
+
return mapping[toolName] || 'read';
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Extract decisions from events
|
|
220
|
+
*/
|
|
221
|
+
extractDecisions(events) {
|
|
222
|
+
const decisions = [];
|
|
223
|
+
const decisionEvents = events.filter((e) => e.event_type === 'decision');
|
|
224
|
+
for (const event of decisionEvents) {
|
|
225
|
+
if (event.payload.text) {
|
|
226
|
+
decisions.push(event.payload.text);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return decisions;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Extract error patterns and resolutions
|
|
233
|
+
*/
|
|
234
|
+
extractErrorPatterns(events) {
|
|
235
|
+
const patterns = [];
|
|
236
|
+
// Find tool results with errors
|
|
237
|
+
const errorEvents = events.filter((e) => e.event_type === 'tool_result' && e.payload.error);
|
|
238
|
+
for (const errorEvent of errorEvents) {
|
|
239
|
+
// Look for subsequent successful tool calls that might be resolutions
|
|
240
|
+
const subsequentTools = events
|
|
241
|
+
.filter((e) => e.event_type === 'tool_call' && e.seq > errorEvent.seq)
|
|
242
|
+
.slice(0, 3); // Next 3 tools might be resolution attempts
|
|
243
|
+
if (subsequentTools.length > 0) {
|
|
244
|
+
patterns.push({
|
|
245
|
+
error: errorEvent.payload.error,
|
|
246
|
+
resolution: `Attempted resolution with ${subsequentTools.map((t) => t.payload.tool_name).join(', ')}`,
|
|
247
|
+
tool_sequence: subsequentTools.map((t) => t.payload.tool_name),
|
|
248
|
+
timestamp: errorEvent.ts,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return patterns;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Restore context after compaction detected
|
|
256
|
+
*/
|
|
257
|
+
async restoreContext() {
|
|
258
|
+
if (this.preservedAnchors.size === 0) {
|
|
259
|
+
logger.warn('No preserved anchors to restore from');
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
// Get the most recent anchor
|
|
263
|
+
const anchors = Array.from(this.preservedAnchors.values());
|
|
264
|
+
anchors.sort((a, b) => b.created_at - a.created_at);
|
|
265
|
+
const latestAnchor = anchors[0];
|
|
266
|
+
// Create restoration frame
|
|
267
|
+
const restorationFrame = this.frameManager.createFrame({
|
|
268
|
+
type: 'review',
|
|
269
|
+
name: 'Context Restoration After Compaction',
|
|
270
|
+
inputs: { reason: 'autocompaction_detected' },
|
|
271
|
+
});
|
|
272
|
+
// Add restoration anchor
|
|
273
|
+
this.frameManager.addAnchor('FACT', `Context restored from token position ${latestAnchor.token_estimate}`, 10, { restoration: true }, restorationFrame);
|
|
274
|
+
// Add tool sequence summary
|
|
275
|
+
const toolSequence = latestAnchor.content.tool_calls
|
|
276
|
+
.map((t) => t.tool)
|
|
277
|
+
.join(' → ');
|
|
278
|
+
this.frameManager.addAnchor('FACT', `Tool sequence: ${toolSequence}`, 9, {}, restorationFrame);
|
|
279
|
+
// Add file operations summary
|
|
280
|
+
const files = new Set();
|
|
281
|
+
latestAnchor.content.file_operations.forEach((op) => files.add(op.path));
|
|
282
|
+
if (files.size > 0) {
|
|
283
|
+
this.frameManager.addAnchor('FACT', `Files touched: ${Array.from(files).join(', ')}`, 8, {}, restorationFrame);
|
|
284
|
+
}
|
|
285
|
+
// Add decisions
|
|
286
|
+
for (const decision of latestAnchor.content.decisions) {
|
|
287
|
+
this.frameManager.addAnchor('DECISION', decision, 7, {}, restorationFrame);
|
|
288
|
+
}
|
|
289
|
+
logger.info('Context restored after compaction detection');
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get current metrics
|
|
293
|
+
*/
|
|
294
|
+
getMetrics() {
|
|
295
|
+
return { ...this.metrics };
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Reset token counter (e.g., at session start)
|
|
299
|
+
*/
|
|
300
|
+
resetTokenCount() {
|
|
301
|
+
this.metrics.estimatedTokens = 0;
|
|
302
|
+
this.tokenAccumulator = 0;
|
|
303
|
+
this.metrics.lastCompactionAt = undefined;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=compaction-handler.js.map
|