@stackmemoryai/stackmemory 0.3.0 → 0.3.3
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 +52 -272
- package/dist/cli/codex-sm.js +48 -19
- package/dist/cli/codex-sm.js.map +2 -2
- package/dist/cli/commands/clear.js +191 -0
- package/dist/cli/commands/clear.js.map +7 -0
- package/dist/cli/commands/config.js +152 -1
- package/dist/cli/commands/config.js.map +2 -2
- package/dist/cli/commands/dashboard.js +178 -0
- package/dist/cli/commands/dashboard.js.map +7 -0
- package/dist/cli/commands/handoff.js +125 -8
- package/dist/cli/commands/handoff.js.map +2 -2
- package/dist/cli/commands/linear-create.js +132 -0
- package/dist/cli/commands/linear-create.js.map +7 -0
- package/dist/cli/commands/linear-list.js +69 -0
- package/dist/cli/commands/linear-list.js.map +7 -0
- package/dist/cli/commands/linear-migrate.js +40 -0
- package/dist/cli/commands/linear-migrate.js.map +7 -0
- package/dist/cli/commands/linear.js +185 -36
- package/dist/cli/commands/linear.js.map +2 -2
- package/dist/cli/commands/monitor.js +309 -0
- package/dist/cli/commands/monitor.js.map +7 -0
- package/dist/cli/commands/quality.js +414 -0
- package/dist/cli/commands/quality.js.map +7 -0
- package/dist/cli/commands/storage.js +275 -0
- package/dist/cli/commands/storage.js.map +7 -0
- package/dist/cli/commands/tui.js +66 -0
- package/dist/cli/commands/tui.js.map +7 -0
- package/dist/cli/commands/workflow.js +134 -0
- package/dist/cli/commands/workflow.js.map +7 -0
- package/dist/cli/index.js +105 -9
- package/dist/cli/index.js.map +3 -3
- package/dist/core/analytics/team-analytics.js +374 -0
- package/dist/core/analytics/team-analytics.js.map +7 -0
- package/dist/core/context/context-bridge.js +234 -0
- package/dist/core/context/context-bridge.js.map +7 -0
- package/dist/core/context/dual-stack-manager.js +850 -0
- package/dist/core/context/dual-stack-manager.js.map +7 -0
- package/dist/core/context/frame-handoff-manager.js +384 -0
- package/dist/core/context/frame-handoff-manager.js.map +7 -0
- package/dist/core/context/frame-manager.js +132 -12
- package/dist/core/context/frame-manager.js.map +2 -2
- package/dist/core/context/permission-manager.js +181 -0
- package/dist/core/context/permission-manager.js.map +7 -0
- package/dist/core/context/shared-context-layer.js +386 -0
- package/dist/core/context/shared-context-layer.js.map +7 -0
- package/dist/core/context/stack-merge-resolver.js +600 -0
- package/dist/core/context/stack-merge-resolver.js.map +7 -0
- package/dist/core/context/validation.js +121 -0
- package/dist/core/context/validation.js.map +7 -0
- package/dist/core/database/connection-pool.js +266 -175
- package/dist/core/database/connection-pool.js.map +2 -2
- package/dist/core/database/database-adapter.js +51 -0
- package/dist/core/database/database-adapter.js.map +7 -0
- package/dist/core/database/migration-manager.js +514 -0
- package/dist/core/database/migration-manager.js.map +7 -0
- package/dist/core/database/paradedb-adapter.js +970 -0
- package/dist/core/database/paradedb-adapter.js.map +7 -0
- package/dist/core/database/query-router.js +421 -0
- package/dist/core/database/query-router.js.map +7 -0
- package/dist/core/database/sqlite-adapter.js +547 -0
- package/dist/core/database/sqlite-adapter.js.map +7 -0
- package/dist/core/errors/index.js +21 -1
- package/dist/core/errors/index.js.map +2 -2
- package/dist/core/frame/workflow-templates-stub.js +42 -0
- package/dist/core/frame/workflow-templates-stub.js.map +7 -0
- package/dist/core/frame/workflow-templates.js +276 -0
- package/dist/core/frame/workflow-templates.js.map +7 -0
- package/dist/core/merge/conflict-detector.js +5 -2
- package/dist/core/merge/conflict-detector.js.map +2 -2
- package/dist/core/merge/resolution-engine.js +3 -14
- package/dist/core/merge/resolution-engine.js.map +2 -2
- package/dist/core/merge/stack-diff.js.map +2 -2
- package/dist/core/monitoring/logger.js +18 -3
- package/dist/core/monitoring/logger.js.map +2 -2
- package/dist/core/monitoring/session-monitor.js +296 -0
- package/dist/core/monitoring/session-monitor.js.map +7 -0
- package/dist/core/retrieval/context-retriever.js +475 -0
- package/dist/core/retrieval/context-retriever.js.map +7 -0
- package/dist/core/retrieval/graph-retrieval.js +658 -0
- package/dist/core/retrieval/graph-retrieval.js.map +7 -0
- package/dist/core/retrieval/hierarchical-retrieval.js +652 -0
- package/dist/core/retrieval/hierarchical-retrieval.js.map +7 -0
- package/dist/core/retrieval/retrieval-benchmarks.js +517 -0
- package/dist/core/retrieval/retrieval-benchmarks.js.map +7 -0
- package/dist/core/session/clear-survival-stub.js +49 -0
- package/dist/core/session/clear-survival-stub.js.map +7 -0
- package/dist/core/session/clear-survival.js +426 -0
- package/dist/core/session/clear-survival.js.map +7 -0
- package/dist/core/session/handoff-generator.js +339 -0
- package/dist/core/session/handoff-generator.js.map +7 -0
- package/dist/core/session/session-manager.js +61 -26
- package/dist/core/session/session-manager.js.map +3 -3
- package/dist/core/skills/index.js +3 -0
- package/dist/core/skills/index.js.map +7 -0
- package/dist/core/skills/skill-storage.js +749 -0
- package/dist/core/skills/skill-storage.js.map +7 -0
- package/dist/core/skills/types.js +189 -0
- package/dist/core/skills/types.js.map +7 -0
- package/dist/core/storage/railway-optimized-storage.js +550 -0
- package/dist/core/storage/railway-optimized-storage.js.map +7 -0
- package/dist/core/storage/remote-storage.js +456 -0
- package/dist/core/storage/remote-storage.js.map +7 -0
- package/dist/core/trace/trace-detector.js +136 -5
- package/dist/core/trace/trace-detector.js.map +2 -2
- package/dist/core/trace/trace-store.js.map +2 -2
- package/dist/features/tui/components/analytics-panel.js +136 -0
- package/dist/features/tui/components/analytics-panel.js.map +7 -0
- package/dist/features/tui/components/frame-visualizer.js +377 -0
- package/dist/features/tui/components/frame-visualizer.js.map +7 -0
- package/dist/features/tui/components/pr-tracker.js +123 -0
- package/dist/features/tui/components/pr-tracker.js.map +7 -0
- package/dist/features/tui/components/session-monitor.js +286 -0
- package/dist/features/tui/components/session-monitor.js.map +7 -0
- package/dist/features/tui/components/subagent-fleet.js +388 -0
- package/dist/features/tui/components/subagent-fleet.js.map +7 -0
- package/dist/features/tui/components/task-board.js +475 -0
- package/dist/features/tui/components/task-board.js.map +7 -0
- package/dist/features/tui/index.js +397 -0
- package/dist/features/tui/index.js.map +7 -0
- package/dist/features/tui/services/data-service.js +654 -0
- package/dist/features/tui/services/data-service.js.map +7 -0
- package/dist/features/tui/services/websocket-client.js +149 -0
- package/dist/features/tui/services/websocket-client.js.map +7 -0
- package/dist/features/tui/terminal-compat.js +205 -0
- package/dist/features/tui/terminal-compat.js.map +7 -0
- package/dist/features/tui/types.js +1 -0
- package/dist/features/tui/types.js.map +7 -0
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +455 -0
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
- package/dist/integrations/claude-code/lifecycle-hooks.js +250 -0
- package/dist/integrations/claude-code/lifecycle-hooks.js.map +7 -0
- package/dist/integrations/claude-code/post-task-hooks.js +541 -0
- package/dist/integrations/claude-code/post-task-hooks.js.map +7 -0
- package/dist/integrations/linear/client.js +22 -4
- package/dist/integrations/linear/client.js.map +2 -2
- package/dist/integrations/linear/migration.js +299 -0
- package/dist/integrations/linear/migration.js.map +7 -0
- package/dist/integrations/linear/oauth-server.js +396 -0
- package/dist/integrations/linear/oauth-server.js.map +7 -0
- package/dist/integrations/linear/rest-client.js +199 -0
- package/dist/integrations/linear/rest-client.js.map +7 -0
- package/dist/integrations/linear/sync.js +14 -2
- package/dist/integrations/linear/sync.js.map +2 -2
- package/dist/integrations/linear/webhook-handler.js +200 -0
- package/dist/integrations/linear/webhook-handler.js.map +7 -0
- package/dist/integrations/mcp/handlers/skill-handlers.js +514 -0
- package/dist/integrations/mcp/handlers/skill-handlers.js.map +7 -0
- package/dist/integrations/mcp/middleware/tool-scoring.js +352 -0
- package/dist/integrations/mcp/middleware/tool-scoring.js.map +7 -0
- package/dist/integrations/mcp/refactored-server.js +31 -3
- package/dist/integrations/mcp/refactored-server.js.map +2 -2
- package/dist/integrations/mcp/server.js +25 -7
- package/dist/integrations/mcp/server.js.map +2 -2
- package/dist/mcp/stackmemory-mcp-server.js.map +1 -1
- package/dist/models/user.model.js +3 -0
- package/dist/models/user.model.js.map +2 -2
- package/dist/services/context-service.js.map +2 -2
- package/dist/utils/formatting.js +58 -0
- package/dist/utils/formatting.js.map +7 -0
- package/package.json +24 -5
- package/dist/cli/__tests__/index.test.js +0 -290
- package/dist/cli/__tests__/index.test.js.map +0 -7
- package/dist/core/config/__tests__/config-manager.test.js +0 -248
- package/dist/core/config/__tests__/config-manager.test.js.map +0 -7
- package/dist/core/context/__tests__/frame-manager.test.js +0 -879
- package/dist/core/context/__tests__/frame-manager.test.js.map +0 -7
- package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js +0 -379
- package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js.map +0 -7
- package/dist/core/digest/__tests__/frame-digest-integration.test.js +0 -230
- package/dist/core/digest/__tests__/frame-digest-integration.test.js.map +0 -7
- package/dist/core/errors/__tests__/error-handling.test.js +0 -270
- package/dist/core/errors/__tests__/error-handling.test.js.map +0 -7
- package/dist/core/merge/__tests__/conflict-scenarios.test.js +0 -414
- package/dist/core/merge/__tests__/conflict-scenarios.test.js.map +0 -7
- package/dist/core/query/__tests__/query-parser.test.js +0 -301
- package/dist/core/query/__tests__/query-parser.test.js.map +0 -7
- package/dist/core/query/__tests__/query-templates.test.js +0 -210
- package/dist/core/query/__tests__/query-templates.test.js.map +0 -7
- package/dist/core/trace/trace-detector.test.js +0 -401
- package/dist/core/trace/trace-detector.test.js.map +0 -7
- package/dist/features/tasks/__tests__/pebbles-task-store.test.js +0 -747
- package/dist/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -7
- package/dist/integrations/linear/__tests__/auth.test.js +0 -558
- package/dist/integrations/linear/__tests__/auth.test.js.map +0 -7
- package/dist/integrations/linear/__tests__/sync-service.test.js +0 -760
- package/dist/integrations/linear/__tests__/sync-service.test.js.map +0 -7
- package/dist/integrations/mcp/__tests__/server.test.js +0 -798
- package/dist/integrations/mcp/__tests__/server.test.js.map +0 -7
- package/dist/scripts/benchmark-performance.d.ts +0 -7
- package/dist/scripts/benchmark-performance.d.ts.map +0 -1
- package/dist/scripts/benchmark-performance.js +0 -44
- package/dist/scripts/benchmark-performance.js.map +0 -1
- package/dist/scripts/cancel-duplicate-tasks.d.ts +0 -7
- package/dist/scripts/cancel-duplicate-tasks.d.ts.map +0 -1
- package/dist/scripts/cancel-duplicate-tasks.js +0 -172
- package/dist/scripts/cancel-duplicate-tasks.js.map +0 -1
- package/dist/scripts/cleanup-duplicate-tasks.d.ts +0 -12
- package/dist/scripts/cleanup-duplicate-tasks.d.ts.map +0 -1
- package/dist/scripts/cleanup-duplicate-tasks.js +0 -215
- package/dist/scripts/cleanup-duplicate-tasks.js.map +0 -1
- package/dist/scripts/initialize.d.ts +0 -6
- package/dist/scripts/initialize.d.ts.map +0 -1
- package/dist/scripts/initialize.js +0 -93
- package/dist/scripts/initialize.js.map +0 -1
- package/dist/scripts/list-linear-tasks.d.ts +0 -6
- package/dist/scripts/list-linear-tasks.d.ts.map +0 -1
- package/dist/scripts/list-linear-tasks.js +0 -121
- package/dist/scripts/list-linear-tasks.js.map +0 -1
- package/dist/scripts/merge-linear-duplicates-safe.d.ts +0 -7
- package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +0 -1
- package/dist/scripts/merge-linear-duplicates-safe.js +0 -267
- package/dist/scripts/merge-linear-duplicates-safe.js.map +0 -1
- package/dist/scripts/show-linear-summary.d.ts +0 -6
- package/dist/scripts/show-linear-summary.d.ts.map +0 -1
- package/dist/scripts/show-linear-summary.js +0 -120
- package/dist/scripts/show-linear-summary.js.map +0 -1
- package/dist/scripts/status.d.ts +0 -6
- package/dist/scripts/status.d.ts.map +0 -1
- package/dist/scripts/status.js +0 -101
- package/dist/scripts/status.js.map +0 -1
- package/dist/src/agents/core/agent-task-manager.d.ts +0 -154
- package/dist/src/agents/core/agent-task-manager.d.ts.map +0 -1
- package/dist/src/agents/core/agent-task-manager.js +0 -504
- package/dist/src/agents/core/agent-task-manager.js.map +0 -1
- package/dist/src/agents/verifiers/base-verifier.d.ts +0 -112
- package/dist/src/agents/verifiers/base-verifier.d.ts.map +0 -1
- package/dist/src/agents/verifiers/base-verifier.js +0 -130
- package/dist/src/agents/verifiers/base-verifier.js.map +0 -1
- package/dist/src/agents/verifiers/formatter-verifier.d.ts +0 -14
- package/dist/src/agents/verifiers/formatter-verifier.d.ts.map +0 -1
- package/dist/src/agents/verifiers/formatter-verifier.js +0 -107
- package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -1
- package/dist/src/agents/verifiers/llm-judge.d.ts +0 -46
- package/dist/src/agents/verifiers/llm-judge.d.ts.map +0 -1
- package/dist/src/agents/verifiers/llm-judge.js +0 -248
- package/dist/src/agents/verifiers/llm-judge.js.map +0 -1
- package/dist/src/cli/auto-detect.d.ts +0 -61
- package/dist/src/cli/auto-detect.d.ts.map +0 -1
- package/dist/src/cli/auto-detect.js +0 -350
- package/dist/src/cli/auto-detect.js.map +0 -1
- package/dist/src/cli/browser-test.d.ts +0 -6
- package/dist/src/cli/browser-test.d.ts.map +0 -1
- package/dist/src/cli/browser-test.js +0 -32
- package/dist/src/cli/browser-test.js.map +0 -1
- package/dist/src/cli/claude-sm.d.ts +0 -7
- package/dist/src/cli/claude-sm.d.ts.map +0 -1
- package/dist/src/cli/claude-sm.js +0 -412
- package/dist/src/cli/claude-sm.js.map +0 -1
- package/dist/src/cli/commands/agent.d.ts +0 -9
- package/dist/src/cli/commands/agent.d.ts.map +0 -1
- package/dist/src/cli/commands/agent.js +0 -303
- package/dist/src/cli/commands/agent.js.map +0 -1
- package/dist/src/cli/commands/config.d.ts +0 -6
- package/dist/src/cli/commands/config.d.ts.map +0 -1
- package/dist/src/cli/commands/config.js +0 -224
- package/dist/src/cli/commands/config.js.map +0 -1
- package/dist/src/cli/commands/context.d.ts +0 -7
- package/dist/src/cli/commands/context.d.ts.map +0 -1
- package/dist/src/cli/commands/context.js +0 -365
- package/dist/src/cli/commands/context.js.map +0 -1
- package/dist/src/cli/commands/handoff.d.ts +0 -6
- package/dist/src/cli/commands/handoff.d.ts.map +0 -1
- package/dist/src/cli/commands/handoff.js +0 -212
- package/dist/src/cli/commands/handoff.js.map +0 -1
- package/dist/src/cli/commands/linear-test.d.ts +0 -6
- package/dist/src/cli/commands/linear-test.d.ts.map +0 -1
- package/dist/src/cli/commands/linear-test.js +0 -123
- package/dist/src/cli/commands/linear-test.js.map +0 -1
- package/dist/src/cli/commands/linear.d.ts +0 -6
- package/dist/src/cli/commands/linear.d.ts.map +0 -1
- package/dist/src/cli/commands/linear.js +0 -393
- package/dist/src/cli/commands/linear.js.map +0 -1
- package/dist/src/cli/commands/log.d.ts +0 -7
- package/dist/src/cli/commands/log.d.ts.map +0 -1
- package/dist/src/cli/commands/log.js +0 -168
- package/dist/src/cli/commands/log.js.map +0 -1
- package/dist/src/cli/commands/onboard.d.ts +0 -8
- package/dist/src/cli/commands/onboard.d.ts.map +0 -1
- package/dist/src/cli/commands/onboard.js +0 -363
- package/dist/src/cli/commands/onboard.js.map +0 -1
- package/dist/src/cli/commands/projects.d.ts +0 -8
- package/dist/src/cli/commands/projects.d.ts.map +0 -1
- package/dist/src/cli/commands/projects.js +0 -220
- package/dist/src/cli/commands/projects.js.map +0 -1
- package/dist/src/cli/commands/search.d.ts +0 -7
- package/dist/src/cli/commands/search.d.ts.map +0 -1
- package/dist/src/cli/commands/search.js +0 -162
- package/dist/src/cli/commands/search.js.map +0 -1
- package/dist/src/cli/commands/session.d.ts +0 -7
- package/dist/src/cli/commands/session.d.ts.map +0 -1
- package/dist/src/cli/commands/session.js +0 -222
- package/dist/src/cli/commands/session.js.map +0 -1
- package/dist/src/cli/commands/tasks.d.ts +0 -7
- package/dist/src/cli/commands/tasks.d.ts.map +0 -1
- package/dist/src/cli/commands/tasks.js +0 -229
- package/dist/src/cli/commands/tasks.js.map +0 -1
- package/dist/src/cli/commands/webhook.d.ts +0 -3
- package/dist/src/cli/commands/webhook.d.ts.map +0 -1
- package/dist/src/cli/commands/webhook.js +0 -157
- package/dist/src/cli/commands/webhook.js.map +0 -1
- package/dist/src/cli/commands/worktree.d.ts +0 -8
- package/dist/src/cli/commands/worktree.d.ts.map +0 -1
- package/dist/src/cli/commands/worktree.js +0 -339
- package/dist/src/cli/commands/worktree.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -8
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js +0 -995
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/utils/viewer.d.ts +0 -3
- package/dist/src/cli/utils/viewer.d.ts.map +0 -1
- package/dist/src/cli/utils/viewer.js +0 -91
- package/dist/src/cli/utils/viewer.js.map +0 -1
- package/dist/src/core/config/config-manager.d.ts +0 -95
- package/dist/src/core/config/config-manager.d.ts.map +0 -1
- package/dist/src/core/config/config-manager.js +0 -359
- package/dist/src/core/config/config-manager.js.map +0 -1
- package/dist/src/core/config/types.d.ts +0 -72
- package/dist/src/core/config/types.d.ts.map +0 -1
- package/dist/src/core/config/types.js +0 -127
- package/dist/src/core/config/types.js.map +0 -1
- package/dist/src/core/context/auto-context.d.ts +0 -22
- package/dist/src/core/context/auto-context.d.ts.map +0 -1
- package/dist/src/core/context/auto-context.js +0 -77
- package/dist/src/core/context/auto-context.js.map +0 -1
- package/dist/src/core/context/compaction-handler.d.ts +0 -119
- package/dist/src/core/context/compaction-handler.d.ts.map +0 -1
- package/dist/src/core/context/compaction-handler.js +0 -306
- package/dist/src/core/context/compaction-handler.js.map +0 -1
- package/dist/src/core/context/frame-database.d.ts +0 -59
- package/dist/src/core/context/frame-database.d.ts.map +0 -1
- package/dist/src/core/context/frame-database.js +0 -333
- package/dist/src/core/context/frame-database.js.map +0 -1
- package/dist/src/core/context/frame-digest.d.ts +0 -59
- package/dist/src/core/context/frame-digest.d.ts.map +0 -1
- package/dist/src/core/context/frame-digest.js +0 -264
- package/dist/src/core/context/frame-digest.js.map +0 -1
- package/dist/src/core/context/frame-manager.d.ts +0 -112
- package/dist/src/core/context/frame-manager.d.ts.map +0 -1
- package/dist/src/core/context/frame-manager.js +0 -600
- package/dist/src/core/context/frame-manager.js.map +0 -1
- package/dist/src/core/context/frame-stack.d.ts +0 -85
- package/dist/src/core/context/frame-stack.d.ts.map +0 -1
- package/dist/src/core/context/frame-stack.js +0 -287
- package/dist/src/core/context/frame-stack.js.map +0 -1
- package/dist/src/core/context/frame-types.d.ts +0 -67
- package/dist/src/core/context/frame-types.d.ts.map +0 -1
- package/dist/src/core/context/frame-types.js +0 -6
- package/dist/src/core/context/frame-types.js.map +0 -1
- package/dist/src/core/context/index.d.ts +0 -11
- package/dist/src/core/context/index.d.ts.map +0 -1
- package/dist/src/core/context/index.js +0 -14
- package/dist/src/core/context/index.js.map +0 -1
- package/dist/src/core/context/model-aware-compaction.d.ts +0 -101
- package/dist/src/core/context/model-aware-compaction.d.ts.map +0 -1
- package/dist/src/core/context/model-aware-compaction.js +0 -616
- package/dist/src/core/context/model-aware-compaction.js.map +0 -1
- package/dist/src/core/context/refactored-frame-manager.d.ts +0 -99
- package/dist/src/core/context/refactored-frame-manager.d.ts.map +0 -1
- package/dist/src/core/context/refactored-frame-manager.js +0 -340
- package/dist/src/core/context/refactored-frame-manager.js.map +0 -1
- package/dist/src/core/database/batch-operations.d.ts +0 -118
- package/dist/src/core/database/batch-operations.d.ts.map +0 -1
- package/dist/src/core/database/batch-operations.js +0 -339
- package/dist/src/core/database/batch-operations.js.map +0 -1
- package/dist/src/core/database/connection-pool.d.ts +0 -79
- package/dist/src/core/database/connection-pool.d.ts.map +0 -1
- package/dist/src/core/database/connection-pool.js +0 -236
- package/dist/src/core/database/connection-pool.js.map +0 -1
- package/dist/src/core/database/query-cache.d.ts +0 -135
- package/dist/src/core/database/query-cache.d.ts.map +0 -1
- package/dist/src/core/database/query-cache.js +0 -294
- package/dist/src/core/database/query-cache.js.map +0 -1
- package/dist/src/core/digest/enhanced-hybrid-digest.d.ts +0 -125
- package/dist/src/core/digest/enhanced-hybrid-digest.d.ts.map +0 -1
- package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -282
- package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -1
- package/dist/src/core/digest/frame-digest-integration.d.ts +0 -67
- package/dist/src/core/digest/frame-digest-integration.d.ts.map +0 -1
- package/dist/src/core/digest/frame-digest-integration.js +0 -198
- package/dist/src/core/digest/frame-digest-integration.js.map +0 -1
- package/dist/src/core/digest/hybrid-digest-generator.d.ts +0 -76
- package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +0 -1
- package/dist/src/core/digest/hybrid-digest-generator.js +0 -629
- package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -1
- package/dist/src/core/digest/index.d.ts +0 -9
- package/dist/src/core/digest/index.d.ts.map +0 -1
- package/dist/src/core/digest/index.js +0 -9
- package/dist/src/core/digest/index.js.map +0 -1
- package/dist/src/core/digest/types.d.ts +0 -154
- package/dist/src/core/digest/types.d.ts.map +0 -1
- package/dist/src/core/digest/types.js +0 -18
- package/dist/src/core/digest/types.js.map +0 -1
- package/dist/src/core/errors/index.d.ts +0 -143
- package/dist/src/core/errors/index.d.ts.map +0 -1
- package/dist/src/core/errors/index.js +0 -282
- package/dist/src/core/errors/index.js.map +0 -1
- package/dist/src/core/errors/recovery.d.ts +0 -86
- package/dist/src/core/errors/recovery.d.ts.map +0 -1
- package/dist/src/core/errors/recovery.js +0 -274
- package/dist/src/core/errors/recovery.js.map +0 -1
- package/dist/src/core/merge/conflict-detector.d.ts +0 -122
- package/dist/src/core/merge/conflict-detector.d.ts.map +0 -1
- package/dist/src/core/merge/conflict-detector.js +0 -468
- package/dist/src/core/merge/conflict-detector.js.map +0 -1
- package/dist/src/core/merge/index.d.ts +0 -9
- package/dist/src/core/merge/index.d.ts.map +0 -1
- package/dist/src/core/merge/index.js +0 -9
- package/dist/src/core/merge/index.js.map +0 -1
- package/dist/src/core/merge/resolution-engine.d.ts +0 -120
- package/dist/src/core/merge/resolution-engine.d.ts.map +0 -1
- package/dist/src/core/merge/resolution-engine.js +0 -573
- package/dist/src/core/merge/resolution-engine.js.map +0 -1
- package/dist/src/core/merge/stack-diff.d.ts +0 -97
- package/dist/src/core/merge/stack-diff.d.ts.map +0 -1
- package/dist/src/core/merge/stack-diff.js +0 -516
- package/dist/src/core/merge/stack-diff.js.map +0 -1
- package/dist/src/core/merge/types.d.ts +0 -110
- package/dist/src/core/merge/types.d.ts.map +0 -1
- package/dist/src/core/merge/types.js +0 -6
- package/dist/src/core/merge/types.js.map +0 -1
- package/dist/src/core/monitoring/error-handler.d.ts +0 -46
- package/dist/src/core/monitoring/error-handler.d.ts.map +0 -1
- package/dist/src/core/monitoring/error-handler.js +0 -212
- package/dist/src/core/monitoring/error-handler.js.map +0 -1
- package/dist/src/core/monitoring/logger.d.ts +0 -24
- package/dist/src/core/monitoring/logger.d.ts.map +0 -1
- package/dist/src/core/monitoring/logger.js +0 -126
- package/dist/src/core/monitoring/logger.js.map +0 -1
- package/dist/src/core/monitoring/metrics.d.ts +0 -10
- package/dist/src/core/monitoring/metrics.d.ts.map +0 -1
- package/dist/src/core/monitoring/metrics.js +0 -152
- package/dist/src/core/monitoring/metrics.js.map +0 -1
- package/dist/src/core/monitoring/progress-tracker.d.ts +0 -95
- package/dist/src/core/monitoring/progress-tracker.d.ts.map +0 -1
- package/dist/src/core/monitoring/progress-tracker.js +0 -178
- package/dist/src/core/monitoring/progress-tracker.js.map +0 -1
- package/dist/src/core/performance/context-cache.d.ts +0 -109
- package/dist/src/core/performance/context-cache.d.ts.map +0 -1
- package/dist/src/core/performance/context-cache.js +0 -280
- package/dist/src/core/performance/context-cache.js.map +0 -1
- package/dist/src/core/performance/index.d.ts +0 -3
- package/dist/src/core/performance/index.d.ts.map +0 -1
- package/dist/src/core/performance/index.js +0 -3
- package/dist/src/core/performance/index.js.map +0 -1
- package/dist/src/core/performance/lazy-context-loader.d.ts +0 -93
- package/dist/src/core/performance/lazy-context-loader.d.ts.map +0 -1
- package/dist/src/core/performance/lazy-context-loader.js +0 -332
- package/dist/src/core/performance/lazy-context-loader.js.map +0 -1
- package/dist/src/core/performance/monitor.d.ts +0 -48
- package/dist/src/core/performance/monitor.d.ts.map +0 -1
- package/dist/src/core/performance/monitor.js +0 -226
- package/dist/src/core/performance/monitor.js.map +0 -1
- package/dist/src/core/performance/optimized-frame-context.d.ts +0 -74
- package/dist/src/core/performance/optimized-frame-context.d.ts.map +0 -1
- package/dist/src/core/performance/optimized-frame-context.js +0 -330
- package/dist/src/core/performance/optimized-frame-context.js.map +0 -1
- package/dist/src/core/performance/performance-benchmark.d.ts +0 -50
- package/dist/src/core/performance/performance-benchmark.d.ts.map +0 -1
- package/dist/src/core/performance/performance-benchmark.js +0 -290
- package/dist/src/core/performance/performance-benchmark.js.map +0 -1
- package/dist/src/core/performance/performance-profiler.d.ts +0 -151
- package/dist/src/core/performance/performance-profiler.d.ts.map +0 -1
- package/dist/src/core/performance/performance-profiler.js +0 -346
- package/dist/src/core/performance/performance-profiler.js.map +0 -1
- package/dist/src/core/performance/streaming-jsonl-parser.d.ts +0 -41
- package/dist/src/core/performance/streaming-jsonl-parser.d.ts.map +0 -1
- package/dist/src/core/performance/streaming-jsonl-parser.js +0 -193
- package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -1
- package/dist/src/core/persistence/postgres-adapter.d.ts +0 -31
- package/dist/src/core/persistence/postgres-adapter.d.ts.map +0 -1
- package/dist/src/core/persistence/postgres-adapter.js +0 -330
- package/dist/src/core/persistence/postgres-adapter.js.map +0 -1
- package/dist/src/core/projects/project-manager.d.ts +0 -130
- package/dist/src/core/projects/project-manager.d.ts.map +0 -1
- package/dist/src/core/projects/project-manager.js +0 -709
- package/dist/src/core/projects/project-manager.js.map +0 -1
- package/dist/src/core/query/query-parser.d.ts +0 -109
- package/dist/src/core/query/query-parser.d.ts.map +0 -1
- package/dist/src/core/query/query-parser.js +0 -415
- package/dist/src/core/query/query-parser.js.map +0 -1
- package/dist/src/core/query/query-templates.d.ts +0 -44
- package/dist/src/core/query/query-templates.d.ts.map +0 -1
- package/dist/src/core/query/query-templates.js +0 -326
- package/dist/src/core/query/query-templates.js.map +0 -1
- package/dist/src/core/retrieval/index.d.ts +0 -8
- package/dist/src/core/retrieval/index.d.ts.map +0 -1
- package/dist/src/core/retrieval/index.js +0 -8
- package/dist/src/core/retrieval/index.js.map +0 -1
- package/dist/src/core/retrieval/llm-context-retrieval.d.ts +0 -73
- package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +0 -1
- package/dist/src/core/retrieval/llm-context-retrieval.js +0 -597
- package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -1
- package/dist/src/core/retrieval/summary-generator.d.ts +0 -63
- package/dist/src/core/retrieval/summary-generator.d.ts.map +0 -1
- package/dist/src/core/retrieval/summary-generator.js +0 -622
- package/dist/src/core/retrieval/summary-generator.js.map +0 -1
- package/dist/src/core/retrieval/types.d.ts +0 -257
- package/dist/src/core/retrieval/types.d.ts.map +0 -1
- package/dist/src/core/retrieval/types.js +0 -18
- package/dist/src/core/retrieval/types.js.map +0 -1
- package/dist/src/core/session/index.d.ts +0 -2
- package/dist/src/core/session/index.d.ts.map +0 -1
- package/dist/src/core/session/index.js +0 -2
- package/dist/src/core/session/index.js.map +0 -1
- package/dist/src/core/session/session-manager.d.ts +0 -69
- package/dist/src/core/session/session-manager.d.ts.map +0 -1
- package/dist/src/core/session/session-manager.js +0 -311
- package/dist/src/core/session/session-manager.js.map +0 -1
- package/dist/src/core/trace/cli-trace-wrapper.d.ts +0 -23
- package/dist/src/core/trace/cli-trace-wrapper.d.ts.map +0 -1
- package/dist/src/core/trace/cli-trace-wrapper.js +0 -141
- package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -1
- package/dist/src/core/trace/db-trace-wrapper.d.ts +0 -36
- package/dist/src/core/trace/db-trace-wrapper.d.ts.map +0 -1
- package/dist/src/core/trace/db-trace-wrapper.js +0 -252
- package/dist/src/core/trace/db-trace-wrapper.js.map +0 -1
- package/dist/src/core/trace/debug-trace.d.ts +0 -84
- package/dist/src/core/trace/debug-trace.d.ts.map +0 -1
- package/dist/src/core/trace/debug-trace.js +0 -402
- package/dist/src/core/trace/debug-trace.js.map +0 -1
- package/dist/src/core/trace/error-test.d.ts +0 -6
- package/dist/src/core/trace/error-test.d.ts.map +0 -1
- package/dist/src/core/trace/error-test.js +0 -128
- package/dist/src/core/trace/error-test.js.map +0 -1
- package/dist/src/core/trace/index.d.ts +0 -25
- package/dist/src/core/trace/index.d.ts.map +0 -1
- package/dist/src/core/trace/index.js +0 -121
- package/dist/src/core/trace/index.js.map +0 -1
- package/dist/src/core/trace/linear-api-wrapper.d.ts +0 -17
- package/dist/src/core/trace/linear-api-wrapper.d.ts.map +0 -1
- package/dist/src/core/trace/linear-api-wrapper.js +0 -205
- package/dist/src/core/trace/linear-api-wrapper.js.map +0 -1
- package/dist/src/core/trace/performance-test.d.ts +0 -6
- package/dist/src/core/trace/performance-test.d.ts.map +0 -1
- package/dist/src/core/trace/performance-test.js +0 -111
- package/dist/src/core/trace/performance-test.js.map +0 -1
- package/dist/src/core/trace/trace-demo.d.ts +0 -8
- package/dist/src/core/trace/trace-demo.d.ts.map +0 -1
- package/dist/src/core/trace/trace-demo.js +0 -154
- package/dist/src/core/trace/trace-demo.js.map +0 -1
- package/dist/src/core/trace/trace-detector.d.ts +0 -108
- package/dist/src/core/trace/trace-detector.d.ts.map +0 -1
- package/dist/src/core/trace/trace-detector.demo.d.ts +0 -5
- package/dist/src/core/trace/trace-detector.demo.d.ts.map +0 -1
- package/dist/src/core/trace/trace-detector.demo.js +0 -145
- package/dist/src/core/trace/trace-detector.demo.js.map +0 -1
- package/dist/src/core/trace/trace-detector.js +0 -425
- package/dist/src/core/trace/trace-detector.js.map +0 -1
- package/dist/src/core/trace/trace-store.d.ts +0 -60
- package/dist/src/core/trace/trace-store.d.ts.map +0 -1
- package/dist/src/core/trace/trace-store.js +0 -323
- package/dist/src/core/trace/trace-store.js.map +0 -1
- package/dist/src/core/trace/types.d.ts +0 -81
- package/dist/src/core/trace/types.d.ts.map +0 -1
- package/dist/src/core/trace/types.js +0 -70
- package/dist/src/core/trace/types.js.map +0 -1
- package/dist/src/core/types.d.ts +0 -35
- package/dist/src/core/types.d.ts.map +0 -1
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/core/utils/update-checker.d.ts +0 -38
- package/dist/src/core/utils/update-checker.d.ts.map +0 -1
- package/dist/src/core/utils/update-checker.js +0 -213
- package/dist/src/core/utils/update-checker.js.map +0 -1
- package/dist/src/core/worktree/worktree-manager.d.ts +0 -110
- package/dist/src/core/worktree/worktree-manager.d.ts.map +0 -1
- package/dist/src/core/worktree/worktree-manager.js +0 -456
- package/dist/src/core/worktree/worktree-manager.js.map +0 -1
- package/dist/src/features/analytics/api/analytics-api.d.ts +0 -24
- package/dist/src/features/analytics/api/analytics-api.d.ts.map +0 -1
- package/dist/src/features/analytics/api/analytics-api.js +0 -289
- package/dist/src/features/analytics/api/analytics-api.js.map +0 -1
- package/dist/src/features/analytics/core/analytics-service.d.ts +0 -29
- package/dist/src/features/analytics/core/analytics-service.d.ts.map +0 -1
- package/dist/src/features/analytics/core/analytics-service.js +0 -275
- package/dist/src/features/analytics/core/analytics-service.js.map +0 -1
- package/dist/src/features/analytics/index.d.ts +0 -12
- package/dist/src/features/analytics/index.d.ts.map +0 -1
- package/dist/src/features/analytics/index.js +0 -11
- package/dist/src/features/analytics/index.js.map +0 -1
- package/dist/src/features/analytics/queries/metrics-queries.d.ts +0 -11
- package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +0 -1
- package/dist/src/features/analytics/queries/metrics-queries.js +0 -240
- package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -1
- package/dist/src/features/analytics/types/metrics.d.ts +0 -60
- package/dist/src/features/analytics/types/metrics.d.ts.map +0 -1
- package/dist/src/features/analytics/types/metrics.js +0 -2
- package/dist/src/features/analytics/types/metrics.js.map +0 -1
- package/dist/src/features/browser/browser-mcp.d.ts +0 -94
- package/dist/src/features/browser/browser-mcp.d.ts.map +0 -1
- package/dist/src/features/browser/browser-mcp.js +0 -459
- package/dist/src/features/browser/browser-mcp.js.map +0 -1
- package/dist/src/features/tasks/pebbles-task-store.d.ts +0 -128
- package/dist/src/features/tasks/pebbles-task-store.d.ts.map +0 -1
- package/dist/src/features/tasks/pebbles-task-store.js +0 -572
- package/dist/src/features/tasks/pebbles-task-store.js.map +0 -1
- package/dist/src/features/tasks/task-aware-context.d.ts +0 -103
- package/dist/src/features/tasks/task-aware-context.d.ts.map +0 -1
- package/dist/src/features/tasks/task-aware-context.js +0 -412
- package/dist/src/features/tasks/task-aware-context.js.map +0 -1
- package/dist/src/index.d.ts +0 -21
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -9
- package/dist/src/index.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 -127
- package/dist/src/integrations/linear/client.d.ts.map +0 -1
- package/dist/src/integrations/linear/client.js +0 -446
- 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-manager.d.ts +0 -78
- package/dist/src/integrations/linear/sync-manager.d.ts.map +0 -1
- package/dist/src/integrations/linear/sync-manager.js +0 -235
- package/dist/src/integrations/linear/sync-manager.js.map +0 -1
- package/dist/src/integrations/linear/sync-service.d.ts +0 -46
- package/dist/src/integrations/linear/sync-service.d.ts.map +0 -1
- package/dist/src/integrations/linear/sync-service.js +0 -217
- package/dist/src/integrations/linear/sync-service.js.map +0 -1
- package/dist/src/integrations/linear/sync.d.ts +0 -125
- package/dist/src/integrations/linear/sync.d.ts.map +0 -1
- package/dist/src/integrations/linear/sync.js +0 -563
- package/dist/src/integrations/linear/sync.js.map +0 -1
- package/dist/src/integrations/linear/types.d.ts +0 -90
- package/dist/src/integrations/linear/types.d.ts.map +0 -1
- package/dist/src/integrations/linear/types.js +0 -2
- package/dist/src/integrations/linear/types.js.map +0 -1
- package/dist/src/integrations/linear/webhook-server.d.ts +0 -32
- package/dist/src/integrations/linear/webhook-server.d.ts.map +0 -1
- package/dist/src/integrations/linear/webhook-server.js +0 -190
- package/dist/src/integrations/linear/webhook-server.js.map +0 -1
- package/dist/src/integrations/linear/webhook.d.ts +0 -108
- package/dist/src/integrations/linear/webhook.d.ts.map +0 -1
- package/dist/src/integrations/linear/webhook.js +0 -291
- package/dist/src/integrations/linear/webhook.js.map +0 -1
- package/dist/src/integrations/mcp/handlers/context-handlers.d.ts +0 -39
- package/dist/src/integrations/mcp/handlers/context-handlers.d.ts.map +0 -1
- package/dist/src/integrations/mcp/handlers/context-handlers.js +0 -266
- package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -1
- package/dist/src/integrations/mcp/handlers/index.d.ts +0 -37
- package/dist/src/integrations/mcp/handlers/index.d.ts.map +0 -1
- package/dist/src/integrations/mcp/handlers/index.js +0 -134
- package/dist/src/integrations/mcp/handlers/index.js.map +0 -1
- package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts +0 -33
- package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts.map +0 -1
- package/dist/src/integrations/mcp/handlers/linear-handlers.js +0 -251
- package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -1
- package/dist/src/integrations/mcp/handlers/task-handlers.d.ts +0 -42
- package/dist/src/integrations/mcp/handlers/task-handlers.d.ts.map +0 -1
- package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -238
- package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -1
- package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts +0 -41
- package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts.map +0 -1
- package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -298
- package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -1
- package/dist/src/integrations/mcp/index.d.ts +0 -13
- package/dist/src/integrations/mcp/index.d.ts.map +0 -1
- package/dist/src/integrations/mcp/index.js +0 -17
- package/dist/src/integrations/mcp/index.js.map +0 -1
- package/dist/src/integrations/mcp/refactored-server.d.ts +0 -76
- package/dist/src/integrations/mcp/refactored-server.d.ts.map +0 -1
- package/dist/src/integrations/mcp/refactored-server.js +0 -351
- package/dist/src/integrations/mcp/refactored-server.js.map +0 -1
- package/dist/src/integrations/mcp/server.d.ts +0 -54
- package/dist/src/integrations/mcp/server.d.ts.map +0 -1
- package/dist/src/integrations/mcp/server.js +0 -1616
- package/dist/src/integrations/mcp/server.js.map +0 -1
- package/dist/src/integrations/mcp/tool-definitions.d.ts +0 -44
- package/dist/src/integrations/mcp/tool-definitions.d.ts.map +0 -1
- package/dist/src/integrations/mcp/tool-definitions.js +0 -563
- package/dist/src/integrations/mcp/tool-definitions.js.map +0 -1
- package/dist/src/integrations/mcp/trace-test.d.ts +0 -5
- package/dist/src/integrations/mcp/trace-test.d.ts.map +0 -1
- package/dist/src/integrations/mcp/trace-test.js +0 -54
- package/dist/src/integrations/mcp/trace-test.js.map +0 -1
- package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +0 -48
- package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +0 -1
- package/dist/src/integrations/pg-aiguide/embedding-provider.js +0 -190
- package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +0 -1
- package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +0 -34
- package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +0 -1
- package/dist/src/integrations/pg-aiguide/semantic-search.js +0 -176
- package/dist/src/integrations/pg-aiguide/semantic-search.js.map +0 -1
- package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +0 -44
- package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +0 -1
- package/dist/src/integrations/pg-aiguide/timescale-analytics.js +0 -215
- package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +0 -1
- package/dist/src/mcp/stackmemory-mcp-server.d.ts +0 -9
- package/dist/src/mcp/stackmemory-mcp-server.d.ts.map +0 -1
- package/dist/src/mcp/stackmemory-mcp-server.js +0 -519
- package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -1
- package/dist/src/middleware/exponential-rate-limiter.d.ts +0 -78
- package/dist/src/middleware/exponential-rate-limiter.d.ts.map +0 -1
- package/dist/src/middleware/exponential-rate-limiter.js +0 -293
- package/dist/src/middleware/exponential-rate-limiter.js.map +0 -1
- package/dist/src/models/user.model.d.ts +0 -62
- package/dist/src/models/user.model.d.ts.map +0 -1
- package/dist/src/models/user.model.js +0 -311
- package/dist/src/models/user.model.js.map +0 -1
- package/dist/src/servers/production/auth-middleware.d.ts +0 -76
- package/dist/src/servers/production/auth-middleware.d.ts.map +0 -1
- package/dist/src/servers/production/auth-middleware.js +0 -558
- package/dist/src/servers/production/auth-middleware.js.map +0 -1
- package/dist/src/servers/railway/index.d.ts +0 -7
- package/dist/src/servers/railway/index.d.ts.map +0 -1
- package/dist/src/servers/railway/index.js +0 -401
- package/dist/src/servers/railway/index.js.map +0 -1
- package/dist/src/services/config-service.d.ts +0 -44
- package/dist/src/services/config-service.d.ts.map +0 -1
- package/dist/src/services/config-service.js +0 -61
- package/dist/src/services/config-service.js.map +0 -1
- package/dist/src/services/context-service.d.ts +0 -17
- package/dist/src/services/context-service.d.ts.map +0 -1
- package/dist/src/services/context-service.js +0 -173
- package/dist/src/services/context-service.js.map +0 -1
- package/dist/src/types/task.d.ts +0 -27
- package/dist/src/types/task.d.ts.map +0 -1
- package/dist/src/types/task.js +0 -2
- package/dist/src/types/task.js.map +0 -1
- package/dist/src/utils/logger.d.ts +0 -13
- package/dist/src/utils/logger.d.ts.map +0 -1
- package/dist/src/utils/logger.js +0 -52
- package/dist/src/utils/logger.js.map +0 -1
- package/dist/src/validation/schemas.d.ts +0 -633
- package/dist/src/validation/schemas.d.ts.map +0 -1
- package/dist/src/validation/schemas.js +0 -347
- package/dist/src/validation/schemas.js.map +0 -1
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "dotenv/config";
|
|
3
|
+
import blessed from "blessed";
|
|
4
|
+
import contrib from "blessed-contrib";
|
|
5
|
+
import { EventEmitter } from "events";
|
|
6
|
+
import { terminalCompat } from "./terminal-compat.js";
|
|
7
|
+
import { SessionMonitor } from "./components/session-monitor.js";
|
|
8
|
+
import { TaskBoard } from "./components/task-board.js";
|
|
9
|
+
import { FrameVisualizer } from "./components/frame-visualizer.js";
|
|
10
|
+
import { SubagentFleet } from "./components/subagent-fleet.js";
|
|
11
|
+
import { PRTracker } from "./components/pr-tracker.js";
|
|
12
|
+
import { AnalyticsPanel } from "./components/analytics-panel.js";
|
|
13
|
+
import { DataService } from "./services/data-service.js";
|
|
14
|
+
import { WebSocketClient } from "./services/websocket-client.js";
|
|
15
|
+
terminalCompat.configureEnvironment();
|
|
16
|
+
class StackMemoryTUI extends EventEmitter {
|
|
17
|
+
screen;
|
|
18
|
+
grid;
|
|
19
|
+
components;
|
|
20
|
+
dataService;
|
|
21
|
+
wsClient;
|
|
22
|
+
config;
|
|
23
|
+
refreshInterval = null;
|
|
24
|
+
constructor(config = {}) {
|
|
25
|
+
super();
|
|
26
|
+
this.config = {
|
|
27
|
+
refreshInterval: 1e3,
|
|
28
|
+
wsUrl: "ws://localhost:8080",
|
|
29
|
+
theme: "dark",
|
|
30
|
+
...config
|
|
31
|
+
};
|
|
32
|
+
this.components = /* @__PURE__ */ new Map();
|
|
33
|
+
this.dataService = new DataService();
|
|
34
|
+
this.wsClient = new WebSocketClient(this.config.wsUrl);
|
|
35
|
+
this.screen = this.createScreen();
|
|
36
|
+
this.grid = this.createGrid();
|
|
37
|
+
this.initializeComponents();
|
|
38
|
+
this.setupEventHandlers();
|
|
39
|
+
}
|
|
40
|
+
createScreen() {
|
|
41
|
+
const blessedConfig = terminalCompat.getBlessedConfig();
|
|
42
|
+
const screen = blessed.screen({
|
|
43
|
+
...blessedConfig,
|
|
44
|
+
autoPadding: true
|
|
45
|
+
});
|
|
46
|
+
const header = blessed.box({
|
|
47
|
+
parent: screen,
|
|
48
|
+
top: 0,
|
|
49
|
+
left: 0,
|
|
50
|
+
width: "100%",
|
|
51
|
+
height: 3,
|
|
52
|
+
content: "{center}\u{1F680} StackMemory TUI Dashboard v1.0.0{/center}",
|
|
53
|
+
tags: true,
|
|
54
|
+
style: {
|
|
55
|
+
fg: "white",
|
|
56
|
+
bg: "blue",
|
|
57
|
+
bold: true
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return screen;
|
|
61
|
+
}
|
|
62
|
+
createGrid() {
|
|
63
|
+
const grid = new contrib.grid({
|
|
64
|
+
rows: 12,
|
|
65
|
+
cols: 12,
|
|
66
|
+
screen: this.screen
|
|
67
|
+
});
|
|
68
|
+
return grid;
|
|
69
|
+
}
|
|
70
|
+
initializeComponents() {
|
|
71
|
+
const sessionMonitor = new SessionMonitor(
|
|
72
|
+
this.grid.set(0, 0, 4, 6, blessed.box, {
|
|
73
|
+
label: "\u{1F4CA} Sessions",
|
|
74
|
+
border: { type: "line" },
|
|
75
|
+
style: { border: { fg: "cyan" } }
|
|
76
|
+
})
|
|
77
|
+
);
|
|
78
|
+
this.components.set("sessions", sessionMonitor);
|
|
79
|
+
const taskBoard = new TaskBoard(
|
|
80
|
+
this.grid.set(0, 6, 4, 6, blessed.box, {
|
|
81
|
+
label: "\u{1F4CB} Linear Tasks",
|
|
82
|
+
border: { type: "line" },
|
|
83
|
+
style: { border: { fg: "green" } }
|
|
84
|
+
})
|
|
85
|
+
);
|
|
86
|
+
this.components.set("tasks", taskBoard);
|
|
87
|
+
const frameContainer = this.grid.set(4, 0, 4, 6, blessed.box, {
|
|
88
|
+
label: "\u{1F5C2}\uFE0F Frame Storage",
|
|
89
|
+
border: { type: "line" },
|
|
90
|
+
style: { border: { fg: "yellow" } }
|
|
91
|
+
});
|
|
92
|
+
const frameTree = contrib.tree({
|
|
93
|
+
parent: frameContainer,
|
|
94
|
+
top: 0,
|
|
95
|
+
left: 0,
|
|
96
|
+
width: "100%-2",
|
|
97
|
+
height: "100%-2",
|
|
98
|
+
style: {
|
|
99
|
+
text: "green",
|
|
100
|
+
selected: {
|
|
101
|
+
bg: "yellow",
|
|
102
|
+
fg: "black"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
template: {
|
|
106
|
+
lines: true
|
|
107
|
+
},
|
|
108
|
+
label: ""
|
|
109
|
+
});
|
|
110
|
+
const frameViz = new FrameVisualizer(frameTree);
|
|
111
|
+
this.components.set("frames", frameViz);
|
|
112
|
+
const subagentFleet = new SubagentFleet(
|
|
113
|
+
this.grid.set(4, 6, 4, 6, blessed.box, {
|
|
114
|
+
label: "\u{1F916} Subagent Fleet",
|
|
115
|
+
border: { type: "line" },
|
|
116
|
+
style: { border: { fg: "magenta" } }
|
|
117
|
+
})
|
|
118
|
+
);
|
|
119
|
+
this.components.set("subagents", subagentFleet);
|
|
120
|
+
const prTracker = new PRTracker(
|
|
121
|
+
this.grid.set(8, 0, 2, 6, blessed.list, {
|
|
122
|
+
label: "\u{1F500} PR/Issues",
|
|
123
|
+
border: { type: "line" },
|
|
124
|
+
style: { border: { fg: "red" } },
|
|
125
|
+
scrollable: true,
|
|
126
|
+
mouse: true
|
|
127
|
+
})
|
|
128
|
+
);
|
|
129
|
+
this.components.set("prs", prTracker);
|
|
130
|
+
const analytics = new AnalyticsPanel(
|
|
131
|
+
this.grid.set(8, 6, 2, 6, contrib.line, {
|
|
132
|
+
label: "\u{1F4C8} Analytics",
|
|
133
|
+
border: { type: "line" },
|
|
134
|
+
style: {
|
|
135
|
+
border: { fg: "white" },
|
|
136
|
+
line: "yellow",
|
|
137
|
+
text: "green",
|
|
138
|
+
baseline: "black"
|
|
139
|
+
},
|
|
140
|
+
showLegend: true,
|
|
141
|
+
wholeNumbersOnly: false
|
|
142
|
+
})
|
|
143
|
+
);
|
|
144
|
+
this.components.set("analytics", analytics);
|
|
145
|
+
const statusBar = blessed.box({
|
|
146
|
+
parent: this.screen,
|
|
147
|
+
bottom: 0,
|
|
148
|
+
left: 0,
|
|
149
|
+
width: "100%",
|
|
150
|
+
height: 2,
|
|
151
|
+
tags: true,
|
|
152
|
+
style: {
|
|
153
|
+
fg: "white",
|
|
154
|
+
bg: "black"
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
this.components.set("status", statusBar);
|
|
158
|
+
this.updateStatusBar("Ready");
|
|
159
|
+
}
|
|
160
|
+
setupEventHandlers() {
|
|
161
|
+
this.screen.key(["q", "C-c"], () => {
|
|
162
|
+
this.cleanup();
|
|
163
|
+
process.exit(0);
|
|
164
|
+
});
|
|
165
|
+
this.screen.key(["r", "C-r"], () => {
|
|
166
|
+
this.refresh();
|
|
167
|
+
});
|
|
168
|
+
this.screen.key(["tab"], () => {
|
|
169
|
+
this.focusNext();
|
|
170
|
+
});
|
|
171
|
+
this.screen.key(["S-tab"], () => {
|
|
172
|
+
this.focusPrevious();
|
|
173
|
+
});
|
|
174
|
+
this.screen.key(["1"], () => this.showView("sessions"));
|
|
175
|
+
this.screen.key(["2"], () => this.showView("tasks"));
|
|
176
|
+
this.screen.key(["3"], () => this.showView("frames"));
|
|
177
|
+
this.screen.key(["4"], () => this.showView("subagents"));
|
|
178
|
+
this.screen.key(["5"], () => this.showView("prs"));
|
|
179
|
+
this.screen.key(["6"], () => this.showView("analytics"));
|
|
180
|
+
this.wsClient.on("session:update", (data) => {
|
|
181
|
+
this.components.get("sessions")?.update(data);
|
|
182
|
+
});
|
|
183
|
+
this.wsClient.on("task:update", (data) => {
|
|
184
|
+
this.components.get("tasks")?.update(data);
|
|
185
|
+
});
|
|
186
|
+
this.wsClient.on("frame:update", (data) => {
|
|
187
|
+
this.components.get("frames")?.update(data);
|
|
188
|
+
});
|
|
189
|
+
this.wsClient.on("agent:status", (data) => {
|
|
190
|
+
this.components.get("subagents")?.update(data);
|
|
191
|
+
});
|
|
192
|
+
this.wsClient.on("pr:update", (data) => {
|
|
193
|
+
this.components.get("prs")?.update(data);
|
|
194
|
+
});
|
|
195
|
+
this.dataService.on("data:ready", () => {
|
|
196
|
+
this.updateAll();
|
|
197
|
+
});
|
|
198
|
+
this.dataService.on("error", (error) => {
|
|
199
|
+
this.showError(error.message);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
async updateAll() {
|
|
203
|
+
try {
|
|
204
|
+
const [sessions, tasks, frames, agents, prs, issues, analytics] = await Promise.all([
|
|
205
|
+
this.dataService.getSessions(),
|
|
206
|
+
this.dataService.getTasks(),
|
|
207
|
+
this.dataService.getFrames(),
|
|
208
|
+
this.dataService.getAgents(),
|
|
209
|
+
this.dataService.getPRs(),
|
|
210
|
+
this.dataService.getIssues(),
|
|
211
|
+
this.dataService.getAnalytics()
|
|
212
|
+
]);
|
|
213
|
+
this.components.get("sessions")?.update(sessions);
|
|
214
|
+
this.components.get("tasks")?.update(tasks);
|
|
215
|
+
this.components.get("frames")?.update(frames);
|
|
216
|
+
this.components.get("subagents")?.update(agents);
|
|
217
|
+
this.components.get("prs")?.update({ prs, issues });
|
|
218
|
+
this.components.get("analytics")?.update(analytics);
|
|
219
|
+
this.updateStatusBar(`Last updated: ${(/* @__PURE__ */ new Date()).toLocaleTimeString()}`);
|
|
220
|
+
this.screen.render();
|
|
221
|
+
} catch (error) {
|
|
222
|
+
this.showError(`Update failed: ${error.message}`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
refresh() {
|
|
226
|
+
this.updateStatusBar("Refreshing...");
|
|
227
|
+
this.updateAll();
|
|
228
|
+
}
|
|
229
|
+
focusNext() {
|
|
230
|
+
const components = Array.from(this.components.values());
|
|
231
|
+
const currentIndex = components.findIndex((c) => c.hasFocus?.());
|
|
232
|
+
const nextIndex = (currentIndex + 1) % components.length;
|
|
233
|
+
components[nextIndex]?.focus?.();
|
|
234
|
+
this.screen.render();
|
|
235
|
+
}
|
|
236
|
+
focusPrevious() {
|
|
237
|
+
const components = Array.from(this.components.values());
|
|
238
|
+
const currentIndex = components.findIndex((c) => c.hasFocus?.());
|
|
239
|
+
const prevIndex = currentIndex <= 0 ? components.length - 1 : currentIndex - 1;
|
|
240
|
+
components[prevIndex]?.focus?.();
|
|
241
|
+
this.screen.render();
|
|
242
|
+
}
|
|
243
|
+
showView(viewName) {
|
|
244
|
+
const component = this.components.get(viewName);
|
|
245
|
+
if (component) {
|
|
246
|
+
component.focus?.();
|
|
247
|
+
component.show?.();
|
|
248
|
+
this.updateStatusBar(`Viewing: ${viewName}`);
|
|
249
|
+
this.screen.render();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
updateStatusBar(message) {
|
|
253
|
+
const statusBar = this.components.get("status");
|
|
254
|
+
if (statusBar) {
|
|
255
|
+
const shortcuts = "{yellow-fg}[q]{/} Quit | {yellow-fg}[r]{/} Refresh | {yellow-fg}[Tab]{/} Navigate | {yellow-fg}[1-6]{/} Views";
|
|
256
|
+
statusBar.setContent(`{bold}${message}{/} | ${shortcuts}`);
|
|
257
|
+
this.screen.render();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
showError(message) {
|
|
261
|
+
const msg = blessed.message({
|
|
262
|
+
parent: this.screen,
|
|
263
|
+
border: "line",
|
|
264
|
+
height: "shrink",
|
|
265
|
+
width: "half",
|
|
266
|
+
top: "center",
|
|
267
|
+
left: "center",
|
|
268
|
+
label: "{red-fg}Error{/}",
|
|
269
|
+
tags: true,
|
|
270
|
+
hidden: true
|
|
271
|
+
});
|
|
272
|
+
msg.display(message, () => {
|
|
273
|
+
msg.destroy();
|
|
274
|
+
this.screen.render();
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
async start() {
|
|
278
|
+
try {
|
|
279
|
+
const termInfo = terminalCompat.getTerminalInfo();
|
|
280
|
+
const warnings = terminalCompat.getWarnings();
|
|
281
|
+
if (warnings.length > 0) {
|
|
282
|
+
console.log("\u26A0\uFE0F Terminal Compatibility Warnings:");
|
|
283
|
+
warnings.forEach((w) => console.log(` \u2022 ${w}`));
|
|
284
|
+
console.log("");
|
|
285
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
286
|
+
}
|
|
287
|
+
if (process.env.DEBUG || process.env.TUI_DEBUG) {
|
|
288
|
+
console.log("\u{1F50D} Terminal Capabilities:");
|
|
289
|
+
console.log(` ${terminalCompat.getCapabilitiesString()}`);
|
|
290
|
+
console.log("");
|
|
291
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
await this.wsClient.connect();
|
|
295
|
+
} catch (wsError) {
|
|
296
|
+
console.log("\u26A0\uFE0F Running in offline mode (no WebSocket connection)");
|
|
297
|
+
}
|
|
298
|
+
await this.dataService.initialize();
|
|
299
|
+
if (this.config.refreshInterval > 0) {
|
|
300
|
+
this.refreshInterval = setInterval(() => {
|
|
301
|
+
this.updateAll().catch((error) => {
|
|
302
|
+
if (process.env.DEBUG) {
|
|
303
|
+
console.error("Update error:", error);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}, this.config.refreshInterval);
|
|
307
|
+
}
|
|
308
|
+
await this.updateAll();
|
|
309
|
+
this.screen.render();
|
|
310
|
+
} catch (error) {
|
|
311
|
+
console.error("\n\u274C TUI startup error:", error);
|
|
312
|
+
if (error instanceof Error) {
|
|
313
|
+
console.error("Error details:", error.message);
|
|
314
|
+
if (process.env.DEBUG) {
|
|
315
|
+
console.error("Stack trace:", error.stack);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
throw error;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
cleanup() {
|
|
322
|
+
if (this.refreshInterval) {
|
|
323
|
+
clearInterval(this.refreshInterval);
|
|
324
|
+
}
|
|
325
|
+
this.wsClient.disconnect();
|
|
326
|
+
this.dataService.cleanup();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
const isMainModule = typeof process !== "undefined" && process.argv && process.argv[1] && (import.meta.url === `file://${process.argv[1]}` || process.argv[1].endsWith("/index.js"));
|
|
330
|
+
if (isMainModule) {
|
|
331
|
+
if (!terminalCompat.isCompatible()) {
|
|
332
|
+
console.error("\u274C Terminal is not compatible with TUI mode");
|
|
333
|
+
console.error(
|
|
334
|
+
" Please use the dashboard command instead: stackmemory dashboard --watch"
|
|
335
|
+
);
|
|
336
|
+
process.exit(1);
|
|
337
|
+
}
|
|
338
|
+
process.on("uncaughtException", (error) => {
|
|
339
|
+
console.error("\n\u274C TUI Error:", error.message || error);
|
|
340
|
+
console.error("Error type:", error.constructor.name);
|
|
341
|
+
if (error.stack) {
|
|
342
|
+
console.error("Stack trace:", error.stack);
|
|
343
|
+
}
|
|
344
|
+
console.error(
|
|
345
|
+
"\n\u{1F4A1} Try the simpler dashboard instead: stackmemory dashboard --watch"
|
|
346
|
+
);
|
|
347
|
+
process.exit(1);
|
|
348
|
+
});
|
|
349
|
+
process.on("unhandledRejection", (reason, promise) => {
|
|
350
|
+
console.error("\n\u274C Unhandled promise rejection at:", promise);
|
|
351
|
+
console.error("Reason:", reason);
|
|
352
|
+
if (reason instanceof Error) {
|
|
353
|
+
console.error("Stack trace:", reason.stack);
|
|
354
|
+
}
|
|
355
|
+
console.error(
|
|
356
|
+
"\n\u{1F4A1} Try the simpler dashboard instead: stackmemory dashboard --watch"
|
|
357
|
+
);
|
|
358
|
+
process.exit(1);
|
|
359
|
+
});
|
|
360
|
+
let tui;
|
|
361
|
+
try {
|
|
362
|
+
tui = new StackMemoryTUI({
|
|
363
|
+
refreshInterval: 2e3,
|
|
364
|
+
wsUrl: process.env.STACKMEMORY_WS_URL || "ws://localhost:8080"
|
|
365
|
+
});
|
|
366
|
+
} catch (constructorError) {
|
|
367
|
+
console.error(
|
|
368
|
+
"\n\u274C Failed to create TUI:",
|
|
369
|
+
constructorError.message || constructorError
|
|
370
|
+
);
|
|
371
|
+
if (constructorError.stack) {
|
|
372
|
+
console.error("Stack trace:", constructorError.stack);
|
|
373
|
+
}
|
|
374
|
+
console.error(
|
|
375
|
+
"\n\u{1F4A1} Try the simpler dashboard instead: stackmemory dashboard --watch"
|
|
376
|
+
);
|
|
377
|
+
process.exit(1);
|
|
378
|
+
}
|
|
379
|
+
tui.start().catch((error) => {
|
|
380
|
+
console.error("\n\u274C Failed to start TUI:", error.message || error);
|
|
381
|
+
if (error.stack) {
|
|
382
|
+
console.error("Stack trace:", error.stack);
|
|
383
|
+
}
|
|
384
|
+
console.error(
|
|
385
|
+
"\n\u{1F4A1} Try the simpler dashboard instead: stackmemory dashboard --watch"
|
|
386
|
+
);
|
|
387
|
+
process.exit(1);
|
|
388
|
+
});
|
|
389
|
+
process.on("SIGINT", () => {
|
|
390
|
+
tui.cleanup();
|
|
391
|
+
process.exit(0);
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
export {
|
|
395
|
+
StackMemoryTUI
|
|
396
|
+
};
|
|
397
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/features/tui/index.ts"],
|
|
4
|
+
"sourcesContent": ["#!/usr/bin/env node\n/**\n * StackMemory TUI Dashboard\n * Interactive monitoring interface for sessions, tasks, frames, and integrations\n */\n\nimport 'dotenv/config';\nimport blessed from 'blessed';\nimport contrib from 'blessed-contrib';\nimport { EventEmitter } from 'events';\nimport { terminalCompat } from './terminal-compat.js';\nimport { SessionMonitor } from './components/session-monitor.js';\nimport { TaskBoard } from './components/task-board.js';\nimport { FrameVisualizer } from './components/frame-visualizer.js';\nimport { SubagentFleet } from './components/subagent-fleet.js';\nimport { PRTracker } from './components/pr-tracker.js';\nimport { AnalyticsPanel } from './components/analytics-panel.js';\nimport { DataService } from './services/data-service.js';\nimport { WebSocketClient } from './services/websocket-client.js';\nimport type { DashboardConfig, SessionData, TaskData } from './types.js';\n\n// Configure terminal environment before creating any blessed elements\nterminalCompat.configureEnvironment();\n\nexport class StackMemoryTUI extends EventEmitter {\n private screen: blessed.Widgets.Screen;\n private grid: any;\n private components: Map<string, any>;\n private dataService: DataService;\n private wsClient: WebSocketClient;\n private config: DashboardConfig;\n private refreshInterval: NodeJS.Timeout | null = null;\n\n constructor(config: DashboardConfig = {}) {\n super();\n this.config = {\n refreshInterval: 1000,\n wsUrl: 'ws://localhost:8080',\n theme: 'dark',\n ...config,\n };\n\n this.components = new Map();\n this.dataService = new DataService();\n this.wsClient = new WebSocketClient(this.config.wsUrl);\n this.screen = this.createScreen();\n this.grid = this.createGrid();\n this.initializeComponents();\n this.setupEventHandlers();\n }\n\n private createScreen(): blessed.Widgets.Screen {\n // Get terminal-specific configuration\n const blessedConfig = terminalCompat.getBlessedConfig();\n\n const screen = blessed.screen({\n ...blessedConfig,\n autoPadding: true,\n });\n\n // Add header\n const header = blessed.box({\n parent: screen,\n top: 0,\n left: 0,\n width: '100%',\n height: 3,\n content: '{center}\uD83D\uDE80 StackMemory TUI Dashboard v1.0.0{/center}',\n tags: true,\n style: {\n fg: 'white',\n bg: 'blue',\n bold: true,\n },\n });\n\n return screen;\n }\n\n private createGrid(): any {\n // Create a 12x12 grid for flexible layout\n const grid = new contrib.grid({\n rows: 12,\n cols: 12,\n screen: this.screen,\n });\n\n return grid;\n }\n\n private initializeComponents(): void {\n // Session Monitor (Top Left - 6x4)\n const sessionMonitor = new SessionMonitor(\n this.grid.set(0, 0, 4, 6, blessed.box, {\n label: '\uD83D\uDCCA Sessions',\n border: { type: 'line' },\n style: { border: { fg: 'cyan' } },\n })\n );\n this.components.set('sessions', sessionMonitor);\n\n // Task Board - Linear Integration (Top Right - 6x4)\n const taskBoard = new TaskBoard(\n this.grid.set(0, 6, 4, 6, blessed.box, {\n label: '\uD83D\uDCCB Linear Tasks',\n border: { type: 'line' },\n style: { border: { fg: 'green' } },\n })\n );\n this.components.set('tasks', taskBoard);\n\n // Frame Visualizer (Middle Left - 6x4)\n // Create a box container first, then add the tree inside\n const frameContainer = this.grid.set(4, 0, 4, 6, blessed.box, {\n label: '\uD83D\uDDC2\uFE0F Frame Storage',\n border: { type: 'line' },\n style: { border: { fg: 'yellow' } },\n });\n\n const frameTree = contrib.tree({\n parent: frameContainer,\n top: 0,\n left: 0,\n width: '100%-2',\n height: '100%-2',\n style: {\n text: 'green',\n selected: {\n bg: 'yellow',\n fg: 'black',\n },\n },\n template: {\n lines: true,\n },\n label: '',\n });\n\n const frameViz = new FrameVisualizer(frameTree);\n this.components.set('frames', frameViz);\n\n // Subagent Fleet (Middle Right - 6x4)\n const subagentFleet = new SubagentFleet(\n this.grid.set(4, 6, 4, 6, blessed.box, {\n label: '\uD83E\uDD16 Subagent Fleet',\n border: { type: 'line' },\n style: { border: { fg: 'magenta' } },\n })\n );\n this.components.set('subagents', subagentFleet);\n\n // PR/Issue Tracker (Bottom Left - 6x2)\n const prTracker = new PRTracker(\n this.grid.set(8, 0, 2, 6, blessed.list, {\n label: '\uD83D\uDD00 PR/Issues',\n border: { type: 'line' },\n style: { border: { fg: 'red' } },\n scrollable: true,\n mouse: true,\n })\n );\n this.components.set('prs', prTracker);\n\n // Analytics Panel (Bottom Right - 6x2)\n const analytics = new AnalyticsPanel(\n this.grid.set(8, 6, 2, 6, contrib.line, {\n label: '\uD83D\uDCC8 Analytics',\n border: { type: 'line' },\n style: {\n border: { fg: 'white' },\n line: 'yellow',\n text: 'green',\n baseline: 'black',\n },\n showLegend: true,\n wholeNumbersOnly: false,\n })\n );\n this.components.set('analytics', analytics);\n\n // Status Bar (Bottom - 12x2)\n const statusBar = blessed.box({\n parent: this.screen,\n bottom: 0,\n left: 0,\n width: '100%',\n height: 2,\n tags: true,\n style: {\n fg: 'white',\n bg: 'black',\n },\n });\n this.components.set('status', statusBar);\n\n this.updateStatusBar('Ready');\n }\n\n private setupEventHandlers(): void {\n // Keyboard shortcuts\n this.screen.key(['q', 'C-c'], () => {\n this.cleanup();\n process.exit(0);\n });\n\n this.screen.key(['r', 'C-r'], () => {\n this.refresh();\n });\n\n this.screen.key(['tab'], () => {\n this.focusNext();\n });\n\n this.screen.key(['S-tab'], () => {\n this.focusPrevious();\n });\n\n // View switching\n this.screen.key(['1'], () => this.showView('sessions'));\n this.screen.key(['2'], () => this.showView('tasks'));\n this.screen.key(['3'], () => this.showView('frames'));\n this.screen.key(['4'], () => this.showView('subagents'));\n this.screen.key(['5'], () => this.showView('prs'));\n this.screen.key(['6'], () => this.showView('analytics'));\n\n // WebSocket events\n this.wsClient.on('session:update', (data: SessionData) => {\n this.components.get('sessions')?.update(data);\n });\n\n this.wsClient.on('task:update', (data: TaskData) => {\n this.components.get('tasks')?.update(data);\n });\n\n this.wsClient.on('frame:update', (data) => {\n this.components.get('frames')?.update(data);\n });\n\n this.wsClient.on('agent:status', (data) => {\n this.components.get('subagents')?.update(data);\n });\n\n this.wsClient.on('pr:update', (data) => {\n this.components.get('prs')?.update(data);\n });\n\n // Data service events\n this.dataService.on('data:ready', () => {\n this.updateAll();\n });\n\n this.dataService.on('error', (error) => {\n this.showError(error.message);\n });\n }\n\n private async updateAll(): Promise<void> {\n try {\n // Fetch latest data\n const [sessions, tasks, frames, agents, prs, issues, analytics] =\n await Promise.all([\n this.dataService.getSessions(),\n this.dataService.getTasks(),\n this.dataService.getFrames(),\n this.dataService.getAgents(),\n this.dataService.getPRs(),\n this.dataService.getIssues(),\n this.dataService.getAnalytics(),\n ]);\n\n // Update components\n this.components.get('sessions')?.update(sessions);\n this.components.get('tasks')?.update(tasks);\n this.components.get('frames')?.update(frames);\n this.components.get('subagents')?.update(agents);\n // PR/Issue tracker expects an object with prs/issues\n this.components.get('prs')?.update({ prs, issues });\n this.components.get('analytics')?.update(analytics);\n\n this.updateStatusBar(`Last updated: ${new Date().toLocaleTimeString()}`);\n this.screen.render();\n } catch (error) {\n this.showError(`Update failed: ${error.message}`);\n }\n }\n\n private refresh(): void {\n this.updateStatusBar('Refreshing...');\n this.updateAll();\n }\n\n private focusNext(): void {\n const components = Array.from(this.components.values());\n const currentIndex = components.findIndex((c) => c.hasFocus?.());\n const nextIndex = (currentIndex + 1) % components.length;\n components[nextIndex]?.focus?.();\n this.screen.render();\n }\n\n private focusPrevious(): void {\n const components = Array.from(this.components.values());\n const currentIndex = components.findIndex((c) => c.hasFocus?.());\n const prevIndex =\n currentIndex <= 0 ? components.length - 1 : currentIndex - 1;\n components[prevIndex]?.focus?.();\n this.screen.render();\n }\n\n private showView(viewName: string): void {\n const component = this.components.get(viewName);\n if (component) {\n component.focus?.();\n component.show?.();\n this.updateStatusBar(`Viewing: ${viewName}`);\n this.screen.render();\n }\n }\n\n private updateStatusBar(message: string): void {\n const statusBar = this.components.get('status');\n if (statusBar) {\n const shortcuts =\n '{yellow-fg}[q]{/} Quit | {yellow-fg}[r]{/} Refresh | {yellow-fg}[Tab]{/} Navigate | {yellow-fg}[1-6]{/} Views';\n statusBar.setContent(`{bold}${message}{/} | ${shortcuts}`);\n this.screen.render();\n }\n }\n\n private showError(message: string): void {\n const msg = blessed.message({\n parent: this.screen,\n border: 'line',\n height: 'shrink',\n width: 'half',\n top: 'center',\n left: 'center',\n label: '{red-fg}Error{/}',\n tags: true,\n hidden: true,\n });\n\n msg.display(message, () => {\n msg.destroy();\n this.screen.render();\n });\n }\n\n public async start(): Promise<void> {\n try {\n // Show terminal compatibility info\n const termInfo = terminalCompat.getTerminalInfo();\n const warnings = terminalCompat.getWarnings();\n\n if (warnings.length > 0) {\n console.log('\u26A0\uFE0F Terminal Compatibility Warnings:');\n warnings.forEach((w) => console.log(` \u2022 ${w}`));\n console.log('');\n\n // Give user time to read warnings\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n // Show terminal capabilities in debug mode\n if (process.env.DEBUG || process.env.TUI_DEBUG) {\n console.log('\uD83D\uDD0D Terminal Capabilities:');\n console.log(` ${terminalCompat.getCapabilitiesString()}`);\n console.log('');\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n\n // Connect WebSocket (but don't fail if it can't connect)\n try {\n await this.wsClient.connect();\n } catch (wsError) {\n console.log('\u26A0\uFE0F Running in offline mode (no WebSocket connection)');\n }\n\n // Initialize data service\n await this.dataService.initialize();\n\n // Start auto-refresh\n if (this.config.refreshInterval > 0) {\n this.refreshInterval = setInterval(() => {\n this.updateAll().catch((error) => {\n // Silent error handling for refresh failures\n if (process.env.DEBUG) {\n console.error('Update error:', error);\n }\n });\n }, this.config.refreshInterval);\n }\n\n // Initial data load\n await this.updateAll();\n\n // Render screen\n this.screen.render();\n } catch (error) {\n console.error('\\n\u274C TUI startup error:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n if (process.env.DEBUG) {\n console.error('Stack trace:', error.stack);\n }\n }\n throw error;\n }\n }\n\n public cleanup(): void {\n if (this.refreshInterval) {\n clearInterval(this.refreshInterval);\n }\n this.wsClient.disconnect();\n this.dataService.cleanup();\n }\n}\n\n// CLI entry point\n// Check if this file is being run directly\nconst isMainModule =\n typeof process !== 'undefined' &&\n process.argv &&\n process.argv[1] &&\n (import.meta.url === `file://${process.argv[1]}` ||\n process.argv[1].endsWith('/index.js'));\n\nif (isMainModule) {\n // Check terminal compatibility first\n if (!terminalCompat.isCompatible()) {\n console.error('\u274C Terminal is not compatible with TUI mode');\n console.error(\n ' Please use the dashboard command instead: stackmemory dashboard --watch'\n );\n process.exit(1);\n }\n\n // Handle uncaught errors gracefully\n process.on('uncaughtException', (error) => {\n console.error('\\n\u274C TUI Error:', error.message || error);\n console.error('Error type:', error.constructor.name);\n if (error.stack) {\n console.error('Stack trace:', error.stack);\n }\n console.error(\n '\\n\uD83D\uDCA1 Try the simpler dashboard instead: stackmemory dashboard --watch'\n );\n process.exit(1);\n });\n\n process.on('unhandledRejection', (reason, promise) => {\n console.error('\\n\u274C Unhandled promise rejection at:', promise);\n console.error('Reason:', reason);\n if (reason instanceof Error) {\n console.error('Stack trace:', reason.stack);\n }\n console.error(\n '\\n\uD83D\uDCA1 Try the simpler dashboard instead: stackmemory dashboard --watch'\n );\n process.exit(1);\n });\n\n let tui;\n try {\n tui = new StackMemoryTUI({\n refreshInterval: 2000,\n wsUrl: process.env.STACKMEMORY_WS_URL || 'ws://localhost:8080',\n });\n } catch (constructorError) {\n console.error(\n '\\n\u274C Failed to create TUI:',\n constructorError.message || constructorError\n );\n if (constructorError.stack) {\n console.error('Stack trace:', constructorError.stack);\n }\n console.error(\n '\\n\uD83D\uDCA1 Try the simpler dashboard instead: stackmemory dashboard --watch'\n );\n process.exit(1);\n }\n\n tui.start().catch((error) => {\n console.error('\\n\u274C Failed to start TUI:', error.message || error);\n if (error.stack) {\n console.error('Stack trace:', error.stack);\n }\n console.error(\n '\\n\uD83D\uDCA1 Try the simpler dashboard instead: stackmemory dashboard --watch'\n );\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n tui.cleanup();\n process.exit(0);\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|