@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,425 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Detection and Bundling System
|
|
3
|
+
* Identifies chains of related tool calls and bundles them as single traces
|
|
4
|
+
*/
|
|
5
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
+
import { TraceType, DEFAULT_TRACE_CONFIG, TRACE_PATTERNS, } from './types';
|
|
7
|
+
import { ConfigManager } from '../config/config-manager';
|
|
8
|
+
import { TraceStore } from './trace-store';
|
|
9
|
+
export class TraceDetector {
|
|
10
|
+
config;
|
|
11
|
+
activeTrace = [];
|
|
12
|
+
lastToolTime = 0;
|
|
13
|
+
traces = [];
|
|
14
|
+
configManager;
|
|
15
|
+
traceStore;
|
|
16
|
+
constructor(config = {}, configManager, db) {
|
|
17
|
+
this.config = { ...DEFAULT_TRACE_CONFIG, ...config };
|
|
18
|
+
this.configManager = configManager || new ConfigManager();
|
|
19
|
+
if (db) {
|
|
20
|
+
this.traceStore = new TraceStore(db);
|
|
21
|
+
// Load existing traces from database
|
|
22
|
+
this.loadTracesFromStore();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Load traces from the database
|
|
27
|
+
*/
|
|
28
|
+
loadTracesFromStore() {
|
|
29
|
+
if (!this.traceStore)
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
// Load recent traces (last 24 hours)
|
|
33
|
+
const recentTraces = this.traceStore.getAllTraces();
|
|
34
|
+
const cutoff = Date.now() - 24 * 60 * 60 * 1000;
|
|
35
|
+
this.traces = recentTraces.filter((t) => t.metadata.startTime >= cutoff);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// If loading fails, start with empty traces
|
|
39
|
+
console.error('Failed to load traces from store:', error);
|
|
40
|
+
this.traces = [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Add a tool call and check if it belongs to current trace
|
|
45
|
+
*/
|
|
46
|
+
addToolCall(tool) {
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
// Check if this tool belongs to the current trace
|
|
49
|
+
if (this.shouldStartNewTrace(tool)) {
|
|
50
|
+
// Finalize current trace if it exists
|
|
51
|
+
if (this.activeTrace.length > 0) {
|
|
52
|
+
this.finalizeTrace();
|
|
53
|
+
}
|
|
54
|
+
// Start new trace
|
|
55
|
+
this.activeTrace = [tool];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Add to current trace
|
|
59
|
+
this.activeTrace.push(tool);
|
|
60
|
+
}
|
|
61
|
+
this.lastToolTime = tool.timestamp;
|
|
62
|
+
// Check if trace is getting too large
|
|
63
|
+
if (this.activeTrace.length >= this.config.maxTraceSize) {
|
|
64
|
+
this.finalizeTrace();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Determine if a tool call should start a new trace
|
|
69
|
+
*/
|
|
70
|
+
shouldStartNewTrace(tool) {
|
|
71
|
+
// First tool always starts a new trace
|
|
72
|
+
if (this.activeTrace.length === 0) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const lastTool = this.activeTrace[this.activeTrace.length - 1];
|
|
76
|
+
// Time proximity check
|
|
77
|
+
const timeDiff = tool.timestamp - lastTool.timestamp;
|
|
78
|
+
if (timeDiff > this.config.timeProximityMs) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
// Directory check if enabled
|
|
82
|
+
if (this.config.sameDirThreshold) {
|
|
83
|
+
const lastFiles = lastTool.filesAffected || [];
|
|
84
|
+
const currentFiles = tool.filesAffected || [];
|
|
85
|
+
if (lastFiles.length > 0 && currentFiles.length > 0) {
|
|
86
|
+
const lastDirs = lastFiles.map((f) => this.getDirectory(f));
|
|
87
|
+
const currentDirs = currentFiles.map((f) => this.getDirectory(f));
|
|
88
|
+
const hasCommonDir = lastDirs.some((d) => currentDirs.includes(d));
|
|
89
|
+
if (!hasCommonDir) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Causal relationship check
|
|
95
|
+
if (this.config.causalRelationship) {
|
|
96
|
+
// If last tool had an error and current tool is not a fix attempt, start new trace
|
|
97
|
+
if (lastTool.error && !this.isFixAttempt(tool, lastTool)) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if a tool is attempting to fix an error from previous tool
|
|
105
|
+
*/
|
|
106
|
+
isFixAttempt(current, previous) {
|
|
107
|
+
// Edit after error is likely a fix
|
|
108
|
+
if (previous.error &&
|
|
109
|
+
(current.tool === 'edit' || current.tool === 'write')) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
// Test after fix is validation
|
|
113
|
+
if (current.tool === 'test' || current.tool === 'bash') {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Finalize current trace and add to traces list
|
|
120
|
+
*/
|
|
121
|
+
finalizeTrace() {
|
|
122
|
+
if (this.activeTrace.length === 0)
|
|
123
|
+
return;
|
|
124
|
+
const trace = this.createTrace(this.activeTrace);
|
|
125
|
+
this.traces.push(trace);
|
|
126
|
+
// Persist to database if store is available
|
|
127
|
+
if (this.traceStore) {
|
|
128
|
+
try {
|
|
129
|
+
this.traceStore.saveTrace(trace);
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error('Failed to persist trace:', error);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
this.activeTrace = [];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create a trace from a sequence of tool calls
|
|
139
|
+
*/
|
|
140
|
+
createTrace(tools) {
|
|
141
|
+
const id = uuidv4();
|
|
142
|
+
const type = this.detectTraceType(tools);
|
|
143
|
+
const metadata = this.extractMetadata(tools);
|
|
144
|
+
const score = this.calculateTraceScore(tools, metadata);
|
|
145
|
+
const summary = this.generateSummary(tools, type, metadata);
|
|
146
|
+
const trace = {
|
|
147
|
+
id,
|
|
148
|
+
type,
|
|
149
|
+
tools,
|
|
150
|
+
score,
|
|
151
|
+
summary,
|
|
152
|
+
metadata,
|
|
153
|
+
};
|
|
154
|
+
// Check if trace should be compressed
|
|
155
|
+
const ageHours = (Date.now() - metadata.startTime) / (1000 * 60 * 60);
|
|
156
|
+
if (ageHours > this.config.compressionThreshold) {
|
|
157
|
+
trace.compressed = this.compressTrace(trace);
|
|
158
|
+
}
|
|
159
|
+
return trace;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Detect the type of trace based on tool patterns
|
|
163
|
+
*/
|
|
164
|
+
detectTraceType(tools) {
|
|
165
|
+
const toolSequence = tools.map((t) => t.tool);
|
|
166
|
+
// Check against known patterns
|
|
167
|
+
for (const pattern of TRACE_PATTERNS) {
|
|
168
|
+
if (this.matchesPattern(toolSequence, pattern.pattern)) {
|
|
169
|
+
return pattern.type;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Heuristic detection
|
|
173
|
+
if (toolSequence.includes('search') || toolSequence.includes('grep')) {
|
|
174
|
+
if (toolSequence.includes('edit')) {
|
|
175
|
+
return TraceType.SEARCH_DRIVEN;
|
|
176
|
+
}
|
|
177
|
+
return TraceType.EXPLORATION;
|
|
178
|
+
}
|
|
179
|
+
if (tools.some((t) => t.error)) {
|
|
180
|
+
return TraceType.ERROR_RECOVERY;
|
|
181
|
+
}
|
|
182
|
+
if (toolSequence.includes('test')) {
|
|
183
|
+
return TraceType.TESTING;
|
|
184
|
+
}
|
|
185
|
+
if (toolSequence.includes('write')) {
|
|
186
|
+
return TraceType.FEATURE_IMPLEMENTATION;
|
|
187
|
+
}
|
|
188
|
+
return TraceType.UNKNOWN;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if tool sequence matches a pattern
|
|
192
|
+
*/
|
|
193
|
+
matchesPattern(sequence, pattern) {
|
|
194
|
+
if (pattern instanceof RegExp) {
|
|
195
|
+
return pattern.test(sequence.join('→'));
|
|
196
|
+
}
|
|
197
|
+
if (Array.isArray(pattern)) {
|
|
198
|
+
// Check if pattern is a subsequence
|
|
199
|
+
let patternIndex = 0;
|
|
200
|
+
for (const tool of sequence) {
|
|
201
|
+
if (tool === pattern[patternIndex]) {
|
|
202
|
+
patternIndex++;
|
|
203
|
+
if (patternIndex >= pattern.length) {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Extract metadata from tool calls
|
|
213
|
+
*/
|
|
214
|
+
extractMetadata(tools) {
|
|
215
|
+
const startTime = tools[0].timestamp;
|
|
216
|
+
const endTime = tools[tools.length - 1].timestamp;
|
|
217
|
+
const filesModified = new Set();
|
|
218
|
+
const errorsEncountered = [];
|
|
219
|
+
const decisionsRecorded = [];
|
|
220
|
+
let hasCausalChain = false;
|
|
221
|
+
for (let i = 0; i < tools.length; i++) {
|
|
222
|
+
const tool = tools[i];
|
|
223
|
+
// Collect files
|
|
224
|
+
if (tool.filesAffected) {
|
|
225
|
+
tool.filesAffected.forEach((f) => filesModified.add(f));
|
|
226
|
+
}
|
|
227
|
+
// Collect errors
|
|
228
|
+
if (tool.error) {
|
|
229
|
+
errorsEncountered.push(tool.error);
|
|
230
|
+
// Check if next tool is a fix attempt
|
|
231
|
+
if (i < tools.length - 1) {
|
|
232
|
+
const nextTool = tools[i + 1];
|
|
233
|
+
if (this.isFixAttempt(nextTool, tool)) {
|
|
234
|
+
hasCausalChain = true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Collect decisions (if tool is decision_recording)
|
|
239
|
+
if (tool.tool === 'decision_recording' && tool.arguments?.decision) {
|
|
240
|
+
decisionsRecorded.push(tool.arguments.decision);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
startTime,
|
|
245
|
+
endTime,
|
|
246
|
+
filesModified: Array.from(filesModified),
|
|
247
|
+
errorsEncountered,
|
|
248
|
+
decisionsRecorded,
|
|
249
|
+
causalChain: hasCausalChain,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Calculate importance score for a trace
|
|
254
|
+
*/
|
|
255
|
+
calculateTraceScore(tools, metadata) {
|
|
256
|
+
// Get individual tool scores
|
|
257
|
+
const toolScores = tools.map((t) => this.configManager.calculateScore(t.tool, {
|
|
258
|
+
filesAffected: t.filesAffected?.length || 0,
|
|
259
|
+
isPermanent: this.isPermanentChange(t),
|
|
260
|
+
referenceCount: 0, // Would need to track references
|
|
261
|
+
}));
|
|
262
|
+
// Use MAX strategy for trace scoring (highest tool determines trace importance)
|
|
263
|
+
const maxScore = Math.max(...toolScores);
|
|
264
|
+
// Apply bonuses
|
|
265
|
+
let score = maxScore;
|
|
266
|
+
// Bonus for causal chains (error→fix→verify)
|
|
267
|
+
if (metadata.causalChain) {
|
|
268
|
+
score = Math.min(score + 0.1, 1.0);
|
|
269
|
+
}
|
|
270
|
+
// Bonus for decisions
|
|
271
|
+
if (metadata.decisionsRecorded.length > 0) {
|
|
272
|
+
score = Math.min(score + 0.05 * metadata.decisionsRecorded.length, 1.0);
|
|
273
|
+
}
|
|
274
|
+
// Penalty for errors without fixes
|
|
275
|
+
if (metadata.errorsEncountered.length > 0 && !metadata.causalChain) {
|
|
276
|
+
score = Math.max(score - 0.1, 0);
|
|
277
|
+
}
|
|
278
|
+
return score;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Check if a tool call represents a permanent change
|
|
282
|
+
*/
|
|
283
|
+
isPermanentChange(tool) {
|
|
284
|
+
const permanentTools = ['write', 'edit', 'decision_recording'];
|
|
285
|
+
return permanentTools.includes(tool.tool);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Generate a summary for the trace
|
|
289
|
+
*/
|
|
290
|
+
generateSummary(tools, type, metadata) {
|
|
291
|
+
const toolChain = tools.map((t) => t.tool).join('→');
|
|
292
|
+
switch (type) {
|
|
293
|
+
case TraceType.SEARCH_DRIVEN:
|
|
294
|
+
return `Search-driven modification: ${toolChain}`;
|
|
295
|
+
case TraceType.ERROR_RECOVERY:
|
|
296
|
+
const error = metadata.errorsEncountered[0] || 'unknown error';
|
|
297
|
+
return `Error recovery: ${error} via ${toolChain}`;
|
|
298
|
+
case TraceType.FEATURE_IMPLEMENTATION:
|
|
299
|
+
const files = metadata.filesModified.length;
|
|
300
|
+
return `Feature implementation: ${files} files via ${toolChain}`;
|
|
301
|
+
case TraceType.REFACTORING:
|
|
302
|
+
return `Code refactoring: ${toolChain}`;
|
|
303
|
+
case TraceType.TESTING:
|
|
304
|
+
return `Test execution: ${toolChain}`;
|
|
305
|
+
case TraceType.EXPLORATION:
|
|
306
|
+
return `Codebase exploration: ${toolChain}`;
|
|
307
|
+
case TraceType.DEBUGGING:
|
|
308
|
+
return `Debugging session: ${toolChain}`;
|
|
309
|
+
case TraceType.BUILD_DEPLOY:
|
|
310
|
+
return `Build and deploy: ${toolChain}`;
|
|
311
|
+
default:
|
|
312
|
+
return `Tool sequence: ${toolChain}`;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Compress a trace for long-term storage
|
|
317
|
+
*/
|
|
318
|
+
compressTrace(trace) {
|
|
319
|
+
const pattern = trace.tools.map((t) => t.tool).join('→');
|
|
320
|
+
const duration = trace.metadata.endTime - trace.metadata.startTime;
|
|
321
|
+
return {
|
|
322
|
+
pattern,
|
|
323
|
+
summary: trace.summary,
|
|
324
|
+
score: trace.score,
|
|
325
|
+
toolCount: trace.tools.length,
|
|
326
|
+
duration,
|
|
327
|
+
timestamp: trace.metadata.startTime,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get directory from file path
|
|
332
|
+
*/
|
|
333
|
+
getDirectory(filePath) {
|
|
334
|
+
const parts = filePath.split('/');
|
|
335
|
+
parts.pop(); // Remove filename
|
|
336
|
+
return parts.join('/');
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Flush any pending trace
|
|
340
|
+
*/
|
|
341
|
+
flush() {
|
|
342
|
+
if (this.activeTrace.length > 0) {
|
|
343
|
+
this.finalizeTrace();
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Get all detected traces
|
|
348
|
+
*/
|
|
349
|
+
getTraces() {
|
|
350
|
+
return this.traces;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Get traces by type
|
|
354
|
+
*/
|
|
355
|
+
getTracesByType(type) {
|
|
356
|
+
return this.traces.filter((t) => t.type === type);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Get high-importance traces
|
|
360
|
+
*/
|
|
361
|
+
getHighImportanceTraces(threshold = 0.7) {
|
|
362
|
+
return this.traces.filter((t) => t.score >= threshold);
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Compress old traces
|
|
366
|
+
*/
|
|
367
|
+
compressOldTraces(ageHours = 24) {
|
|
368
|
+
let compressed = 0;
|
|
369
|
+
const now = Date.now();
|
|
370
|
+
for (const trace of this.traces) {
|
|
371
|
+
const age = (now - trace.metadata.startTime) / (1000 * 60 * 60);
|
|
372
|
+
if (age > ageHours && !trace.compressed) {
|
|
373
|
+
trace.compressed = this.compressTrace(trace);
|
|
374
|
+
// Optionally remove full tool data to save space
|
|
375
|
+
// trace.tools = [];
|
|
376
|
+
compressed++;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return compressed;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Export traces for analysis
|
|
383
|
+
*/
|
|
384
|
+
exportTraces() {
|
|
385
|
+
return JSON.stringify(this.traces, null, 2);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Get statistics about traces
|
|
389
|
+
*/
|
|
390
|
+
getStatistics() {
|
|
391
|
+
const stats = {
|
|
392
|
+
totalTraces: this.traces.length,
|
|
393
|
+
tracesByType: {},
|
|
394
|
+
averageScore: 0,
|
|
395
|
+
averageLength: 0,
|
|
396
|
+
compressedCount: 0,
|
|
397
|
+
highImportanceCount: 0,
|
|
398
|
+
};
|
|
399
|
+
if (this.traces.length === 0)
|
|
400
|
+
return stats;
|
|
401
|
+
let totalScore = 0;
|
|
402
|
+
let totalLength = 0;
|
|
403
|
+
for (const trace of this.traces) {
|
|
404
|
+
// Type distribution
|
|
405
|
+
stats.tracesByType[trace.type] =
|
|
406
|
+
(stats.tracesByType[trace.type] || 0) + 1;
|
|
407
|
+
// Scores
|
|
408
|
+
totalScore += trace.score;
|
|
409
|
+
// Length
|
|
410
|
+
totalLength += trace.tools.length;
|
|
411
|
+
// Compressed
|
|
412
|
+
if (trace.compressed) {
|
|
413
|
+
stats.compressedCount++;
|
|
414
|
+
}
|
|
415
|
+
// High importance
|
|
416
|
+
if (trace.score >= 0.7) {
|
|
417
|
+
stats.highImportanceCount++;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
stats.averageScore = totalScore / this.traces.length;
|
|
421
|
+
stats.averageLength = totalLength / this.traces.length;
|
|
422
|
+
return stats;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=trace-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-detector.js","sourceRoot":"","sources":["../../../../src/core/trace/trace-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Store - Database persistence for traces
|
|
3
|
+
*/
|
|
4
|
+
import Database from 'better-sqlite3';
|
|
5
|
+
import { Trace, TraceType } from './types.js';
|
|
6
|
+
export declare class TraceStore {
|
|
7
|
+
private db;
|
|
8
|
+
constructor(db: Database.Database);
|
|
9
|
+
/**
|
|
10
|
+
* Initialize database schema for traces
|
|
11
|
+
*/
|
|
12
|
+
private initializeSchema;
|
|
13
|
+
/**
|
|
14
|
+
* Save a trace to the database
|
|
15
|
+
*/
|
|
16
|
+
saveTrace(trace: Trace): void;
|
|
17
|
+
/**
|
|
18
|
+
* Load a trace by ID
|
|
19
|
+
*/
|
|
20
|
+
getTrace(id: string): Trace | null;
|
|
21
|
+
/**
|
|
22
|
+
* Load all traces
|
|
23
|
+
*/
|
|
24
|
+
getAllTraces(): Trace[];
|
|
25
|
+
/**
|
|
26
|
+
* Load traces by type
|
|
27
|
+
*/
|
|
28
|
+
getTracesByType(type: TraceType): Trace[];
|
|
29
|
+
/**
|
|
30
|
+
* Load traces by frame
|
|
31
|
+
*/
|
|
32
|
+
getTracesByFrame(frameId: string): Trace[];
|
|
33
|
+
/**
|
|
34
|
+
* Load high-importance traces
|
|
35
|
+
*/
|
|
36
|
+
getHighImportanceTraces(minScore?: number): Trace[];
|
|
37
|
+
/**
|
|
38
|
+
* Load error traces
|
|
39
|
+
*/
|
|
40
|
+
getErrorTraces(): Trace[];
|
|
41
|
+
/**
|
|
42
|
+
* Get trace statistics
|
|
43
|
+
*/
|
|
44
|
+
getStatistics(): {
|
|
45
|
+
totalTraces: number;
|
|
46
|
+
tracesByType: Record<string, number>;
|
|
47
|
+
averageScore: number;
|
|
48
|
+
averageLength: number;
|
|
49
|
+
errorRate: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Delete old traces
|
|
53
|
+
*/
|
|
54
|
+
deleteOldTraces(olderThanMs: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* Convert database rows to Trace object
|
|
57
|
+
*/
|
|
58
|
+
private rowsToTrace;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=trace-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-store.d.ts","sourceRoot":"","sources":["../../../../src/core/trace/trace-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,KAAK,EAEL,SAAS,EAGV,MAAM,YAAY,CAAC;AAGpB,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAKjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkFxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IA6D7B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAwBlC;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAsBvB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE;IAsBzC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE;IAsB1C;;OAEG;IACH,uBAAuB,CAAC,QAAQ,GAAE,MAAY,GAAG,KAAK,EAAE;IAsBxD;;OAEG;IACH,cAAc,IAAI,KAAK,EAAE;IAwBzB;;OAEG;IACH,aAAa,IAAI;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB;IAwCD;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAa5C;;OAEG;IACH,OAAO,CAAC,WAAW;CAwCpB"}
|