@stackmemoryai/stackmemory 0.5.59 → 0.5.61
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 +105 -1
- package/dist/src/cli/claude-sm.js +130 -50
- package/dist/src/cli/claude-sm.js.map +2 -2
- package/dist/src/cli/index.js +18 -3
- package/dist/src/cli/index.js.map +3 -3
- package/dist/src/core/extensions/custom-tools.js +567 -0
- package/dist/src/core/extensions/custom-tools.js.map +7 -0
- package/dist/src/core/extensions/index.js +55 -0
- package/dist/src/core/extensions/index.js.map +7 -0
- package/dist/src/core/extensions/loader.js +709 -0
- package/dist/src/core/extensions/loader.js.map +7 -0
- package/dist/src/core/extensions/plugin-system.js +506 -0
- package/dist/src/core/extensions/plugin-system.js.map +7 -0
- package/dist/src/core/extensions/provider-adapter.js +617 -0
- package/dist/src/core/extensions/provider-adapter.js.map +7 -0
- package/dist/src/core/extensions/sandbox-runtime.js +664 -0
- package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
- package/dist/src/core/storage/chromadb-adapter.js +32 -6
- package/dist/src/core/storage/chromadb-adapter.js.map +2 -2
- package/dist/src/skills/repo-ingestion-skill.js +35 -12
- package/dist/src/skills/repo-ingestion-skill.js.map +2 -2
- package/package.json +11 -7
- package/scripts/background-sync-manager.js +145 -83
- package/scripts/claude-sm-autostart.js +17 -12
- package/scripts/gepa/README.md +275 -0
- package/scripts/gepa/config.json +53 -0
- package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
- package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
- package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
- package/scripts/gepa/generations/gen-000/baseline.md +124 -0
- package/scripts/gepa/hooks/auto-optimize.js +494 -0
- package/scripts/gepa/hooks/eval-tracker.js +203 -0
- package/scripts/gepa/hooks/reflect.js +311 -0
- package/scripts/gepa/optimize.js +611 -0
- package/scripts/gepa/state.json +14 -0
- package/scripts/test-pre-publish-quick.sh +1 -1
- package/dist/agents/core/agent-task-manager.js +0 -527
- package/dist/agents/core/agent-task-manager.js.map +0 -7
- package/dist/agents/testing-agent.js +0 -614
- package/dist/agents/testing-agent.js.map +0 -7
- package/dist/agents/verifiers/base-verifier.js +0 -133
- package/dist/agents/verifiers/base-verifier.js.map +0 -7
- package/dist/agents/verifiers/formatter-verifier.js +0 -130
- package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
- package/dist/agents/verifiers/llm-judge.js +0 -252
- package/dist/agents/verifiers/llm-judge.js.map +0 -7
- package/dist/cli/auto-detect.js +0 -321
- package/dist/cli/auto-detect.js.map +0 -7
- package/dist/cli/browser-test.js +0 -33
- package/dist/cli/browser-test.js.map +0 -7
- package/dist/cli/claude-sm-danger.js +0 -21
- package/dist/cli/claude-sm-danger.js.map +0 -7
- package/dist/cli/claude-sm.js +0 -1156
- package/dist/cli/claude-sm.js.map +0 -7
- package/dist/cli/codex-sm-danger.js +0 -21
- package/dist/cli/codex-sm-danger.js.map +0 -7
- package/dist/cli/codex-sm.js +0 -349
- package/dist/cli/codex-sm.js.map +0 -7
- package/dist/cli/commands/api.js +0 -232
- package/dist/cli/commands/api.js.map +0 -7
- package/dist/cli/commands/auto-background.js +0 -180
- package/dist/cli/commands/auto-background.js.map +0 -7
- package/dist/cli/commands/cleanup-processes.js +0 -68
- package/dist/cli/commands/cleanup-processes.js.map +0 -7
- package/dist/cli/commands/clear.js +0 -202
- package/dist/cli/commands/clear.js.map +0 -7
- package/dist/cli/commands/config.js +0 -445
- package/dist/cli/commands/config.js.map +0 -7
- package/dist/cli/commands/context-rehydrate.js +0 -751
- package/dist/cli/commands/context-rehydrate.js.map +0 -7
- package/dist/cli/commands/context.js +0 -343
- package/dist/cli/commands/context.js.map +0 -7
- package/dist/cli/commands/daemon.js +0 -392
- package/dist/cli/commands/daemon.js.map +0 -7
- package/dist/cli/commands/dashboard.js +0 -210
- package/dist/cli/commands/dashboard.js.map +0 -7
- package/dist/cli/commands/db.js +0 -147
- package/dist/cli/commands/db.js.map +0 -7
- package/dist/cli/commands/decision.js +0 -266
- package/dist/cli/commands/decision.js.map +0 -7
- package/dist/cli/commands/discovery.js +0 -279
- package/dist/cli/commands/discovery.js.map +0 -7
- package/dist/cli/commands/handoff.js +0 -624
- package/dist/cli/commands/handoff.js.map +0 -7
- package/dist/cli/commands/hooks.js +0 -298
- package/dist/cli/commands/hooks.js.map +0 -7
- package/dist/cli/commands/linear-unified.js +0 -353
- package/dist/cli/commands/linear-unified.js.map +0 -7
- package/dist/cli/commands/linear.js +0 -529
- package/dist/cli/commands/linear.js.map +0 -7
- package/dist/cli/commands/log.js +0 -169
- package/dist/cli/commands/log.js.map +0 -7
- package/dist/cli/commands/login.js +0 -172
- package/dist/cli/commands/login.js.map +0 -7
- package/dist/cli/commands/migrate.js +0 -240
- package/dist/cli/commands/migrate.js.map +0 -7
- package/dist/cli/commands/model.js +0 -533
- package/dist/cli/commands/model.js.map +0 -7
- package/dist/cli/commands/monitor.js +0 -313
- package/dist/cli/commands/monitor.js.map +0 -7
- package/dist/cli/commands/onboard.js +0 -536
- package/dist/cli/commands/onboard.js.map +0 -7
- package/dist/cli/commands/projects.js +0 -199
- package/dist/cli/commands/projects.js.map +0 -7
- package/dist/cli/commands/quality.js +0 -413
- package/dist/cli/commands/quality.js.map +0 -7
- package/dist/cli/commands/ralph.js +0 -909
- package/dist/cli/commands/ralph.js.map +0 -7
- package/dist/cli/commands/retrieval.js +0 -248
- package/dist/cli/commands/retrieval.js.map +0 -7
- package/dist/cli/commands/search.js +0 -173
- package/dist/cli/commands/search.js.map +0 -7
- package/dist/cli/commands/service.js +0 -749
- package/dist/cli/commands/service.js.map +0 -7
- package/dist/cli/commands/session.js +0 -200
- package/dist/cli/commands/session.js.map +0 -7
- package/dist/cli/commands/settings.js +0 -306
- package/dist/cli/commands/settings.js.map +0 -7
- package/dist/cli/commands/setup.js +0 -701
- package/dist/cli/commands/setup.js.map +0 -7
- package/dist/cli/commands/shell.js +0 -249
- package/dist/cli/commands/shell.js.map +0 -7
- package/dist/cli/commands/signup.js +0 -50
- package/dist/cli/commands/signup.js.map +0 -7
- package/dist/cli/commands/skills.js +0 -470
- package/dist/cli/commands/skills.js.map +0 -7
- package/dist/cli/commands/sms-notify.js +0 -795
- package/dist/cli/commands/sms-notify.js.map +0 -7
- package/dist/cli/commands/storage-tier.js +0 -183
- package/dist/cli/commands/storage-tier.js.map +0 -7
- package/dist/cli/commands/storage.js +0 -360
- package/dist/cli/commands/storage.js.map +0 -7
- package/dist/cli/commands/sweep.js +0 -249
- package/dist/cli/commands/sweep.js.map +0 -7
- package/dist/cli/commands/tasks.js +0 -213
- package/dist/cli/commands/tasks.js.map +0 -7
- package/dist/cli/commands/test.js +0 -286
- package/dist/cli/commands/test.js.map +0 -7
- package/dist/cli/commands/workflow.js +0 -142
- package/dist/cli/commands/workflow.js.map +0 -7
- package/dist/cli/commands/worktree.js +0 -319
- package/dist/cli/commands/worktree.js.map +0 -7
- package/dist/cli/index.js +0 -594
- package/dist/cli/index.js.map +0 -7
- package/dist/cli/opencode-sm.js +0 -448
- package/dist/cli/opencode-sm.js.map +0 -7
- package/dist/cli/utils/viewer.js +0 -96
- package/dist/cli/utils/viewer.js.map +0 -7
- package/dist/core/analytics/team-analytics.js +0 -378
- package/dist/core/analytics/team-analytics.js.map +0 -7
- package/dist/core/config/config-manager.js +0 -398
- package/dist/core/config/config-manager.js.map +0 -7
- package/dist/core/config/feature-flags.js +0 -76
- package/dist/core/config/feature-flags.js.map +0 -7
- package/dist/core/config/storage-config.js +0 -115
- package/dist/core/config/storage-config.js.map +0 -7
- package/dist/core/config/types.js +0 -144
- package/dist/core/config/types.js.map +0 -7
- package/dist/core/context/auto-context.js +0 -80
- package/dist/core/context/auto-context.js.map +0 -7
- package/dist/core/context/dual-stack-manager.js +0 -870
- package/dist/core/context/dual-stack-manager.js.map +0 -7
- package/dist/core/context/enhanced-rehydration.js +0 -994
- package/dist/core/context/enhanced-rehydration.js.map +0 -7
- package/dist/core/context/frame-database.js +0 -479
- package/dist/core/context/frame-database.js.map +0 -7
- package/dist/core/context/frame-digest.js +0 -250
- package/dist/core/context/frame-digest.js.map +0 -7
- package/dist/core/context/frame-handoff-manager.js +0 -778
- package/dist/core/context/frame-handoff-manager.js.map +0 -7
- package/dist/core/context/frame-lifecycle-hooks.js +0 -119
- package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
- package/dist/core/context/frame-manager.js +0 -1069
- package/dist/core/context/frame-manager.js.map +0 -7
- package/dist/core/context/frame-recovery.js +0 -302
- package/dist/core/context/frame-recovery.js.map +0 -7
- package/dist/core/context/frame-stack.js +0 -314
- package/dist/core/context/frame-stack.js.map +0 -7
- package/dist/core/context/frame-types.js +0 -5
- package/dist/core/context/frame-types.js.map +0 -7
- package/dist/core/context/incremental-gc.js +0 -290
- package/dist/core/context/incremental-gc.js.map +0 -7
- package/dist/core/context/index.js +0 -25
- package/dist/core/context/index.js.map +0 -7
- package/dist/core/context/model-aware-compaction.js +0 -623
- package/dist/core/context/model-aware-compaction.js.map +0 -7
- package/dist/core/context/permission-manager.js +0 -185
- package/dist/core/context/permission-manager.js.map +0 -7
- package/dist/core/context/recursive-context-manager.js +0 -592
- package/dist/core/context/recursive-context-manager.js.map +0 -7
- package/dist/core/context/refactored-frame-manager.js +0 -754
- package/dist/core/context/refactored-frame-manager.js.map +0 -7
- package/dist/core/context/shared-context-layer.js +0 -621
- package/dist/core/context/shared-context-layer.js.map +0 -7
- package/dist/core/context/stack-merge-resolver.js +0 -749
- package/dist/core/context/stack-merge-resolver.js.map +0 -7
- package/dist/core/context/validation.js +0 -130
- package/dist/core/context/validation.js.map +0 -7
- package/dist/core/database/batch-operations.js +0 -384
- package/dist/core/database/batch-operations.js.map +0 -7
- package/dist/core/database/connection-pool.js +0 -330
- package/dist/core/database/connection-pool.js.map +0 -7
- package/dist/core/database/database-adapter.js +0 -60
- package/dist/core/database/database-adapter.js.map +0 -7
- package/dist/core/database/migration-manager.js +0 -614
- package/dist/core/database/migration-manager.js.map +0 -7
- package/dist/core/database/paradedb-adapter.js +0 -990
- package/dist/core/database/paradedb-adapter.js.map +0 -7
- package/dist/core/database/query-cache.js +0 -298
- package/dist/core/database/query-cache.js.map +0 -7
- package/dist/core/database/query-router.js +0 -430
- package/dist/core/database/query-router.js.map +0 -7
- package/dist/core/database/sqlite-adapter.js +0 -738
- package/dist/core/database/sqlite-adapter.js.map +0 -7
- package/dist/core/digest/enhanced-hybrid-digest.js +0 -277
- package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
- package/dist/core/digest/frame-digest-integration.js +0 -176
- package/dist/core/digest/frame-digest-integration.js.map +0 -7
- package/dist/core/digest/hybrid-digest-generator.js +0 -553
- package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
- package/dist/core/digest/index.js +0 -9
- package/dist/core/digest/index.js.map +0 -7
- package/dist/core/digest/types.js +0 -25
- package/dist/core/digest/types.js.map +0 -7
- package/dist/core/errors/error-utils.js +0 -208
- package/dist/core/errors/error-utils.js.map +0 -7
- package/dist/core/errors/index.js +0 -521
- package/dist/core/errors/index.js.map +0 -7
- package/dist/core/errors/recovery.js +0 -269
- package/dist/core/errors/recovery.js.map +0 -7
- package/dist/core/execution/parallel-executor.js +0 -258
- package/dist/core/execution/parallel-executor.js.map +0 -7
- package/dist/core/frame/workflow-templates.js +0 -319
- package/dist/core/frame/workflow-templates.js.map +0 -7
- package/dist/core/merge/conflict-detector.js +0 -431
- package/dist/core/merge/conflict-detector.js.map +0 -7
- package/dist/core/merge/index.js +0 -9
- package/dist/core/merge/index.js.map +0 -7
- package/dist/core/merge/resolution-engine.js +0 -558
- package/dist/core/merge/resolution-engine.js.map +0 -7
- package/dist/core/merge/stack-diff.js +0 -532
- package/dist/core/merge/stack-diff.js.map +0 -7
- package/dist/core/merge/unified-merge-resolver.js +0 -303
- package/dist/core/merge/unified-merge-resolver.js.map +0 -7
- package/dist/core/models/fallback-monitor.js +0 -232
- package/dist/core/models/fallback-monitor.js.map +0 -7
- package/dist/core/models/model-router.js +0 -340
- package/dist/core/models/model-router.js.map +0 -7
- package/dist/core/monitoring/error-handler.js +0 -49
- package/dist/core/monitoring/error-handler.js.map +0 -7
- package/dist/core/monitoring/logger.js +0 -202
- package/dist/core/monitoring/logger.js.map +0 -7
- package/dist/core/monitoring/metrics.js +0 -172
- package/dist/core/monitoring/metrics.js.map +0 -7
- package/dist/core/monitoring/progress-tracker.js +0 -189
- package/dist/core/monitoring/progress-tracker.js.map +0 -7
- package/dist/core/monitoring/session-monitor.js +0 -300
- package/dist/core/monitoring/session-monitor.js.map +0 -7
- package/dist/core/performance/context-cache.js +0 -273
- package/dist/core/performance/context-cache.js.map +0 -7
- package/dist/core/performance/index.js +0 -11
- package/dist/core/performance/index.js.map +0 -7
- package/dist/core/performance/lazy-context-loader.js +0 -327
- package/dist/core/performance/lazy-context-loader.js.map +0 -7
- package/dist/core/performance/monitor.js +0 -221
- package/dist/core/performance/monitor.js.map +0 -7
- package/dist/core/performance/optimized-frame-context.js +0 -345
- package/dist/core/performance/optimized-frame-context.js.map +0 -7
- package/dist/core/performance/performance-benchmark.js +0 -277
- package/dist/core/performance/performance-benchmark.js.map +0 -7
- package/dist/core/performance/performance-profiler.js +0 -370
- package/dist/core/performance/performance-profiler.js.map +0 -7
- package/dist/core/performance/streaming-jsonl-parser.js +0 -195
- package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
- package/dist/core/persistence/postgres-adapter.js +0 -349
- package/dist/core/persistence/postgres-adapter.js.map +0 -7
- package/dist/core/projects/project-isolation.js +0 -201
- package/dist/core/projects/project-isolation.js.map +0 -7
- package/dist/core/projects/project-manager.js +0 -697
- package/dist/core/projects/project-manager.js.map +0 -7
- package/dist/core/query/query-parser.js +0 -370
- package/dist/core/query/query-parser.js.map +0 -7
- package/dist/core/query/query-templates.js +0 -321
- package/dist/core/query/query-templates.js.map +0 -7
- package/dist/core/retrieval/context-retriever.js +0 -479
- package/dist/core/retrieval/context-retriever.js.map +0 -7
- package/dist/core/retrieval/graph-retrieval.js +0 -662
- package/dist/core/retrieval/graph-retrieval.js.map +0 -7
- package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
- package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
- package/dist/core/retrieval/index.js +0 -8
- package/dist/core/retrieval/index.js.map +0 -7
- package/dist/core/retrieval/llm-context-retrieval.js +0 -613
- package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
- package/dist/core/retrieval/llm-provider.js +0 -151
- package/dist/core/retrieval/llm-provider.js.map +0 -7
- package/dist/core/retrieval/retrieval-audit.js +0 -236
- package/dist/core/retrieval/retrieval-audit.js.map +0 -7
- package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
- package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
- package/dist/core/retrieval/summary-generator.js +0 -589
- package/dist/core/retrieval/summary-generator.js.map +0 -7
- package/dist/core/retrieval/types.js +0 -21
- package/dist/core/retrieval/types.js.map +0 -7
- package/dist/core/security/index.js +0 -35
- package/dist/core/security/index.js.map +0 -7
- package/dist/core/security/input-sanitizer.js +0 -321
- package/dist/core/security/input-sanitizer.js.map +0 -7
- package/dist/core/session/clear-survival.js +0 -465
- package/dist/core/session/clear-survival.js.map +0 -7
- package/dist/core/session/enhanced-handoff.js +0 -792
- package/dist/core/session/enhanced-handoff.js.map +0 -7
- package/dist/core/session/handoff-generator.js +0 -343
- package/dist/core/session/handoff-generator.js.map +0 -7
- package/dist/core/session/index.js +0 -15
- package/dist/core/session/index.js.map +0 -7
- package/dist/core/session/session-manager.js +0 -347
- package/dist/core/session/session-manager.js.map +0 -7
- package/dist/core/skills/index.js +0 -7
- package/dist/core/skills/index.js.map +0 -7
- package/dist/core/skills/skill-storage.js +0 -764
- package/dist/core/skills/skill-storage.js.map +0 -7
- package/dist/core/skills/types.js +0 -193
- package/dist/core/skills/types.js.map +0 -7
- package/dist/core/storage/chromadb-adapter.js +0 -354
- package/dist/core/storage/chromadb-adapter.js.map +0 -7
- package/dist/core/storage/infinite-storage.js +0 -510
- package/dist/core/storage/infinite-storage.js.map +0 -7
- package/dist/core/storage/railway-optimized-storage.js +0 -591
- package/dist/core/storage/railway-optimized-storage.js.map +0 -7
- package/dist/core/storage/remote-storage.js +0 -489
- package/dist/core/storage/remote-storage.js.map +0 -7
- package/dist/core/storage/two-tier-storage.js +0 -766
- package/dist/core/storage/two-tier-storage.js.map +0 -7
- package/dist/core/trace/cli-trace-wrapper.js +0 -132
- package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
- package/dist/core/trace/db-trace-wrapper.js +0 -247
- package/dist/core/trace/db-trace-wrapper.js.map +0 -7
- package/dist/core/trace/debug-trace.js +0 -417
- package/dist/core/trace/debug-trace.js.map +0 -7
- package/dist/core/trace/index.js +0 -109
- package/dist/core/trace/index.js.map +0 -7
- package/dist/core/trace/linear-api-wrapper.js +0 -178
- package/dist/core/trace/linear-api-wrapper.js.map +0 -7
- package/dist/core/trace/trace-demo.js +0 -154
- package/dist/core/trace/trace-demo.js.map +0 -7
- package/dist/core/trace/trace-detector.demo.js +0 -142
- package/dist/core/trace/trace-detector.demo.js.map +0 -7
- package/dist/core/trace/trace-detector.js +0 -528
- package/dist/core/trace/trace-detector.js.map +0 -7
- package/dist/core/trace/trace-store.js +0 -345
- package/dist/core/trace/trace-store.js.map +0 -7
- package/dist/core/trace/types.js +0 -77
- package/dist/core/trace/types.js.map +0 -7
- package/dist/core/types.js +0 -5
- package/dist/core/types.js.map +0 -7
- package/dist/core/utils/async-mutex.js +0 -114
- package/dist/core/utils/async-mutex.js.map +0 -7
- package/dist/core/utils/compression.js +0 -83
- package/dist/core/utils/compression.js.map +0 -7
- package/dist/core/utils/update-checker.js +0 -218
- package/dist/core/utils/update-checker.js.map +0 -7
- package/dist/core/worktree/worktree-manager.js +0 -465
- package/dist/core/worktree/worktree-manager.js.map +0 -7
- package/dist/daemon/daemon-config.js +0 -149
- package/dist/daemon/daemon-config.js.map +0 -7
- package/dist/daemon/services/context-service.js +0 -122
- package/dist/daemon/services/context-service.js.map +0 -7
- package/dist/daemon/services/linear-service.js +0 -136
- package/dist/daemon/services/linear-service.js.map +0 -7
- package/dist/daemon/session-daemon.js +0 -312
- package/dist/daemon/session-daemon.js.map +0 -7
- package/dist/daemon/unified-daemon.js +0 -276
- package/dist/daemon/unified-daemon.js.map +0 -7
- package/dist/features/analytics/api/analytics-api.js +0 -287
- package/dist/features/analytics/api/analytics-api.js.map +0 -7
- package/dist/features/analytics/core/analytics-service.js +0 -282
- package/dist/features/analytics/core/analytics-service.js.map +0 -7
- package/dist/features/analytics/index.js +0 -18
- package/dist/features/analytics/index.js.map +0 -7
- package/dist/features/analytics/queries/metrics-queries.js +0 -277
- package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
- package/dist/features/analytics/types/metrics.js +0 -5
- package/dist/features/analytics/types/metrics.js.map +0 -7
- package/dist/features/browser/browser-mcp.js +0 -492
- package/dist/features/browser/browser-mcp.js.map +0 -7
- package/dist/features/sweep/index.js +0 -20
- package/dist/features/sweep/index.js.map +0 -7
- package/dist/features/sweep/prediction-client.js +0 -155
- package/dist/features/sweep/prediction-client.js.map +0 -7
- package/dist/features/sweep/prompt-builder.js +0 -85
- package/dist/features/sweep/prompt-builder.js.map +0 -7
- package/dist/features/sweep/pty-wrapper.js +0 -171
- package/dist/features/sweep/pty-wrapper.js.map +0 -7
- package/dist/features/sweep/state-watcher.js +0 -87
- package/dist/features/sweep/state-watcher.js.map +0 -7
- package/dist/features/sweep/status-bar.js +0 -88
- package/dist/features/sweep/status-bar.js.map +0 -7
- package/dist/features/sweep/sweep-server-manager.js +0 -226
- package/dist/features/sweep/sweep-server-manager.js.map +0 -7
- package/dist/features/sweep/tab-interceptor.js +0 -38
- package/dist/features/sweep/tab-interceptor.js.map +0 -7
- package/dist/features/sweep/types.js +0 -18
- package/dist/features/sweep/types.js.map +0 -7
- package/dist/features/tasks/linear-task-manager.js +0 -487
- package/dist/features/tasks/linear-task-manager.js.map +0 -7
- package/dist/features/tasks/task-aware-context.js +0 -410
- package/dist/features/tasks/task-aware-context.js.map +0 -7
- package/dist/features/tui/simple-monitor.js +0 -116
- package/dist/features/tui/simple-monitor.js.map +0 -7
- package/dist/features/tui/swarm-monitor.js +0 -648
- package/dist/features/tui/swarm-monitor.js.map +0 -7
- package/dist/features/web/client/stores/task-store.js +0 -26
- package/dist/features/web/client/stores/task-store.js.map +0 -7
- package/dist/features/web/server/index.js +0 -194
- package/dist/features/web/server/index.js.map +0 -7
- package/dist/hooks/auto-background.js +0 -151
- package/dist/hooks/auto-background.js.map +0 -7
- package/dist/hooks/claude-code-whatsapp-hook.js +0 -197
- package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
- package/dist/hooks/config.js +0 -150
- package/dist/hooks/config.js.map +0 -7
- package/dist/hooks/daemon.js +0 -364
- package/dist/hooks/daemon.js.map +0 -7
- package/dist/hooks/events.js +0 -58
- package/dist/hooks/events.js.map +0 -7
- package/dist/hooks/index.js +0 -12
- package/dist/hooks/index.js.map +0 -7
- package/dist/hooks/linear-task-picker.js +0 -186
- package/dist/hooks/linear-task-picker.js.map +0 -7
- package/dist/hooks/schemas.js +0 -197
- package/dist/hooks/schemas.js.map +0 -7
- package/dist/hooks/secure-fs.js +0 -49
- package/dist/hooks/secure-fs.js.map +0 -7
- package/dist/hooks/security-logger.js +0 -155
- package/dist/hooks/security-logger.js.map +0 -7
- package/dist/hooks/session-summary.js +0 -222
- package/dist/hooks/session-summary.js.map +0 -7
- package/dist/hooks/sms-action-runner.js +0 -371
- package/dist/hooks/sms-action-runner.js.map +0 -7
- package/dist/hooks/sms-notify.js +0 -506
- package/dist/hooks/sms-notify.js.map +0 -7
- package/dist/hooks/sms-watcher.js +0 -93
- package/dist/hooks/sms-watcher.js.map +0 -7
- package/dist/hooks/sms-webhook.js +0 -555
- package/dist/hooks/sms-webhook.js.map +0 -7
- package/dist/hooks/whatsapp-commands.js +0 -479
- package/dist/hooks/whatsapp-commands.js.map +0 -7
- package/dist/hooks/whatsapp-scheduler.js +0 -317
- package/dist/hooks/whatsapp-scheduler.js.map +0 -7
- package/dist/hooks/whatsapp-sync.js +0 -409
- package/dist/hooks/whatsapp-sync.js.map +0 -7
- package/dist/index.js +0 -25
- package/dist/index.js.map +0 -7
- package/dist/integrations/anthropic/client.js +0 -263
- package/dist/integrations/anthropic/client.js.map +0 -7
- package/dist/integrations/claude-code/agent-bridge.js +0 -768
- package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -459
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
- package/dist/integrations/claude-code/lifecycle-hooks.js +0 -254
- package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
- package/dist/integrations/claude-code/post-task-hooks.js +0 -545
- package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client-stub.js +0 -20
- package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client.js +0 -511
- package/dist/integrations/claude-code/subagent-client.js.map +0 -7
- package/dist/integrations/claude-code/task-coordinator.js +0 -360
- package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
- package/dist/integrations/linear/auth.js +0 -337
- package/dist/integrations/linear/auth.js.map +0 -7
- package/dist/integrations/linear/auto-sync.js +0 -258
- package/dist/integrations/linear/auto-sync.js.map +0 -7
- package/dist/integrations/linear/client.js +0 -634
- package/dist/integrations/linear/client.js.map +0 -7
- package/dist/integrations/linear/config.js +0 -130
- package/dist/integrations/linear/config.js.map +0 -7
- package/dist/integrations/linear/migration.js +0 -361
- package/dist/integrations/linear/migration.js.map +0 -7
- package/dist/integrations/linear/oauth-server.js +0 -454
- package/dist/integrations/linear/oauth-server.js.map +0 -7
- package/dist/integrations/linear/rest-client.js +0 -213
- package/dist/integrations/linear/rest-client.js.map +0 -7
- package/dist/integrations/linear/sync-manager.js +0 -236
- package/dist/integrations/linear/sync-manager.js.map +0 -7
- package/dist/integrations/linear/sync-service.js +0 -231
- package/dist/integrations/linear/sync-service.js.map +0 -7
- package/dist/integrations/linear/sync.js +0 -782
- package/dist/integrations/linear/sync.js.map +0 -7
- package/dist/integrations/linear/types.js +0 -5
- package/dist/integrations/linear/types.js.map +0 -7
- package/dist/integrations/linear/unified-sync.js +0 -589
- package/dist/integrations/linear/unified-sync.js.map +0 -7
- package/dist/integrations/linear/webhook-handler.js +0 -219
- package/dist/integrations/linear/webhook-handler.js.map +0 -7
- package/dist/integrations/linear/webhook-server.js +0 -218
- package/dist/integrations/linear/webhook-server.js.map +0 -7
- package/dist/integrations/linear/webhook.js +0 -291
- package/dist/integrations/linear/webhook.js.map +0 -7
- package/dist/integrations/mcp/handlers/code-execution-handlers.js +0 -266
- package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/context-handlers.js +0 -257
- package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/discovery-handlers.js +0 -497
- package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/index.js +0 -166
- package/dist/integrations/mcp/handlers/index.js.map +0 -7
- package/dist/integrations/mcp/handlers/linear-handlers.js +0 -247
- package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/skill-handlers.js +0 -529
- package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/task-handlers.js +0 -239
- package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/trace-handlers.js +0 -308
- package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
- package/dist/integrations/mcp/index.js +0 -23
- package/dist/integrations/mcp/index.js.map +0 -7
- package/dist/integrations/mcp/middleware/tool-scoring.js +0 -356
- package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
- package/dist/integrations/mcp/refactored-server.js +0 -374
- package/dist/integrations/mcp/refactored-server.js.map +0 -7
- package/dist/integrations/mcp/remote-server.js +0 -682
- package/dist/integrations/mcp/remote-server.js.map +0 -7
- package/dist/integrations/mcp/schemas.js +0 -147
- package/dist/integrations/mcp/schemas.js.map +0 -7
- package/dist/integrations/mcp/server.js +0 -1975
- package/dist/integrations/mcp/server.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions-code.js +0 -125
- package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions.js +0 -702
- package/dist/integrations/mcp/tool-definitions.js.map +0 -7
- package/dist/integrations/mcp/trace-test.js +0 -48
- package/dist/integrations/mcp/trace-test.js.map +0 -7
- package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
- package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
- package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
- package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
- package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
- package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
- package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -860
- package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
- package/dist/integrations/ralph/context/context-budget-manager.js +0 -301
- package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
- package/dist/integrations/ralph/context/stackmemory-context-loader.js +0 -360
- package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
- package/dist/integrations/ralph/coordination/enhanced-coordination.js +0 -410
- package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
- package/dist/integrations/ralph/index.js +0 -18
- package/dist/integrations/ralph/index.js.map +0 -7
- package/dist/integrations/ralph/learning/pattern-learner.js +0 -401
- package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
- package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js +0 -448
- package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-dashboard.js +0 -294
- package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-registry.js +0 -108
- package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
- package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -463
- package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
- package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -400
- package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
- package/dist/integrations/ralph/patterns/extended-coherence-sessions.js +0 -473
- package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
- package/dist/integrations/ralph/patterns/oracle-worker-pattern.js +0 -388
- package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
- package/dist/integrations/ralph/performance/performance-optimizer.js +0 -358
- package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
- package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
- package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
- package/dist/integrations/ralph/recovery/crash-recovery.js +0 -462
- package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
- package/dist/integrations/ralph/state/state-reconciler.js +0 -404
- package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
- package/dist/integrations/ralph/swarm/git-workflow-manager.js +0 -428
- package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
- package/dist/integrations/ralph/swarm/swarm-coordinator.js +0 -996
- package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
- package/dist/integrations/ralph/types.js +0 -5
- package/dist/integrations/ralph/types.js.map +0 -7
- package/dist/integrations/ralph/visualization/ralph-debugger.js +0 -585
- package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
- package/dist/mcp/stackmemory-mcp-server.js +0 -554
- package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
- package/dist/middleware/exponential-rate-limiter.js +0 -289
- package/dist/middleware/exponential-rate-limiter.js.map +0 -7
- package/dist/models/user.model.js +0 -358
- package/dist/models/user.model.js.map +0 -7
- package/dist/servers/production/auth-middleware.js +0 -528
- package/dist/servers/production/auth-middleware.js.map +0 -7
- package/dist/servers/railway/config.js +0 -55
- package/dist/servers/railway/config.js.map +0 -7
- package/dist/servers/railway/index-enhanced.js +0 -160
- package/dist/servers/railway/index-enhanced.js.map +0 -7
- package/dist/servers/railway/index.js +0 -1349
- package/dist/servers/railway/index.js.map +0 -7
- package/dist/servers/railway/simple.js +0 -64
- package/dist/servers/railway/simple.js.map +0 -7
- package/dist/servers/railway/storage-test.js +0 -459
- package/dist/servers/railway/storage-test.js.map +0 -7
- package/dist/services/config-service.js +0 -65
- package/dist/services/config-service.js.map +0 -7
- package/dist/services/context-service.js +0 -194
- package/dist/services/context-service.js.map +0 -7
- package/dist/skills/api-discovery.js +0 -354
- package/dist/skills/api-discovery.js.map +0 -7
- package/dist/skills/api-skill.js +0 -475
- package/dist/skills/api-skill.js.map +0 -7
- package/dist/skills/claude-skills.js +0 -1061
- package/dist/skills/claude-skills.js.map +0 -7
- package/dist/skills/dashboard-launcher.js +0 -216
- package/dist/skills/dashboard-launcher.js.map +0 -7
- package/dist/skills/recursive-agent-orchestrator.js +0 -575
- package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
- package/dist/skills/repo-ingestion-skill.js +0 -609
- package/dist/skills/repo-ingestion-skill.js.map +0 -7
- package/dist/skills/security-secrets-scanner.js +0 -284
- package/dist/skills/security-secrets-scanner.js.map +0 -7
- package/dist/skills/unified-rlm-orchestrator.js +0 -404
- package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
- package/dist/types/task.js +0 -5
- package/dist/types/task.js.map +0 -7
- package/dist/utils/env.js +0 -50
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/formatting.js +0 -62
- package/dist/utils/formatting.js.map +0 -7
- package/dist/utils/process-cleanup.js +0 -136
- package/dist/utils/process-cleanup.js.map +0 -7
- package/dist/validation/schemas.js +0 -222
- package/dist/validation/schemas.js.map +0 -7
- /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
- /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/context/model-aware-compaction.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Model-Aware Compaction Handler\n * Dynamically adjusts thresholds based on detected Claude model\n */\n\nimport { logger } from '../monitoring/logger.js';\n\nexport interface ModelProfile {\n name: string;\n contextWindow: number;\n outputLimit: number;\n // Compaction typically happens at 80-90% of context window\n warningThreshold: number; // 75% of context\n criticalThreshold: number; // 85% of context\n compactionZone: number; // 90% - actual compaction\n characteristics: {\n supportsLongContext: boolean;\n betaFeatures?: string[];\n costTier: 'low' | 'medium' | 'high' | 'premium';\n };\n}\n\nexport interface ModelDetectionResult {\n detectedModel: string;\n confidence: number;\n profile: ModelProfile;\n source: 'header' | 'behavior' | 'default';\n}\n\nexport class ModelAwareCompactionHandler {\n private static readonly MODEL_PROFILES: Record<string, ModelProfile> = {\n // === ANTHROPIC CLAUDE MODELS ===\n 'claude-3-haiku': {\n name: 'Claude 3 Haiku',\n contextWindow: 200000,\n outputLimit: 4096,\n warningThreshold: 150000, // 75%\n criticalThreshold: 170000, // 85%\n compactionZone: 180000, // 90%\n characteristics: {\n supportsLongContext: true,\n costTier: 'low',\n },\n },\n 'claude-3-5-haiku': {\n name: 'Claude 3.5 Haiku',\n contextWindow: 200000,\n outputLimit: 8192,\n warningThreshold: 150000,\n criticalThreshold: 170000,\n compactionZone: 180000,\n characteristics: {\n supportsLongContext: true,\n costTier: 'low',\n },\n },\n 'claude-3-sonnet': {\n name: 'Claude 3 Sonnet',\n contextWindow: 200000,\n outputLimit: 4096,\n warningThreshold: 150000,\n criticalThreshold: 170000,\n compactionZone: 180000,\n characteristics: {\n supportsLongContext: true,\n costTier: 'medium',\n },\n },\n 'claude-3-5-sonnet': {\n name: 'Claude 3.5 Sonnet',\n contextWindow: 200000,\n outputLimit: 8192, // With beta header\n warningThreshold: 150000,\n criticalThreshold: 170000,\n compactionZone: 180000,\n characteristics: {\n supportsLongContext: true,\n betaFeatures: ['max-tokens-3-5-sonnet-2024-07-15'],\n costTier: 'medium',\n },\n },\n 'claude-3-opus': {\n name: 'Claude 3 Opus',\n contextWindow: 200000, // Standard, can be 1M in beta\n outputLimit: 4096,\n warningThreshold: 150000,\n criticalThreshold: 170000,\n compactionZone: 180000,\n characteristics: {\n supportsLongContext: true,\n costTier: 'premium',\n },\n },\n 'claude-3-opus-beta-1m': {\n name: 'Claude 3 Opus (1M Beta)',\n contextWindow: 1000000,\n outputLimit: 4096,\n warningThreshold: 750000, // 75%\n criticalThreshold: 850000, // 85%\n compactionZone: 900000, // 90%\n characteristics: {\n supportsLongContext: true,\n betaFeatures: ['1m-context-window'],\n costTier: 'premium',\n },\n },\n 'claude-2': {\n name: 'Claude 2',\n contextWindow: 100000,\n outputLimit: 4096,\n warningThreshold: 75000, // 75%\n criticalThreshold: 85000, // 85%\n compactionZone: 90000, // 90%\n characteristics: {\n supportsLongContext: true,\n costTier: 'medium',\n },\n },\n 'claude-instant': {\n name: 'Claude Instant',\n contextWindow: 100000,\n outputLimit: 4096,\n warningThreshold: 75000,\n criticalThreshold: 85000,\n compactionZone: 90000,\n characteristics: {\n supportsLongContext: true,\n costTier: 'low',\n },\n },\n\n // === OPENAI GPT MODELS ===\n 'gpt-4o': {\n name: 'GPT-4o',\n contextWindow: 128000,\n outputLimit: 16384, // Can be 4096-16384\n warningThreshold: 96000, // 75%\n criticalThreshold: 108800, // 85%\n compactionZone: 115200, // 90%\n characteristics: {\n supportsLongContext: true,\n costTier: 'high',\n },\n },\n 'gpt-4-turbo': {\n name: 'GPT-4 Turbo',\n contextWindow: 128000,\n outputLimit: 4096,\n warningThreshold: 96000,\n criticalThreshold: 108800,\n compactionZone: 115200,\n characteristics: {\n supportsLongContext: true,\n costTier: 'high',\n },\n },\n 'gpt-4': {\n name: 'GPT-4',\n contextWindow: 8192, // Standard GPT-4\n outputLimit: 4096,\n warningThreshold: 6144, // 75%\n criticalThreshold: 6963, // 85%\n compactionZone: 7373, // 90%\n characteristics: {\n supportsLongContext: false,\n costTier: 'high',\n },\n },\n 'gpt-4-32k': {\n name: 'GPT-4 32K',\n contextWindow: 32768,\n outputLimit: 4096,\n warningThreshold: 24576, // 75%\n criticalThreshold: 27853, // 85%\n compactionZone: 29491, // 90%\n characteristics: {\n supportsLongContext: true,\n costTier: 'premium',\n },\n },\n 'gpt-3.5-turbo': {\n name: 'GPT-3.5 Turbo',\n contextWindow: 16385,\n outputLimit: 4096,\n warningThreshold: 12289, // 75%\n criticalThreshold: 13927, // 85%\n compactionZone: 14747, // 90%\n characteristics: {\n supportsLongContext: false,\n costTier: 'low',\n },\n },\n 'gpt-3.5-turbo-16k': {\n name: 'GPT-3.5 Turbo 16K',\n contextWindow: 16385,\n outputLimit: 4096,\n warningThreshold: 12289,\n criticalThreshold: 13927,\n compactionZone: 14747,\n characteristics: {\n supportsLongContext: false,\n costTier: 'low',\n },\n },\n\n // === GOOGLE GEMINI MODELS ===\n 'gemini-1.5-pro': {\n name: 'Gemini 1.5 Pro',\n contextWindow: 128000, // Standard, can be up to 2M\n outputLimit: 32768, // 32K output\n warningThreshold: 96000,\n criticalThreshold: 108800,\n compactionZone: 115200,\n characteristics: {\n supportsLongContext: true,\n costTier: 'medium',\n },\n },\n 'gemini-1.5-pro-1m': {\n name: 'Gemini 1.5 Pro (1M)',\n contextWindow: 1000000,\n outputLimit: 32768,\n warningThreshold: 750000, // 75%\n criticalThreshold: 850000, // 85%\n compactionZone: 900000, // 90%\n characteristics: {\n supportsLongContext: true,\n betaFeatures: ['1m-context'],\n costTier: 'high',\n },\n },\n 'gemini-1.5-pro-2m': {\n name: 'Gemini 1.5 Pro (2M)',\n contextWindow: 2000000,\n outputLimit: 32768,\n warningThreshold: 1500000, // 75%\n criticalThreshold: 1700000, // 85%\n compactionZone: 1800000, // 90%\n characteristics: {\n supportsLongContext: true,\n betaFeatures: ['2m-context'],\n costTier: 'premium',\n },\n },\n 'gemini-1.5-flash': {\n name: 'Gemini 1.5 Flash',\n contextWindow: 1000000,\n outputLimit: 32768,\n warningThreshold: 750000,\n criticalThreshold: 850000,\n compactionZone: 900000,\n characteristics: {\n supportsLongContext: true,\n costTier: 'low',\n },\n },\n 'gemini-2.0-flash': {\n name: 'Gemini 2.0 Flash',\n contextWindow: 1000000,\n outputLimit: 32768,\n warningThreshold: 750000,\n criticalThreshold: 850000,\n compactionZone: 900000,\n characteristics: {\n supportsLongContext: true,\n betaFeatures: ['native-tools'],\n costTier: 'low',\n },\n },\n 'gemini-1.0-pro': {\n name: 'Gemini 1.0 Pro',\n contextWindow: 32768,\n outputLimit: 8192,\n warningThreshold: 24576,\n criticalThreshold: 27853,\n compactionZone: 29491,\n characteristics: {\n supportsLongContext: false,\n costTier: 'medium',\n },\n },\n\n // === MISTRAL MODELS ===\n 'mistral-large': {\n name: 'Mistral Large',\n contextWindow: 128000,\n outputLimit: 4096,\n warningThreshold: 96000,\n criticalThreshold: 108800,\n compactionZone: 115200,\n characteristics: {\n supportsLongContext: true,\n costTier: 'medium',\n },\n },\n 'mistral-medium': {\n name: 'Mistral Medium',\n contextWindow: 32768,\n outputLimit: 4096,\n warningThreshold: 24576,\n criticalThreshold: 27853,\n compactionZone: 29491,\n characteristics: {\n supportsLongContext: false,\n costTier: 'low',\n },\n },\n };\n\n private currentModel: ModelProfile;\n private detectionHistory: ModelDetectionResult[] = [];\n private tokenEstimate: number = 0;\n\n constructor() {\n // Default to Claude 3.5 Sonnet (most common in Claude Code)\n this.currentModel =\n ModelAwareCompactionHandler.MODEL_PROFILES['claude-3-5-sonnet'];\n }\n\n /**\n * Detect model from various signals\n */\n detectModel(signals: {\n headers?: Record<string, string>;\n responsePatterns?: string;\n tokenCount?: number;\n outputLength?: number;\n }): ModelDetectionResult {\n let detectedModel = 'claude-3-5-sonnet'; // Default\n let confidence = 0.5;\n let source: ModelDetectionResult['source'] = 'default';\n\n // 1. Check headers for model information\n if (signals.headers) {\n const modelHeader =\n signals.headers['x-anthropic-model'] ||\n signals.headers['anthropic-model'] ||\n signals.headers['model'];\n\n if (modelHeader) {\n const normalized = this.normalizeModelName(modelHeader);\n if (ModelAwareCompactionHandler.MODEL_PROFILES[normalized]) {\n detectedModel = normalized;\n confidence = 0.95;\n source = 'header';\n }\n }\n\n // Check for beta features\n const betaHeader = signals.headers['anthropic-beta'];\n if (betaHeader) {\n if (betaHeader.includes('max-tokens-3-5-sonnet')) {\n detectedModel = 'claude-3-5-sonnet';\n confidence = Math.max(confidence, 0.9);\n } else if (betaHeader.includes('1m-context')) {\n detectedModel = 'claude-3-opus-beta-1m';\n confidence = 0.95;\n source = 'header';\n }\n }\n }\n\n // 2. Behavioral detection based on output length\n if (signals.outputLength && confidence < 0.9) {\n if (signals.outputLength > 4096 && signals.outputLength <= 8192) {\n // Likely 3.5 models with extended output\n detectedModel = detectedModel.includes('haiku')\n ? 'claude-3-5-haiku'\n : 'claude-3-5-sonnet';\n confidence = Math.max(confidence, 0.7);\n source = source === 'default' ? 'behavior' : source;\n }\n }\n\n // 3. Token count detection for 1M context\n if (signals.tokenCount && signals.tokenCount > 200000) {\n detectedModel = 'claude-3-opus-beta-1m';\n confidence = 0.8;\n source = 'behavior';\n }\n\n // 4. Response pattern detection\n if (signals.responsePatterns && confidence < 0.8) {\n const patterns = signals.responsePatterns.toLowerCase();\n\n // Model self-identification patterns\n if (patterns.includes('claude 3.5 sonnet')) {\n detectedModel = 'claude-3-5-sonnet';\n confidence = 0.85;\n source = 'behavior';\n } else if (patterns.includes('claude 3 opus')) {\n detectedModel = 'claude-3-opus';\n confidence = 0.85;\n source = 'behavior';\n } else if (patterns.includes('claude 3.5 haiku')) {\n detectedModel = 'claude-3-5-haiku';\n confidence = 0.85;\n source = 'behavior';\n }\n }\n\n const profile = ModelAwareCompactionHandler.MODEL_PROFILES[detectedModel];\n const result: ModelDetectionResult = {\n detectedModel,\n confidence,\n profile,\n source,\n };\n\n this.detectionHistory.push(result);\n this.currentModel = profile;\n\n logger.info(\n `Model detected: ${profile.name} (confidence: ${confidence}, source: ${source})`\n );\n\n return result;\n }\n\n /**\n * Normalize model name to match our profiles\n */\n private normalizeModelName(modelName: string): string {\n const normalized = modelName\n .toLowerCase()\n .replace(/[^a-z0-9-]/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n\n // Map variations to our standard names\n const mappings: Record<string, string> = {\n // Claude models\n 'claude-3-haiku': 'claude-3-haiku',\n 'claude-3-5-haiku': 'claude-3-5-haiku',\n 'claude-haiku': 'claude-3-haiku',\n 'claude-3-sonnet': 'claude-3-sonnet',\n 'claude-3-5-sonnet': 'claude-3-5-sonnet',\n 'claude-sonnet': 'claude-3-sonnet',\n 'claude-3-opus': 'claude-3-opus',\n 'claude-opus': 'claude-3-opus',\n 'claude-2': 'claude-2',\n 'claude-instant': 'claude-instant',\n 'claude-instant-1': 'claude-instant',\n\n // OpenAI models\n 'gpt-4o': 'gpt-4o',\n 'gpt-4o-mini': 'gpt-4o',\n 'gpt-4-turbo': 'gpt-4-turbo',\n 'gpt-4-turbo-preview': 'gpt-4-turbo',\n 'gpt-4': 'gpt-4',\n 'gpt-4-32k': 'gpt-4-32k',\n 'gpt-3-5-turbo': 'gpt-3.5-turbo',\n 'gpt-35-turbo': 'gpt-3.5-turbo',\n 'gpt-3-5-turbo-16k': 'gpt-3.5-turbo-16k',\n\n // Google models\n 'gemini-pro': 'gemini-1.0-pro',\n 'gemini-1-5-pro': 'gemini-1.5-pro',\n 'gemini-1-5-flash': 'gemini-1.5-flash',\n 'gemini-2-0-flash': 'gemini-2.0-flash',\n 'gemini-pro-1-5': 'gemini-1.5-pro',\n 'gemini-flash': 'gemini-1.5-flash',\n\n // Mistral models\n 'mistral-large': 'mistral-large',\n 'mistral-large-latest': 'mistral-large',\n 'mistral-medium': 'mistral-medium',\n 'mistral-medium-latest': 'mistral-medium',\n };\n\n return mappings[normalized] || normalized;\n }\n\n /**\n * Get adaptive thresholds based on current model\n */\n getAdaptiveThresholds(): {\n warning: number;\n critical: number;\n compaction: number;\n } {\n return {\n warning: this.currentModel.warningThreshold,\n critical: this.currentModel.criticalThreshold,\n compaction: this.currentModel.compactionZone,\n };\n }\n\n /**\n * Calculate preservation strategy based on model\n */\n getPreservationStrategy(): {\n aggressiveness: 'minimal' | 'balanced' | 'aggressive';\n preserveRatio: number;\n compressionLevel: 'light' | 'moderate' | 'heavy';\n } {\n const costTier = this.currentModel.characteristics.costTier;\n const contextSize = this.currentModel.contextWindow;\n\n // High-cost models: preserve more aggressively\n // Large context models: can be more relaxed\n\n if (costTier === 'premium') {\n return {\n aggressiveness: 'aggressive',\n preserveRatio: 0.3, // Preserve 30% of context\n compressionLevel: 'light',\n };\n } else if (costTier === 'medium') {\n return {\n aggressiveness: 'balanced',\n preserveRatio: 0.2, // Preserve 20% of context\n compressionLevel: 'moderate',\n };\n } else {\n return {\n aggressiveness: 'minimal',\n preserveRatio: 0.1, // Preserve 10% of context\n compressionLevel: 'heavy',\n };\n }\n }\n\n /**\n * Estimate tokens more accurately based on model\n */\n estimateTokens(text: string): number {\n // Claude models use a similar tokenization to GPT models\n // But Claude tends to be slightly more efficient\n\n // Basic heuristic: ~3.5 characters per token for Claude\n // (vs 4 characters for GPT models)\n let baseEstimate = Math.ceil(text.length / 3.5);\n\n // Adjust for code content (more tokens)\n const codeIndicators = [\n '{',\n '}',\n '(',\n ')',\n ';',\n 'function',\n 'const',\n 'let',\n ];\n const codeScore = codeIndicators.reduce(\n (score, indicator) => score + (text.split(indicator).length - 1),\n 0\n );\n\n if (codeScore > 50) {\n baseEstimate *= 1.2; // Code typically uses 20% more tokens\n }\n\n // Adjust for natural language (fewer tokens)\n const avgWordLength =\n text.split(/\\s+/).reduce((sum, word) => sum + word.length, 0) /\n Math.max(1, text.split(/\\s+/).length);\n\n if (avgWordLength > 6) {\n baseEstimate *= 0.9; // Longer words = more efficient tokenization\n }\n\n this.tokenEstimate += baseEstimate;\n return Math.round(baseEstimate);\n }\n\n /**\n * Check if approaching any threshold\n */\n checkThresholds(currentTokens: number): {\n status: 'safe' | 'warning' | 'critical' | 'compaction';\n percentage: number;\n tokensRemaining: number;\n recommendation: string;\n } {\n const thresholds = this.getAdaptiveThresholds();\n const percentage = (currentTokens / this.currentModel.contextWindow) * 100;\n const tokensRemaining = this.currentModel.contextWindow - currentTokens;\n\n let status: 'safe' | 'warning' | 'critical' | 'compaction';\n let recommendation: string;\n\n if (currentTokens >= thresholds.compaction) {\n status = 'compaction';\n recommendation =\n 'Compaction imminent or occurred. Restore critical context immediately.';\n } else if (currentTokens >= thresholds.critical) {\n status = 'critical';\n recommendation =\n 'Create full context preservation. Prepare for compaction.';\n } else if (currentTokens >= thresholds.warning) {\n status = 'warning';\n recommendation =\n 'Begin selective context preservation. Monitor token usage closely.';\n } else {\n status = 'safe';\n recommendation =\n 'Token usage within safe limits. Continue normal operation.';\n }\n\n return {\n status,\n percentage,\n tokensRemaining,\n recommendation,\n };\n }\n\n /**\n * Get model-specific compaction hints\n */\n getCompactionHints(): string[] {\n const hints: string[] = [];\n\n if (this.currentModel.contextWindow >= 1000000) {\n hints.push(\n '1M context model detected - compaction less likely but still possible'\n );\n hints.push(\n 'Consider chunking very large operations to stay under 900K tokens'\n );\n } else if (this.currentModel.contextWindow >= 200000) {\n hints.push(\n 'Standard 200K context - expect compaction around 180K tokens'\n );\n hints.push('Preserve critical context every 50K tokens for safety');\n } else {\n hints.push('Limited context model - be aggressive with preservation');\n hints.push('Consider breaking work into smaller sessions');\n }\n\n if (this.currentModel.characteristics.betaFeatures) {\n hints.push(\n `Beta features available: ${this.currentModel.characteristics.betaFeatures.join(', ')}`\n );\n }\n\n if (this.currentModel.characteristics.costTier === 'premium') {\n hints.push(\n 'Premium model - maximize context preservation to avoid re-processing'\n );\n } else if (this.currentModel.characteristics.costTier === 'low') {\n hints.push(\n 'Cost-effective model - can be more aggressive with resets if needed'\n );\n }\n\n return hints;\n }\n\n /**\n * Suggest optimal preservation points based on model\n */\n getSuggestedPreservationPoints(): number[] {\n const contextWindow = this.currentModel.contextWindow;\n const points: number[] = [];\n\n // Suggest preservation at regular intervals\n // More frequent for smaller contexts\n const interval =\n contextWindow >= 500000\n ? 100000\n : contextWindow >= 200000\n ? 50000\n : 25000;\n\n for (let point = interval; point < contextWindow * 0.9; point += interval) {\n points.push(point);\n }\n\n // Always include warning and critical thresholds\n points.push(this.currentModel.warningThreshold);\n points.push(this.currentModel.criticalThreshold);\n\n return [...new Set(points)].sort((a, b) => a - b);\n }\n\n /**\n * Get current model profile\n */\n getCurrentModel(): ModelProfile {\n return this.currentModel;\n }\n\n /**\n * Get detection history for diagnostics\n */\n getDetectionHistory(): ModelDetectionResult[] {\n return this.detectionHistory;\n }\n\n /**\n * Update model manually (for testing or override)\n */\n setModel(modelKey: string): boolean {\n const profile = ModelAwareCompactionHandler.MODEL_PROFILES[modelKey];\n if (profile) {\n this.currentModel = profile;\n logger.info(`Model manually set to: ${profile.name}`);\n return true;\n }\n return false;\n }\n\n /**\n * Export model profiles for reference\n */\n static getAvailableModels(): string[] {\n return Object.keys(ModelAwareCompactionHandler.MODEL_PROFILES);\n }\n\n /**\n * Get specific model profile\n */\n static getModelProfile(modelKey: string): ModelProfile | undefined {\n return ModelAwareCompactionHandler.MODEL_PROFILES[modelKey];\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;AAKA,SAAS,cAAc;AAwBhB,MAAM,4BAA4B;AAAA,EACvC,OAAwB,iBAA+C;AAAA;AAAA,IAErE,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,cAAc,CAAC,kCAAkC;AAAA,QACjD,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,eAAe;AAAA;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,cAAc,CAAC,mBAAmB;AAAA,QAClC,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA;AAAA,IAGA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,eAAe;AAAA;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA;AAAA,IAGA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,eAAe;AAAA;AAAA,MACf,aAAa;AAAA;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,cAAc,CAAC,YAAY;AAAA,QAC3B,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA;AAAA,MAClB,mBAAmB;AAAA;AAAA,MACnB,gBAAgB;AAAA;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,cAAc,CAAC,YAAY;AAAA,QAC3B,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,cAAc,CAAC,cAAc;AAAA,QAC7B,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA;AAAA,IAGA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAAA,EAEQ;AAAA,EACA,mBAA2C,CAAC;AAAA,EAC5C,gBAAwB;AAAA,EAEhC,cAAc;AAEZ,SAAK,eACH,4BAA4B,eAAe,mBAAmB;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,SAKa;AACvB,QAAI,gBAAgB;AACpB,QAAI,aAAa;AACjB,QAAI,SAAyC;AAG7C,QAAI,QAAQ,SAAS;AACnB,YAAM,cACJ,QAAQ,QAAQ,mBAAmB,KACnC,QAAQ,QAAQ,iBAAiB,KACjC,QAAQ,QAAQ,OAAO;AAEzB,UAAI,aAAa;AACf,cAAM,aAAa,KAAK,mBAAmB,WAAW;AACtD,YAAI,4BAA4B,eAAe,UAAU,GAAG;AAC1D,0BAAgB;AAChB,uBAAa;AACb,mBAAS;AAAA,QACX;AAAA,MACF;AAGA,YAAM,aAAa,QAAQ,QAAQ,gBAAgB;AACnD,UAAI,YAAY;AACd,YAAI,WAAW,SAAS,uBAAuB,GAAG;AAChD,0BAAgB;AAChB,uBAAa,KAAK,IAAI,YAAY,GAAG;AAAA,QACvC,WAAW,WAAW,SAAS,YAAY,GAAG;AAC5C,0BAAgB;AAChB,uBAAa;AACb,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAGA,QAAI,QAAQ,gBAAgB,aAAa,KAAK;AAC5C,UAAI,QAAQ,eAAe,QAAQ,QAAQ,gBAAgB,MAAM;AAE/D,wBAAgB,cAAc,SAAS,OAAO,IAC1C,qBACA;AACJ,qBAAa,KAAK,IAAI,YAAY,GAAG;AACrC,iBAAS,WAAW,YAAY,aAAa;AAAA,MAC/C;AAAA,IACF;AAGA,QAAI,QAAQ,cAAc,QAAQ,aAAa,KAAQ;AACrD,sBAAgB;AAChB,mBAAa;AACb,eAAS;AAAA,IACX;AAGA,QAAI,QAAQ,oBAAoB,aAAa,KAAK;AAChD,YAAM,WAAW,QAAQ,iBAAiB,YAAY;AAGtD,UAAI,SAAS,SAAS,mBAAmB,GAAG;AAC1C,wBAAgB;AAChB,qBAAa;AACb,iBAAS;AAAA,MACX,WAAW,SAAS,SAAS,eAAe,GAAG;AAC7C,wBAAgB;AAChB,qBAAa;AACb,iBAAS;AAAA,MACX,WAAW,SAAS,SAAS,kBAAkB,GAAG;AAChD,wBAAgB;AAChB,qBAAa;AACb,iBAAS;AAAA,MACX;AAAA,IACF;AAEA,UAAM,UAAU,4BAA4B,eAAe,aAAa;AACxE,UAAM,SAA+B;AAAA,MACnC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,SAAK,iBAAiB,KAAK,MAAM;AACjC,SAAK,eAAe;AAEpB,WAAO;AAAA,MACL,mBAAmB,QAAQ,IAAI,iBAAiB,UAAU,aAAa,MAAM;AAAA,IAC/E;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAmB,WAA2B;AACpD,UAAM,aAAa,UAChB,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE;AAGvB,UAAM,WAAmC;AAAA;AAAA,MAEvC,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,kBAAkB;AAAA,MAClB,oBAAoB;AAAA;AAAA,MAGpB,UAAU;AAAA,MACV,eAAe;AAAA,MACf,eAAe;AAAA,MACf,uBAAuB;AAAA,MACvB,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,qBAAqB;AAAA;AAAA,MAGrB,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA;AAAA,MAGhB,iBAAiB;AAAA,MACjB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,IAC3B;AAEA,WAAO,SAAS,UAAU,KAAK;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,wBAIE;AACA,WAAO;AAAA,MACL,SAAS,KAAK,aAAa;AAAA,MAC3B,UAAU,KAAK,aAAa;AAAA,MAC5B,YAAY,KAAK,aAAa;AAAA,IAChC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,0BAIE;AACA,UAAM,WAAW,KAAK,aAAa,gBAAgB;AACnD,UAAM,cAAc,KAAK,aAAa;AAKtC,QAAI,aAAa,WAAW;AAC1B,aAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,eAAe;AAAA;AAAA,QACf,kBAAkB;AAAA,MACpB;AAAA,IACF,WAAW,aAAa,UAAU;AAChC,aAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,eAAe;AAAA;AAAA,QACf,kBAAkB;AAAA,MACpB;AAAA,IACF,OAAO;AACL,aAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,eAAe;AAAA;AAAA,QACf,kBAAkB;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,MAAsB;AAMnC,QAAI,eAAe,KAAK,KAAK,KAAK,SAAS,GAAG;AAG9C,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,YAAY,eAAe;AAAA,MAC/B,CAAC,OAAO,cAAc,SAAS,KAAK,MAAM,SAAS,EAAE,SAAS;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI,YAAY,IAAI;AAClB,sBAAgB;AAAA,IAClB;AAGA,UAAM,gBACJ,KAAK,MAAM,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,QAAQ,CAAC,IAC5D,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,EAAE,MAAM;AAEtC,QAAI,gBAAgB,GAAG;AACrB,sBAAgB;AAAA,IAClB;AAEA,SAAK,iBAAiB;AACtB,WAAO,KAAK,MAAM,YAAY;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,eAKd;AACA,UAAM,aAAa,KAAK,sBAAsB;AAC9C,UAAM,aAAc,gBAAgB,KAAK,aAAa,gBAAiB;AACvE,UAAM,kBAAkB,KAAK,aAAa,gBAAgB;AAE1D,QAAI;AACJ,QAAI;AAEJ,QAAI,iBAAiB,WAAW,YAAY;AAC1C,eAAS;AACT,uBACE;AAAA,IACJ,WAAW,iBAAiB,WAAW,UAAU;AAC/C,eAAS;AACT,uBACE;AAAA,IACJ,WAAW,iBAAiB,WAAW,SAAS;AAC9C,eAAS;AACT,uBACE;AAAA,IACJ,OAAO;AACL,eAAS;AACT,uBACE;AAAA,IACJ;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,qBAA+B;AAC7B,UAAM,QAAkB,CAAC;AAEzB,QAAI,KAAK,aAAa,iBAAiB,KAAS;AAC9C,YAAM;AAAA,QACJ;AAAA,MACF;AACA,YAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF,WAAW,KAAK,aAAa,iBAAiB,KAAQ;AACpD,YAAM;AAAA,QACJ;AAAA,MACF;AACA,YAAM,KAAK,uDAAuD;AAAA,IACpE,OAAO;AACL,YAAM,KAAK,yDAAyD;AACpE,YAAM,KAAK,8CAA8C;AAAA,IAC3D;AAEA,QAAI,KAAK,aAAa,gBAAgB,cAAc;AAClD,YAAM;AAAA,QACJ,4BAA4B,KAAK,aAAa,gBAAgB,aAAa,KAAK,IAAI,CAAC;AAAA,MACvF;AAAA,IACF;AAEA,QAAI,KAAK,aAAa,gBAAgB,aAAa,WAAW;AAC5D,YAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF,WAAW,KAAK,aAAa,gBAAgB,aAAa,OAAO;AAC/D,YAAM;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,iCAA2C;AACzC,UAAM,gBAAgB,KAAK,aAAa;AACxC,UAAM,SAAmB,CAAC;AAI1B,UAAM,WACJ,iBAAiB,MACb,MACA,iBAAiB,MACf,MACA;AAER,aAAS,QAAQ,UAAU,QAAQ,gBAAgB,KAAK,SAAS,UAAU;AACzE,aAAO,KAAK,KAAK;AAAA,IACnB;AAGA,WAAO,KAAK,KAAK,aAAa,gBAAgB;AAC9C,WAAO,KAAK,KAAK,aAAa,iBAAiB;AAE/C,WAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAgC;AAC9B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,sBAA8C;AAC5C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,UAA2B;AAClC,UAAM,UAAU,4BAA4B,eAAe,QAAQ;AACnE,QAAI,SAAS;AACX,WAAK,eAAe;AACpB,aAAO,KAAK,0BAA0B,QAAQ,IAAI,EAAE;AACpD,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,qBAA+B;AACpC,WAAO,OAAO,KAAK,4BAA4B,cAAc;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAAgB,UAA4C;AACjE,WAAO,4BAA4B,eAAe,QAAQ;AAAA,EAC5D;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
2
|
-
import { dirname as __pathDirname } from 'path';
|
|
3
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
4
|
-
const __dirname = __pathDirname(__filename);
|
|
5
|
-
import { ValidationError, ErrorCode } from "../errors/index.js";
|
|
6
|
-
import { logger } from "../monitoring/logger.js";
|
|
7
|
-
class PermissionManager {
|
|
8
|
-
userPermissions = /* @__PURE__ */ new Map();
|
|
9
|
-
adminUsers = /* @__PURE__ */ new Set();
|
|
10
|
-
constructor() {
|
|
11
|
-
this.initializeDefaultPermissions();
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Check if user has permission for specific operation
|
|
15
|
-
*/
|
|
16
|
-
async checkPermission(context) {
|
|
17
|
-
try {
|
|
18
|
-
if (this.adminUsers.has(context.userId)) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
const stackPermissions = this.getStackPermissions(
|
|
22
|
-
context.userId,
|
|
23
|
-
context.stackContext?.stackId || context.resourceId
|
|
24
|
-
);
|
|
25
|
-
if (!stackPermissions) {
|
|
26
|
-
logger.warn("No permissions found for user", {
|
|
27
|
-
userId: context.userId,
|
|
28
|
-
stackId: context.stackContext?.stackId,
|
|
29
|
-
operation: context.operation
|
|
30
|
-
});
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
switch (context.operation) {
|
|
34
|
-
case "read":
|
|
35
|
-
return stackPermissions.canRead;
|
|
36
|
-
case "write":
|
|
37
|
-
return stackPermissions.canWrite;
|
|
38
|
-
case "handoff":
|
|
39
|
-
return stackPermissions.canHandoff;
|
|
40
|
-
case "merge":
|
|
41
|
-
return stackPermissions.canMerge;
|
|
42
|
-
case "administer":
|
|
43
|
-
return stackPermissions.canAdminister;
|
|
44
|
-
default:
|
|
45
|
-
logger.error("Unknown operation type", {
|
|
46
|
-
operation: context.operation
|
|
47
|
-
});
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
} catch (error) {
|
|
51
|
-
logger.error("Permission check failed", error);
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Enforce permission check - throws if access denied
|
|
57
|
-
*/
|
|
58
|
-
async enforcePermission(context) {
|
|
59
|
-
const hasPermission = await this.checkPermission(context);
|
|
60
|
-
if (!hasPermission) {
|
|
61
|
-
throw new ValidationError(
|
|
62
|
-
`Access denied: User ${context.userId} lacks ${context.operation} permission for ${context.resourceType} ${context.resourceId}`,
|
|
63
|
-
ErrorCode.PERMISSION_VIOLATION,
|
|
64
|
-
{
|
|
65
|
-
userId: context.userId,
|
|
66
|
-
operation: context.operation,
|
|
67
|
-
resourceType: context.resourceType,
|
|
68
|
-
resourceId: context.resourceId
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
logger.debug("Permission granted", {
|
|
73
|
-
userId: context.userId,
|
|
74
|
-
operation: context.operation,
|
|
75
|
-
resourceType: context.resourceType,
|
|
76
|
-
resourceId: context.resourceId
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Set permissions for user on specific stack
|
|
81
|
-
*/
|
|
82
|
-
setStackPermissions(userId, stackId, permissions) {
|
|
83
|
-
if (!this.userPermissions.has(userId)) {
|
|
84
|
-
this.userPermissions.set(userId, /* @__PURE__ */ new Map());
|
|
85
|
-
}
|
|
86
|
-
this.userPermissions.get(userId).set(stackId, permissions);
|
|
87
|
-
logger.info("Updated stack permissions", {
|
|
88
|
-
userId,
|
|
89
|
-
stackId,
|
|
90
|
-
permissions
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get permissions for user on specific stack
|
|
95
|
-
*/
|
|
96
|
-
getStackPermissions(userId, stackId) {
|
|
97
|
-
const userPerms = this.userPermissions.get(userId);
|
|
98
|
-
if (!userPerms) return null;
|
|
99
|
-
return userPerms.get(stackId) || null;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Grant admin privileges to user
|
|
103
|
-
*/
|
|
104
|
-
grantAdminAccess(userId) {
|
|
105
|
-
this.adminUsers.add(userId);
|
|
106
|
-
logger.info("Granted admin access", { userId });
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Revoke admin privileges from user
|
|
110
|
-
*/
|
|
111
|
-
revokeAdminAccess(userId) {
|
|
112
|
-
this.adminUsers.delete(userId);
|
|
113
|
-
logger.info("Revoked admin access", { userId });
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Check if user is admin
|
|
117
|
-
*/
|
|
118
|
-
isAdmin(userId) {
|
|
119
|
-
return this.adminUsers.has(userId);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Get all permissions for user
|
|
123
|
-
*/
|
|
124
|
-
getUserPermissions(userId) {
|
|
125
|
-
return this.userPermissions.get(userId) || /* @__PURE__ */ new Map();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Remove all permissions for user
|
|
129
|
-
*/
|
|
130
|
-
removeUserPermissions(userId) {
|
|
131
|
-
this.userPermissions.delete(userId);
|
|
132
|
-
this.adminUsers.delete(userId);
|
|
133
|
-
logger.info("Removed all permissions for user", { userId });
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Initialize default permissions
|
|
137
|
-
*/
|
|
138
|
-
initializeDefaultPermissions() {
|
|
139
|
-
const defaultAdmin = process.env["STACKMEMORY_DEFAULT_ADMIN"];
|
|
140
|
-
if (defaultAdmin) {
|
|
141
|
-
this.grantAdminAccess(defaultAdmin);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Create permission context helper
|
|
146
|
-
*/
|
|
147
|
-
createContext(userId, operation, resourceType, resourceId, stackContext) {
|
|
148
|
-
return {
|
|
149
|
-
userId,
|
|
150
|
-
operation,
|
|
151
|
-
resourceType,
|
|
152
|
-
resourceId,
|
|
153
|
-
stackContext
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Bulk permission update for multiple stacks
|
|
158
|
-
*/
|
|
159
|
-
setBulkStackPermissions(userId, stackPermissions) {
|
|
160
|
-
if (!this.userPermissions.has(userId)) {
|
|
161
|
-
this.userPermissions.set(userId, /* @__PURE__ */ new Map());
|
|
162
|
-
}
|
|
163
|
-
const userPerms = this.userPermissions.get(userId);
|
|
164
|
-
Object.entries(stackPermissions).forEach(([stackId, permissions]) => {
|
|
165
|
-
userPerms.set(stackId, permissions);
|
|
166
|
-
});
|
|
167
|
-
logger.info("Updated bulk stack permissions", {
|
|
168
|
-
userId,
|
|
169
|
-
stackCount: Object.keys(stackPermissions).length
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Get permission summary for debugging
|
|
174
|
-
*/
|
|
175
|
-
getPermissionSummary(userId) {
|
|
176
|
-
return {
|
|
177
|
-
isAdmin: this.isAdmin(userId),
|
|
178
|
-
stackPermissions: Object.fromEntries(this.getUserPermissions(userId))
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
export {
|
|
183
|
-
PermissionManager
|
|
184
|
-
};
|
|
185
|
-
//# sourceMappingURL=permission-manager.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/context/permission-manager.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Permission Management for Collaboration Layer\n */\n\nimport { ValidationError, ErrorCode } from '../errors/index.js';\nimport type { StackPermissions, StackContext } from './dual-stack-manager.js';\nimport { logger } from '../monitoring/logger.js';\n// Type-safe environment variable access\n\nexport type Operation = 'read' | 'write' | 'handoff' | 'merge' | 'administer';\n\nexport interface PermissionContext {\n userId: string;\n operation: Operation;\n resourceType: 'stack' | 'frame' | 'handoff' | 'merge';\n resourceId: string;\n stackContext?: StackContext;\n}\n\nexport class PermissionManager {\n private userPermissions = new Map<string, Map<string, StackPermissions>>();\n private adminUsers = new Set<string>();\n\n constructor() {\n this.initializeDefaultPermissions();\n }\n\n /**\n * Check if user has permission for specific operation\n */\n async checkPermission(context: PermissionContext): Promise<boolean> {\n try {\n // Super admin always has access\n if (this.adminUsers.has(context.userId)) {\n return true;\n }\n\n // Get stack permissions for user\n const stackPermissions = this.getStackPermissions(\n context.userId,\n context.stackContext?.stackId || context.resourceId\n );\n\n if (!stackPermissions) {\n logger.warn('No permissions found for user', {\n userId: context.userId,\n stackId: context.stackContext?.stackId,\n operation: context.operation,\n });\n return false;\n }\n\n // Check operation-specific permissions\n switch (context.operation) {\n case 'read':\n return stackPermissions.canRead;\n\n case 'write':\n return stackPermissions.canWrite;\n\n case 'handoff':\n return stackPermissions.canHandoff;\n\n case 'merge':\n return stackPermissions.canMerge;\n\n case 'administer':\n return stackPermissions.canAdminister;\n\n default:\n logger.error('Unknown operation type', {\n operation: context.operation,\n });\n return false;\n }\n } catch (error: unknown) {\n logger.error('Permission check failed', error);\n return false;\n }\n }\n\n /**\n * Enforce permission check - throws if access denied\n */\n async enforcePermission(context: PermissionContext): Promise<void> {\n const hasPermission = await this.checkPermission(context);\n\n if (!hasPermission) {\n throw new ValidationError(\n `Access denied: User ${context.userId} lacks ${context.operation} permission for ${context.resourceType} ${context.resourceId}`,\n ErrorCode.PERMISSION_VIOLATION,\n {\n userId: context.userId,\n operation: context.operation,\n resourceType: context.resourceType,\n resourceId: context.resourceId,\n }\n );\n }\n\n logger.debug('Permission granted', {\n userId: context.userId,\n operation: context.operation,\n resourceType: context.resourceType,\n resourceId: context.resourceId,\n });\n }\n\n /**\n * Set permissions for user on specific stack\n */\n setStackPermissions(\n userId: string,\n stackId: string,\n permissions: StackPermissions\n ): void {\n if (!this.userPermissions.has(userId)) {\n this.userPermissions.set(userId, new Map());\n }\n\n this.userPermissions.get(userId)!.set(stackId, permissions);\n\n logger.info('Updated stack permissions', {\n userId,\n stackId,\n permissions,\n });\n }\n\n /**\n * Get permissions for user on specific stack\n */\n getStackPermissions(\n userId: string,\n stackId: string\n ): StackPermissions | null {\n const userPerms = this.userPermissions.get(userId);\n if (!userPerms) return null;\n\n return userPerms.get(stackId) || null;\n }\n\n /**\n * Grant admin privileges to user\n */\n grantAdminAccess(userId: string): void {\n this.adminUsers.add(userId);\n logger.info('Granted admin access', { userId });\n }\n\n /**\n * Revoke admin privileges from user\n */\n revokeAdminAccess(userId: string): void {\n this.adminUsers.delete(userId);\n logger.info('Revoked admin access', { userId });\n }\n\n /**\n * Check if user is admin\n */\n isAdmin(userId: string): boolean {\n return this.adminUsers.has(userId);\n }\n\n /**\n * Get all permissions for user\n */\n getUserPermissions(userId: string): Map<string, StackPermissions> {\n return this.userPermissions.get(userId) || new Map();\n }\n\n /**\n * Remove all permissions for user\n */\n removeUserPermissions(userId: string): void {\n this.userPermissions.delete(userId);\n this.adminUsers.delete(userId);\n logger.info('Removed all permissions for user', { userId });\n }\n\n /**\n * Initialize default permissions\n */\n private initializeDefaultPermissions(): void {\n // Set up default admin user if needed\n const defaultAdmin = process.env['STACKMEMORY_DEFAULT_ADMIN'];\n if (defaultAdmin) {\n this.grantAdminAccess(defaultAdmin);\n }\n }\n\n /**\n * Create permission context helper\n */\n createContext(\n userId: string,\n operation: Operation,\n resourceType: PermissionContext['resourceType'],\n resourceId: string,\n stackContext?: StackContext\n ): PermissionContext {\n return {\n userId,\n operation,\n resourceType,\n resourceId,\n stackContext,\n };\n }\n\n /**\n * Bulk permission update for multiple stacks\n */\n setBulkStackPermissions(\n userId: string,\n stackPermissions: Record<string, StackPermissions>\n ): void {\n if (!this.userPermissions.has(userId)) {\n this.userPermissions.set(userId, new Map());\n }\n\n const userPerms = this.userPermissions.get(userId)!;\n\n Object.entries(stackPermissions).forEach(([stackId, permissions]) => {\n userPerms.set(stackId, permissions);\n });\n\n logger.info('Updated bulk stack permissions', {\n userId,\n stackCount: Object.keys(stackPermissions).length,\n });\n }\n\n /**\n * Get permission summary for debugging\n */\n getPermissionSummary(userId: string): {\n isAdmin: boolean;\n stackPermissions: Record<string, StackPermissions>;\n } {\n return {\n isAdmin: this.isAdmin(userId),\n stackPermissions: Object.fromEntries(this.getUserPermissions(userId)),\n };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;AAIA,SAAS,iBAAiB,iBAAiB;AAE3C,SAAS,cAAc;AAahB,MAAM,kBAAkB;AAAA,EACrB,kBAAkB,oBAAI,IAA2C;AAAA,EACjE,aAAa,oBAAI,IAAY;AAAA,EAErC,cAAc;AACZ,SAAK,6BAA6B;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB,SAA8C;AAClE,QAAI;AAEF,UAAI,KAAK,WAAW,IAAI,QAAQ,MAAM,GAAG;AACvC,eAAO;AAAA,MACT;AAGA,YAAM,mBAAmB,KAAK;AAAA,QAC5B,QAAQ;AAAA,QACR,QAAQ,cAAc,WAAW,QAAQ;AAAA,MAC3C;AAEA,UAAI,CAAC,kBAAkB;AACrB,eAAO,KAAK,iCAAiC;AAAA,UAC3C,QAAQ,QAAQ;AAAA,UAChB,SAAS,QAAQ,cAAc;AAAA,UAC/B,WAAW,QAAQ;AAAA,QACrB,CAAC;AACD,eAAO;AAAA,MACT;AAGA,cAAQ,QAAQ,WAAW;AAAA,QACzB,KAAK;AACH,iBAAO,iBAAiB;AAAA,QAE1B,KAAK;AACH,iBAAO,iBAAiB;AAAA,QAE1B,KAAK;AACH,iBAAO,iBAAiB;AAAA,QAE1B,KAAK;AACH,iBAAO,iBAAiB;AAAA,QAE1B,KAAK;AACH,iBAAO,iBAAiB;AAAA,QAE1B;AACE,iBAAO,MAAM,0BAA0B;AAAA,YACrC,WAAW,QAAQ;AAAA,UACrB,CAAC;AACD,iBAAO;AAAA,MACX;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,2BAA2B,KAAK;AAC7C,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,SAA2C;AACjE,UAAM,gBAAgB,MAAM,KAAK,gBAAgB,OAAO;AAExD,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI;AAAA,QACR,uBAAuB,QAAQ,MAAM,UAAU,QAAQ,SAAS,mBAAmB,QAAQ,YAAY,IAAI,QAAQ,UAAU;AAAA,QAC7H,UAAU;AAAA,QACV;AAAA,UACE,QAAQ,QAAQ;AAAA,UAChB,WAAW,QAAQ;AAAA,UACnB,cAAc,QAAQ;AAAA,UACtB,YAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM,sBAAsB;AAAA,MACjC,QAAQ,QAAQ;AAAA,MAChB,WAAW,QAAQ;AAAA,MACnB,cAAc,QAAQ;AAAA,MACtB,YAAY,QAAQ;AAAA,IACtB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,oBACE,QACA,SACA,aACM;AACN,QAAI,CAAC,KAAK,gBAAgB,IAAI,MAAM,GAAG;AACrC,WAAK,gBAAgB,IAAI,QAAQ,oBAAI,IAAI,CAAC;AAAA,IAC5C;AAEA,SAAK,gBAAgB,IAAI,MAAM,EAAG,IAAI,SAAS,WAAW;AAE1D,WAAO,KAAK,6BAA6B;AAAA,MACvC;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,oBACE,QACA,SACyB;AACzB,UAAM,YAAY,KAAK,gBAAgB,IAAI,MAAM;AACjD,QAAI,CAAC,UAAW,QAAO;AAEvB,WAAO,UAAU,IAAI,OAAO,KAAK;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAsB;AACrC,SAAK,WAAW,IAAI,MAAM;AAC1B,WAAO,KAAK,wBAAwB,EAAE,OAAO,CAAC;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,QAAsB;AACtC,SAAK,WAAW,OAAO,MAAM;AAC7B,WAAO,KAAK,wBAAwB,EAAE,OAAO,CAAC;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,QAAyB;AAC/B,WAAO,KAAK,WAAW,IAAI,MAAM;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,QAA+C;AAChE,WAAO,KAAK,gBAAgB,IAAI,MAAM,KAAK,oBAAI,IAAI;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAsB,QAAsB;AAC1C,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,WAAW,OAAO,MAAM;AAC7B,WAAO,KAAK,oCAAoC,EAAE,OAAO,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAKQ,+BAAqC;AAE3C,UAAM,eAAe,QAAQ,IAAI,2BAA2B;AAC5D,QAAI,cAAc;AAChB,WAAK,iBAAiB,YAAY;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cACE,QACA,WACA,cACA,YACA,cACmB;AACnB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,wBACE,QACA,kBACM;AACN,QAAI,CAAC,KAAK,gBAAgB,IAAI,MAAM,GAAG;AACrC,WAAK,gBAAgB,IAAI,QAAQ,oBAAI,IAAI,CAAC;AAAA,IAC5C;AAEA,UAAM,YAAY,KAAK,gBAAgB,IAAI,MAAM;AAEjD,WAAO,QAAQ,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,WAAW,MAAM;AACnE,gBAAU,IAAI,SAAS,WAAW;AAAA,IACpC,CAAC;AAED,WAAO,KAAK,kCAAkC;AAAA,MAC5C;AAAA,MACA,YAAY,OAAO,KAAK,gBAAgB,EAAE;AAAA,IAC5C,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAGnB;AACA,WAAO;AAAA,MACL,SAAS,KAAK,QAAQ,MAAM;AAAA,MAC5B,kBAAkB,OAAO,YAAY,KAAK,mBAAmB,MAAM,CAAC;AAAA,IACtE;AAAA,EACF;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|