@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 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-handler.js","sourceRoot":"","sources":["../../../../src/core/context/compaction-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Manages nested frames representing the call stack of work
|
|
4
4
|
*/
|
|
5
5
|
import Database from 'better-sqlite3';
|
|
6
|
+
import { FrameQueryMode } from '../session/index.js';
|
|
6
7
|
export type FrameType = 'task' | 'subtask' | 'tool_scope' | 'review' | 'write' | 'debug';
|
|
7
8
|
export type FrameState = 'active' | 'closed';
|
|
8
9
|
export interface Frame {
|
|
@@ -52,9 +53,12 @@ export interface Event {
|
|
|
52
53
|
export declare class FrameManager {
|
|
53
54
|
private db;
|
|
54
55
|
private currentRunId;
|
|
56
|
+
private sessionId;
|
|
55
57
|
private projectId;
|
|
56
58
|
private activeStack;
|
|
59
|
+
private queryMode;
|
|
57
60
|
constructor(db: Database.Database, projectId: string, runId?: string);
|
|
61
|
+
setQueryMode(mode: FrameQueryMode): void;
|
|
58
62
|
private initializeSchema;
|
|
59
63
|
private loadActiveStack;
|
|
60
64
|
private buildStackOrder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/context/frame-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"frame-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/context/frame-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,87 +4,181 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
import { logger } from '../monitoring/logger.js';
|
|
7
|
-
import {
|
|
7
|
+
import { DatabaseError, FrameError, ErrorCode, createErrorHandler, } from '../errors/index.js';
|
|
8
|
+
import { sessionManager, FrameQueryMode } from '../session/index.js';
|
|
8
9
|
export class FrameManager {
|
|
9
10
|
db;
|
|
10
11
|
currentRunId;
|
|
12
|
+
sessionId;
|
|
11
13
|
projectId;
|
|
12
14
|
activeStack = []; // Stack of active frame IDs
|
|
15
|
+
queryMode = FrameQueryMode.PROJECT_ACTIVE;
|
|
13
16
|
constructor(db, projectId, runId) {
|
|
14
17
|
this.db = db;
|
|
15
18
|
this.projectId = projectId;
|
|
16
|
-
|
|
19
|
+
// Use session manager for run ID if available
|
|
20
|
+
const session = sessionManager.getCurrentSession();
|
|
21
|
+
if (session) {
|
|
22
|
+
this.currentRunId = session.runId;
|
|
23
|
+
this.sessionId = session.sessionId;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.currentRunId = runId || uuidv4();
|
|
27
|
+
this.sessionId = this.currentRunId; // Fallback for legacy behavior
|
|
28
|
+
}
|
|
17
29
|
this.initializeSchema();
|
|
18
30
|
this.loadActiveStack();
|
|
19
31
|
}
|
|
32
|
+
setQueryMode(mode) {
|
|
33
|
+
this.queryMode = mode;
|
|
34
|
+
this.loadActiveStack(); // Reload with new mode
|
|
35
|
+
}
|
|
20
36
|
initializeSchema() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
const errorHandler = createErrorHandler({
|
|
38
|
+
operation: 'initializeSchema',
|
|
39
|
+
projectId: this.projectId,
|
|
40
|
+
runId: this.currentRunId,
|
|
41
|
+
});
|
|
42
|
+
try {
|
|
43
|
+
// Enhanced frames table matching architecture
|
|
44
|
+
this.db.exec(`
|
|
45
|
+
CREATE TABLE IF NOT EXISTS frames (
|
|
46
|
+
frame_id TEXT PRIMARY KEY,
|
|
47
|
+
run_id TEXT NOT NULL,
|
|
48
|
+
project_id TEXT NOT NULL,
|
|
49
|
+
parent_frame_id TEXT REFERENCES frames(frame_id),
|
|
50
|
+
depth INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
type TEXT NOT NULL,
|
|
52
|
+
name TEXT NOT NULL,
|
|
53
|
+
state TEXT DEFAULT 'active',
|
|
54
|
+
inputs TEXT DEFAULT '{}',
|
|
55
|
+
outputs TEXT DEFAULT '{}',
|
|
56
|
+
digest_text TEXT,
|
|
57
|
+
digest_json TEXT DEFAULT '{}',
|
|
58
|
+
created_at INTEGER DEFAULT (unixepoch()),
|
|
59
|
+
closed_at INTEGER
|
|
60
|
+
);
|
|
39
61
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
CREATE TABLE IF NOT EXISTS events (
|
|
63
|
+
event_id TEXT PRIMARY KEY,
|
|
64
|
+
run_id TEXT NOT NULL,
|
|
65
|
+
frame_id TEXT NOT NULL,
|
|
66
|
+
seq INTEGER NOT NULL,
|
|
67
|
+
event_type TEXT NOT NULL,
|
|
68
|
+
payload TEXT NOT NULL,
|
|
69
|
+
ts INTEGER DEFAULT (unixepoch()),
|
|
70
|
+
FOREIGN KEY(frame_id) REFERENCES frames(frame_id)
|
|
71
|
+
);
|
|
50
72
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
73
|
+
CREATE TABLE IF NOT EXISTS anchors (
|
|
74
|
+
anchor_id TEXT PRIMARY KEY,
|
|
75
|
+
frame_id TEXT NOT NULL,
|
|
76
|
+
project_id TEXT NOT NULL,
|
|
77
|
+
type TEXT NOT NULL,
|
|
78
|
+
text TEXT NOT NULL,
|
|
79
|
+
priority INTEGER DEFAULT 0,
|
|
80
|
+
created_at INTEGER DEFAULT (unixepoch()),
|
|
81
|
+
metadata TEXT DEFAULT '{}',
|
|
82
|
+
FOREIGN KEY(frame_id) REFERENCES frames(frame_id)
|
|
83
|
+
);
|
|
62
84
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_frames_run ON frames(run_id);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS idx_frames_parent ON frames(parent_frame_id);
|
|
87
|
+
CREATE INDEX IF NOT EXISTS idx_frames_state ON frames(state);
|
|
88
|
+
CREATE INDEX IF NOT EXISTS idx_events_frame ON events(frame_id);
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_events_seq ON events(frame_id, seq);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_anchors_frame ON anchors(frame_id);
|
|
91
|
+
`);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
const dbError = errorHandler(error, {
|
|
95
|
+
operation: 'initializeSchema',
|
|
96
|
+
schema: 'frames',
|
|
97
|
+
});
|
|
98
|
+
if (dbError instanceof DatabaseError) {
|
|
99
|
+
throw new DatabaseError('Failed to initialize frame database schema', ErrorCode.DB_MIGRATION_FAILED, {
|
|
100
|
+
projectId: this.projectId,
|
|
101
|
+
operation: 'initializeSchema',
|
|
102
|
+
originalError: error,
|
|
103
|
+
}, error instanceof Error ? error : undefined);
|
|
104
|
+
}
|
|
105
|
+
throw dbError;
|
|
106
|
+
}
|
|
70
107
|
}
|
|
71
108
|
loadActiveStack() {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
.prepare(`
|
|
75
|
-
SELECT frame_id, parent_frame_id, depth
|
|
76
|
-
FROM frames
|
|
77
|
-
WHERE run_id = ? AND state = 'active'
|
|
78
|
-
ORDER BY depth ASC
|
|
79
|
-
`)
|
|
80
|
-
.all(this.currentRunId);
|
|
81
|
-
// Rebuild stack order
|
|
82
|
-
this.activeStack = this.buildStackOrder(activeFrames);
|
|
83
|
-
logger.info('Loaded active stack', {
|
|
109
|
+
const errorHandler = createErrorHandler({
|
|
110
|
+
operation: 'loadActiveStack',
|
|
84
111
|
runId: this.currentRunId,
|
|
85
|
-
|
|
86
|
-
activeFrames: this.activeStack,
|
|
112
|
+
projectId: this.projectId,
|
|
87
113
|
});
|
|
114
|
+
try {
|
|
115
|
+
let query;
|
|
116
|
+
let params;
|
|
117
|
+
// Build query based on query mode
|
|
118
|
+
switch (this.queryMode) {
|
|
119
|
+
case FrameQueryMode.ALL_ACTIVE:
|
|
120
|
+
query = `
|
|
121
|
+
SELECT frame_id, parent_frame_id, depth
|
|
122
|
+
FROM frames
|
|
123
|
+
WHERE state = 'active'
|
|
124
|
+
ORDER BY created_at DESC, depth ASC
|
|
125
|
+
`;
|
|
126
|
+
params = [];
|
|
127
|
+
break;
|
|
128
|
+
case FrameQueryMode.PROJECT_ACTIVE:
|
|
129
|
+
query = `
|
|
130
|
+
SELECT frame_id, parent_frame_id, depth, run_id
|
|
131
|
+
FROM frames
|
|
132
|
+
WHERE state = 'active' AND project_id = ?
|
|
133
|
+
ORDER BY created_at DESC, depth ASC
|
|
134
|
+
`;
|
|
135
|
+
params = [this.projectId];
|
|
136
|
+
break;
|
|
137
|
+
case FrameQueryMode.HISTORICAL:
|
|
138
|
+
query = `
|
|
139
|
+
SELECT frame_id, parent_frame_id, depth
|
|
140
|
+
FROM frames
|
|
141
|
+
WHERE project_id = ?
|
|
142
|
+
ORDER BY created_at DESC, depth ASC
|
|
143
|
+
`;
|
|
144
|
+
params = [this.projectId];
|
|
145
|
+
break;
|
|
146
|
+
case FrameQueryMode.CURRENT_SESSION:
|
|
147
|
+
default:
|
|
148
|
+
query = `
|
|
149
|
+
SELECT frame_id, parent_frame_id, depth
|
|
150
|
+
FROM frames
|
|
151
|
+
WHERE run_id = ? AND state = 'active'
|
|
152
|
+
ORDER BY depth ASC
|
|
153
|
+
`;
|
|
154
|
+
params = [this.currentRunId];
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
const activeFrames = this.db.prepare(query).all(...params);
|
|
158
|
+
// Rebuild stack order
|
|
159
|
+
this.activeStack = this.buildStackOrder(activeFrames);
|
|
160
|
+
logger.info('Loaded active stack', {
|
|
161
|
+
runId: this.currentRunId,
|
|
162
|
+
stackDepth: this.activeStack.length,
|
|
163
|
+
activeFrames: this.activeStack,
|
|
164
|
+
queryMode: this.queryMode,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
const dbError = errorHandler(error, {
|
|
169
|
+
query: 'Frame loading query',
|
|
170
|
+
runId: this.currentRunId,
|
|
171
|
+
queryMode: this.queryMode,
|
|
172
|
+
});
|
|
173
|
+
if (dbError instanceof DatabaseError) {
|
|
174
|
+
throw new DatabaseError('Failed to load active frame stack', ErrorCode.DB_QUERY_FAILED, {
|
|
175
|
+
runId: this.currentRunId,
|
|
176
|
+
projectId: this.projectId,
|
|
177
|
+
operation: 'loadActiveStack',
|
|
178
|
+
}, error instanceof Error ? error : undefined);
|
|
179
|
+
}
|
|
180
|
+
throw dbError;
|
|
181
|
+
}
|
|
88
182
|
}
|
|
89
183
|
buildStackOrder(frames) {
|
|
90
184
|
const stack = [];
|
|
@@ -123,13 +217,25 @@ export class FrameManager {
|
|
|
123
217
|
inputs: options.inputs || {},
|
|
124
218
|
created_at: Math.floor(Date.now() / 1000),
|
|
125
219
|
};
|
|
126
|
-
|
|
127
|
-
.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
220
|
+
try {
|
|
221
|
+
this.db
|
|
222
|
+
.prepare(`
|
|
223
|
+
INSERT INTO frames (
|
|
224
|
+
frame_id, run_id, project_id, parent_frame_id, depth, type, name, state, inputs, created_at
|
|
225
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
226
|
+
`)
|
|
227
|
+
.run(frame.frame_id, frame.run_id, frame.project_id, frame.parent_frame_id, frame.depth, frame.type, frame.name, frame.state, JSON.stringify(frame.inputs), frame.created_at);
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
throw new DatabaseError(`Failed to create frame: ${options.name}`, ErrorCode.DB_QUERY_FAILED, {
|
|
231
|
+
frameId,
|
|
232
|
+
frameType: options.type,
|
|
233
|
+
frameName: options.name,
|
|
234
|
+
parentFrameId,
|
|
235
|
+
depth,
|
|
236
|
+
operation: 'createFrame',
|
|
237
|
+
}, error instanceof Error ? error : undefined);
|
|
238
|
+
}
|
|
133
239
|
// Push to active stack
|
|
134
240
|
this.activeStack.push(frameId);
|
|
135
241
|
logger.info('Created frame', {
|
|
@@ -148,12 +254,20 @@ export class FrameManager {
|
|
|
148
254
|
closeFrame(frameId, outputs) {
|
|
149
255
|
const targetFrameId = frameId || this.getCurrentFrameId();
|
|
150
256
|
if (!targetFrameId) {
|
|
151
|
-
throw new
|
|
257
|
+
throw new FrameError('No active frame to close', ErrorCode.FRAME_INVALID_STATE, {
|
|
258
|
+
operation: 'closeFrame',
|
|
259
|
+
activeStack: this.activeStack,
|
|
260
|
+
stackDepth: this.activeStack.length,
|
|
261
|
+
});
|
|
152
262
|
}
|
|
153
263
|
// Get frame details
|
|
154
264
|
const frame = this.getFrame(targetFrameId);
|
|
155
265
|
if (!frame) {
|
|
156
|
-
throw new
|
|
266
|
+
throw new FrameError(`Frame not found: ${targetFrameId}`, ErrorCode.FRAME_NOT_FOUND, {
|
|
267
|
+
frameId: targetFrameId,
|
|
268
|
+
operation: 'closeFrame',
|
|
269
|
+
runId: this.currentRunId,
|
|
270
|
+
});
|
|
157
271
|
}
|
|
158
272
|
if (frame.state === 'closed') {
|
|
159
273
|
logger.warn('Attempted to close already closed frame', {
|
|
@@ -164,18 +278,27 @@ export class FrameManager {
|
|
|
164
278
|
// Generate digest before closing
|
|
165
279
|
const digest = this.generateDigest(targetFrameId);
|
|
166
280
|
const finalOutputs = { ...outputs, ...digest.structured };
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
281
|
+
try {
|
|
282
|
+
// Update frame to closed state
|
|
283
|
+
this.db
|
|
284
|
+
.prepare(`
|
|
285
|
+
UPDATE frames
|
|
286
|
+
SET state = 'closed',
|
|
287
|
+
outputs = ?,
|
|
288
|
+
digest_text = ?,
|
|
289
|
+
digest_json = ?,
|
|
290
|
+
closed_at = unixepoch()
|
|
291
|
+
WHERE frame_id = ?
|
|
292
|
+
`)
|
|
293
|
+
.run(JSON.stringify(finalOutputs), digest.text, JSON.stringify(digest.structured), targetFrameId);
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
throw new DatabaseError(`Failed to close frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
297
|
+
frameId: targetFrameId,
|
|
298
|
+
frameName: frame.name,
|
|
299
|
+
operation: 'closeFrame',
|
|
300
|
+
}, error instanceof Error ? error : undefined);
|
|
301
|
+
}
|
|
179
302
|
// Remove from active stack
|
|
180
303
|
this.activeStack = this.activeStack.filter((id) => id !== targetFrameId);
|
|
181
304
|
// Close all child frames recursively
|
|
@@ -189,15 +312,31 @@ export class FrameManager {
|
|
|
189
312
|
});
|
|
190
313
|
}
|
|
191
314
|
closeChildFrames(parentFrameId) {
|
|
192
|
-
|
|
193
|
-
.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
315
|
+
try {
|
|
316
|
+
const children = this.db
|
|
317
|
+
.prepare(`
|
|
318
|
+
SELECT frame_id FROM frames
|
|
319
|
+
WHERE parent_frame_id = ? AND state = 'active'
|
|
320
|
+
`)
|
|
321
|
+
.all(parentFrameId);
|
|
322
|
+
children.forEach((child) => {
|
|
323
|
+
try {
|
|
324
|
+
this.closeFrame(child.frame_id);
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
logger.error('Failed to close child frame', error instanceof Error ? error : new Error(String(error)), {
|
|
328
|
+
parentFrameId,
|
|
329
|
+
childFrameId: child.frame_id,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
throw new DatabaseError(`Failed to close child frames for parent: ${parentFrameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
336
|
+
parentFrameId,
|
|
337
|
+
operation: 'closeChildFrames',
|
|
338
|
+
}, error instanceof Error ? error : undefined);
|
|
339
|
+
}
|
|
201
340
|
}
|
|
202
341
|
/**
|
|
203
342
|
* Generate digest for a frame
|
|
@@ -207,7 +346,11 @@ export class FrameManager {
|
|
|
207
346
|
const events = this.getFrameEvents(frameId);
|
|
208
347
|
const anchors = this.getFrameAnchors(frameId);
|
|
209
348
|
if (!frame) {
|
|
210
|
-
throw new
|
|
349
|
+
throw new FrameError(`Cannot generate digest: frame not found ${frameId}`, ErrorCode.FRAME_NOT_FOUND, {
|
|
350
|
+
frameId,
|
|
351
|
+
operation: 'generateDigest',
|
|
352
|
+
runId: this.currentRunId,
|
|
353
|
+
});
|
|
211
354
|
}
|
|
212
355
|
// Extract key information
|
|
213
356
|
const decisions = anchors.filter((a) => a.type === 'DECISION');
|
|
@@ -257,16 +400,31 @@ export class FrameManager {
|
|
|
257
400
|
addEvent(eventType, payload, frameId) {
|
|
258
401
|
const targetFrameId = frameId || this.getCurrentFrameId();
|
|
259
402
|
if (!targetFrameId) {
|
|
260
|
-
throw new
|
|
403
|
+
throw new FrameError('No active frame for event', ErrorCode.FRAME_INVALID_STATE, {
|
|
404
|
+
operation: 'addEvent',
|
|
405
|
+
eventType,
|
|
406
|
+
activeStack: this.activeStack,
|
|
407
|
+
});
|
|
261
408
|
}
|
|
262
409
|
const eventId = uuidv4();
|
|
263
410
|
const seq = this.getNextEventSequence(targetFrameId);
|
|
264
|
-
|
|
265
|
-
.
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
411
|
+
try {
|
|
412
|
+
this.db
|
|
413
|
+
.prepare(`
|
|
414
|
+
INSERT INTO events (event_id, run_id, frame_id, seq, event_type, payload)
|
|
415
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
416
|
+
`)
|
|
417
|
+
.run(eventId, this.currentRunId, targetFrameId, seq, eventType, JSON.stringify(payload));
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
throw new DatabaseError(`Failed to add event to frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
421
|
+
eventId,
|
|
422
|
+
frameId: targetFrameId,
|
|
423
|
+
eventType,
|
|
424
|
+
seq,
|
|
425
|
+
operation: 'addEvent',
|
|
426
|
+
}, error instanceof Error ? error : undefined);
|
|
427
|
+
}
|
|
270
428
|
return eventId;
|
|
271
429
|
}
|
|
272
430
|
/**
|
|
@@ -275,15 +433,30 @@ export class FrameManager {
|
|
|
275
433
|
addAnchor(type, text, priority = 0, metadata = {}, frameId) {
|
|
276
434
|
const targetFrameId = frameId || this.getCurrentFrameId();
|
|
277
435
|
if (!targetFrameId) {
|
|
278
|
-
throw new
|
|
436
|
+
throw new FrameError('No active frame for anchor', ErrorCode.FRAME_INVALID_STATE, {
|
|
437
|
+
operation: 'addAnchor',
|
|
438
|
+
anchorType: type,
|
|
439
|
+
text: text.substring(0, 100),
|
|
440
|
+
activeStack: this.activeStack,
|
|
441
|
+
});
|
|
279
442
|
}
|
|
280
443
|
const anchorId = uuidv4();
|
|
281
|
-
|
|
282
|
-
.
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
444
|
+
try {
|
|
445
|
+
this.db
|
|
446
|
+
.prepare(`
|
|
447
|
+
INSERT INTO anchors (anchor_id, frame_id, project_id, type, text, priority, metadata)
|
|
448
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
449
|
+
`)
|
|
450
|
+
.run(anchorId, targetFrameId, this.projectId, type, text, priority, JSON.stringify(metadata));
|
|
451
|
+
}
|
|
452
|
+
catch (error) {
|
|
453
|
+
throw new DatabaseError(`Failed to add anchor to frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
454
|
+
anchorId,
|
|
455
|
+
frameId: targetFrameId,
|
|
456
|
+
anchorType: type,
|
|
457
|
+
operation: 'addAnchor',
|
|
458
|
+
}, error instanceof Error ? error : undefined);
|
|
459
|
+
}
|
|
287
460
|
return anchorId;
|
|
288
461
|
}
|
|
289
462
|
/**
|
|
@@ -329,49 +502,82 @@ export class FrameManager {
|
|
|
329
502
|
return frame?.depth || 0;
|
|
330
503
|
}
|
|
331
504
|
getFrame(frameId) {
|
|
332
|
-
|
|
333
|
-
.
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
505
|
+
try {
|
|
506
|
+
const row = this.db
|
|
507
|
+
.prepare(`
|
|
508
|
+
SELECT * FROM frames WHERE frame_id = ?
|
|
509
|
+
`)
|
|
510
|
+
.get(frameId);
|
|
511
|
+
if (!row)
|
|
512
|
+
return undefined;
|
|
513
|
+
return {
|
|
514
|
+
...row,
|
|
515
|
+
inputs: JSON.parse(row.inputs || '{}'),
|
|
516
|
+
outputs: JSON.parse(row.outputs || '{}'),
|
|
517
|
+
digest_json: JSON.parse(row.digest_json || '{}'),
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
catch (error) {
|
|
521
|
+
throw new DatabaseError(`Failed to get frame: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
522
|
+
frameId,
|
|
523
|
+
operation: 'getFrame',
|
|
524
|
+
}, error instanceof Error ? error : undefined);
|
|
525
|
+
}
|
|
345
526
|
}
|
|
346
527
|
getFrameEvents(frameId, limit) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
528
|
+
try {
|
|
529
|
+
const query = limit
|
|
530
|
+
? `SELECT * FROM events WHERE frame_id = ? ORDER BY seq DESC LIMIT ?`
|
|
531
|
+
: `SELECT * FROM events WHERE frame_id = ? ORDER BY seq ASC`;
|
|
532
|
+
const params = limit ? [frameId, limit] : [frameId];
|
|
533
|
+
const rows = this.db.prepare(query).all(...params);
|
|
534
|
+
return rows.map((row) => ({
|
|
535
|
+
...row,
|
|
536
|
+
payload: JSON.parse(row.payload),
|
|
537
|
+
}));
|
|
538
|
+
}
|
|
539
|
+
catch (error) {
|
|
540
|
+
throw new DatabaseError(`Failed to get frame events: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
541
|
+
frameId,
|
|
542
|
+
limit,
|
|
543
|
+
operation: 'getFrameEvents',
|
|
544
|
+
}, error instanceof Error ? error : undefined);
|
|
545
|
+
}
|
|
356
546
|
}
|
|
357
547
|
getFrameAnchors(frameId) {
|
|
358
|
-
|
|
359
|
-
.
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
548
|
+
try {
|
|
549
|
+
const rows = this.db
|
|
550
|
+
.prepare(`
|
|
551
|
+
SELECT * FROM anchors WHERE frame_id = ? ORDER BY priority DESC, created_at ASC
|
|
552
|
+
`)
|
|
553
|
+
.all(frameId);
|
|
554
|
+
return rows.map((row) => ({
|
|
555
|
+
...row,
|
|
556
|
+
metadata: JSON.parse(row.metadata || '{}'),
|
|
557
|
+
}));
|
|
558
|
+
}
|
|
559
|
+
catch (error) {
|
|
560
|
+
throw new DatabaseError(`Failed to get frame anchors: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
561
|
+
frameId,
|
|
562
|
+
operation: 'getFrameAnchors',
|
|
563
|
+
}, error instanceof Error ? error : undefined);
|
|
564
|
+
}
|
|
367
565
|
}
|
|
368
566
|
getNextEventSequence(frameId) {
|
|
369
|
-
|
|
370
|
-
.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
567
|
+
try {
|
|
568
|
+
const result = this.db
|
|
569
|
+
.prepare(`
|
|
570
|
+
SELECT MAX(seq) as max_seq FROM events WHERE frame_id = ?
|
|
571
|
+
`)
|
|
572
|
+
.get(frameId);
|
|
573
|
+
return (result.max_seq || 0) + 1;
|
|
574
|
+
}
|
|
575
|
+
catch (error) {
|
|
576
|
+
throw new DatabaseError(`Failed to get next event sequence for frame: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
|
|
577
|
+
frameId,
|
|
578
|
+
operation: 'getNextEventSequence',
|
|
579
|
+
}, error instanceof Error ? error : undefined);
|
|
580
|
+
}
|
|
375
581
|
}
|
|
376
582
|
extractConstraints(inputs) {
|
|
377
583
|
return inputs.constraints;
|