@stackmemoryai/stackmemory 0.2.7 → 0.2.9
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 +25 -8
- package/dist/scripts/cancel-duplicate-tasks.js +2 -1
- package/dist/scripts/cancel-duplicate-tasks.js.map +1 -1
- package/dist/scripts/list-linear-tasks.js +3 -4
- package/dist/scripts/list-linear-tasks.js.map +1 -1
- package/dist/scripts/merge-linear-duplicates-safe.js +4 -2
- package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -1
- package/dist/scripts/show-linear-summary.js +4 -1
- package/dist/scripts/show-linear-summary.js.map +1 -1
- package/dist/scripts/status.js +6 -2
- package/dist/scripts/status.js.map +1 -1
- package/dist/src/cli/auto-detect.js.map +1 -1
- package/dist/src/cli/claude-sm.js.map +1 -1
- 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/linear.d.ts.map +1 -1
- package/dist/src/cli/commands/linear.js +123 -47
- package/dist/src/cli/commands/linear.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +48 -1
- package/dist/src/cli/index.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/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/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/digest/hybrid-digest-generator.d.ts +76 -0
- package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +1 -0
- package/dist/src/core/digest/hybrid-digest-generator.js +629 -0
- package/dist/src/core/digest/hybrid-digest-generator.js.map +1 -0
- package/dist/src/core/digest/index.d.ts +7 -0
- package/dist/src/core/digest/index.d.ts.map +1 -0
- package/dist/src/core/digest/index.js +7 -0
- package/dist/src/core/digest/index.js.map +1 -0
- package/dist/src/core/digest/types.d.ts +154 -0
- package/dist/src/core/digest/types.d.ts.map +1 -0
- package/dist/src/core/digest/types.js +18 -0
- package/dist/src/core/digest/types.js.map +1 -0
- package/dist/src/core/monitoring/logger.d.ts +2 -2
- package/dist/src/core/monitoring/logger.d.ts.map +1 -1
- package/dist/src/core/monitoring/logger.js +10 -5
- package/dist/src/core/monitoring/logger.js.map +1 -1
- package/dist/src/core/monitoring/metrics.d.ts +3 -0
- package/dist/src/core/monitoring/metrics.d.ts.map +1 -1
- package/dist/src/core/monitoring/metrics.js +142 -3
- package/dist/src/core/monitoring/metrics.js.map +1 -1
- package/dist/src/core/persistence/postgres-adapter.d.ts +31 -0
- package/dist/src/core/persistence/postgres-adapter.d.ts.map +1 -0
- package/dist/src/core/persistence/postgres-adapter.js +316 -0
- package/dist/src/core/persistence/postgres-adapter.js.map +1 -0
- 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/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/types.d.ts +35 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- 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/mcp/server.d.ts +8 -0
- package/dist/src/integrations/mcp/server.d.ts.map +1 -1
- package/dist/src/integrations/mcp/server.js +369 -17
- 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/integrations/pg-aiguide/embedding-provider.d.ts +48 -0
- package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +1 -0
- package/dist/src/integrations/pg-aiguide/embedding-provider.js +190 -0
- package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +1 -0
- package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +34 -0
- package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +1 -0
- package/dist/src/integrations/pg-aiguide/semantic-search.js +154 -0
- package/dist/src/integrations/pg-aiguide/semantic-search.js.map +1 -0
- package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +44 -0
- package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +1 -0
- package/dist/src/integrations/pg-aiguide/timescale-analytics.js +215 -0
- package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +1 -0
- package/dist/src/models/user.model.d.ts +55 -0
- package/dist/src/models/user.model.d.ts.map +1 -0
- package/dist/src/models/user.model.js +263 -0
- package/dist/src/models/user.model.js.map +1 -0
- package/dist/src/servers/production/auth-middleware.d.ts +7 -0
- package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
- package/dist/src/servers/production/auth-middleware.js +201 -26
- package/dist/src/servers/production/auth-middleware.js.map +1 -1
- package/dist/src/servers/railway/index.js.map +1 -1
- package/dist/src/services/config-service.d.ts +1 -1
- package/dist/src/services/config-service.d.ts.map +1 -1
- package/dist/src/services/config-service.js.map +1 -1
- package/dist/src/types/task.d.ts +11 -1
- package/dist/src/types/task.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +4 -4
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js.map +1 -1
- package/package.json +14 -8
- 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/scripts/merge-linear-duplicates.d.ts +0 -7
- package/dist/scripts/merge-linear-duplicates.d.ts.map +0 -1
- package/dist/scripts/merge-linear-duplicates.js +0 -126
- package/dist/scripts/merge-linear-duplicates.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/__tests__/index.test.d.ts +0 -5
- package/dist/src/cli/__tests__/index.test.d.ts.map +0 -1
- package/dist/src/cli/__tests__/index.test.js +0 -726
- package/dist/src/cli/__tests__/index.test.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/context/__tests__/frame-manager.test.d.ts +0 -5
- package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +0 -1
- package/dist/src/core/context/__tests__/frame-manager.test.js +0 -892
- package/dist/src/core/context/__tests__/frame-manager.test.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/errors/__tests__/error-handling.test.d.ts +0 -5
- package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +0 -1
- package/dist/src/core/errors/__tests__/error-handling.test.js +0 -239
- package/dist/src/core/errors/__tests__/error-handling.test.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/features/tasks/__tests__/pebbles-task-store.test.d.ts +0 -5
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +0 -1
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +0 -712
- package/dist/src/features/tasks/__tests__/pebbles-task-store.test.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/__tests__/auth.test.d.ts +0 -5
- package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +0 -1
- package/dist/src/integrations/linear/__tests__/auth.test.js +0 -517
- package/dist/src/integrations/linear/__tests__/auth.test.js.map +0 -1
- package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +0 -5
- package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +0 -1
- package/dist/src/integrations/linear/__tests__/sync-service.test.js +0 -700
- package/dist/src/integrations/linear/__tests__/sync-service.test.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/integrations/mcp/__tests__/server.test.d.ts +0 -5
- package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +0 -1
- package/dist/src/integrations/mcp/__tests__/server.test.js +0 -790
- package/dist/src/integrations/mcp/__tests__/server.test.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,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;IA2D9C;;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 instanceof Error ? error : undefined);
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-handler.js","sourceRoot":"","sources":["../../../../src/core/context/compaction-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-Aware Compaction Handler
|
|
3
|
+
* Dynamically adjusts thresholds based on detected Claude model
|
|
4
|
+
*/
|
|
5
|
+
export interface ModelProfile {
|
|
6
|
+
name: string;
|
|
7
|
+
contextWindow: number;
|
|
8
|
+
outputLimit: number;
|
|
9
|
+
warningThreshold: number;
|
|
10
|
+
criticalThreshold: number;
|
|
11
|
+
compactionZone: number;
|
|
12
|
+
characteristics: {
|
|
13
|
+
supportsLongContext: boolean;
|
|
14
|
+
betaFeatures?: string[];
|
|
15
|
+
costTier: 'low' | 'medium' | 'high' | 'premium';
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface ModelDetectionResult {
|
|
19
|
+
detectedModel: string;
|
|
20
|
+
confidence: number;
|
|
21
|
+
profile: ModelProfile;
|
|
22
|
+
source: 'header' | 'behavior' | 'default';
|
|
23
|
+
}
|
|
24
|
+
export declare class ModelAwareCompactionHandler {
|
|
25
|
+
private static readonly MODEL_PROFILES;
|
|
26
|
+
private currentModel;
|
|
27
|
+
private detectionHistory;
|
|
28
|
+
private tokenEstimate;
|
|
29
|
+
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Detect model from various signals
|
|
32
|
+
*/
|
|
33
|
+
detectModel(signals: {
|
|
34
|
+
headers?: Record<string, string>;
|
|
35
|
+
responsePatterns?: string;
|
|
36
|
+
tokenCount?: number;
|
|
37
|
+
outputLength?: number;
|
|
38
|
+
}): ModelDetectionResult;
|
|
39
|
+
/**
|
|
40
|
+
* Normalize model name to match our profiles
|
|
41
|
+
*/
|
|
42
|
+
private normalizeModelName;
|
|
43
|
+
/**
|
|
44
|
+
* Get adaptive thresholds based on current model
|
|
45
|
+
*/
|
|
46
|
+
getAdaptiveThresholds(): {
|
|
47
|
+
warning: number;
|
|
48
|
+
critical: number;
|
|
49
|
+
compaction: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Calculate preservation strategy based on model
|
|
53
|
+
*/
|
|
54
|
+
getPreservationStrategy(): {
|
|
55
|
+
aggressiveness: 'minimal' | 'balanced' | 'aggressive';
|
|
56
|
+
preserveRatio: number;
|
|
57
|
+
compressionLevel: 'light' | 'moderate' | 'heavy';
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Estimate tokens more accurately based on model
|
|
61
|
+
*/
|
|
62
|
+
estimateTokens(text: string): number;
|
|
63
|
+
/**
|
|
64
|
+
* Check if approaching any threshold
|
|
65
|
+
*/
|
|
66
|
+
checkThresholds(currentTokens: number): {
|
|
67
|
+
status: 'safe' | 'warning' | 'critical' | 'compaction';
|
|
68
|
+
percentage: number;
|
|
69
|
+
tokensRemaining: number;
|
|
70
|
+
recommendation: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Get model-specific compaction hints
|
|
74
|
+
*/
|
|
75
|
+
getCompactionHints(): string[];
|
|
76
|
+
/**
|
|
77
|
+
* Suggest optimal preservation points based on model
|
|
78
|
+
*/
|
|
79
|
+
getSuggestedPreservationPoints(): number[];
|
|
80
|
+
/**
|
|
81
|
+
* Get current model profile
|
|
82
|
+
*/
|
|
83
|
+
getCurrentModel(): ModelProfile;
|
|
84
|
+
/**
|
|
85
|
+
* Get detection history for diagnostics
|
|
86
|
+
*/
|
|
87
|
+
getDetectionHistory(): ModelDetectionResult[];
|
|
88
|
+
/**
|
|
89
|
+
* Update model manually (for testing or override)
|
|
90
|
+
*/
|
|
91
|
+
setModel(modelKey: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Export model profiles for reference
|
|
94
|
+
*/
|
|
95
|
+
static getAvailableModels(): string[];
|
|
96
|
+
/**
|
|
97
|
+
* Get specific model profile
|
|
98
|
+
*/
|
|
99
|
+
static getModelProfile(modelKey: string): ModelProfile | undefined;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=model-aware-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-aware-compaction.d.ts","sourceRoot":"","sources":["../../../../src/core/context/model-aware-compaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE;QACf,mBAAmB,EAAE,OAAO,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;KACjD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,2BAA2B;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAqRpC;IAEF,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,aAAa,CAAa;;IAQlC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,oBAAoB;IA4FxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmD1B;;OAEG;IACH,qBAAqB,IAAI;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB;IAQD;;OAEG;IACH,uBAAuB,IAAI;QACzB,cAAc,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;QACtD,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;KAClD;IA4BD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAyCpC;;OAEG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG;QACtC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;QACvD,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KACxB;IAkCD;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAuC9B;;OAEG;IACH,8BAA8B,IAAI,MAAM,EAAE;IAwB1C;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,mBAAmB,IAAI,oBAAoB,EAAE;IAI7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUnC;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAGnE"}
|