@evalops/maestro 0.10.51 → 0.10.53
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 +1 -3
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +1 -1
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-handoff.d.ts.map +1 -1
- package/dist/agent/context-handoff.js +2 -1
- package/dist/agent/context-handoff.js.map +1 -1
- package/dist/agent/index.d.ts +8 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +8 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/modes.d.ts +1 -1
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +56 -0
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/oracle-consultation-policy.d.ts +22 -0
- package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
- package/dist/agent/oracle-consultation-policy.js +72 -0
- package/dist/agent/oracle-consultation-policy.js.map +1 -0
- package/dist/agent/oracle-policy-experiment.d.ts +27 -0
- package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
- package/dist/agent/oracle-policy-experiment.js +59 -0
- package/dist/agent/oracle-policy-experiment.js.map +1 -0
- package/dist/agent/oracle-policy-rollout.d.ts +42 -0
- package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
- package/dist/agent/oracle-policy-rollout.js +80 -0
- package/dist/agent/oracle-policy-rollout.js.map +1 -0
- package/dist/agent/plugin-agent-api.d.ts +13 -0
- package/dist/agent/plugin-agent-api.d.ts.map +1 -0
- package/dist/agent/plugin-agent-api.js +11 -0
- package/dist/agent/plugin-agent-api.js.map +1 -0
- package/dist/agent/plugin-agent-loader.d.ts +17 -0
- package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
- package/dist/agent/plugin-agent-loader.js +81 -0
- package/dist/agent/plugin-agent-loader.js.map +1 -0
- package/dist/agent/plugin-agent-registry.d.ts +62 -0
- package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
- package/dist/agent/plugin-agent-registry.js +109 -0
- package/dist/agent/plugin-agent-registry.js.map +1 -0
- package/dist/agent/profile-loader.d.ts +7 -0
- package/dist/agent/profile-loader.d.ts.map +1 -0
- package/dist/agent/profile-loader.js +115 -0
- package/dist/agent/profile-loader.js.map +1 -0
- package/dist/agent/profiles.d.ts +30 -0
- package/dist/agent/profiles.d.ts.map +1 -0
- package/dist/agent/profiles.js +146 -0
- package/dist/agent/profiles.js.map +1 -0
- package/dist/agent/prompt-cache.d.ts +0 -4
- package/dist/agent/prompt-cache.d.ts.map +1 -1
- package/dist/agent/prompt-cache.js +1 -7
- package/dist/agent/prompt-cache.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +1 -0
- package/dist/agent/providers/google.js +1 -0
- package/dist/agent/providers/vertex.js +1 -0
- package/dist/agent/routing-receipt.d.ts +34 -0
- package/dist/agent/routing-receipt.d.ts.map +1 -0
- package/dist/agent/routing-receipt.js +55 -0
- package/dist/agent/routing-receipt.js.map +1 -0
- package/dist/{skills/artifact-metadata.d.ts → agent/skill-artifact-metadata.d.ts} +2 -4
- package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
- package/dist/{skills/artifact-metadata.js → agent/skill-artifact-metadata.js} +1 -38
- package/dist/agent/skill-artifact-metadata.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +1 -1
- package/dist/agent/subagent-specs.js +2 -2
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/token-counter.d.ts +40 -0
- package/dist/agent/token-counter.d.ts.map +1 -0
- package/dist/agent/token-counter.js +74 -0
- package/dist/agent/token-counter.js.map +1 -0
- package/dist/agent/transport/events.d.ts +1 -1
- package/dist/agent/transport/events.d.ts.map +1 -1
- package/dist/agent/transport/events.js +1 -1
- package/dist/agent/transport/events.js.map +1 -1
- package/dist/agent/types.d.ts +4 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +1 -0
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +15 -2
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +5 -5
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +18 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/direct-runtime-command.d.ts +1 -0
- package/dist/cli/direct-runtime-command.d.ts.map +1 -1
- package/dist/cli/direct-runtime-command.js +25 -3
- package/dist/cli/direct-runtime-command.js.map +1 -1
- package/dist/cli/headless.d.ts +3 -19
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +8 -619
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +3 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/native-tui-launcher.d.ts +126 -0
- package/dist/cli/native-tui-launcher.d.ts.map +1 -0
- package/dist/cli/native-tui-launcher.js +425 -0
- package/dist/cli/native-tui-launcher.js.map +1 -0
- package/dist/cli/rpc-mode.d.ts +3 -27
- package/dist/cli/rpc-mode.d.ts.map +1 -1
- package/dist/cli/rpc-mode.js +8 -177
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.d.ts +11 -19
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +6 -64
- package/dist/cli/session.js.map +1 -1
- package/dist/cli-command-runtime.d.ts.map +1 -1
- package/dist/cli-command-runtime.js +26 -24
- package/dist/cli-command-runtime.js.map +1 -1
- package/dist/cli-runtime.js +52529 -137615
- package/dist/config/env-vars.d.ts +12 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +12 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/{cli-tui → config}/ui-state.d.ts +6 -1
- package/dist/config/ui-state.d.ts.map +1 -0
- package/dist/{cli-tui → config}/ui-state.js +1 -1
- package/dist/config/ui-state.js.map +1 -0
- package/dist/context/repo-map.d.ts.map +1 -1
- package/dist/context/repo-map.js +1 -7
- package/dist/context/repo-map.js.map +1 -1
- package/dist/context/token-optimizer.d.ts.map +1 -1
- package/dist/context/token-optimizer.js +1 -8
- package/dist/context/token-optimizer.js.map +1 -1
- package/dist/db/schema.d.ts +2 -2
- package/dist/hooks/notification-hooks.d.ts +1 -1
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/hooks/tui-surface.d.ts +35 -0
- package/dist/hooks/tui-surface.d.ts.map +1 -0
- package/dist/hooks/tui-surface.js +11 -0
- package/dist/hooks/tui-surface.js.map +1 -0
- package/dist/hooks/types.d.ts +2 -1
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/hooks/typescript-loader.d.ts.map +1 -1
- package/dist/hooks/typescript-loader.js.map +1 -1
- package/dist/hooks/ui-context.d.ts.map +1 -1
- package/dist/hooks/ui-context.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +154 -882
- package/dist/main.js.map +1 -1
- package/dist/models/config-loader.d.ts +5 -5
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +45 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +2 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/packages/discovery.d.ts.map +1 -1
- package/dist/packages/discovery.js +1 -0
- package/dist/packages/discovery.js.map +1 -1
- package/dist/packages/inspection.d.ts.map +1 -1
- package/dist/packages/inspection.js +7 -1
- package/dist/packages/inspection.js.map +1 -1
- package/dist/packages/loader.d.ts.map +1 -1
- package/dist/packages/loader.js +8 -1
- package/dist/packages/loader.js.map +1 -1
- package/dist/packages/runtime.d.ts +1 -0
- package/dist/packages/runtime.d.ts.map +1 -1
- package/dist/packages/runtime.js +9 -1
- package/dist/packages/runtime.js.map +1 -1
- package/dist/packages/types.d.ts +6 -0
- package/dist/packages/types.d.ts.map +1 -1
- package/dist/packages/types.js.map +1 -1
- package/dist/runtime/agent-runtime.d.ts +22 -6
- package/dist/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/runtime/agent-runtime.js +1 -1
- package/dist/runtime/agent-runtime.js.map +1 -1
- package/dist/runtime/env.d.ts +1 -0
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +1 -0
- package/dist/runtime/env.js.map +1 -1
- package/dist/{cli-tui → runtime}/prompt-queue.d.ts.map +1 -1
- package/dist/{cli-tui → runtime}/prompt-queue.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts +2 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +150 -5
- package/dist/server/handlers/chat-ws.js.map +1 -1
- package/dist/server/handlers/chat.d.ts.map +1 -1
- package/dist/server/handlers/chat.js +78 -5
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/package.d.ts.map +1 -1
- package/dist/server/handlers/package.js +1 -0
- package/dist/server/handlers/package.js.map +1 -1
- package/dist/server/handlers/queue.js +1 -1
- package/dist/server/handlers/queue.js.map +1 -1
- package/dist/server/handlers/ui.js +1 -1
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/handlers/zen.js +1 -1
- package/dist/server/handlers/zen.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +3 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +26 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts +1 -0
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +4 -0
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +3 -0
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/server/session-timeline.d.ts.map +1 -1
- package/dist/server/session-timeline.js +1 -1
- package/dist/server/session-timeline.js.map +1 -1
- package/dist/server/sse-session.d.ts +2 -0
- package/dist/server/sse-session.d.ts.map +1 -1
- package/dist/server/sse-session.js +3 -0
- package/dist/server/sse-session.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/server/utils/token-estimator.d.ts +2 -2
- package/dist/server/utils/token-estimator.d.ts.map +1 -1
- package/dist/server/utils/token-estimator.js +2 -12
- package/dist/server/utils/token-estimator.js.map +1 -1
- package/dist/server/validation.d.ts +54 -0
- package/dist/server/validation.d.ts.map +1 -1
- package/dist/services/image-providers/cost.d.ts +70 -0
- package/dist/services/image-providers/cost.d.ts.map +1 -0
- package/dist/services/image-providers/cost.js +164 -0
- package/dist/services/image-providers/cost.js.map +1 -0
- package/dist/services/image-providers/flux.d.ts +40 -0
- package/dist/services/image-providers/flux.d.ts.map +1 -0
- package/dist/services/image-providers/flux.js +99 -0
- package/dist/services/image-providers/flux.js.map +1 -0
- package/dist/services/image-providers/index.d.ts +24 -0
- package/dist/services/image-providers/index.d.ts.map +1 -0
- package/dist/services/image-providers/index.js +27 -0
- package/dist/services/image-providers/index.js.map +1 -0
- package/dist/services/image-providers/masks.d.ts +51 -0
- package/dist/services/image-providers/masks.d.ts.map +1 -0
- package/dist/services/image-providers/masks.js +132 -0
- package/dist/services/image-providers/masks.js.map +1 -0
- package/dist/services/image-providers/openai.d.ts +35 -0
- package/dist/services/image-providers/openai.d.ts.map +1 -0
- package/dist/services/image-providers/openai.js +93 -0
- package/dist/services/image-providers/openai.js.map +1 -0
- package/dist/services/image-providers/types.d.ts +61 -0
- package/dist/services/image-providers/types.d.ts.map +1 -0
- package/dist/services/image-providers/types.js +17 -0
- package/dist/services/image-providers/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +1 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -0
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +1 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +17 -0
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/outcome.d.ts +19 -0
- package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
- package/dist/services/intelligent-router/outcome.js +51 -0
- package/dist/services/intelligent-router/outcome.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +2 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
- package/dist/services/intelligent-router/recorder.js +72 -1
- package/dist/services/intelligent-router/recorder.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts +1 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +60 -11
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +18 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/services/workspace-config/middleware.d.ts +2 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -1
- package/dist/services/workspace-config/middleware.js +25 -28
- package/dist/services/workspace-config/middleware.js.map +1 -1
- package/dist/session/agent-lineage-projection.d.ts +30 -0
- package/dist/session/agent-lineage-projection.d.ts.map +1 -0
- package/dist/session/agent-lineage-projection.js +109 -0
- package/dist/session/agent-lineage-projection.js.map +1 -0
- package/dist/session/manager.d.ts +3 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +24 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-graph-projection.d.ts +11 -0
- package/dist/session/session-graph-projection.d.ts.map +1 -1
- package/dist/session/session-graph-projection.js +28 -0
- package/dist/session/session-graph-projection.js.map +1 -1
- package/dist/session/types.d.ts +2 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
- package/dist/telemetry/oracle-policy.d.ts +6 -0
- package/dist/telemetry/oracle-policy.d.ts.map +1 -0
- package/dist/telemetry/oracle-policy.js +17 -0
- package/dist/telemetry/oracle-policy.js.map +1 -0
- package/dist/telemetry/wide-events.d.ts +1 -1
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/theme/theme.d.ts +2 -8
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +7 -0
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/tui-theme-helpers.d.ts +2 -1
- package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
- package/dist/theme/tui-theme-helpers.js.map +1 -1
- package/dist/theme/tui-theme-types.d.ts +39 -0
- package/dist/theme/tui-theme-types.d.ts.map +1 -0
- package/dist/theme/tui-theme-types.js +10 -0
- package/dist/theme/tui-theme-types.js.map +1 -0
- package/dist/tools/index.d.ts +199 -160
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lazy-registry.d.ts.map +1 -1
- package/dist/tools/lazy-registry.js +1 -0
- package/dist/tools/lazy-registry.js.map +1 -1
- package/dist/tools/oracle.d.ts +9 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +26 -24
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/painter.d.ts +73 -0
- package/dist/tools/painter.d.ts.map +1 -0
- package/dist/tools/painter.js +283 -0
- package/dist/tools/painter.js.map +1 -0
- package/dist/tools/typebox-tool.d.ts.map +1 -1
- package/dist/tools/typebox-tool.js +1 -1
- package/dist/tools/typebox-tool.js.map +1 -1
- package/dist/utils/terminal-image.d.ts +52 -0
- package/dist/utils/terminal-image.d.ts.map +1 -0
- package/dist/utils/terminal-image.js +95 -0
- package/dist/utils/terminal-image.js.map +1 -0
- package/dist/utils/terminal-text.d.ts +11 -0
- package/dist/utils/terminal-text.d.ts.map +1 -0
- package/dist/utils/terminal-text.js +21 -0
- package/dist/utils/terminal-text.js.map +1 -0
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +24 -2
- package/dist/web-server.js.map +1 -1
- package/package.json +13 -11
- package/skills/incident-triage/SKILL.md +4 -3
- package/dist/cli/commands/agents.d.ts +0 -24
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -429
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/anthropic.d.ts +0 -2
- package/dist/cli/commands/anthropic.d.ts.map +0 -1
- package/dist/cli/commands/anthropic.js +0 -6
- package/dist/cli/commands/anthropic.js.map +0 -1
- package/dist/cli/commands/cost.d.ts +0 -13
- package/dist/cli/commands/cost.d.ts.map +0 -1
- package/dist/cli/commands/cost.js +0 -143
- package/dist/cli/commands/cost.js.map +0 -1
- package/dist/cli/commands/exec-constants.d.ts +0 -3
- package/dist/cli/commands/exec-constants.d.ts.map +0 -1
- package/dist/cli/commands/exec-constants.js +0 -3
- package/dist/cli/commands/exec-constants.js.map +0 -1
- package/dist/cli/commands/exec.d.ts +0 -19
- package/dist/cli/commands/exec.d.ts.map +0 -1
- package/dist/cli/commands/exec.js +0 -207
- package/dist/cli/commands/exec.js.map +0 -1
- package/dist/cli/commands/hooks.d.ts +0 -2
- package/dist/cli/commands/hooks.d.ts.map +0 -1
- package/dist/cli/commands/hooks.js +0 -25
- package/dist/cli/commands/hooks.js.map +0 -1
- package/dist/cli/commands/hosted-runner.d.ts +0 -25
- package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
- package/dist/cli/commands/hosted-runner.js +0 -278
- package/dist/cli/commands/hosted-runner.js.map +0 -1
- package/dist/cli/commands/memory.d.ts +0 -2
- package/dist/cli/commands/memory.d.ts.map +0 -1
- package/dist/cli/commands/memory.js +0 -208
- package/dist/cli/commands/memory.js.map +0 -1
- package/dist/cli/commands/models.d.ts +0 -3
- package/dist/cli/commands/models.d.ts.map +0 -1
- package/dist/cli/commands/models.js +0 -154
- package/dist/cli/commands/models.js.map +0 -1
- package/dist/cli/commands/modes.d.ts +0 -8
- package/dist/cli/commands/modes.d.ts.map +0 -1
- package/dist/cli/commands/modes.js +0 -151
- package/dist/cli/commands/modes.js.map +0 -1
- package/dist/cli/commands/openai.d.ts +0 -2
- package/dist/cli/commands/openai.d.ts.map +0 -1
- package/dist/cli/commands/openai.js +0 -116
- package/dist/cli/commands/openai.js.map +0 -1
- package/dist/cli/commands/session-transfer.d.ts +0 -5
- package/dist/cli/commands/session-transfer.d.ts.map +0 -1
- package/dist/cli/commands/session-transfer.js +0 -43
- package/dist/cli/commands/session-transfer.js.map +0 -1
- package/dist/cli/commands/sessions.d.ts +0 -8
- package/dist/cli/commands/sessions.d.ts.map +0 -1
- package/dist/cli/commands/sessions.js +0 -152
- package/dist/cli/commands/sessions.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -10
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -303
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -7
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -167
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -2
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -11
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -12
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -148
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli-tui/about-view.d.ts +0 -48
- package/dist/cli-tui/about-view.d.ts.map +0 -1
- package/dist/cli-tui/about-view.js +0 -206
- package/dist/cli-tui/about-view.js.map +0 -1
- package/dist/cli-tui/agent-event-router.d.ts +0 -28
- package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
- package/dist/cli-tui/agent-event-router.js +0 -126
- package/dist/cli-tui/agent-event-router.js.map +0 -1
- package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
- package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-controller.js +0 -99
- package/dist/cli-tui/approval/approval-controller.js.map +0 -1
- package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
- package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-modal.js +0 -143
- package/dist/cli-tui/approval/approval-modal.js.map +0 -1
- package/dist/cli-tui/assistant-message.d.ts +0 -41
- package/dist/cli-tui/assistant-message.d.ts.map +0 -1
- package/dist/cli-tui/assistant-message.js +0 -236
- package/dist/cli-tui/assistant-message.js.map +0 -1
- package/dist/cli-tui/auth-state.d.ts +0 -7
- package/dist/cli-tui/auth-state.d.ts.map +0 -1
- package/dist/cli-tui/auth-state.js +0 -46
- package/dist/cli-tui/auth-state.js.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
- package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.js +0 -84
- package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
- package/dist/cli-tui/base-view.d.ts +0 -111
- package/dist/cli-tui/base-view.d.ts.map +0 -1
- package/dist/cli-tui/base-view.js +0 -145
- package/dist/cli-tui/base-view.js.map +0 -1
- package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
- package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
- package/dist/cli-tui/bash/background-launcher.js +0 -50
- package/dist/cli-tui/bash/background-launcher.js.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
- package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
- package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
- package/dist/cli-tui/bash/bash-history.d.ts +0 -21
- package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-history.js +0 -72
- package/dist/cli-tui/bash/bash-history.js.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
- package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.js +0 -176
- package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
- package/dist/cli-tui/bash/index.d.ts +0 -4
- package/dist/cli-tui/bash/index.d.ts.map +0 -1
- package/dist/cli-tui/bash/index.js +0 -4
- package/dist/cli-tui/bash/index.js.map +0 -1
- package/dist/cli-tui/bash-mode-view.d.ts +0 -86
- package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
- package/dist/cli-tui/bash-mode-view.js +0 -560
- package/dist/cli-tui/bash-mode-view.js.map +0 -1
- package/dist/cli-tui/bash-shell-block.d.ts +0 -50
- package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
- package/dist/cli-tui/bash-shell-block.js +0 -119
- package/dist/cli-tui/bash-shell-block.js.map +0 -1
- package/dist/cli-tui/changelog-view.d.ts +0 -13
- package/dist/cli-tui/changelog-view.d.ts.map +0 -1
- package/dist/cli-tui/changelog-view.js +0 -34
- package/dist/cli-tui/changelog-view.js.map +0 -1
- package/dist/cli-tui/clean-mode.d.ts +0 -13
- package/dist/cli-tui/clean-mode.d.ts.map +0 -1
- package/dist/cli-tui/clean-mode.js +0 -32
- package/dist/cli-tui/clean-mode.js.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +0 -860
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
- package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.js +0 -215
- package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
- package/dist/cli-tui/commands/access-command.d.ts +0 -3
- package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/access-command.js +0 -89
- package/dist/cli-tui/commands/access-command.js.map +0 -1
- package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
- package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
- package/dist/cli-tui/commands/argument-parser.js +0 -135
- package/dist/cli-tui/commands/argument-parser.js.map +0 -1
- package/dist/cli-tui/commands/audit-command.d.ts +0 -5
- package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/audit-command.js +0 -35
- package/dist/cli-tui/commands/audit-command.js.map +0 -1
- package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
- package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/background-handlers.js +0 -115
- package/dist/cli-tui/commands/background-handlers.js.map +0 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
- package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-catalog.js +0 -666
- package/dist/cli-tui/commands/command-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
- package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
- package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
- package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
- package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.js +0 -90
- package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
- package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.js +0 -57
- package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
- package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.js +0 -48
- package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
- package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.js +0 -61
- package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
- package/dist/cli-tui/commands/limits-command.d.ts +0 -3
- package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/limits-command.js +0 -88
- package/dist/cli-tui/commands/limits-command.js.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
- package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
- package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
- package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.js +0 -414
- package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
- package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.js +0 -20
- package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
- package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
- package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/package-handlers.js +0 -499
- package/dist/cli-tui/commands/package-handlers.js.map +0 -1
- package/dist/cli-tui/commands/pii-command.d.ts +0 -3
- package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/pii-command.js +0 -54
- package/dist/cli-tui/commands/pii-command.js.map +0 -1
- package/dist/cli-tui/commands/registry.d.ts +0 -3
- package/dist/cli-tui/commands/registry.d.ts.map +0 -1
- package/dist/cli-tui/commands/registry.js +0 -36
- package/dist/cli-tui/commands/registry.js.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
- package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.js +0 -62
- package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.js +0 -18
- package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.js +0 -395
- package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
- package/dist/cli-tui/commands/types.d.ts +0 -105
- package/dist/cli-tui/commands/types.d.ts.map +0 -1
- package/dist/cli-tui/commands/types.js +0 -2
- package/dist/cli-tui/commands/types.js.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.js +0 -305
- package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
- package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.js +0 -137
- package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
- package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.js +0 -227
- package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
- package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
- package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
- package/dist/cli-tui/compact-boundary-message.js +0 -18
- package/dist/cli-tui/compact-boundary-message.js.map +0 -1
- package/dist/cli-tui/compaction-recovery.d.ts +0 -6
- package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
- package/dist/cli-tui/compaction-recovery.js +0 -13
- package/dist/cli-tui/compaction-recovery.js.map +0 -1
- package/dist/cli-tui/config-view.d.ts +0 -30
- package/dist/cli-tui/config-view.d.ts.map +0 -1
- package/dist/cli-tui/config-view.js +0 -255
- package/dist/cli-tui/config-view.js.map +0 -1
- package/dist/cli-tui/context-view.d.ts +0 -20
- package/dist/cli-tui/context-view.d.ts.map +0 -1
- package/dist/cli-tui/context-view.js +0 -191
- package/dist/cli-tui/context-view.js.map +0 -1
- package/dist/cli-tui/custom-editor.d.ts +0 -25
- package/dist/cli-tui/custom-editor.d.ts.map +0 -1
- package/dist/cli-tui/custom-editor.js +0 -241
- package/dist/cli-tui/custom-editor.js.map +0 -1
- package/dist/cli-tui/editor-view.d.ts +0 -34
- package/dist/cli-tui/editor-view.d.ts.map +0 -1
- package/dist/cli-tui/editor-view.js +0 -102
- package/dist/cli-tui/editor-view.js.map +0 -1
- package/dist/cli-tui/feedback-view.d.ts +0 -35
- package/dist/cli-tui/feedback-view.d.ts.map +0 -1
- package/dist/cli-tui/feedback-view.js +0 -271
- package/dist/cli-tui/feedback-view.js.map +0 -1
- package/dist/cli-tui/footer.d.ts +0 -56
- package/dist/cli-tui/footer.d.ts.map +0 -1
- package/dist/cli-tui/footer.js +0 -228
- package/dist/cli-tui/footer.js.map +0 -1
- package/dist/cli-tui/git/commit-modal.d.ts +0 -14
- package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/commit-modal.js +0 -56
- package/dist/cli-tui/git/commit-modal.js.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
- package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.js +0 -123
- package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
- package/dist/cli-tui/git/git-view.d.ts +0 -65
- package/dist/cli-tui/git/git-view.d.ts.map +0 -1
- package/dist/cli-tui/git/git-view.js +0 -529
- package/dist/cli-tui/git/git-view.js.map +0 -1
- package/dist/cli-tui/history/history-config.d.ts +0 -7
- package/dist/cli-tui/history/history-config.d.ts.map +0 -1
- package/dist/cli-tui/history/history-config.js +0 -49
- package/dist/cli-tui/history/history-config.js.map +0 -1
- package/dist/cli-tui/history/prompt-history.d.ts +0 -33
- package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
- package/dist/cli-tui/history/prompt-history.js +0 -185
- package/dist/cli-tui/history/prompt-history.js.map +0 -1
- package/dist/cli-tui/history/tool-history.d.ts +0 -50
- package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
- package/dist/cli-tui/history/tool-history.js +0 -253
- package/dist/cli-tui/history/tool-history.js.map +0 -1
- package/dist/cli-tui/hook-message.d.ts +0 -13
- package/dist/cli-tui/hook-message.d.ts.map +0 -1
- package/dist/cli-tui/hook-message.js +0 -56
- package/dist/cli-tui/hook-message.js.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
- package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
- package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
- package/dist/cli-tui/hotkeys-view.d.ts +0 -13
- package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
- package/dist/cli-tui/hotkeys-view.js +0 -96
- package/dist/cli-tui/hotkeys-view.js.map +0 -1
- package/dist/cli-tui/import-view.d.ts +0 -28
- package/dist/cli-tui/import-view.d.ts.map +0 -1
- package/dist/cli-tui/import-view.js +0 -184
- package/dist/cli-tui/import-view.js.map +0 -1
- package/dist/cli-tui/info-view.d.ts +0 -18
- package/dist/cli-tui/info-view.d.ts.map +0 -1
- package/dist/cli-tui/info-view.js +0 -107
- package/dist/cli-tui/info-view.js.map +0 -1
- package/dist/cli-tui/instruction-panel.d.ts +0 -11
- package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
- package/dist/cli-tui/instruction-panel.js +0 -86
- package/dist/cli-tui/instruction-panel.js.map +0 -1
- package/dist/cli-tui/interrupt-controller.d.ts +0 -78
- package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
- package/dist/cli-tui/interrupt-controller.js +0 -104
- package/dist/cli-tui/interrupt-controller.js.map +0 -1
- package/dist/cli-tui/keybindings-config.d.ts +0 -27
- package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-config.js +0 -372
- package/dist/cli-tui/keybindings-config.js.map +0 -1
- package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
- package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-watcher.js +0 -56
- package/dist/cli-tui/keybindings-watcher.js.map +0 -1
- package/dist/cli-tui/keybindings.d.ts +0 -13
- package/dist/cli-tui/keybindings.d.ts.map +0 -1
- package/dist/cli-tui/keybindings.js +0 -223
- package/dist/cli-tui/keybindings.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
- package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
- package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
- package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
- package/dist/cli-tui/loader/loader-view.d.ts +0 -41
- package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-view.js +0 -162
- package/dist/cli-tui/loader/loader-view.js.map +0 -1
- package/dist/cli-tui/lsp-view.d.ts +0 -21
- package/dist/cli-tui/lsp-view.d.ts.map +0 -1
- package/dist/cli-tui/lsp-view.js +0 -183
- package/dist/cli-tui/lsp-view.js.map +0 -1
- package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
- package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
- package/dist/cli-tui/mermaid-renderer.js +0 -391
- package/dist/cli-tui/mermaid-renderer.js.map +0 -1
- package/dist/cli-tui/message-view.d.ts +0 -27
- package/dist/cli-tui/message-view.d.ts.map +0 -1
- package/dist/cli-tui/message-view.js +0 -169
- package/dist/cli-tui/message-view.js.map +0 -1
- package/dist/cli-tui/modal-manager.d.ts +0 -77
- package/dist/cli-tui/modal-manager.d.ts.map +0 -1
- package/dist/cli-tui/modal-manager.js +0 -131
- package/dist/cli-tui/modal-manager.js.map +0 -1
- package/dist/cli-tui/notification-view.d.ts +0 -16
- package/dist/cli-tui/notification-view.d.ts.map +0 -1
- package/dist/cli-tui/notification-view.js +0 -53
- package/dist/cli-tui/notification-view.js.map +0 -1
- package/dist/cli-tui/oauth/index.d.ts +0 -2
- package/dist/cli-tui/oauth/index.d.ts.map +0 -1
- package/dist/cli-tui/oauth/index.js +0 -2
- package/dist/cli-tui/oauth/index.js.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
- package/dist/cli-tui/ollama-view.d.ts +0 -38
- package/dist/cli-tui/ollama-view.d.ts.map +0 -1
- package/dist/cli-tui/ollama-view.js +0 -395
- package/dist/cli-tui/ollama-view.js.map +0 -1
- package/dist/cli-tui/paste/index.d.ts +0 -2
- package/dist/cli-tui/paste/index.d.ts.map +0 -1
- package/dist/cli-tui/paste/index.js +0 -2
- package/dist/cli-tui/paste/index.js.map +0 -1
- package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
- package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
- package/dist/cli-tui/paste/paste-handler.js +0 -128
- package/dist/cli-tui/paste/paste-handler.js.map +0 -1
- package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
- package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
- package/dist/cli-tui/plan/plan-controller.js +0 -66
- package/dist/cli-tui/plan/plan-controller.js.map +0 -1
- package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
- package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/plan-panel-modal.js +0 -193
- package/dist/cli-tui/plan-panel-modal.js.map +0 -1
- package/dist/cli-tui/plan-view.d.ts +0 -57
- package/dist/cli-tui/plan-view.d.ts.map +0 -1
- package/dist/cli-tui/plan-view.js +0 -404
- package/dist/cli-tui/plan-view.js.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
- package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
- package/dist/cli-tui/queue/index.d.ts +0 -3
- package/dist/cli-tui/queue/index.d.ts.map +0 -1
- package/dist/cli-tui/queue/index.js +0 -3
- package/dist/cli-tui/queue/index.js.map +0 -1
- package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
- package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-controller.js +0 -327
- package/dist/cli-tui/queue/queue-controller.js.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
- package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
- package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
- package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
- package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/queue-panel-modal.js +0 -159
- package/dist/cli-tui/queue-panel-modal.js.map +0 -1
- package/dist/cli-tui/run/run-command-view.d.ts +0 -17
- package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
- package/dist/cli-tui/run/run-command-view.js +0 -62
- package/dist/cli-tui/run/run-command-view.js.map +0 -1
- package/dist/cli-tui/run/run-controller.d.ts +0 -24
- package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
- package/dist/cli-tui/run/run-controller.js +0 -38
- package/dist/cli-tui/run/run-controller.js.map +0 -1
- package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
- package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/run-shell-command.js +0 -51
- package/dist/cli-tui/run/run-shell-command.js.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.js +0 -107
- package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
- package/dist/cli-tui/search/file-search-view.d.ts +0 -22
- package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search-view.js +0 -68
- package/dist/cli-tui/search/file-search-view.js.map +0 -1
- package/dist/cli-tui/search/file-search.d.ts +0 -13
- package/dist/cli-tui/search/file-search.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search.js +0 -52
- package/dist/cli-tui/search/file-search.js.map +0 -1
- package/dist/cli-tui/security-status.d.ts +0 -83
- package/dist/cli-tui/security-status.d.ts.map +0 -1
- package/dist/cli-tui/security-status.js +0 -214
- package/dist/cli-tui/security-status.js.map +0 -1
- package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/base-selector.js +0 -47
- package/dist/cli-tui/selectors/base-selector.js.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
- package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
- package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.js +0 -31
- package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -218
- package/dist/cli-tui/selectors/model-selector.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.js +0 -120
- package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
- package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
- package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
- package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.js +0 -29
- package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
- package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector.js +0 -31
- package/dist/cli-tui/selectors/report-selector.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
- package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
- package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.js +0 -46
- package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
- package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
- package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.js +0 -47
- package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
- package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
- package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.js +0 -194
- package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
- package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.js +0 -114
- package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
- package/dist/cli-tui/session/branch-controller.d.ts +0 -65
- package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/branch-controller.js +0 -125
- package/dist/cli-tui/session/branch-controller.js.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
- package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.js +0 -77
- package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
- package/dist/cli-tui/session/session-context.d.ts +0 -59
- package/dist/cli-tui/session/session-context.d.ts.map +0 -1
- package/dist/cli-tui/session/session-context.js +0 -79
- package/dist/cli-tui/session/session-context.js.map +0 -1
- package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
- package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
- package/dist/cli-tui/session/session-data-provider.js +0 -22
- package/dist/cli-tui/session/session-data-provider.js.map +0 -1
- package/dist/cli-tui/session/session-list.d.ts +0 -18
- package/dist/cli-tui/session/session-list.d.ts.map +0 -1
- package/dist/cli-tui/session/session-list.js +0 -103
- package/dist/cli-tui/session/session-list.js.map +0 -1
- package/dist/cli-tui/session/session-selector.d.ts +0 -12
- package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
- package/dist/cli-tui/session/session-selector.js +0 -37
- package/dist/cli-tui/session/session-selector.js.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
- package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.js +0 -96
- package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
- package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.js +0 -43
- package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
- package/dist/cli-tui/session/session-switcher.d.ts +0 -38
- package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher.js +0 -204
- package/dist/cli-tui/session/session-switcher.js.map +0 -1
- package/dist/cli-tui/session/session-view.d.ts +0 -46
- package/dist/cli-tui/session/session-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-view.js +0 -311
- package/dist/cli-tui/session/session-view.js.map +0 -1
- package/dist/cli-tui/slash/index.d.ts +0 -2
- package/dist/cli-tui/slash/index.d.ts.map +0 -1
- package/dist/cli-tui/slash/index.js +0 -2
- package/dist/cli-tui/slash/index.js.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
- package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
- package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
- package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
- package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
- package/dist/cli-tui/startup-announcements.d.ts +0 -15
- package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
- package/dist/cli-tui/startup-announcements.js +0 -75
- package/dist/cli-tui/startup-announcements.js.map +0 -1
- package/dist/cli-tui/status/cost-view.d.ts +0 -27
- package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
- package/dist/cli-tui/status/cost-view.js +0 -212
- package/dist/cli-tui/status/cost-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
- package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.js +0 -167
- package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
- package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.js +0 -249
- package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics.d.ts +0 -39
- package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics.js +0 -286
- package/dist/cli-tui/status/diagnostics.js.map +0 -1
- package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
- package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
- package/dist/cli-tui/status/health-snapshot.js +0 -28
- package/dist/cli-tui/status/health-snapshot.js.map +0 -1
- package/dist/cli-tui/status/quota-view.d.ts +0 -37
- package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
- package/dist/cli-tui/status/quota-view.js +0 -309
- package/dist/cli-tui/status/quota-view.js.map +0 -1
- package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
- package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
- package/dist/cli-tui/status/telemetry-view.js +0 -77
- package/dist/cli-tui/status/telemetry-view.js.map +0 -1
- package/dist/cli-tui/status/training-view.d.ts +0 -23
- package/dist/cli-tui/status/training-view.d.ts.map +0 -1
- package/dist/cli-tui/status/training-view.js +0 -71
- package/dist/cli-tui/status/training-view.js.map +0 -1
- package/dist/cli-tui/streaming-view.d.ts +0 -43
- package/dist/cli-tui/streaming-view.d.ts.map +0 -1
- package/dist/cli-tui/streaming-view.js +0 -176
- package/dist/cli-tui/streaming-view.js.map +0 -1
- package/dist/cli-tui/terminal/index.d.ts +0 -2
- package/dist/cli-tui/terminal/index.d.ts.map +0 -1
- package/dist/cli-tui/terminal/index.js +0 -2
- package/dist/cli-tui/terminal/index.js.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
- package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.js +0 -145
- package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
- package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.js +0 -135
- package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
- package/dist/cli-tui/tool-execution.d.ts +0 -76
- package/dist/cli-tui/tool-execution.d.ts.map +0 -1
- package/dist/cli-tui/tool-execution.js +0 -217
- package/dist/cli-tui/tool-execution.js.map +0 -1
- package/dist/cli-tui/tool-output-view.d.ts +0 -22
- package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-output-view.js +0 -71
- package/dist/cli-tui/tool-output-view.js.map +0 -1
- package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
- package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/index.js +0 -19
- package/dist/cli-tui/tool-renderers/index.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
- package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
- package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
- package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
- package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
- package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
- package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.js +0 -108
- package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
- package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.js +0 -51
- package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
- package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.js +0 -60
- package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
- package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
- package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/types.js +0 -2
- package/dist/cli-tui/tool-renderers/types.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
- package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
- package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
- package/dist/cli-tui/tool-status-view.d.ts +0 -32
- package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-status-view.js +0 -86
- package/dist/cli-tui/tool-status-view.js.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
- package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
- package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
- package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
- package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
- package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
- package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
- package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
- package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
- package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
- package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
- package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
- package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
- package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
- package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
- package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
- package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -73
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +0 -455
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
- package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
- package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer.d.ts +0 -268
- package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer.js +0 -2131
- package/dist/cli-tui/tui-renderer.js.map +0 -1
- package/dist/cli-tui/ui-state.d.ts.map +0 -1
- package/dist/cli-tui/ui-state.js.map +0 -1
- package/dist/cli-tui/update-view.d.ts +0 -16
- package/dist/cli-tui/update-view.d.ts.map +0 -1
- package/dist/cli-tui/update-view.js +0 -45
- package/dist/cli-tui/update-view.js.map +0 -1
- package/dist/cli-tui/user-message.d.ts +0 -17
- package/dist/cli-tui/user-message.d.ts.map +0 -1
- package/dist/cli-tui/user-message.js +0 -83
- package/dist/cli-tui/user-message.js.map +0 -1
- package/dist/cli-tui/utils/borders.d.ts +0 -131
- package/dist/cli-tui/utils/borders.d.ts.map +0 -1
- package/dist/cli-tui/utils/borders.js +0 -254
- package/dist/cli-tui/utils/borders.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
- package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
- package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.js +0 -213
- package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
- package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
- package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
- package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
- package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
- package/dist/cli-tui/utils/env-detect.d.ts +0 -11
- package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
- package/dist/cli-tui/utils/env-detect.js +0 -107
- package/dist/cli-tui/utils/env-detect.js.map +0 -1
- package/dist/cli-tui/utils/external-editor.d.ts +0 -7
- package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
- package/dist/cli-tui/utils/external-editor.js +0 -53
- package/dist/cli-tui/utils/external-editor.js.map +0 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
- package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-utils.js +0 -716
- package/dist/cli-tui/utils/footer-utils.js.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
- package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
- package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
- package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
- package/dist/cli-tui/utils/glyphs.d.ts +0 -207
- package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
- package/dist/cli-tui/utils/glyphs.js +0 -249
- package/dist/cli-tui/utils/glyphs.js.map +0 -1
- package/dist/cli-tui/utils/layout.d.ts +0 -77
- package/dist/cli-tui/utils/layout.d.ts.map +0 -1
- package/dist/cli-tui/utils/layout.js +0 -83
- package/dist/cli-tui/utils/layout.js.map +0 -1
- package/dist/cli-tui/utils/links.d.ts +0 -2
- package/dist/cli-tui/utils/links.d.ts.map +0 -1
- package/dist/cli-tui/utils/links.js +0 -14
- package/dist/cli-tui/utils/links.js.map +0 -1
- package/dist/cli-tui/utils/motion.d.ts +0 -4
- package/dist/cli-tui/utils/motion.d.ts.map +0 -1
- package/dist/cli-tui/utils/motion.js +0 -28
- package/dist/cli-tui/utils/motion.js.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.js +0 -178
- package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
- package/dist/cli-tui/utils/shimmer.d.ts +0 -12
- package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
- package/dist/cli-tui/utils/shimmer.js +0 -57
- package/dist/cli-tui/utils/shimmer.js.map +0 -1
- package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
- package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
- package/dist/cli-tui/utils/stage-labels.js +0 -65
- package/dist/cli-tui/utils/stage-labels.js.map +0 -1
- package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
- package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-formatting.js +0 -109
- package/dist/cli-tui/utils/text-formatting.js.map +0 -1
- package/dist/cli-tui/utils/text-preview.d.ts +0 -10
- package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-preview.js +0 -26
- package/dist/cli-tui/utils/text-preview.js.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
- package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.js +0 -361
- package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
- package/dist/cli-tui/welcome-animation.d.ts +0 -24
- package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
- package/dist/cli-tui/welcome-animation.js +0 -99
- package/dist/cli-tui/welcome-animation.js.map +0 -1
- package/dist/cli-tui/welcome-colors.d.ts +0 -3
- package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
- package/dist/cli-tui/welcome-colors.js +0 -39
- package/dist/cli-tui/welcome-colors.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
- package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
- package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
- package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
- package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
- package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
- package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
- package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
- package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
- package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
- package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
- package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
- package/dist/node_modules/@evalops/tui/package.json +0 -58
- package/dist/skills/artifact-metadata.d.ts.map +0 -1
- package/dist/skills/artifact-metadata.js.map +0 -1
- package/dist/skills/composer-diagnostics.d.ts +0 -69
- package/dist/skills/composer-diagnostics.d.ts.map +0 -1
- package/dist/skills/composer-diagnostics.js +0 -78
- package/dist/skills/composer-diagnostics.js.map +0 -1
- package/dist/skills/composer.d.ts +0 -19
- package/dist/skills/composer.d.ts.map +0 -1
- package/dist/skills/composer.js +0 -64
- package/dist/skills/composer.js.map +0 -1
- package/dist/skills/eval-harness.d.ts +0 -38
- package/dist/skills/eval-harness.d.ts.map +0 -1
- package/dist/skills/eval-harness.js +0 -112
- package/dist/skills/eval-harness.js.map +0 -1
- package/dist/skills/index.d.ts +0 -41
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -41
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/learned-guidelines.d.ts +0 -33
- package/dist/skills/learned-guidelines.d.ts.map +0 -1
- package/dist/skills/learned-guidelines.js +0 -291
- package/dist/skills/learned-guidelines.js.map +0 -1
- package/dist/skills/linter.d.ts +0 -36
- package/dist/skills/linter.d.ts.map +0 -1
- package/dist/skills/linter.js +0 -397
- package/dist/skills/linter.js.map +0 -1
- package/dist/skills/loader.d.ts +0 -252
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js +0 -957
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/package-contract.d.ts +0 -45
- package/dist/skills/package-contract.d.ts.map +0 -1
- package/dist/skills/package-contract.js +0 -153
- package/dist/skills/package-contract.js.map +0 -1
- package/dist/skills/runtime-activation.d.ts +0 -69
- package/dist/skills/runtime-activation.d.ts.map +0 -1
- package/dist/skills/runtime-activation.js +0 -227
- package/dist/skills/runtime-activation.js.map +0 -1
- package/dist/skills/scaffold-from-template.d.ts +0 -58
- package/dist/skills/scaffold-from-template.d.ts.map +0 -1
- package/dist/skills/scaffold-from-template.js +0 -72
- package/dist/skills/scaffold-from-template.js.map +0 -1
- package/dist/skills/scaffolder.d.ts +0 -65
- package/dist/skills/scaffolder.d.ts.map +0 -1
- package/dist/skills/scaffolder.js +0 -167
- package/dist/skills/scaffolder.js.map +0 -1
- package/dist/skills/service-client.d.ts +0 -56
- package/dist/skills/service-client.d.ts.map +0 -1
- package/dist/skills/service-client.js +0 -266
- package/dist/skills/service-client.js.map +0 -1
- package/dist/skills/skill-templates.d.ts +0 -70
- package/dist/skills/skill-templates.d.ts.map +0 -1
- package/dist/skills/skill-templates.js +0 -154
- package/dist/skills/skill-templates.js.map +0 -1
- package/dist/skills/tool.d.ts +0 -21
- package/dist/skills/tool.d.ts.map +0 -1
- package/dist/skills/tool.js +0 -339
- package/dist/skills/tool.js.map +0 -1
- package/dist/skills/trust-cache.d.ts +0 -65
- package/dist/skills/trust-cache.d.ts.map +0 -1
- package/dist/skills/trust-cache.js +0 -146
- package/dist/skills/trust-cache.js.map +0 -1
- package/dist/skills/types.d.ts +0 -91
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/skills/types.js +0 -8
- package/dist/skills/types.js.map +0 -1
- /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
- /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
* ### Subagent Configuration
|
|
28
28
|
* - MAESTRO_SUBAGENT_MODEL - Model to use for subagents
|
|
29
29
|
* - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool
|
|
30
|
+
* - MAESTRO_PAINTER_MODEL - Image model for the Painter tool (default: gpt-image-2)
|
|
31
|
+
* - MAESTRO_PAINTER_BASE_URL - OpenAI-compatible base URL override for Painter
|
|
32
|
+
* - MAESTRO_PAINTER_OUTPUT_DIR - Where Painter writes images (default: ~/.maestro/assets/painter)
|
|
33
|
+
* - MAESTRO_PAINTER_TIMEOUT_MS - Per-call Painter timeout in ms (default: 180000)
|
|
30
34
|
*
|
|
31
35
|
* ### API Configuration
|
|
32
36
|
* - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers
|
|
@@ -78,6 +82,14 @@ export declare const ENV_VARS: {
|
|
|
78
82
|
readonly CONTEXT_FIREWALL_BLOCKING: "MAESTRO_CONTEXT_FIREWALL_BLOCKING";
|
|
79
83
|
readonly SUBAGENT_MODEL: "MAESTRO_SUBAGENT_MODEL";
|
|
80
84
|
readonly ORACLE_MODEL: "MAESTRO_ORACLE_MODEL";
|
|
85
|
+
readonly ORACLE_EXPERIMENT_ID: "MAESTRO_ORACLE_EXPERIMENT_ID";
|
|
86
|
+
readonly ORACLE_EXPERIMENT_ALLOCATION: "MAESTRO_ORACLE_EXPERIMENT_ALLOCATION";
|
|
87
|
+
readonly ORACLE_EXPERIMENT_CONTROL_VERSION: "MAESTRO_ORACLE_EXPERIMENT_CONTROL_VERSION";
|
|
88
|
+
readonly ORACLE_EXPERIMENT_TREATMENT_VERSION: "MAESTRO_ORACLE_EXPERIMENT_TREATMENT_VERSION";
|
|
89
|
+
readonly PAINTER_MODEL: "MAESTRO_PAINTER_MODEL";
|
|
90
|
+
readonly PAINTER_BASE_URL: "MAESTRO_PAINTER_BASE_URL";
|
|
91
|
+
readonly PAINTER_OUTPUT_DIR: "MAESTRO_PAINTER_OUTPUT_DIR";
|
|
92
|
+
readonly PAINTER_TIMEOUT_MS: "MAESTRO_PAINTER_TIMEOUT_MS";
|
|
81
93
|
readonly SWARM_MODE: "MAESTRO_SWARM_MODE";
|
|
82
94
|
readonly SWARM_ID: "MAESTRO_SWARM_ID";
|
|
83
95
|
readonly TEAMMATE_ID: "MAESTRO_TEAMMATE_ID";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAMH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAK9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAMhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,SAAS,CAOjE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAiCA;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAsBjC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAoD1C"}
|
package/dist/config/env-vars.js
CHANGED
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
* ### Subagent Configuration
|
|
28
28
|
* - MAESTRO_SUBAGENT_MODEL - Model to use for subagents
|
|
29
29
|
* - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool
|
|
30
|
+
* - MAESTRO_PAINTER_MODEL - Image model for the Painter tool (default: gpt-image-2)
|
|
31
|
+
* - MAESTRO_PAINTER_BASE_URL - OpenAI-compatible base URL override for Painter
|
|
32
|
+
* - MAESTRO_PAINTER_OUTPUT_DIR - Where Painter writes images (default: ~/.maestro/assets/painter)
|
|
33
|
+
* - MAESTRO_PAINTER_TIMEOUT_MS - Per-call Painter timeout in ms (default: 180000)
|
|
30
34
|
*
|
|
31
35
|
* ### API Configuration
|
|
32
36
|
* - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers
|
|
@@ -83,6 +87,14 @@ export const ENV_VARS = {
|
|
|
83
87
|
// Subagent configuration
|
|
84
88
|
SUBAGENT_MODEL: "MAESTRO_SUBAGENT_MODEL",
|
|
85
89
|
ORACLE_MODEL: "MAESTRO_ORACLE_MODEL",
|
|
90
|
+
ORACLE_EXPERIMENT_ID: "MAESTRO_ORACLE_EXPERIMENT_ID",
|
|
91
|
+
ORACLE_EXPERIMENT_ALLOCATION: "MAESTRO_ORACLE_EXPERIMENT_ALLOCATION",
|
|
92
|
+
ORACLE_EXPERIMENT_CONTROL_VERSION: "MAESTRO_ORACLE_EXPERIMENT_CONTROL_VERSION",
|
|
93
|
+
ORACLE_EXPERIMENT_TREATMENT_VERSION: "MAESTRO_ORACLE_EXPERIMENT_TREATMENT_VERSION",
|
|
94
|
+
PAINTER_MODEL: "MAESTRO_PAINTER_MODEL",
|
|
95
|
+
PAINTER_BASE_URL: "MAESTRO_PAINTER_BASE_URL",
|
|
96
|
+
PAINTER_OUTPUT_DIR: "MAESTRO_PAINTER_OUTPUT_DIR",
|
|
97
|
+
PAINTER_TIMEOUT_MS: "MAESTRO_PAINTER_TIMEOUT_MS",
|
|
86
98
|
SWARM_MODE: "MAESTRO_SWARM_MODE",
|
|
87
99
|
SWARM_ID: "MAESTRO_SWARM_ID",
|
|
88
100
|
TEAMMATE_ID: "MAESTRO_TEAMMATE_ID",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Environment Variable Configuration\n *\n * Centralized configuration for all MAESTRO_* environment variables.\n * Inspired by Claude Code's CLAUDE_CODE_* variables.\n *\n * Environment variables provide runtime configuration without modifying\n * config files. They have higher precedence than config files but lower\n * than CLI flags.\n *\n * ## Supported Variables\n *\n * ### Core Settings\n * - MAESTRO_MODEL - Override the default model\n * - MAESTRO_MODEL_PROVIDER - Override the model provider\n * - MAESTRO_PROFILE - Select a config profile\n * - MAESTRO_APPROVAL_POLICY - Set approval policy (untrusted|on-failure|on-request|never)\n * - MAESTRO_SANDBOX_MODE - Set sandbox mode (read-only|workspace-write|danger-full-access)\n *\n * ### Behavior Controls\n * - MAESTRO_MAX_OUTPUT_TOKENS - Maximum tokens for model output\n * - MAESTRO_DISABLE_TELEMETRY - Disable telemetry (1 to disable)\n * - MAESTRO_DISABLE_TERMINAL_TITLE - Don't update terminal title (1 to disable)\n * - MAESTRO_DISABLE_ANIMATIONS - Disable TUI animations (1 to disable)\n * - MAESTRO_CONTEXT_FIREWALL_BLOCKING - Enable/disable blocking of sensitive content in tool args (default: 1)\n *\n * ### Subagent Configuration\n * - MAESTRO_SUBAGENT_MODEL - Model to use for subagents\n * - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool\n *\n * ### API Configuration\n * - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers\n * - MAESTRO_SKIP_AUTH - Skip authentication (for testing)\n * - MAESTRO_IDENTITY_URL - Override EvalOps identity base URL\n * - MAESTRO_PLATFORM_BASE_URL - Shared EvalOps Platform base URL for core services\n *\n * ### Network Configuration\n * - MAESTRO_HTTP_PROXY - HTTP proxy URL\n * - MAESTRO_HTTPS_PROXY - HTTPS proxy URL\n * - MAESTRO_SOCKS_PROXY - SOCKS proxy URL\n * - MAESTRO_NO_PROXY - Comma-separated list of hosts to bypass proxy\n *\n * ### Debug Configuration\n * - MAESTRO_DEBUG - Enable debug logging (1 to enable)\n * - MAESTRO_LOG_LEVEL - Set log level (debug|info|warn|error)\n * - MAESTRO_USAGE_FILE - Path to write usage data\n *\n * ### Session Configuration\n * - MAESTRO_NO_SESSION - Disable session persistence (1 to disable)\n * - MAESTRO_SESSION_DIR - Custom session storage directory\n * - MAESTRO_SESSION_SCOPE - Scope sessions by auth subject (auth|true|1)\n * - MAESTRO_MULTI_USER - Alias for MAESTRO_SESSION_SCOPE\n * - MAESTRO_MEMORY_BASE - Durable memory service base URL\n * - MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n * - MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n * - MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n * - MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n * - MAESTRO_SHARED_MEMORY_SESSION_ID - Override session ID for shared memory sync\n *\n * ### Feature Flags\n * - MAESTRO_ENABLE_* - Enable specific features\n * - MAESTRO_DISABLE_* - Disable specific features\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"config:env\");\n\n/**\n * All recognized MAESTRO_* environment variables.\n */\nexport const ENV_VARS = {\n\t// Core settings\n\tMODEL: \"MAESTRO_MODEL\",\n\tMODEL_PROVIDER: \"MAESTRO_MODEL_PROVIDER\",\n\tPROFILE: \"MAESTRO_PROFILE\",\n\tAPPROVAL_POLICY: \"MAESTRO_APPROVAL_POLICY\",\n\tSANDBOX_MODE: \"MAESTRO_SANDBOX_MODE\",\n\n\t// Behavior controls\n\tMAX_OUTPUT_TOKENS: \"MAESTRO_MAX_OUTPUT_TOKENS\",\n\tDISABLE_TELEMETRY: \"MAESTRO_DISABLE_TELEMETRY\",\n\tDISABLE_TERMINAL_TITLE: \"MAESTRO_DISABLE_TERMINAL_TITLE\",\n\tDISABLE_ANIMATIONS: \"MAESTRO_DISABLE_ANIMATIONS\",\n\tSAFE_MODE: \"MAESTRO_SAFE_MODE\",\n\tCONTEXT_FIREWALL_BLOCKING: \"MAESTRO_CONTEXT_FIREWALL_BLOCKING\",\n\n\t// Subagent configuration\n\tSUBAGENT_MODEL: \"MAESTRO_SUBAGENT_MODEL\",\n\tORACLE_MODEL: \"MAESTRO_ORACLE_MODEL\",\n\tSWARM_MODE: \"MAESTRO_SWARM_MODE\",\n\tSWARM_ID: \"MAESTRO_SWARM_ID\",\n\tTEAMMATE_ID: \"MAESTRO_TEAMMATE_ID\",\n\n\t// API configuration\n\tAPI_KEY_HELPER_TTL_MS: \"MAESTRO_API_KEY_HELPER_TTL_MS\",\n\tSKIP_AUTH: \"MAESTRO_SKIP_AUTH\",\n\tSKIP_BEDROCK_AUTH: \"MAESTRO_SKIP_BEDROCK_AUTH\",\n\tSKIP_VERTEX_AUTH: \"MAESTRO_SKIP_VERTEX_AUTH\",\n\tIDENTITY_URL: \"MAESTRO_IDENTITY_URL\",\n\tPLATFORM_BASE_URL: \"MAESTRO_PLATFORM_BASE_URL\",\n\n\t// Network configuration\n\tHTTP_PROXY: \"MAESTRO_HTTP_PROXY\",\n\tHTTPS_PROXY: \"MAESTRO_HTTPS_PROXY\",\n\tSOCKS_PROXY: \"MAESTRO_SOCKS_PROXY\",\n\tNO_PROXY: \"MAESTRO_NO_PROXY\",\n\n\t// Debug configuration\n\tDEBUG: \"MAESTRO_DEBUG\",\n\tLOG_LEVEL: \"MAESTRO_LOG_LEVEL\",\n\tUSAGE_FILE: \"MAESTRO_USAGE_FILE\",\n\n\t// Session configuration\n\tNO_SESSION: \"MAESTRO_NO_SESSION\",\n\tSESSION_DIR: \"MAESTRO_SESSION_DIR\",\n\tSESSION_SCOPE: \"MAESTRO_SESSION_SCOPE\",\n\tMULTI_USER: \"MAESTRO_MULTI_USER\",\n\tMEMORY_BASE: \"MAESTRO_MEMORY_BASE\",\n\tMEMORY_ACCESS_TOKEN: \"MAESTRO_MEMORY_ACCESS_TOKEN\",\n\tMEMORY_TEAM_ID: \"MAESTRO_MEMORY_TEAM_ID\",\n\tSHARED_MEMORY_BASE: \"MAESTRO_SHARED_MEMORY_BASE\",\n\tSHARED_MEMORY_API_KEY: \"MAESTRO_SHARED_MEMORY_API_KEY\",\n\tSHARED_MEMORY_SESSION_ID: \"MAESTRO_SHARED_MEMORY_SESSION_ID\",\n} as const;\n\nexport type EnvVarName = (typeof ENV_VARS)[keyof typeof ENV_VARS];\n\n/**\n * Get a string environment variable.\n */\nexport function getEnvString(name: EnvVarName): string | undefined {\n\treturn process.env[name]?.trim() || undefined;\n}\n\n/**\n * Get an integer environment variable.\n */\nexport function getEnvInt(name: EnvVarName): number | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\tconst parsed = Number.parseInt(value, 10);\n\treturn Number.isNaN(parsed) ? undefined : parsed;\n}\n\n/**\n * Get a boolean environment variable.\n * Treats \"1\", \"true\", \"yes\" as true; \"0\", \"false\", \"no\", \"\" as false.\n */\nexport function getEnvBool(name: EnvVarName): boolean | undefined {\n\tconst value = process.env[name]?.toLowerCase().trim();\n\tif (!value) return undefined;\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(value)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"\"].includes(value)) return false;\n\treturn undefined;\n}\n\n/**\n * Get a list environment variable (comma-separated).\n */\nexport function getEnvList(name: EnvVarName): string[] | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\treturn value\n\t\t.split(\",\")\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n}\n\n/**\n * Check if a feature flag is enabled.\n * Checks MAESTRO_ENABLE_<feature> env var.\n */\nexport function isFeatureEnabled(feature: string): boolean {\n\tconst envName = `MAESTRO_ENABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Check if a feature flag is disabled.\n * Checks MAESTRO_DISABLE_<feature> env var.\n */\nexport function isFeatureDisabled(feature: string): boolean {\n\tconst envName = `MAESTRO_DISABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Get proxy configuration from environment variables.\n */\nexport function getProxyConfig(): {\n\thttp?: string;\n\thttps?: string;\n\tsocks?: string;\n\tnoProxy?: string[];\n} {\n\tconst config: {\n\t\thttp?: string;\n\t\thttps?: string;\n\t\tsocks?: string;\n\t\tnoProxy?: string[];\n\t} = {};\n\n\t// Check MAESTRO_* vars first, then standard vars\n\tconst httpProxy =\n\t\tgetEnvString(ENV_VARS.HTTP_PROXY) ||\n\t\tprocess.env.HTTP_PROXY ||\n\t\tprocess.env.http_proxy;\n\tif (httpProxy) config.http = httpProxy;\n\n\tconst httpsProxy =\n\t\tgetEnvString(ENV_VARS.HTTPS_PROXY) ||\n\t\tprocess.env.HTTPS_PROXY ||\n\t\tprocess.env.https_proxy;\n\tif (httpsProxy) config.https = httpsProxy;\n\n\tconst socksProxy = getEnvString(ENV_VARS.SOCKS_PROXY);\n\tif (socksProxy) config.socks = socksProxy;\n\n\tconst noProxy =\n\t\tgetEnvList(ENV_VARS.NO_PROXY) ||\n\t\t(process.env.NO_PROXY || process.env.no_proxy)\n\t\t\t?.split(\",\")\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\tif (noProxy && noProxy.length > 0) config.noProxy = noProxy;\n\n\treturn config;\n}\n\n/**\n * Check if we're running in safe mode.\n */\nexport function isSafeMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SAFE_MODE) ?? false;\n}\n\n/**\n * Check if context firewall blocking is enabled.\n * Defaults to true (blocking enabled). Set MAESTRO_CONTEXT_FIREWALL_BLOCKING=0 to disable.\n *\n * When blocking is disabled, sensitive content (API keys, credentials) can be passed\n * through tool arguments without being blocked. This is useful for testing scenarios\n * where you intentionally want to use test API keys.\n */\nexport function isContextFirewallBlockingEnabled(): boolean {\n\treturn getEnvBool(ENV_VARS.CONTEXT_FIREWALL_BLOCKING) ?? true;\n}\n\n/**\n * Check if we're running as part of a swarm.\n */\nexport function isSwarmMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SWARM_MODE) ?? false;\n}\n\n/**\n * Check if telemetry is disabled.\n */\nexport function isTelemetryDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_TELEMETRY) ?? false;\n}\n\n/**\n * Check if animations are disabled.\n */\nexport function areAnimationsDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_ANIMATIONS) ?? false;\n}\n\n/**\n * Get max output tokens configuration.\n */\nexport function getMaxOutputTokens(): number | undefined {\n\treturn getEnvInt(ENV_VARS.MAX_OUTPUT_TOKENS);\n}\n\n/**\n * Get subagent model override.\n */\nexport function getSubagentModel(): string | undefined {\n\treturn getEnvString(ENV_VARS.SUBAGENT_MODEL);\n}\n\n/**\n * Log all set MAESTRO_* environment variables (for debugging).\n */\nexport function logEnvVars(): void {\n\tconst setVars: Record<string, string> = {};\n\n\tfor (const [key, envName] of Object.entries(ENV_VARS)) {\n\t\tconst value = process.env[envName];\n\t\tif (value !== undefined) {\n\t\t\t// Mask sensitive values\n\t\t\tif (\n\t\t\t\tenvName.includes(\"KEY\") ||\n\t\t\t\tenvName.includes(\"TOKEN\") ||\n\t\t\t\tenvName.includes(\"SECRET\")\n\t\t\t) {\n\t\t\t\tsetVars[key] = \"[REDACTED]\";\n\t\t\t} else {\n\t\t\t\tsetVars[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (Object.keys(setVars).length > 0) {\n\t\tlogger.debug(\"COMPOSER environment variables\", setVars);\n\t}\n}\n\n/**\n * Validate environment variable values and warn about invalid ones.\n */\nexport function validateEnvVars(): string[] {\n\tconst warnings: string[] = [];\n\n\t// Validate APPROVAL_POLICY\n\tconst approvalPolicy = getEnvString(ENV_VARS.APPROVAL_POLICY);\n\tif (\n\t\tapprovalPolicy &&\n\t\t![\"untrusted\", \"on-failure\", \"on-request\", \"never\"].includes(approvalPolicy)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_APPROVAL_POLICY: \"${approvalPolicy}\". Must be one of: untrusted, on-failure, on-request, never`,\n\t\t);\n\t}\n\n\t// Validate SANDBOX_MODE\n\tconst sandboxMode = getEnvString(ENV_VARS.SANDBOX_MODE);\n\tif (\n\t\tsandboxMode &&\n\t\t![\"read-only\", \"workspace-write\", \"danger-full-access\"].includes(\n\t\t\tsandboxMode,\n\t\t)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_SANDBOX_MODE: \"${sandboxMode}\". Must be one of: read-only, workspace-write, danger-full-access`,\n\t\t);\n\t}\n\n\t// Validate LOG_LEVEL\n\tconst logLevel = getEnvString(ENV_VARS.LOG_LEVEL);\n\tif (logLevel && ![\"debug\", \"info\", \"warn\", \"error\"].includes(logLevel)) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_LOG_LEVEL: \"${logLevel}\". Must be one of: debug, info, warn, error`,\n\t\t);\n\t}\n\n\t// Validate MAX_OUTPUT_TOKENS\n\tconst maxTokens = getEnvString(ENV_VARS.MAX_OUTPUT_TOKENS);\n\tif (\n\t\tmaxTokens &&\n\t\t(Number.isNaN(Number.parseInt(maxTokens, 10)) ||\n\t\t\tNumber.parseInt(maxTokens, 10) < 1)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_MAX_OUTPUT_TOKENS: \"${maxTokens}\". Must be a positive integer`,\n\t\t);\n\t}\n\n\tfor (const warning of warnings) {\n\t\tlogger.warn(warning);\n\t}\n\n\treturn warnings;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Environment Variable Configuration\n *\n * Centralized configuration for all MAESTRO_* environment variables.\n * Inspired by Claude Code's CLAUDE_CODE_* variables.\n *\n * Environment variables provide runtime configuration without modifying\n * config files. They have higher precedence than config files but lower\n * than CLI flags.\n *\n * ## Supported Variables\n *\n * ### Core Settings\n * - MAESTRO_MODEL - Override the default model\n * - MAESTRO_MODEL_PROVIDER - Override the model provider\n * - MAESTRO_PROFILE - Select a config profile\n * - MAESTRO_APPROVAL_POLICY - Set approval policy (untrusted|on-failure|on-request|never)\n * - MAESTRO_SANDBOX_MODE - Set sandbox mode (read-only|workspace-write|danger-full-access)\n *\n * ### Behavior Controls\n * - MAESTRO_MAX_OUTPUT_TOKENS - Maximum tokens for model output\n * - MAESTRO_DISABLE_TELEMETRY - Disable telemetry (1 to disable)\n * - MAESTRO_DISABLE_TERMINAL_TITLE - Don't update terminal title (1 to disable)\n * - MAESTRO_DISABLE_ANIMATIONS - Disable TUI animations (1 to disable)\n * - MAESTRO_CONTEXT_FIREWALL_BLOCKING - Enable/disable blocking of sensitive content in tool args (default: 1)\n *\n * ### Subagent Configuration\n * - MAESTRO_SUBAGENT_MODEL - Model to use for subagents\n * - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool\n * - MAESTRO_PAINTER_MODEL - Image model for the Painter tool (default: gpt-image-2)\n * - MAESTRO_PAINTER_BASE_URL - OpenAI-compatible base URL override for Painter\n * - MAESTRO_PAINTER_OUTPUT_DIR - Where Painter writes images (default: ~/.maestro/assets/painter)\n * - MAESTRO_PAINTER_TIMEOUT_MS - Per-call Painter timeout in ms (default: 180000)\n *\n * ### API Configuration\n * - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers\n * - MAESTRO_SKIP_AUTH - Skip authentication (for testing)\n * - MAESTRO_IDENTITY_URL - Override EvalOps identity base URL\n * - MAESTRO_PLATFORM_BASE_URL - Shared EvalOps Platform base URL for core services\n *\n * ### Network Configuration\n * - MAESTRO_HTTP_PROXY - HTTP proxy URL\n * - MAESTRO_HTTPS_PROXY - HTTPS proxy URL\n * - MAESTRO_SOCKS_PROXY - SOCKS proxy URL\n * - MAESTRO_NO_PROXY - Comma-separated list of hosts to bypass proxy\n *\n * ### Debug Configuration\n * - MAESTRO_DEBUG - Enable debug logging (1 to enable)\n * - MAESTRO_LOG_LEVEL - Set log level (debug|info|warn|error)\n * - MAESTRO_USAGE_FILE - Path to write usage data\n *\n * ### Session Configuration\n * - MAESTRO_NO_SESSION - Disable session persistence (1 to disable)\n * - MAESTRO_SESSION_DIR - Custom session storage directory\n * - MAESTRO_SESSION_SCOPE - Scope sessions by auth subject (auth|true|1)\n * - MAESTRO_MULTI_USER - Alias for MAESTRO_SESSION_SCOPE\n * - MAESTRO_MEMORY_BASE - Durable memory service base URL\n * - MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n * - MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n * - MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n * - MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n * - MAESTRO_SHARED_MEMORY_SESSION_ID - Override session ID for shared memory sync\n *\n * ### Feature Flags\n * - MAESTRO_ENABLE_* - Enable specific features\n * - MAESTRO_DISABLE_* - Disable specific features\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"config:env\");\n\n/**\n * All recognized MAESTRO_* environment variables.\n */\nexport const ENV_VARS = {\n\t// Core settings\n\tMODEL: \"MAESTRO_MODEL\",\n\tMODEL_PROVIDER: \"MAESTRO_MODEL_PROVIDER\",\n\tPROFILE: \"MAESTRO_PROFILE\",\n\tAPPROVAL_POLICY: \"MAESTRO_APPROVAL_POLICY\",\n\tSANDBOX_MODE: \"MAESTRO_SANDBOX_MODE\",\n\n\t// Behavior controls\n\tMAX_OUTPUT_TOKENS: \"MAESTRO_MAX_OUTPUT_TOKENS\",\n\tDISABLE_TELEMETRY: \"MAESTRO_DISABLE_TELEMETRY\",\n\tDISABLE_TERMINAL_TITLE: \"MAESTRO_DISABLE_TERMINAL_TITLE\",\n\tDISABLE_ANIMATIONS: \"MAESTRO_DISABLE_ANIMATIONS\",\n\tSAFE_MODE: \"MAESTRO_SAFE_MODE\",\n\tCONTEXT_FIREWALL_BLOCKING: \"MAESTRO_CONTEXT_FIREWALL_BLOCKING\",\n\n\t// Subagent configuration\n\tSUBAGENT_MODEL: \"MAESTRO_SUBAGENT_MODEL\",\n\tORACLE_MODEL: \"MAESTRO_ORACLE_MODEL\",\n\tORACLE_EXPERIMENT_ID: \"MAESTRO_ORACLE_EXPERIMENT_ID\",\n\tORACLE_EXPERIMENT_ALLOCATION: \"MAESTRO_ORACLE_EXPERIMENT_ALLOCATION\",\n\tORACLE_EXPERIMENT_CONTROL_VERSION:\n\t\t\"MAESTRO_ORACLE_EXPERIMENT_CONTROL_VERSION\",\n\tORACLE_EXPERIMENT_TREATMENT_VERSION:\n\t\t\"MAESTRO_ORACLE_EXPERIMENT_TREATMENT_VERSION\",\n\tPAINTER_MODEL: \"MAESTRO_PAINTER_MODEL\",\n\tPAINTER_BASE_URL: \"MAESTRO_PAINTER_BASE_URL\",\n\tPAINTER_OUTPUT_DIR: \"MAESTRO_PAINTER_OUTPUT_DIR\",\n\tPAINTER_TIMEOUT_MS: \"MAESTRO_PAINTER_TIMEOUT_MS\",\n\tSWARM_MODE: \"MAESTRO_SWARM_MODE\",\n\tSWARM_ID: \"MAESTRO_SWARM_ID\",\n\tTEAMMATE_ID: \"MAESTRO_TEAMMATE_ID\",\n\n\t// API configuration\n\tAPI_KEY_HELPER_TTL_MS: \"MAESTRO_API_KEY_HELPER_TTL_MS\",\n\tSKIP_AUTH: \"MAESTRO_SKIP_AUTH\",\n\tSKIP_BEDROCK_AUTH: \"MAESTRO_SKIP_BEDROCK_AUTH\",\n\tSKIP_VERTEX_AUTH: \"MAESTRO_SKIP_VERTEX_AUTH\",\n\tIDENTITY_URL: \"MAESTRO_IDENTITY_URL\",\n\tPLATFORM_BASE_URL: \"MAESTRO_PLATFORM_BASE_URL\",\n\n\t// Network configuration\n\tHTTP_PROXY: \"MAESTRO_HTTP_PROXY\",\n\tHTTPS_PROXY: \"MAESTRO_HTTPS_PROXY\",\n\tSOCKS_PROXY: \"MAESTRO_SOCKS_PROXY\",\n\tNO_PROXY: \"MAESTRO_NO_PROXY\",\n\n\t// Debug configuration\n\tDEBUG: \"MAESTRO_DEBUG\",\n\tLOG_LEVEL: \"MAESTRO_LOG_LEVEL\",\n\tUSAGE_FILE: \"MAESTRO_USAGE_FILE\",\n\n\t// Session configuration\n\tNO_SESSION: \"MAESTRO_NO_SESSION\",\n\tSESSION_DIR: \"MAESTRO_SESSION_DIR\",\n\tSESSION_SCOPE: \"MAESTRO_SESSION_SCOPE\",\n\tMULTI_USER: \"MAESTRO_MULTI_USER\",\n\tMEMORY_BASE: \"MAESTRO_MEMORY_BASE\",\n\tMEMORY_ACCESS_TOKEN: \"MAESTRO_MEMORY_ACCESS_TOKEN\",\n\tMEMORY_TEAM_ID: \"MAESTRO_MEMORY_TEAM_ID\",\n\tSHARED_MEMORY_BASE: \"MAESTRO_SHARED_MEMORY_BASE\",\n\tSHARED_MEMORY_API_KEY: \"MAESTRO_SHARED_MEMORY_API_KEY\",\n\tSHARED_MEMORY_SESSION_ID: \"MAESTRO_SHARED_MEMORY_SESSION_ID\",\n} as const;\n\nexport type EnvVarName = (typeof ENV_VARS)[keyof typeof ENV_VARS];\n\n/**\n * Get a string environment variable.\n */\nexport function getEnvString(name: EnvVarName): string | undefined {\n\treturn process.env[name]?.trim() || undefined;\n}\n\n/**\n * Get an integer environment variable.\n */\nexport function getEnvInt(name: EnvVarName): number | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\tconst parsed = Number.parseInt(value, 10);\n\treturn Number.isNaN(parsed) ? undefined : parsed;\n}\n\n/**\n * Get a boolean environment variable.\n * Treats \"1\", \"true\", \"yes\" as true; \"0\", \"false\", \"no\", \"\" as false.\n */\nexport function getEnvBool(name: EnvVarName): boolean | undefined {\n\tconst value = process.env[name]?.toLowerCase().trim();\n\tif (!value) return undefined;\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(value)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"\"].includes(value)) return false;\n\treturn undefined;\n}\n\n/**\n * Get a list environment variable (comma-separated).\n */\nexport function getEnvList(name: EnvVarName): string[] | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\treturn value\n\t\t.split(\",\")\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n}\n\n/**\n * Check if a feature flag is enabled.\n * Checks MAESTRO_ENABLE_<feature> env var.\n */\nexport function isFeatureEnabled(feature: string): boolean {\n\tconst envName = `MAESTRO_ENABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Check if a feature flag is disabled.\n * Checks MAESTRO_DISABLE_<feature> env var.\n */\nexport function isFeatureDisabled(feature: string): boolean {\n\tconst envName = `MAESTRO_DISABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Get proxy configuration from environment variables.\n */\nexport function getProxyConfig(): {\n\thttp?: string;\n\thttps?: string;\n\tsocks?: string;\n\tnoProxy?: string[];\n} {\n\tconst config: {\n\t\thttp?: string;\n\t\thttps?: string;\n\t\tsocks?: string;\n\t\tnoProxy?: string[];\n\t} = {};\n\n\t// Check MAESTRO_* vars first, then standard vars\n\tconst httpProxy =\n\t\tgetEnvString(ENV_VARS.HTTP_PROXY) ||\n\t\tprocess.env.HTTP_PROXY ||\n\t\tprocess.env.http_proxy;\n\tif (httpProxy) config.http = httpProxy;\n\n\tconst httpsProxy =\n\t\tgetEnvString(ENV_VARS.HTTPS_PROXY) ||\n\t\tprocess.env.HTTPS_PROXY ||\n\t\tprocess.env.https_proxy;\n\tif (httpsProxy) config.https = httpsProxy;\n\n\tconst socksProxy = getEnvString(ENV_VARS.SOCKS_PROXY);\n\tif (socksProxy) config.socks = socksProxy;\n\n\tconst noProxy =\n\t\tgetEnvList(ENV_VARS.NO_PROXY) ||\n\t\t(process.env.NO_PROXY || process.env.no_proxy)\n\t\t\t?.split(\",\")\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\tif (noProxy && noProxy.length > 0) config.noProxy = noProxy;\n\n\treturn config;\n}\n\n/**\n * Check if we're running in safe mode.\n */\nexport function isSafeMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SAFE_MODE) ?? false;\n}\n\n/**\n * Check if context firewall blocking is enabled.\n * Defaults to true (blocking enabled). Set MAESTRO_CONTEXT_FIREWALL_BLOCKING=0 to disable.\n *\n * When blocking is disabled, sensitive content (API keys, credentials) can be passed\n * through tool arguments without being blocked. This is useful for testing scenarios\n * where you intentionally want to use test API keys.\n */\nexport function isContextFirewallBlockingEnabled(): boolean {\n\treturn getEnvBool(ENV_VARS.CONTEXT_FIREWALL_BLOCKING) ?? true;\n}\n\n/**\n * Check if we're running as part of a swarm.\n */\nexport function isSwarmMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SWARM_MODE) ?? false;\n}\n\n/**\n * Check if telemetry is disabled.\n */\nexport function isTelemetryDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_TELEMETRY) ?? false;\n}\n\n/**\n * Check if animations are disabled.\n */\nexport function areAnimationsDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_ANIMATIONS) ?? false;\n}\n\n/**\n * Get max output tokens configuration.\n */\nexport function getMaxOutputTokens(): number | undefined {\n\treturn getEnvInt(ENV_VARS.MAX_OUTPUT_TOKENS);\n}\n\n/**\n * Get subagent model override.\n */\nexport function getSubagentModel(): string | undefined {\n\treturn getEnvString(ENV_VARS.SUBAGENT_MODEL);\n}\n\n/**\n * Log all set MAESTRO_* environment variables (for debugging).\n */\nexport function logEnvVars(): void {\n\tconst setVars: Record<string, string> = {};\n\n\tfor (const [key, envName] of Object.entries(ENV_VARS)) {\n\t\tconst value = process.env[envName];\n\t\tif (value !== undefined) {\n\t\t\t// Mask sensitive values\n\t\t\tif (\n\t\t\t\tenvName.includes(\"KEY\") ||\n\t\t\t\tenvName.includes(\"TOKEN\") ||\n\t\t\t\tenvName.includes(\"SECRET\")\n\t\t\t) {\n\t\t\t\tsetVars[key] = \"[REDACTED]\";\n\t\t\t} else {\n\t\t\t\tsetVars[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (Object.keys(setVars).length > 0) {\n\t\tlogger.debug(\"COMPOSER environment variables\", setVars);\n\t}\n}\n\n/**\n * Validate environment variable values and warn about invalid ones.\n */\nexport function validateEnvVars(): string[] {\n\tconst warnings: string[] = [];\n\n\t// Validate APPROVAL_POLICY\n\tconst approvalPolicy = getEnvString(ENV_VARS.APPROVAL_POLICY);\n\tif (\n\t\tapprovalPolicy &&\n\t\t![\"untrusted\", \"on-failure\", \"on-request\", \"never\"].includes(approvalPolicy)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_APPROVAL_POLICY: \"${approvalPolicy}\". Must be one of: untrusted, on-failure, on-request, never`,\n\t\t);\n\t}\n\n\t// Validate SANDBOX_MODE\n\tconst sandboxMode = getEnvString(ENV_VARS.SANDBOX_MODE);\n\tif (\n\t\tsandboxMode &&\n\t\t![\"read-only\", \"workspace-write\", \"danger-full-access\"].includes(\n\t\t\tsandboxMode,\n\t\t)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_SANDBOX_MODE: \"${sandboxMode}\". Must be one of: read-only, workspace-write, danger-full-access`,\n\t\t);\n\t}\n\n\t// Validate LOG_LEVEL\n\tconst logLevel = getEnvString(ENV_VARS.LOG_LEVEL);\n\tif (logLevel && ![\"debug\", \"info\", \"warn\", \"error\"].includes(logLevel)) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_LOG_LEVEL: \"${logLevel}\". Must be one of: debug, info, warn, error`,\n\t\t);\n\t}\n\n\t// Validate MAX_OUTPUT_TOKENS\n\tconst maxTokens = getEnvString(ENV_VARS.MAX_OUTPUT_TOKENS);\n\tif (\n\t\tmaxTokens &&\n\t\t(Number.isNaN(Number.parseInt(maxTokens, 10)) ||\n\t\t\tNumber.parseInt(maxTokens, 10) < 1)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_MAX_OUTPUT_TOKENS: \"${maxTokens}\". Must be a positive integer`,\n\t\t);\n\t}\n\n\tfor (const warning of warnings) {\n\t\tlogger.warn(warning);\n\t}\n\n\treturn warnings;\n}\n"]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { CleanMode } from "../conversation/render-model.js";
|
|
2
|
-
import type { FooterMode } from "./utils/footer-utils.js";
|
|
3
2
|
export type QueueMode = "one" | "all";
|
|
3
|
+
/**
|
|
4
|
+
* Footer display density. Defined here (rather than in the TUI's own
|
|
5
|
+
* footer-rendering code) because it's part of the persisted UI preference
|
|
6
|
+
* shape shared by the TUI, the web UI store, and the server handlers.
|
|
7
|
+
*/
|
|
8
|
+
export type FooterMode = "rich" | "solo";
|
|
4
9
|
export interface UiState {
|
|
5
10
|
queueMode?: QueueMode;
|
|
6
11
|
steeringMode?: QueueMode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.d.ts","sourceRoot":"","sources":["../../src/config/ui-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAKjE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtC;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,OAAO;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAQD,wBAAgB,WAAW,IAAI,OAAO,CA6DrC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,wBAAgB,gBAAgB,IAAI;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAsBA;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACvC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,IAAI,CAGP"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { PATHS } from "../config/constants.js";
|
|
3
2
|
import { writeJsonFile } from "../utils/fs.js";
|
|
4
3
|
import { resolveEnvPath } from "../utils/path-expansion.js";
|
|
4
|
+
import { PATHS } from "./constants.js";
|
|
5
5
|
const getUiStatePath = () => resolveEnvPath(process.env.MAESTRO_UI_STATE) ?? PATHS.UI_STATE_FILE;
|
|
6
6
|
const getCommandPrefsPath = () => resolveEnvPath(process.env.MAESTRO_COMMAND_PREFS) ?? PATHS.COMMAND_PREFS_FILE;
|
|
7
7
|
export function loadUiState() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.js","sourceRoot":"","sources":["../../src/config/ui-state.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport type { CleanMode } from \"../conversation/render-model.js\";\nimport { writeJsonFile } from \"../utils/fs.js\";\nimport { resolveEnvPath } from \"../utils/path-expansion.js\";\nimport { PATHS } from \"./constants.js\";\n\nexport type QueueMode = \"one\" | \"all\";\n\n/**\n * Footer display density. Defined here (rather than in the TUI's own\n * footer-rendering code) because it's part of the persisted UI preference\n * shape shared by the TUI, the web UI store, and the server handlers.\n */\nexport type FooterMode = \"rich\" | \"solo\";\n\nexport interface UiState {\n\tqueueMode?: QueueMode;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\tcompactTools?: boolean;\n\tfooterMode?: FooterMode;\n\tzenMode?: boolean;\n\tcleanMode?: CleanMode;\n\treducedMotion?: boolean;\n\thideThinkingBlocks?: boolean;\n\trecentCommands?: string[];\n\tfavoriteCommands?: string[];\n}\n\nconst getUiStatePath = () =>\n\tresolveEnvPath(process.env.MAESTRO_UI_STATE) ?? PATHS.UI_STATE_FILE;\n\nconst getCommandPrefsPath = () =>\n\tresolveEnvPath(process.env.MAESTRO_COMMAND_PREFS) ?? PATHS.COMMAND_PREFS_FILE;\n\nexport function loadUiState(): UiState {\n\tconst uiStatePath = getUiStatePath();\n\tif (!existsSync(uiStatePath)) {\n\t\treturn {};\n\t}\n\ttry {\n\t\tconst raw = readFileSync(uiStatePath, \"utf-8\");\n\t\tconst parsed = JSON.parse(raw) as UiState;\n\t\tconst legacyQueueMode =\n\t\t\tparsed.queueMode === \"one\" || parsed.queueMode === \"all\"\n\t\t\t\t? parsed.queueMode\n\t\t\t\t: undefined;\n\t\tconst steeringMode =\n\t\t\tparsed.steeringMode === \"one\" || parsed.steeringMode === \"all\"\n\t\t\t\t? parsed.steeringMode\n\t\t\t\t: legacyQueueMode;\n\t\tconst followUpMode =\n\t\t\tparsed.followUpMode === \"one\" || parsed.followUpMode === \"all\"\n\t\t\t\t? parsed.followUpMode\n\t\t\t\t: legacyQueueMode;\n\t\treturn {\n\t\t\tqueueMode: legacyQueueMode,\n\t\t\tsteeringMode,\n\t\t\tfollowUpMode,\n\t\t\tcompactTools:\n\t\t\t\ttypeof parsed.compactTools === \"boolean\"\n\t\t\t\t\t? parsed.compactTools\n\t\t\t\t\t: undefined,\n\t\t\tfooterMode:\n\t\t\t\tparsed.footerMode === \"rich\" || parsed.footerMode === \"solo\"\n\t\t\t\t\t? parsed.footerMode\n\t\t\t\t\t: undefined,\n\t\t\tcleanMode:\n\t\t\t\tparsed.cleanMode === \"soft\" ||\n\t\t\t\tparsed.cleanMode === \"aggressive\" ||\n\t\t\t\tparsed.cleanMode === \"off\"\n\t\t\t\t\t? parsed.cleanMode\n\t\t\t\t\t: undefined,\n\t\t\tzenMode: typeof parsed.zenMode === \"boolean\" ? parsed.zenMode : undefined,\n\t\t\treducedMotion:\n\t\t\t\ttypeof parsed.reducedMotion === \"boolean\"\n\t\t\t\t\t? parsed.reducedMotion\n\t\t\t\t\t: undefined,\n\t\t\thideThinkingBlocks:\n\t\t\t\ttypeof parsed.hideThinkingBlocks === \"boolean\"\n\t\t\t\t\t? parsed.hideThinkingBlocks\n\t\t\t\t\t: undefined,\n\t\t\trecentCommands: Array.isArray(parsed.recentCommands)\n\t\t\t\t? (parsed.recentCommands as string[]).filter(\n\t\t\t\t\t\t(item) => typeof item === \"string\" && item.trim().length > 0,\n\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t\tfavoriteCommands: Array.isArray(parsed.favoriteCommands)\n\t\t\t\t? (parsed.favoriteCommands as string[]).filter(\n\t\t\t\t\t\t(item) => typeof item === \"string\" && item.trim().length > 0,\n\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t};\n\t} catch {\n\t\treturn {};\n\t}\n}\n\nexport function saveUiState(partial: UiState): void {\n\tconst current = loadUiState();\n\tconst next: UiState = { ...current, ...partial };\n\tconst uiStatePath = getUiStatePath();\n\twriteJsonFile(uiStatePath, next);\n}\n\nexport function loadCommandPrefs(): {\n\tfavorites: string[];\n\trecents: string[];\n} {\n\tconst prefsPath = getCommandPrefsPath();\n\tif (!existsSync(prefsPath)) {\n\t\treturn { favorites: [], recents: [] };\n\t}\n\ttry {\n\t\tconst raw = readFileSync(prefsPath, \"utf-8\");\n\t\tconst parsed = JSON.parse(raw) as Record<string, unknown>;\n\t\tconst favorites = Array.isArray(parsed.favorites)\n\t\t\t? (parsed.favorites as unknown[]).filter(\n\t\t\t\t\t(item): item is string => typeof item === \"string\",\n\t\t\t\t)\n\t\t\t: [];\n\t\tconst recents = Array.isArray(parsed.recents)\n\t\t\t? (parsed.recents as unknown[]).filter(\n\t\t\t\t\t(item): item is string => typeof item === \"string\",\n\t\t\t\t)\n\t\t\t: [];\n\t\treturn { favorites, recents };\n\t} catch {\n\t\treturn { favorites: [], recents: [] };\n\t}\n}\n\nexport function saveCommandPrefs(prefs: {\n\tfavorites: string[];\n\trecents: string[];\n}): void {\n\tconst prefsPath = getCommandPrefsPath();\n\twriteJsonFile(prefsPath, prefs);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-map.d.ts","sourceRoot":"","sources":["../../src/context/repo-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"repo-map.d.ts","sourceRoot":"","sources":["../../src/context/repo-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACD,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB;AAmPD;;GAEG;AACH,cAAM,gBAAgB;IACrB;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAyHvD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAyCtC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;CAiB7D;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,kBAAyB,CAAC;AAE9C;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,SAAS,SAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAOjB"}
|
package/dist/context/repo-map.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
31
31
|
import { basename, extname, join, relative } from "node:path";
|
|
32
|
+
import { estimateTokens } from "@evalops/contracts";
|
|
32
33
|
import { createLogger } from "../utils/logger.js";
|
|
33
34
|
const logger = createLogger("context:repo-map");
|
|
34
35
|
/**
|
|
@@ -239,13 +240,6 @@ function calculateImportance(relativePath, symbols, focusFiles) {
|
|
|
239
240
|
}
|
|
240
241
|
return Math.max(score, 0);
|
|
241
242
|
}
|
|
242
|
-
/**
|
|
243
|
-
* Estimate tokens for a string (rough approximation)
|
|
244
|
-
*/
|
|
245
|
-
function estimateTokens(text) {
|
|
246
|
-
// Rough estimate: ~4 characters per token
|
|
247
|
-
return Math.ceil(text.length / 4);
|
|
248
|
-
}
|
|
249
243
|
/**
|
|
250
244
|
* Repo map generator class
|
|
251
245
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-map.js","sourceRoot":"","sources":["../../src/context/repo-map.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Repository Map Generator\n *\n * Generates a structural overview of the codebase to provide better context\n * to the model. Inspired by Aider's repo-map feature.\n *\n * ## Features\n *\n * - Extracts file structure with important symbols\n * - Identifies key files (entry points, configs, types)\n * - Ranks files by importance and relevance\n * - Generates concise summaries within token budgets\n *\n * ## Usage\n *\n * ```typescript\n * import { repoMap } from \"./repo-map.js\";\n *\n * // Generate map for current directory\n * const map = await repoMap.generate({\n * rootDir: process.cwd(),\n * maxTokens: 4000,\n * focusFiles: [\"src/main.ts\"],\n * });\n *\n * // Get map as context string\n * const context = repoMap.formatForContext(map);\n * ```\n */\n\nimport { readFileSync, readdirSync, statSync } from \"node:fs\";\nimport { basename, extname, join, relative } from \"node:path\";\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context:repo-map\");\n\n/**\n * Symbol extracted from a file\n */\nexport interface ExtractedSymbol {\n\tname: string;\n\tkind:\n\t\t| \"class\"\n\t\t| \"function\"\n\t\t| \"interface\"\n\t\t| \"type\"\n\t\t| \"const\"\n\t\t| \"export\"\n\t\t| \"import\";\n\tline: number;\n\texported: boolean;\n}\n\n/**\n * File entry in the repo map\n */\nexport interface RepoMapEntry {\n\tpath: string;\n\trelativePath: string;\n\tsize: number;\n\tlanguage: string;\n\tsymbols: ExtractedSymbol[];\n\timportance: number;\n\tsummary?: string;\n}\n\n/**\n * Repo map configuration\n */\nexport interface RepoMapConfig {\n\t/** Root directory to map */\n\trootDir: string;\n\t/** Maximum tokens for the map */\n\tmaxTokens?: number;\n\t/** Files to focus on (boost importance) */\n\tfocusFiles?: string[];\n\t/** File patterns to exclude */\n\texcludePatterns?: string[];\n\t/** Include file contents for small files */\n\tincludeContents?: boolean;\n\t/** Max file size to include contents (bytes) */\n\tmaxContentSize?: number;\n}\n\n/**\n * Generated repo map\n */\nexport interface RepoMap {\n\trootDir: string;\n\tgeneratedAt: string;\n\ttotalFiles: number;\n\tentries: RepoMapEntry[];\n\tsummary: string;\n}\n\n/**\n * Language detection by extension\n */\nconst LANGUAGE_MAP: Record<string, string> = {\n\t\".ts\": \"typescript\",\n\t\".tsx\": \"typescript\",\n\t\".js\": \"javascript\",\n\t\".jsx\": \"javascript\",\n\t\".py\": \"python\",\n\t\".rb\": \"ruby\",\n\t\".go\": \"go\",\n\t\".rs\": \"rust\",\n\t\".java\": \"java\",\n\t\".kt\": \"kotlin\",\n\t\".swift\": \"swift\",\n\t\".c\": \"c\",\n\t\".cpp\": \"cpp\",\n\t\".h\": \"c\",\n\t\".hpp\": \"cpp\",\n\t\".cs\": \"csharp\",\n\t\".php\": \"php\",\n\t\".vue\": \"vue\",\n\t\".svelte\": \"svelte\",\n\t\".md\": \"markdown\",\n\t\".json\": \"json\",\n\t\".yaml\": \"yaml\",\n\t\".yml\": \"yaml\",\n\t\".toml\": \"toml\",\n\t\".sql\": \"sql\",\n\t\".sh\": \"shell\",\n\t\".bash\": \"shell\",\n};\n\n/**\n * Important file patterns (boost importance score)\n */\nconst IMPORTANT_PATTERNS = [\n\t/^(main|index|app|server|cli)\\.[jt]sx?$/,\n\t/^(package|cargo|go\\.mod|requirements|Gemfile).*$/,\n\t/^(tsconfig|webpack|vite|rollup).*\\.json$/,\n\t/^\\.env.*$/,\n\t/^(Dockerfile|docker-compose)/,\n\t/^(README|CHANGELOG|LICENSE)/i,\n\t/types?\\.[jt]s$/,\n\t/schema\\.[jt]s$/,\n\t/config\\.[jt]s$/,\n];\n\n/**\n * Patterns to exclude from mapping\n */\nconst DEFAULT_EXCLUDE = [\n\t/node_modules/,\n\t/\\.git/,\n\t/dist\\//,\n\t/build\\//,\n\t/\\.next\\//,\n\t/\\.cache/,\n\t/coverage\\//,\n\t/__pycache__/,\n\t/\\.pyc$/,\n\t/\\.min\\.[jt]s$/,\n\t/\\.map$/,\n\t/\\.lock$/,\n\t/package-lock\\.json$/,\n\t/yarn\\.lock$/,\n];\n\n/**\n * Extract symbols from TypeScript/JavaScript content\n */\nfunction extractTSSymbols(content: string): ExtractedSymbol[] {\n\tconst symbols: ExtractedSymbol[] = [];\n\tconst lines = content.split(\"\\n\");\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i] || \"\";\n\t\tconst lineNum = i + 1;\n\n\t\t// Classes\n\t\tconst classMatch = line.match(\n\t\t\t/^(export\\s+)?(class|abstract\\s+class)\\s+(\\w+)/,\n\t\t);\n\t\tif (classMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: classMatch[3]!,\n\t\t\t\tkind: \"class\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!classMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Functions\n\t\tconst funcMatch = line.match(/^(export\\s+)?(async\\s+)?function\\s+(\\w+)/);\n\t\tif (funcMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: funcMatch[3]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!funcMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Arrow functions assigned to const\n\t\tconst arrowMatch = line.match(\n\t\t\t/^(export\\s+)?const\\s+(\\w+)\\s*=\\s*(async\\s+)?\\(/,\n\t\t);\n\t\tif (arrowMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: arrowMatch[2]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!arrowMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Interfaces\n\t\tconst interfaceMatch = line.match(/^(export\\s+)?interface\\s+(\\w+)/);\n\t\tif (interfaceMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: interfaceMatch[2]!,\n\t\t\t\tkind: \"interface\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!interfaceMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Types\n\t\tconst typeMatch = line.match(/^(export\\s+)?type\\s+(\\w+)/);\n\t\tif (typeMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: typeMatch[2]!,\n\t\t\t\tkind: \"type\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!typeMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Exported consts\n\t\tconst constMatch = line.match(/^export\\s+const\\s+(\\w+)/);\n\t\tif (constMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: constMatch[1]!,\n\t\t\t\tkind: \"const\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: true,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn symbols;\n}\n\n/**\n * Extract symbols from Python content\n */\nfunction extractPySymbols(content: string): ExtractedSymbol[] {\n\tconst symbols: ExtractedSymbol[] = [];\n\tconst lines = content.split(\"\\n\");\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i] || \"\";\n\t\tconst lineNum = i + 1;\n\n\t\t// Classes\n\t\tconst classMatch = line.match(/^class\\s+(\\w+)/);\n\t\tif (classMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: classMatch[1]!,\n\t\t\t\tkind: \"class\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !classMatch[1]!.startsWith(\"_\"),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Functions (top-level only)\n\t\tconst funcMatch = line.match(/^(async\\s+)?def\\s+(\\w+)/);\n\t\tif (funcMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: funcMatch[2]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !funcMatch[2]!.startsWith(\"_\"),\n\t\t\t});\n\t\t}\n\t}\n\n\treturn symbols;\n}\n\n/**\n * Calculate importance score for a file\n */\nfunction calculateImportance(\n\trelativePath: string,\n\tsymbols: ExtractedSymbol[],\n\tfocusFiles: string[],\n): number {\n\tlet score = 0;\n\tconst filename = basename(relativePath);\n\n\t// Check important patterns\n\tfor (const pattern of IMPORTANT_PATTERNS) {\n\t\tif (pattern.test(filename)) {\n\t\t\tscore += 10;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Focus files get highest priority\n\tif (focusFiles.some((f) => relativePath.includes(f))) {\n\t\tscore += 50;\n\t}\n\n\t// Exported symbols increase importance\n\tconst exportedCount = symbols.filter((s) => s.exported).length;\n\tscore += Math.min(exportedCount * 2, 20);\n\n\t// Depth penalty (deeper files are less important)\n\tconst depth = relativePath.split(\"/\").length;\n\tscore -= Math.min(depth, 5);\n\n\t// Boost for entry-point directories\n\tif (relativePath.startsWith(\"src/\") || relativePath.startsWith(\"lib/\")) {\n\t\tscore += 5;\n\t}\n\n\t// Boost for test files (useful context)\n\tif (relativePath.includes(\"test\") || relativePath.includes(\"spec\")) {\n\t\tscore += 3;\n\t}\n\n\treturn Math.max(score, 0);\n}\n\n/**\n * Estimate tokens for a string (rough approximation)\n */\nfunction estimateTokens(text: string): number {\n\t// Rough estimate: ~4 characters per token\n\treturn Math.ceil(text.length / 4);\n}\n\n/**\n * Repo map generator class\n */\nclass RepoMapGenerator {\n\t/**\n\t * Generate a repo map\n\t */\n\tasync generate(config: RepoMapConfig): Promise<RepoMap> {\n\t\tconst {\n\t\t\trootDir,\n\t\t\tmaxTokens = 4000,\n\t\t\tfocusFiles = [],\n\t\t\texcludePatterns = [],\n\t\t\tincludeContents = false,\n\t\t\tmaxContentSize = 2000,\n\t\t} = config;\n\n\t\tconst allExclude = [\n\t\t\t...DEFAULT_EXCLUDE,\n\t\t\t...excludePatterns.map((p) => new RegExp(p)),\n\t\t];\n\t\tconst entries: RepoMapEntry[] = [];\n\n\t\t// Recursively scan directory\n\t\tconst scanDir = (dir: string): void => {\n\t\t\ttry {\n\t\t\t\tconst items = readdirSync(dir);\n\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tconst fullPath = join(dir, item);\n\t\t\t\t\tconst relativePath = relative(rootDir, fullPath);\n\n\t\t\t\t\t// Check exclusions\n\t\t\t\t\tif (allExclude.some((pattern) => pattern.test(relativePath))) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst stat = statSync(fullPath);\n\n\t\t\t\t\t\tif (stat.isDirectory()) {\n\t\t\t\t\t\t\tscanDir(fullPath);\n\t\t\t\t\t\t} else if (stat.isFile()) {\n\t\t\t\t\t\t\tconst ext = extname(item);\n\t\t\t\t\t\t\tconst language = LANGUAGE_MAP[ext];\n\n\t\t\t\t\t\t\tif (!language) continue;\n\n\t\t\t\t\t\t\tconst content = readFileSync(fullPath, \"utf-8\");\n\t\t\t\t\t\t\tlet symbols: ExtractedSymbol[] = [];\n\n\t\t\t\t\t\t\t// Extract symbols based on language\n\t\t\t\t\t\t\tif (language === \"typescript\" || language === \"javascript\") {\n\t\t\t\t\t\t\t\tsymbols = extractTSSymbols(content);\n\t\t\t\t\t\t\t} else if (language === \"python\") {\n\t\t\t\t\t\t\t\tsymbols = extractPySymbols(content);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst importance = calculateImportance(\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t\tsymbols,\n\t\t\t\t\t\t\t\tfocusFiles,\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst entry: RepoMapEntry = {\n\t\t\t\t\t\t\t\tpath: fullPath,\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t\tsize: stat.size,\n\t\t\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\t\t\tsymbols,\n\t\t\t\t\t\t\t\timportance,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Include contents for small, important files\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tincludeContents &&\n\t\t\t\t\t\t\t\tstat.size <= maxContentSize &&\n\t\t\t\t\t\t\t\timportance > 10\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tentry.summary = content.slice(0, maxContentSize);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Skip files we can't read\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Skip directories we can't read\n\t\t\t}\n\t\t};\n\n\t\tscanDir(rootDir);\n\n\t\t// Sort by importance\n\t\tentries.sort((a, b) => b.importance - a.importance);\n\n\t\t// Truncate to fit token budget\n\t\tlet totalTokens = 0;\n\t\tconst truncatedEntries: RepoMapEntry[] = [];\n\n\t\tfor (const entry of entries) {\n\t\t\tconst entryTokens = this.estimateEntryTokens(entry);\n\t\t\tif (totalTokens + entryTokens > maxTokens) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttruncatedEntries.push(entry);\n\t\t\ttotalTokens += entryTokens;\n\t\t}\n\n\t\tconst map: RepoMap = {\n\t\t\trootDir,\n\t\t\tgeneratedAt: new Date().toISOString(),\n\t\t\ttotalFiles: entries.length,\n\t\t\tentries: truncatedEntries,\n\t\t\tsummary: this.generateSummary(truncatedEntries, entries.length),\n\t\t};\n\n\t\tlogger.info(\"Repo map generated\", {\n\t\t\ttotalFiles: entries.length,\n\t\t\tincludedFiles: truncatedEntries.length,\n\t\t\testimatedTokens: totalTokens,\n\t\t});\n\n\t\treturn map;\n\t}\n\n\t/**\n\t * Estimate tokens for an entry\n\t */\n\tprivate estimateEntryTokens(entry: RepoMapEntry): number {\n\t\tlet text = entry.relativePath;\n\t\ttext += entry.symbols.map((s) => `${s.kind} ${s.name}`).join(\" \");\n\t\tif (entry.summary) {\n\t\t\ttext += entry.summary;\n\t\t}\n\t\treturn estimateTokens(text);\n\t}\n\n\t/**\n\t * Generate summary text\n\t */\n\tprivate generateSummary(entries: RepoMapEntry[], totalFiles: number): string {\n\t\tconst languages = new Map<string, number>();\n\t\tlet totalSymbols = 0;\n\n\t\tfor (const entry of entries) {\n\t\t\tlanguages.set(entry.language, (languages.get(entry.language) || 0) + 1);\n\t\t\ttotalSymbols += entry.symbols.length;\n\t\t}\n\n\t\tconst langSummary = Array.from(languages.entries())\n\t\t\t.sort((a, b) => b[1] - a[1])\n\t\t\t.slice(0, 5)\n\t\t\t.map(([lang, count]) => `${lang}: ${count}`)\n\t\t\t.join(\", \");\n\n\t\treturn `${entries.length}/${totalFiles} files mapped, ${totalSymbols} symbols. Languages: ${langSummary}`;\n\t}\n\n\t/**\n\t * Format repo map for use as context\n\t */\n\tformatForContext(map: RepoMap): string {\n\t\tconst lines: string[] = [\n\t\t\t\"## Repository Structure\",\n\t\t\t\"\",\n\t\t\tmap.summary,\n\t\t\t\"\",\n\t\t\t\"### Key Files\",\n\t\t\t\"\",\n\t\t];\n\n\t\t// Group by directory\n\t\tconst byDir = new Map<string, RepoMapEntry[]>();\n\t\tfor (const entry of map.entries) {\n\t\t\tconst dir = entry.relativePath.split(\"/\").slice(0, -1).join(\"/\") || \".\";\n\t\t\tif (!byDir.has(dir)) {\n\t\t\t\tbyDir.set(dir, []);\n\t\t\t}\n\t\t\tbyDir.get(dir)!.push(entry);\n\t\t}\n\n\t\tfor (const [dir, files] of Array.from(byDir)) {\n\t\t\tlines.push(`**${dir}/**`);\n\t\t\tfor (const file of files) {\n\t\t\t\tconst filename = basename(file.relativePath);\n\t\t\t\tconst exportedSymbols = file.symbols\n\t\t\t\t\t.filter((s) => s.exported)\n\t\t\t\t\t.slice(0, 5)\n\t\t\t\t\t.map((s) => s.name);\n\n\t\t\t\tif (exportedSymbols.length > 0) {\n\t\t\t\t\tlines.push(`- ${filename}: ${exportedSymbols.join(\", \")}`);\n\t\t\t\t} else {\n\t\t\t\t\tlines.push(`- ${filename}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlines.push(\"\");\n\t\t}\n\n\t\treturn lines.join(\"\\n\");\n\t}\n\n\t/**\n\t * Get relevant files for a query\n\t */\n\tgetRelevantFiles(map: RepoMap, query: string): RepoMapEntry[] {\n\t\tconst queryLower = query.toLowerCase();\n\t\tconst terms = queryLower.split(/\\s+/);\n\n\t\treturn map.entries\n\t\t\t.filter((entry) => {\n\t\t\t\tconst searchText = [\n\t\t\t\t\tentry.relativePath,\n\t\t\t\t\t...entry.symbols.map((s) => s.name),\n\t\t\t\t]\n\t\t\t\t\t.join(\" \")\n\t\t\t\t\t.toLowerCase();\n\n\t\t\t\treturn terms.some((term) => searchText.includes(term));\n\t\t\t})\n\t\t\t.slice(0, 10);\n\t}\n}\n\n/**\n * Global repo map generator instance\n */\nexport const repoMap = new RepoMapGenerator();\n\n/**\n * Quick function to generate context for a directory\n */\nexport async function generateRepoContext(\n\trootDir: string,\n\tfocusFiles?: string[],\n\tmaxTokens = 4000,\n): Promise<string> {\n\tconst map = await repoMap.generate({\n\t\trootDir,\n\t\tfocusFiles,\n\t\tmaxTokens,\n\t});\n\treturn repoMap.formatForContext(map);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"repo-map.js","sourceRoot":"","sources":["../../src/context/repo-map.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Repository Map Generator\n *\n * Generates a structural overview of the codebase to provide better context\n * to the model. Inspired by Aider's repo-map feature.\n *\n * ## Features\n *\n * - Extracts file structure with important symbols\n * - Identifies key files (entry points, configs, types)\n * - Ranks files by importance and relevance\n * - Generates concise summaries within token budgets\n *\n * ## Usage\n *\n * ```typescript\n * import { repoMap } from \"./repo-map.js\";\n *\n * // Generate map for current directory\n * const map = await repoMap.generate({\n * rootDir: process.cwd(),\n * maxTokens: 4000,\n * focusFiles: [\"src/main.ts\"],\n * });\n *\n * // Get map as context string\n * const context = repoMap.formatForContext(map);\n * ```\n */\n\nimport { readFileSync, readdirSync, statSync } from \"node:fs\";\nimport { basename, extname, join, relative } from \"node:path\";\nimport { estimateTokens } from \"@evalops/contracts\";\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context:repo-map\");\n\n/**\n * Symbol extracted from a file\n */\nexport interface ExtractedSymbol {\n\tname: string;\n\tkind:\n\t\t| \"class\"\n\t\t| \"function\"\n\t\t| \"interface\"\n\t\t| \"type\"\n\t\t| \"const\"\n\t\t| \"export\"\n\t\t| \"import\";\n\tline: number;\n\texported: boolean;\n}\n\n/**\n * File entry in the repo map\n */\nexport interface RepoMapEntry {\n\tpath: string;\n\trelativePath: string;\n\tsize: number;\n\tlanguage: string;\n\tsymbols: ExtractedSymbol[];\n\timportance: number;\n\tsummary?: string;\n}\n\n/**\n * Repo map configuration\n */\nexport interface RepoMapConfig {\n\t/** Root directory to map */\n\trootDir: string;\n\t/** Maximum tokens for the map */\n\tmaxTokens?: number;\n\t/** Files to focus on (boost importance) */\n\tfocusFiles?: string[];\n\t/** File patterns to exclude */\n\texcludePatterns?: string[];\n\t/** Include file contents for small files */\n\tincludeContents?: boolean;\n\t/** Max file size to include contents (bytes) */\n\tmaxContentSize?: number;\n}\n\n/**\n * Generated repo map\n */\nexport interface RepoMap {\n\trootDir: string;\n\tgeneratedAt: string;\n\ttotalFiles: number;\n\tentries: RepoMapEntry[];\n\tsummary: string;\n}\n\n/**\n * Language detection by extension\n */\nconst LANGUAGE_MAP: Record<string, string> = {\n\t\".ts\": \"typescript\",\n\t\".tsx\": \"typescript\",\n\t\".js\": \"javascript\",\n\t\".jsx\": \"javascript\",\n\t\".py\": \"python\",\n\t\".rb\": \"ruby\",\n\t\".go\": \"go\",\n\t\".rs\": \"rust\",\n\t\".java\": \"java\",\n\t\".kt\": \"kotlin\",\n\t\".swift\": \"swift\",\n\t\".c\": \"c\",\n\t\".cpp\": \"cpp\",\n\t\".h\": \"c\",\n\t\".hpp\": \"cpp\",\n\t\".cs\": \"csharp\",\n\t\".php\": \"php\",\n\t\".vue\": \"vue\",\n\t\".svelte\": \"svelte\",\n\t\".md\": \"markdown\",\n\t\".json\": \"json\",\n\t\".yaml\": \"yaml\",\n\t\".yml\": \"yaml\",\n\t\".toml\": \"toml\",\n\t\".sql\": \"sql\",\n\t\".sh\": \"shell\",\n\t\".bash\": \"shell\",\n};\n\n/**\n * Important file patterns (boost importance score)\n */\nconst IMPORTANT_PATTERNS = [\n\t/^(main|index|app|server|cli)\\.[jt]sx?$/,\n\t/^(package|cargo|go\\.mod|requirements|Gemfile).*$/,\n\t/^(tsconfig|webpack|vite|rollup).*\\.json$/,\n\t/^\\.env.*$/,\n\t/^(Dockerfile|docker-compose)/,\n\t/^(README|CHANGELOG|LICENSE)/i,\n\t/types?\\.[jt]s$/,\n\t/schema\\.[jt]s$/,\n\t/config\\.[jt]s$/,\n];\n\n/**\n * Patterns to exclude from mapping\n */\nconst DEFAULT_EXCLUDE = [\n\t/node_modules/,\n\t/\\.git/,\n\t/dist\\//,\n\t/build\\//,\n\t/\\.next\\//,\n\t/\\.cache/,\n\t/coverage\\//,\n\t/__pycache__/,\n\t/\\.pyc$/,\n\t/\\.min\\.[jt]s$/,\n\t/\\.map$/,\n\t/\\.lock$/,\n\t/package-lock\\.json$/,\n\t/yarn\\.lock$/,\n];\n\n/**\n * Extract symbols from TypeScript/JavaScript content\n */\nfunction extractTSSymbols(content: string): ExtractedSymbol[] {\n\tconst symbols: ExtractedSymbol[] = [];\n\tconst lines = content.split(\"\\n\");\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i] || \"\";\n\t\tconst lineNum = i + 1;\n\n\t\t// Classes\n\t\tconst classMatch = line.match(\n\t\t\t/^(export\\s+)?(class|abstract\\s+class)\\s+(\\w+)/,\n\t\t);\n\t\tif (classMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: classMatch[3]!,\n\t\t\t\tkind: \"class\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!classMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Functions\n\t\tconst funcMatch = line.match(/^(export\\s+)?(async\\s+)?function\\s+(\\w+)/);\n\t\tif (funcMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: funcMatch[3]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!funcMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Arrow functions assigned to const\n\t\tconst arrowMatch = line.match(\n\t\t\t/^(export\\s+)?const\\s+(\\w+)\\s*=\\s*(async\\s+)?\\(/,\n\t\t);\n\t\tif (arrowMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: arrowMatch[2]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!arrowMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Interfaces\n\t\tconst interfaceMatch = line.match(/^(export\\s+)?interface\\s+(\\w+)/);\n\t\tif (interfaceMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: interfaceMatch[2]!,\n\t\t\t\tkind: \"interface\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!interfaceMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Types\n\t\tconst typeMatch = line.match(/^(export\\s+)?type\\s+(\\w+)/);\n\t\tif (typeMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: typeMatch[2]!,\n\t\t\t\tkind: \"type\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !!typeMatch[1],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Exported consts\n\t\tconst constMatch = line.match(/^export\\s+const\\s+(\\w+)/);\n\t\tif (constMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: constMatch[1]!,\n\t\t\t\tkind: \"const\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: true,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn symbols;\n}\n\n/**\n * Extract symbols from Python content\n */\nfunction extractPySymbols(content: string): ExtractedSymbol[] {\n\tconst symbols: ExtractedSymbol[] = [];\n\tconst lines = content.split(\"\\n\");\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i] || \"\";\n\t\tconst lineNum = i + 1;\n\n\t\t// Classes\n\t\tconst classMatch = line.match(/^class\\s+(\\w+)/);\n\t\tif (classMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: classMatch[1]!,\n\t\t\t\tkind: \"class\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !classMatch[1]!.startsWith(\"_\"),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Functions (top-level only)\n\t\tconst funcMatch = line.match(/^(async\\s+)?def\\s+(\\w+)/);\n\t\tif (funcMatch) {\n\t\t\tsymbols.push({\n\t\t\t\tname: funcMatch[2]!,\n\t\t\t\tkind: \"function\",\n\t\t\t\tline: lineNum,\n\t\t\t\texported: !funcMatch[2]!.startsWith(\"_\"),\n\t\t\t});\n\t\t}\n\t}\n\n\treturn symbols;\n}\n\n/**\n * Calculate importance score for a file\n */\nfunction calculateImportance(\n\trelativePath: string,\n\tsymbols: ExtractedSymbol[],\n\tfocusFiles: string[],\n): number {\n\tlet score = 0;\n\tconst filename = basename(relativePath);\n\n\t// Check important patterns\n\tfor (const pattern of IMPORTANT_PATTERNS) {\n\t\tif (pattern.test(filename)) {\n\t\t\tscore += 10;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Focus files get highest priority\n\tif (focusFiles.some((f) => relativePath.includes(f))) {\n\t\tscore += 50;\n\t}\n\n\t// Exported symbols increase importance\n\tconst exportedCount = symbols.filter((s) => s.exported).length;\n\tscore += Math.min(exportedCount * 2, 20);\n\n\t// Depth penalty (deeper files are less important)\n\tconst depth = relativePath.split(\"/\").length;\n\tscore -= Math.min(depth, 5);\n\n\t// Boost for entry-point directories\n\tif (relativePath.startsWith(\"src/\") || relativePath.startsWith(\"lib/\")) {\n\t\tscore += 5;\n\t}\n\n\t// Boost for test files (useful context)\n\tif (relativePath.includes(\"test\") || relativePath.includes(\"spec\")) {\n\t\tscore += 3;\n\t}\n\n\treturn Math.max(score, 0);\n}\n\n/**\n * Repo map generator class\n */\nclass RepoMapGenerator {\n\t/**\n\t * Generate a repo map\n\t */\n\tasync generate(config: RepoMapConfig): Promise<RepoMap> {\n\t\tconst {\n\t\t\trootDir,\n\t\t\tmaxTokens = 4000,\n\t\t\tfocusFiles = [],\n\t\t\texcludePatterns = [],\n\t\t\tincludeContents = false,\n\t\t\tmaxContentSize = 2000,\n\t\t} = config;\n\n\t\tconst allExclude = [\n\t\t\t...DEFAULT_EXCLUDE,\n\t\t\t...excludePatterns.map((p) => new RegExp(p)),\n\t\t];\n\t\tconst entries: RepoMapEntry[] = [];\n\n\t\t// Recursively scan directory\n\t\tconst scanDir = (dir: string): void => {\n\t\t\ttry {\n\t\t\t\tconst items = readdirSync(dir);\n\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tconst fullPath = join(dir, item);\n\t\t\t\t\tconst relativePath = relative(rootDir, fullPath);\n\n\t\t\t\t\t// Check exclusions\n\t\t\t\t\tif (allExclude.some((pattern) => pattern.test(relativePath))) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst stat = statSync(fullPath);\n\n\t\t\t\t\t\tif (stat.isDirectory()) {\n\t\t\t\t\t\t\tscanDir(fullPath);\n\t\t\t\t\t\t} else if (stat.isFile()) {\n\t\t\t\t\t\t\tconst ext = extname(item);\n\t\t\t\t\t\t\tconst language = LANGUAGE_MAP[ext];\n\n\t\t\t\t\t\t\tif (!language) continue;\n\n\t\t\t\t\t\t\tconst content = readFileSync(fullPath, \"utf-8\");\n\t\t\t\t\t\t\tlet symbols: ExtractedSymbol[] = [];\n\n\t\t\t\t\t\t\t// Extract symbols based on language\n\t\t\t\t\t\t\tif (language === \"typescript\" || language === \"javascript\") {\n\t\t\t\t\t\t\t\tsymbols = extractTSSymbols(content);\n\t\t\t\t\t\t\t} else if (language === \"python\") {\n\t\t\t\t\t\t\t\tsymbols = extractPySymbols(content);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst importance = calculateImportance(\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t\tsymbols,\n\t\t\t\t\t\t\t\tfocusFiles,\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst entry: RepoMapEntry = {\n\t\t\t\t\t\t\t\tpath: fullPath,\n\t\t\t\t\t\t\t\trelativePath,\n\t\t\t\t\t\t\t\tsize: stat.size,\n\t\t\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\t\t\tsymbols,\n\t\t\t\t\t\t\t\timportance,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Include contents for small, important files\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tincludeContents &&\n\t\t\t\t\t\t\t\tstat.size <= maxContentSize &&\n\t\t\t\t\t\t\t\timportance > 10\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tentry.summary = content.slice(0, maxContentSize);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Skip files we can't read\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Skip directories we can't read\n\t\t\t}\n\t\t};\n\n\t\tscanDir(rootDir);\n\n\t\t// Sort by importance\n\t\tentries.sort((a, b) => b.importance - a.importance);\n\n\t\t// Truncate to fit token budget\n\t\tlet totalTokens = 0;\n\t\tconst truncatedEntries: RepoMapEntry[] = [];\n\n\t\tfor (const entry of entries) {\n\t\t\tconst entryTokens = this.estimateEntryTokens(entry);\n\t\t\tif (totalTokens + entryTokens > maxTokens) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttruncatedEntries.push(entry);\n\t\t\ttotalTokens += entryTokens;\n\t\t}\n\n\t\tconst map: RepoMap = {\n\t\t\trootDir,\n\t\t\tgeneratedAt: new Date().toISOString(),\n\t\t\ttotalFiles: entries.length,\n\t\t\tentries: truncatedEntries,\n\t\t\tsummary: this.generateSummary(truncatedEntries, entries.length),\n\t\t};\n\n\t\tlogger.info(\"Repo map generated\", {\n\t\t\ttotalFiles: entries.length,\n\t\t\tincludedFiles: truncatedEntries.length,\n\t\t\testimatedTokens: totalTokens,\n\t\t});\n\n\t\treturn map;\n\t}\n\n\t/**\n\t * Estimate tokens for an entry\n\t */\n\tprivate estimateEntryTokens(entry: RepoMapEntry): number {\n\t\tlet text = entry.relativePath;\n\t\ttext += entry.symbols.map((s) => `${s.kind} ${s.name}`).join(\" \");\n\t\tif (entry.summary) {\n\t\t\ttext += entry.summary;\n\t\t}\n\t\treturn estimateTokens(text);\n\t}\n\n\t/**\n\t * Generate summary text\n\t */\n\tprivate generateSummary(entries: RepoMapEntry[], totalFiles: number): string {\n\t\tconst languages = new Map<string, number>();\n\t\tlet totalSymbols = 0;\n\n\t\tfor (const entry of entries) {\n\t\t\tlanguages.set(entry.language, (languages.get(entry.language) || 0) + 1);\n\t\t\ttotalSymbols += entry.symbols.length;\n\t\t}\n\n\t\tconst langSummary = Array.from(languages.entries())\n\t\t\t.sort((a, b) => b[1] - a[1])\n\t\t\t.slice(0, 5)\n\t\t\t.map(([lang, count]) => `${lang}: ${count}`)\n\t\t\t.join(\", \");\n\n\t\treturn `${entries.length}/${totalFiles} files mapped, ${totalSymbols} symbols. Languages: ${langSummary}`;\n\t}\n\n\t/**\n\t * Format repo map for use as context\n\t */\n\tformatForContext(map: RepoMap): string {\n\t\tconst lines: string[] = [\n\t\t\t\"## Repository Structure\",\n\t\t\t\"\",\n\t\t\tmap.summary,\n\t\t\t\"\",\n\t\t\t\"### Key Files\",\n\t\t\t\"\",\n\t\t];\n\n\t\t// Group by directory\n\t\tconst byDir = new Map<string, RepoMapEntry[]>();\n\t\tfor (const entry of map.entries) {\n\t\t\tconst dir = entry.relativePath.split(\"/\").slice(0, -1).join(\"/\") || \".\";\n\t\t\tif (!byDir.has(dir)) {\n\t\t\t\tbyDir.set(dir, []);\n\t\t\t}\n\t\t\tbyDir.get(dir)!.push(entry);\n\t\t}\n\n\t\tfor (const [dir, files] of Array.from(byDir)) {\n\t\t\tlines.push(`**${dir}/**`);\n\t\t\tfor (const file of files) {\n\t\t\t\tconst filename = basename(file.relativePath);\n\t\t\t\tconst exportedSymbols = file.symbols\n\t\t\t\t\t.filter((s) => s.exported)\n\t\t\t\t\t.slice(0, 5)\n\t\t\t\t\t.map((s) => s.name);\n\n\t\t\t\tif (exportedSymbols.length > 0) {\n\t\t\t\t\tlines.push(`- ${filename}: ${exportedSymbols.join(\", \")}`);\n\t\t\t\t} else {\n\t\t\t\t\tlines.push(`- ${filename}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlines.push(\"\");\n\t\t}\n\n\t\treturn lines.join(\"\\n\");\n\t}\n\n\t/**\n\t * Get relevant files for a query\n\t */\n\tgetRelevantFiles(map: RepoMap, query: string): RepoMapEntry[] {\n\t\tconst queryLower = query.toLowerCase();\n\t\tconst terms = queryLower.split(/\\s+/);\n\n\t\treturn map.entries\n\t\t\t.filter((entry) => {\n\t\t\t\tconst searchText = [\n\t\t\t\t\tentry.relativePath,\n\t\t\t\t\t...entry.symbols.map((s) => s.name),\n\t\t\t\t]\n\t\t\t\t\t.join(\" \")\n\t\t\t\t\t.toLowerCase();\n\n\t\t\t\treturn terms.some((term) => searchText.includes(term));\n\t\t\t})\n\t\t\t.slice(0, 10);\n\t}\n}\n\n/**\n * Global repo map generator instance\n */\nexport const repoMap = new RepoMapGenerator();\n\n/**\n * Quick function to generate context for a directory\n */\nexport async function generateRepoContext(\n\trootDir: string,\n\tfocusFiles?: string[],\n\tmaxTokens = 4000,\n): Promise<string> {\n\tconst map = await repoMap.generate({\n\t\trootDir,\n\t\tfocusFiles,\n\t\tmaxTokens,\n\t});\n\treturn repoMap.formatForContext(map);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-optimizer.d.ts","sourceRoot":"","sources":["../../src/context/token-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"token-optimizer.d.ts","sourceRoot":"","sources":["../../src/context/token-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAoLD;;GAEG;AACH,cAAM,cAAc;IACnB,OAAO,CAAC,aAAa,CAQnB;IAEF;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,kBAAkB;IA0G1E;;OAEG;IACH,OAAO,CAAC,aAAa;IA8DrB;;OAEG;IACH,aAAa,CACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,kBAAkB,GACzB,MAAM,EAAE;IAYX;;OAEG;IACH,mBAAmB,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GACf;QACF,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;KACzB;CAYD;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1E"}
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* const tokens = tokenOptimizer.estimateTokens(text);
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
+
import { estimateTokens } from "@evalops/contracts";
|
|
30
31
|
import { createLogger } from "../utils/logger.js";
|
|
31
32
|
const logger = createLogger("context:token-optimizer");
|
|
32
33
|
/**
|
|
@@ -57,14 +58,6 @@ const COMMENT_PATTERNS = {
|
|
|
57
58
|
html: [/<!--[\s\S]*?-->/g],
|
|
58
59
|
css: [/\/\*[\s\S]*?\*\//g],
|
|
59
60
|
};
|
|
60
|
-
/**
|
|
61
|
-
* Estimate tokens for text (rough approximation)
|
|
62
|
-
*/
|
|
63
|
-
function estimateTokens(text) {
|
|
64
|
-
// GPT-style tokenization: roughly 4 chars per token for English
|
|
65
|
-
// Code tends to be denser, so we use a slightly lower ratio
|
|
66
|
-
return Math.ceil(text.length / 3.5);
|
|
67
|
-
}
|
|
68
61
|
/**
|
|
69
62
|
* Detect language from content
|
|
70
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-optimizer.js","sourceRoot":"","sources":["../../src/context/token-optimizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Token Optimizer\n *\n * Reduces token usage in prompts through intelligent compression techniques.\n * Helps fit more context within model limits and reduces API costs.\n *\n * ## Features\n *\n * - Deduplication of repeated content\n * - Summarization of verbose output\n * - Smart truncation preserving important information\n * - Code comment stripping (optional)\n * - Whitespace normalization\n *\n * ## Usage\n *\n * ```typescript\n * import { tokenOptimizer } from \"./token-optimizer.js\";\n *\n * // Optimize a context string\n * const optimized = tokenOptimizer.optimize(context, {\n * maxTokens: 4000,\n * preserveCode: true,\n * });\n *\n * // Estimate tokens\n * const tokens = tokenOptimizer.estimateTokens(text);\n * ```\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context:token-optimizer\");\n\n/**\n * Optimization configuration\n */\nexport interface OptimizationConfig {\n\t/** Maximum tokens for output */\n\tmaxTokens?: number;\n\t/** Preserve code blocks exactly */\n\tpreserveCode?: boolean;\n\t/** Strip code comments */\n\tstripComments?: boolean;\n\t/** Normalize whitespace */\n\tnormalizeWhitespace?: boolean;\n\t/** Deduplicate similar content */\n\tdeduplicate?: boolean;\n\t/** Summarize long outputs */\n\tsummarizeLongOutput?: boolean;\n\t/** Threshold for \"long output\" (lines) */\n\tlongOutputThreshold?: number;\n\t/** Priority sections to preserve (regex patterns) */\n\tpriorityPatterns?: RegExp[];\n}\n\n/**\n * Optimization result\n */\nexport interface OptimizationResult {\n\tcontent: string;\n\toriginalTokens: number;\n\toptimizedTokens: number;\n\treductionPercent: number;\n\ttechniques: string[];\n}\n\n/**\n * Default priority patterns (content to preserve)\n */\nconst DEFAULT_PRIORITY_PATTERNS = [\n\t/error/i,\n\t/exception/i,\n\t/failed/i,\n\t/warning/i,\n\t/critical/i,\n\t/TODO/,\n\t/FIXME/,\n\t/HACK/,\n\t/^\\s*export\\s/m,\n\t/^\\s*import\\s/m,\n\t/^\\s*class\\s/m,\n\t/^\\s*interface\\s/m,\n\t/^\\s*function\\s/m,\n\t/^\\s*const\\s.*=/m,\n];\n\n/**\n * Code comment patterns by language\n */\nconst COMMENT_PATTERNS: Record<string, RegExp[]> = {\n\tjavascript: [/\\/\\/[^\\n]*/g, /\\/\\*[\\s\\S]*?\\*\\//g],\n\tpython: [/#[^\\n]*/g, /'''[\\s\\S]*?'''/g, /\"\"\"[\\s\\S]*?\"\"\"/g],\n\thtml: [/<!--[\\s\\S]*?-->/g],\n\tcss: [/\\/\\*[\\s\\S]*?\\*\\//g],\n};\n\n/**\n * Estimate tokens for text (rough approximation)\n */\nfunction estimateTokens(text: string): number {\n\t// GPT-style tokenization: roughly 4 chars per token for English\n\t// Code tends to be denser, so we use a slightly lower ratio\n\treturn Math.ceil(text.length / 3.5);\n}\n\n/**\n * Detect language from content\n */\nfunction detectLanguage(content: string): string {\n\tif (content.includes(\"import \") || content.includes(\"export \")) {\n\t\treturn \"javascript\";\n\t}\n\tif (content.includes(\"def \") || content.includes(\"import \")) {\n\t\treturn \"python\";\n\t}\n\tif (content.includes(\"<!DOCTYPE\") || content.includes(\"<html\")) {\n\t\treturn \"html\";\n\t}\n\tif (content.includes(\"{\") && content.includes(\":\") && content.includes(\";\")) {\n\t\treturn \"css\";\n\t}\n\treturn \"unknown\";\n}\n\n/**\n * Strip comments from code\n */\nfunction stripComments(content: string, language: string): string {\n\tconst patterns = COMMENT_PATTERNS[language];\n\tif (!patterns) return content;\n\n\tlet result = content;\n\tfor (const pattern of patterns) {\n\t\tresult = result.replace(pattern, \"\");\n\t}\n\treturn result;\n}\n\n/**\n * Normalize whitespace\n */\nfunction normalizeWhitespace(content: string): string {\n\treturn (\n\t\tcontent\n\t\t\t// Collapse multiple blank lines to single\n\t\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t\t// Remove trailing whitespace\n\t\t\t.replace(/[ \\t]+$/gm, \"\")\n\t\t\t// Collapse multiple spaces (but preserve indentation)\n\t\t\t.replace(/([^\\n])[ \\t]{2,}/g, \"$1 \")\n\t);\n}\n\n/**\n * Find and deduplicate similar content blocks\n */\nfunction deduplicateContent(content: string): {\n\tcontent: string;\n\tremoved: number;\n} {\n\tconst lines = content.split(\"\\n\");\n\tconst seen = new Map<string, number>();\n\tconst result: string[] = [];\n\tlet removed = 0;\n\n\tfor (const line of lines) {\n\t\tconst normalized = line.trim();\n\t\tif (normalized.length === 0) {\n\t\t\tresult.push(line);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst count = seen.get(normalized) || 0;\n\t\tif (count >= 2) {\n\t\t\t// Skip if we've seen this exact line more than twice\n\t\t\tremoved++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tseen.set(normalized, count + 1);\n\t\tresult.push(line);\n\t}\n\n\treturn { content: result.join(\"\\n\"), removed };\n}\n\n/**\n * Summarize long output while preserving important lines\n */\nfunction summarizeLongOutput(\n\tcontent: string,\n\tthreshold: number,\n\tpriorityPatterns: RegExp[],\n): string {\n\tconst lines = content.split(\"\\n\");\n\tif (lines.length <= threshold) {\n\t\treturn content;\n\t}\n\n\tconst headCount = Math.floor(threshold * 0.3);\n\tconst tailCount = Math.floor(threshold * 0.4);\n\tconst middleCount = threshold - headCount - tailCount;\n\n\tconst head = lines.slice(0, headCount);\n\tconst tail = lines.slice(-tailCount);\n\tconst middle = lines.slice(headCount, -tailCount);\n\n\t// Extract important lines from middle\n\tconst importantLines: string[] = [];\n\tfor (const line of middle) {\n\t\tif (priorityPatterns.some((p) => p.test(line))) {\n\t\t\timportantLines.push(line);\n\t\t\tif (importantLines.length >= middleCount) break;\n\t\t}\n\t}\n\n\tconst truncatedCount = middle.length - importantLines.length;\n\n\treturn [\n\t\t...head,\n\t\t\"\",\n\t\t`... [${truncatedCount} lines omitted] ...`,\n\t\t\"\",\n\t\t...importantLines,\n\t\t\"\",\n\t\t\"... [continuing to tail] ...\",\n\t\t\"\",\n\t\t...tail,\n\t].join(\"\\n\");\n}\n\n/**\n * Extract code blocks from markdown\n */\nfunction extractCodeBlocks(\n\tcontent: string,\n): Array<{ start: number; end: number; content: string }> {\n\tconst blocks: Array<{ start: number; end: number; content: string }> = [];\n\tconst regex = /```[\\s\\S]*?```/g;\n\tlet match: RegExpExecArray | null = regex.exec(content);\n\n\twhile (match) {\n\t\tblocks.push({\n\t\t\tstart: match.index,\n\t\t\tend: match.index + match[0].length,\n\t\t\tcontent: match[0],\n\t\t});\n\t\tmatch = regex.exec(content);\n\t}\n\n\treturn blocks;\n}\n\n/**\n * Token optimizer class\n */\nclass TokenOptimizer {\n\tprivate defaultConfig: OptimizationConfig = {\n\t\tpreserveCode: true,\n\t\tstripComments: false,\n\t\tnormalizeWhitespace: true,\n\t\tdeduplicate: true,\n\t\tsummarizeLongOutput: true,\n\t\tlongOutputThreshold: 100,\n\t\tpriorityPatterns: DEFAULT_PRIORITY_PATTERNS,\n\t};\n\n\t/**\n\t * Estimate tokens for text\n\t */\n\testimateTokens(text: string): number {\n\t\treturn estimateTokens(text);\n\t}\n\n\t/**\n\t * Optimize content to reduce token usage\n\t */\n\toptimize(content: string, config?: OptimizationConfig): OptimizationResult {\n\t\tconst cfg = { ...this.defaultConfig, ...config };\n\t\tconst techniques: string[] = [];\n\t\tlet result = content;\n\t\tconst originalTokens = estimateTokens(content);\n\n\t\t// Extract code blocks if preserving\n\t\tlet codeBlocks: Array<{ start: number; end: number; content: string }> = [];\n\t\tif (cfg.preserveCode) {\n\t\t\tcodeBlocks = extractCodeBlocks(content);\n\t\t\t// Replace code blocks with placeholders\n\t\t\tfor (let i = codeBlocks.length - 1; i >= 0; i--) {\n\t\t\t\tconst block = codeBlocks[i]!;\n\t\t\t\tresult = `${result.slice(0, block.start)}__CODE_BLOCK_${i}__${result.slice(block.end)}`;\n\t\t\t}\n\t\t}\n\n\t\t// Strip comments if enabled\n\t\tif (cfg.stripComments && !cfg.preserveCode) {\n\t\t\tconst language = detectLanguage(result);\n\t\t\tconst before = result.length;\n\t\t\tresult = stripComments(result, language);\n\t\t\tif (result.length < before) {\n\t\t\t\ttechniques.push(\"comment-stripping\");\n\t\t\t}\n\t\t}\n\n\t\t// Normalize whitespace\n\t\tif (cfg.normalizeWhitespace) {\n\t\t\tconst before = result.length;\n\t\t\tresult = normalizeWhitespace(result);\n\t\t\tif (result.length < before) {\n\t\t\t\ttechniques.push(\"whitespace-normalization\");\n\t\t\t}\n\t\t}\n\n\t\t// Deduplicate content\n\t\tif (cfg.deduplicate) {\n\t\t\tconst { content: deduped, removed } = deduplicateContent(result);\n\t\t\tif (removed > 0) {\n\t\t\t\tresult = deduped;\n\t\t\t\ttechniques.push(`deduplication (${removed} lines)`);\n\t\t\t}\n\t\t}\n\n\t\t// Summarize long output\n\t\tif (cfg.summarizeLongOutput) {\n\t\t\tconst threshold = cfg.longOutputThreshold || 100;\n\t\t\tconst linesBefore = result.split(\"\\n\").length;\n\t\t\tif (linesBefore > threshold) {\n\t\t\t\tresult = summarizeLongOutput(\n\t\t\t\t\tresult,\n\t\t\t\t\tthreshold,\n\t\t\t\t\tcfg.priorityPatterns || DEFAULT_PRIORITY_PATTERNS,\n\t\t\t\t);\n\t\t\t\ttechniques.push(\"long-output-summarization\");\n\t\t\t}\n\t\t}\n\n\t\t// Restore code blocks\n\t\tif (cfg.preserveCode) {\n\t\t\tfor (let i = 0; i < codeBlocks.length; i++) {\n\t\t\t\tconst block = codeBlocks[i]!;\n\t\t\t\tresult = result.replace(`__CODE_BLOCK_${i}__`, block.content);\n\t\t\t}\n\t\t}\n\n\t\t// Truncate to max tokens if specified\n\t\tif (cfg.maxTokens) {\n\t\t\tconst tokens = estimateTokens(result);\n\t\t\tif (tokens > cfg.maxTokens) {\n\t\t\t\tconst ratio = cfg.maxTokens / tokens;\n\t\t\t\tconst targetLength = Math.floor(result.length * ratio * 0.95);\n\t\t\t\tresult = this.smartTruncate(\n\t\t\t\t\tresult,\n\t\t\t\t\ttargetLength,\n\t\t\t\t\tcfg.priorityPatterns || [],\n\t\t\t\t);\n\t\t\t\ttechniques.push(\"smart-truncation\");\n\t\t\t}\n\t\t}\n\n\t\tconst optimizedTokens = estimateTokens(result);\n\t\tconst reductionPercent =\n\t\t\toriginalTokens > 0\n\t\t\t\t? Math.round((1 - optimizedTokens / originalTokens) * 100)\n\t\t\t\t: 0;\n\n\t\tif (techniques.length > 0) {\n\t\t\tlogger.debug(\"Content optimized\", {\n\t\t\t\toriginalTokens,\n\t\t\t\toptimizedTokens,\n\t\t\t\treductionPercent,\n\t\t\t\ttechniques,\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tcontent: result,\n\t\t\toriginalTokens,\n\t\t\toptimizedTokens,\n\t\t\treductionPercent,\n\t\t\ttechniques,\n\t\t};\n\t}\n\n\t/**\n\t * Smart truncation preserving important content\n\t */\n\tprivate smartTruncate(\n\t\tcontent: string,\n\t\ttargetLength: number,\n\t\tpriorityPatterns: RegExp[],\n\t): string {\n\t\tif (content.length <= targetLength) {\n\t\t\treturn content;\n\t\t}\n\n\t\tconst lines = content.split(\"\\n\");\n\t\tconst priorityLines: Array<{ index: number; line: string }> = [];\n\t\tconst normalLines: Array<{ index: number; line: string }> = [];\n\n\t\t// Classify lines\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line = lines[i]!;\n\t\t\tconst isPriority = priorityPatterns.some((p) => p.test(line));\n\t\t\tif (isPriority) {\n\t\t\t\tpriorityLines.push({ index: i, line });\n\t\t\t} else {\n\t\t\t\tnormalLines.push({ index: i, line });\n\t\t\t}\n\t\t}\n\n\t\t// Start with all priority lines\n\t\tconst result = priorityLines.map((l) => l.line).join(\"\\n\");\n\n\t\t// Add normal lines from head and tail until we hit limit\n\t\tconst headLines: string[] = [];\n\t\tconst tailLines: string[] = [];\n\t\tlet currentLength = result.length;\n\n\t\tfor (const { line } of normalLines) {\n\t\t\tif (currentLength + line.length + 1 < targetLength * 0.8) {\n\t\t\t\theadLines.push(line);\n\t\t\t\tcurrentLength += line.length + 1;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = normalLines.length - 1; i >= 0; i--) {\n\t\t\tconst { line } = normalLines[i]!;\n\t\t\tif (currentLength + line.length + 1 < targetLength) {\n\t\t\t\ttailLines.unshift(line);\n\t\t\t\tcurrentLength += line.length + 1;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t...headLines,\n\t\t\t\"\",\n\t\t\t\"... [content truncated to fit token limit] ...\",\n\t\t\t\"\",\n\t\t\t...priorityLines.map((l) => l.line),\n\t\t\t\"\",\n\t\t\t...tailLines,\n\t\t].join(\"\\n\");\n\t}\n\n\t/**\n\t * Optimize multiple content blocks\n\t */\n\toptimizeBatch(\n\t\tcontents: string[],\n\t\ttotalMaxTokens: number,\n\t\tconfig?: OptimizationConfig,\n\t): string[] {\n\t\tconst tokensPerContent = Math.floor(totalMaxTokens / contents.length);\n\n\t\treturn contents.map(\n\t\t\t(content) =>\n\t\t\t\tthis.optimize(content, {\n\t\t\t\t\t...config,\n\t\t\t\t\tmaxTokens: tokensPerContent,\n\t\t\t\t}).content,\n\t\t);\n\t}\n\n\t/**\n\t * Calculate compression stats\n\t */\n\tgetCompressionStats(\n\t\toriginal: string,\n\t\toptimized: string,\n\t): {\n\t\toriginalTokens: number;\n\t\toptimizedTokens: number;\n\t\tsavedTokens: number;\n\t\tcompressionRatio: number;\n\t} {\n\t\tconst originalTokens = estimateTokens(original);\n\t\tconst optimizedTokens = estimateTokens(optimized);\n\n\t\treturn {\n\t\t\toriginalTokens,\n\t\t\toptimizedTokens,\n\t\t\tsavedTokens: originalTokens - optimizedTokens,\n\t\t\tcompressionRatio:\n\t\t\t\toriginalTokens > 0 ? optimizedTokens / originalTokens : 1,\n\t\t};\n\t}\n}\n\n/**\n * Global token optimizer instance\n */\nexport const tokenOptimizer = new TokenOptimizer();\n\n/**\n * Quick function to optimize content\n */\nexport function optimizeTokens(content: string, maxTokens?: number): string {\n\treturn tokenOptimizer.optimize(content, { maxTokens }).content;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"token-optimizer.js","sourceRoot":"","sources":["../../src/context/token-optimizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Token Optimizer\n *\n * Reduces token usage in prompts through intelligent compression techniques.\n * Helps fit more context within model limits and reduces API costs.\n *\n * ## Features\n *\n * - Deduplication of repeated content\n * - Summarization of verbose output\n * - Smart truncation preserving important information\n * - Code comment stripping (optional)\n * - Whitespace normalization\n *\n * ## Usage\n *\n * ```typescript\n * import { tokenOptimizer } from \"./token-optimizer.js\";\n *\n * // Optimize a context string\n * const optimized = tokenOptimizer.optimize(context, {\n * maxTokens: 4000,\n * preserveCode: true,\n * });\n *\n * // Estimate tokens\n * const tokens = tokenOptimizer.estimateTokens(text);\n * ```\n */\n\nimport { estimateTokens } from \"@evalops/contracts\";\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context:token-optimizer\");\n\n/**\n * Optimization configuration\n */\nexport interface OptimizationConfig {\n\t/** Maximum tokens for output */\n\tmaxTokens?: number;\n\t/** Preserve code blocks exactly */\n\tpreserveCode?: boolean;\n\t/** Strip code comments */\n\tstripComments?: boolean;\n\t/** Normalize whitespace */\n\tnormalizeWhitespace?: boolean;\n\t/** Deduplicate similar content */\n\tdeduplicate?: boolean;\n\t/** Summarize long outputs */\n\tsummarizeLongOutput?: boolean;\n\t/** Threshold for \"long output\" (lines) */\n\tlongOutputThreshold?: number;\n\t/** Priority sections to preserve (regex patterns) */\n\tpriorityPatterns?: RegExp[];\n}\n\n/**\n * Optimization result\n */\nexport interface OptimizationResult {\n\tcontent: string;\n\toriginalTokens: number;\n\toptimizedTokens: number;\n\treductionPercent: number;\n\ttechniques: string[];\n}\n\n/**\n * Default priority patterns (content to preserve)\n */\nconst DEFAULT_PRIORITY_PATTERNS = [\n\t/error/i,\n\t/exception/i,\n\t/failed/i,\n\t/warning/i,\n\t/critical/i,\n\t/TODO/,\n\t/FIXME/,\n\t/HACK/,\n\t/^\\s*export\\s/m,\n\t/^\\s*import\\s/m,\n\t/^\\s*class\\s/m,\n\t/^\\s*interface\\s/m,\n\t/^\\s*function\\s/m,\n\t/^\\s*const\\s.*=/m,\n];\n\n/**\n * Code comment patterns by language\n */\nconst COMMENT_PATTERNS: Record<string, RegExp[]> = {\n\tjavascript: [/\\/\\/[^\\n]*/g, /\\/\\*[\\s\\S]*?\\*\\//g],\n\tpython: [/#[^\\n]*/g, /'''[\\s\\S]*?'''/g, /\"\"\"[\\s\\S]*?\"\"\"/g],\n\thtml: [/<!--[\\s\\S]*?-->/g],\n\tcss: [/\\/\\*[\\s\\S]*?\\*\\//g],\n};\n\n/**\n * Detect language from content\n */\nfunction detectLanguage(content: string): string {\n\tif (content.includes(\"import \") || content.includes(\"export \")) {\n\t\treturn \"javascript\";\n\t}\n\tif (content.includes(\"def \") || content.includes(\"import \")) {\n\t\treturn \"python\";\n\t}\n\tif (content.includes(\"<!DOCTYPE\") || content.includes(\"<html\")) {\n\t\treturn \"html\";\n\t}\n\tif (content.includes(\"{\") && content.includes(\":\") && content.includes(\";\")) {\n\t\treturn \"css\";\n\t}\n\treturn \"unknown\";\n}\n\n/**\n * Strip comments from code\n */\nfunction stripComments(content: string, language: string): string {\n\tconst patterns = COMMENT_PATTERNS[language];\n\tif (!patterns) return content;\n\n\tlet result = content;\n\tfor (const pattern of patterns) {\n\t\tresult = result.replace(pattern, \"\");\n\t}\n\treturn result;\n}\n\n/**\n * Normalize whitespace\n */\nfunction normalizeWhitespace(content: string): string {\n\treturn (\n\t\tcontent\n\t\t\t// Collapse multiple blank lines to single\n\t\t\t.replace(/\\n{3,}/g, \"\\n\\n\")\n\t\t\t// Remove trailing whitespace\n\t\t\t.replace(/[ \\t]+$/gm, \"\")\n\t\t\t// Collapse multiple spaces (but preserve indentation)\n\t\t\t.replace(/([^\\n])[ \\t]{2,}/g, \"$1 \")\n\t);\n}\n\n/**\n * Find and deduplicate similar content blocks\n */\nfunction deduplicateContent(content: string): {\n\tcontent: string;\n\tremoved: number;\n} {\n\tconst lines = content.split(\"\\n\");\n\tconst seen = new Map<string, number>();\n\tconst result: string[] = [];\n\tlet removed = 0;\n\n\tfor (const line of lines) {\n\t\tconst normalized = line.trim();\n\t\tif (normalized.length === 0) {\n\t\t\tresult.push(line);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst count = seen.get(normalized) || 0;\n\t\tif (count >= 2) {\n\t\t\t// Skip if we've seen this exact line more than twice\n\t\t\tremoved++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tseen.set(normalized, count + 1);\n\t\tresult.push(line);\n\t}\n\n\treturn { content: result.join(\"\\n\"), removed };\n}\n\n/**\n * Summarize long output while preserving important lines\n */\nfunction summarizeLongOutput(\n\tcontent: string,\n\tthreshold: number,\n\tpriorityPatterns: RegExp[],\n): string {\n\tconst lines = content.split(\"\\n\");\n\tif (lines.length <= threshold) {\n\t\treturn content;\n\t}\n\n\tconst headCount = Math.floor(threshold * 0.3);\n\tconst tailCount = Math.floor(threshold * 0.4);\n\tconst middleCount = threshold - headCount - tailCount;\n\n\tconst head = lines.slice(0, headCount);\n\tconst tail = lines.slice(-tailCount);\n\tconst middle = lines.slice(headCount, -tailCount);\n\n\t// Extract important lines from middle\n\tconst importantLines: string[] = [];\n\tfor (const line of middle) {\n\t\tif (priorityPatterns.some((p) => p.test(line))) {\n\t\t\timportantLines.push(line);\n\t\t\tif (importantLines.length >= middleCount) break;\n\t\t}\n\t}\n\n\tconst truncatedCount = middle.length - importantLines.length;\n\n\treturn [\n\t\t...head,\n\t\t\"\",\n\t\t`... [${truncatedCount} lines omitted] ...`,\n\t\t\"\",\n\t\t...importantLines,\n\t\t\"\",\n\t\t\"... [continuing to tail] ...\",\n\t\t\"\",\n\t\t...tail,\n\t].join(\"\\n\");\n}\n\n/**\n * Extract code blocks from markdown\n */\nfunction extractCodeBlocks(\n\tcontent: string,\n): Array<{ start: number; end: number; content: string }> {\n\tconst blocks: Array<{ start: number; end: number; content: string }> = [];\n\tconst regex = /```[\\s\\S]*?```/g;\n\tlet match: RegExpExecArray | null = regex.exec(content);\n\n\twhile (match) {\n\t\tblocks.push({\n\t\t\tstart: match.index,\n\t\t\tend: match.index + match[0].length,\n\t\t\tcontent: match[0],\n\t\t});\n\t\tmatch = regex.exec(content);\n\t}\n\n\treturn blocks;\n}\n\n/**\n * Token optimizer class\n */\nclass TokenOptimizer {\n\tprivate defaultConfig: OptimizationConfig = {\n\t\tpreserveCode: true,\n\t\tstripComments: false,\n\t\tnormalizeWhitespace: true,\n\t\tdeduplicate: true,\n\t\tsummarizeLongOutput: true,\n\t\tlongOutputThreshold: 100,\n\t\tpriorityPatterns: DEFAULT_PRIORITY_PATTERNS,\n\t};\n\n\t/**\n\t * Estimate tokens for text\n\t */\n\testimateTokens(text: string): number {\n\t\treturn estimateTokens(text);\n\t}\n\n\t/**\n\t * Optimize content to reduce token usage\n\t */\n\toptimize(content: string, config?: OptimizationConfig): OptimizationResult {\n\t\tconst cfg = { ...this.defaultConfig, ...config };\n\t\tconst techniques: string[] = [];\n\t\tlet result = content;\n\t\tconst originalTokens = estimateTokens(content);\n\n\t\t// Extract code blocks if preserving\n\t\tlet codeBlocks: Array<{ start: number; end: number; content: string }> = [];\n\t\tif (cfg.preserveCode) {\n\t\t\tcodeBlocks = extractCodeBlocks(content);\n\t\t\t// Replace code blocks with placeholders\n\t\t\tfor (let i = codeBlocks.length - 1; i >= 0; i--) {\n\t\t\t\tconst block = codeBlocks[i]!;\n\t\t\t\tresult = `${result.slice(0, block.start)}__CODE_BLOCK_${i}__${result.slice(block.end)}`;\n\t\t\t}\n\t\t}\n\n\t\t// Strip comments if enabled\n\t\tif (cfg.stripComments && !cfg.preserveCode) {\n\t\t\tconst language = detectLanguage(result);\n\t\t\tconst before = result.length;\n\t\t\tresult = stripComments(result, language);\n\t\t\tif (result.length < before) {\n\t\t\t\ttechniques.push(\"comment-stripping\");\n\t\t\t}\n\t\t}\n\n\t\t// Normalize whitespace\n\t\tif (cfg.normalizeWhitespace) {\n\t\t\tconst before = result.length;\n\t\t\tresult = normalizeWhitespace(result);\n\t\t\tif (result.length < before) {\n\t\t\t\ttechniques.push(\"whitespace-normalization\");\n\t\t\t}\n\t\t}\n\n\t\t// Deduplicate content\n\t\tif (cfg.deduplicate) {\n\t\t\tconst { content: deduped, removed } = deduplicateContent(result);\n\t\t\tif (removed > 0) {\n\t\t\t\tresult = deduped;\n\t\t\t\ttechniques.push(`deduplication (${removed} lines)`);\n\t\t\t}\n\t\t}\n\n\t\t// Summarize long output\n\t\tif (cfg.summarizeLongOutput) {\n\t\t\tconst threshold = cfg.longOutputThreshold || 100;\n\t\t\tconst linesBefore = result.split(\"\\n\").length;\n\t\t\tif (linesBefore > threshold) {\n\t\t\t\tresult = summarizeLongOutput(\n\t\t\t\t\tresult,\n\t\t\t\t\tthreshold,\n\t\t\t\t\tcfg.priorityPatterns || DEFAULT_PRIORITY_PATTERNS,\n\t\t\t\t);\n\t\t\t\ttechniques.push(\"long-output-summarization\");\n\t\t\t}\n\t\t}\n\n\t\t// Restore code blocks\n\t\tif (cfg.preserveCode) {\n\t\t\tfor (let i = 0; i < codeBlocks.length; i++) {\n\t\t\t\tconst block = codeBlocks[i]!;\n\t\t\t\tresult = result.replace(`__CODE_BLOCK_${i}__`, block.content);\n\t\t\t}\n\t\t}\n\n\t\t// Truncate to max tokens if specified\n\t\tif (cfg.maxTokens) {\n\t\t\tconst tokens = estimateTokens(result);\n\t\t\tif (tokens > cfg.maxTokens) {\n\t\t\t\tconst ratio = cfg.maxTokens / tokens;\n\t\t\t\tconst targetLength = Math.floor(result.length * ratio * 0.95);\n\t\t\t\tresult = this.smartTruncate(\n\t\t\t\t\tresult,\n\t\t\t\t\ttargetLength,\n\t\t\t\t\tcfg.priorityPatterns || [],\n\t\t\t\t);\n\t\t\t\ttechniques.push(\"smart-truncation\");\n\t\t\t}\n\t\t}\n\n\t\tconst optimizedTokens = estimateTokens(result);\n\t\tconst reductionPercent =\n\t\t\toriginalTokens > 0\n\t\t\t\t? Math.round((1 - optimizedTokens / originalTokens) * 100)\n\t\t\t\t: 0;\n\n\t\tif (techniques.length > 0) {\n\t\t\tlogger.debug(\"Content optimized\", {\n\t\t\t\toriginalTokens,\n\t\t\t\toptimizedTokens,\n\t\t\t\treductionPercent,\n\t\t\t\ttechniques,\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tcontent: result,\n\t\t\toriginalTokens,\n\t\t\toptimizedTokens,\n\t\t\treductionPercent,\n\t\t\ttechniques,\n\t\t};\n\t}\n\n\t/**\n\t * Smart truncation preserving important content\n\t */\n\tprivate smartTruncate(\n\t\tcontent: string,\n\t\ttargetLength: number,\n\t\tpriorityPatterns: RegExp[],\n\t): string {\n\t\tif (content.length <= targetLength) {\n\t\t\treturn content;\n\t\t}\n\n\t\tconst lines = content.split(\"\\n\");\n\t\tconst priorityLines: Array<{ index: number; line: string }> = [];\n\t\tconst normalLines: Array<{ index: number; line: string }> = [];\n\n\t\t// Classify lines\n\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\tconst line = lines[i]!;\n\t\t\tconst isPriority = priorityPatterns.some((p) => p.test(line));\n\t\t\tif (isPriority) {\n\t\t\t\tpriorityLines.push({ index: i, line });\n\t\t\t} else {\n\t\t\t\tnormalLines.push({ index: i, line });\n\t\t\t}\n\t\t}\n\n\t\t// Start with all priority lines\n\t\tconst result = priorityLines.map((l) => l.line).join(\"\\n\");\n\n\t\t// Add normal lines from head and tail until we hit limit\n\t\tconst headLines: string[] = [];\n\t\tconst tailLines: string[] = [];\n\t\tlet currentLength = result.length;\n\n\t\tfor (const { line } of normalLines) {\n\t\t\tif (currentLength + line.length + 1 < targetLength * 0.8) {\n\t\t\t\theadLines.push(line);\n\t\t\t\tcurrentLength += line.length + 1;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = normalLines.length - 1; i >= 0; i--) {\n\t\t\tconst { line } = normalLines[i]!;\n\t\t\tif (currentLength + line.length + 1 < targetLength) {\n\t\t\t\ttailLines.unshift(line);\n\t\t\t\tcurrentLength += line.length + 1;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t...headLines,\n\t\t\t\"\",\n\t\t\t\"... [content truncated to fit token limit] ...\",\n\t\t\t\"\",\n\t\t\t...priorityLines.map((l) => l.line),\n\t\t\t\"\",\n\t\t\t...tailLines,\n\t\t].join(\"\\n\");\n\t}\n\n\t/**\n\t * Optimize multiple content blocks\n\t */\n\toptimizeBatch(\n\t\tcontents: string[],\n\t\ttotalMaxTokens: number,\n\t\tconfig?: OptimizationConfig,\n\t): string[] {\n\t\tconst tokensPerContent = Math.floor(totalMaxTokens / contents.length);\n\n\t\treturn contents.map(\n\t\t\t(content) =>\n\t\t\t\tthis.optimize(content, {\n\t\t\t\t\t...config,\n\t\t\t\t\tmaxTokens: tokensPerContent,\n\t\t\t\t}).content,\n\t\t);\n\t}\n\n\t/**\n\t * Calculate compression stats\n\t */\n\tgetCompressionStats(\n\t\toriginal: string,\n\t\toptimized: string,\n\t): {\n\t\toriginalTokens: number;\n\t\toptimizedTokens: number;\n\t\tsavedTokens: number;\n\t\tcompressionRatio: number;\n\t} {\n\t\tconst originalTokens = estimateTokens(original);\n\t\tconst optimizedTokens = estimateTokens(optimized);\n\n\t\treturn {\n\t\t\toriginalTokens,\n\t\t\toptimizedTokens,\n\t\t\tsavedTokens: originalTokens - optimizedTokens,\n\t\t\tcompressionRatio:\n\t\t\t\toriginalTokens > 0 ? optimizedTokens / originalTokens : 1,\n\t\t};\n\t}\n}\n\n/**\n * Global token optimizer instance\n */\nexport const tokenOptimizer = new TokenOptimizer();\n\n/**\n * Quick function to optimize content\n */\nexport function optimizeTokens(content: string, maxTokens?: number): string {\n\treturn tokenOptimizer.optimize(content, { maxTokens }).content;\n}\n"]}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -2139,7 +2139,7 @@ export declare const auditLogs: import("drizzle-orm/pg-core").PgTableWithColumns
|
|
|
2139
2139
|
tableName: "audit_logs";
|
|
2140
2140
|
dataType: "string";
|
|
2141
2141
|
columnType: "PgEnumColumn";
|
|
2142
|
-
data: "error" | "
|
|
2142
|
+
data: "error" | "success" | "denied" | "failure";
|
|
2143
2143
|
driverParam: string;
|
|
2144
2144
|
notNull: true;
|
|
2145
2145
|
hasDefault: false;
|
|
@@ -2412,7 +2412,7 @@ export declare const modelApprovals: import("drizzle-orm/pg-core").PgTableWithCo
|
|
|
2412
2412
|
tableName: "model_approvals";
|
|
2413
2413
|
dataType: "string";
|
|
2414
2414
|
columnType: "PgEnumColumn";
|
|
2415
|
-
data: "denied" | "
|
|
2415
|
+
data: "denied" | "pending" | "approved" | "auto_approved";
|
|
2416
2416
|
driverParam: string;
|
|
2417
2417
|
notNull: true;
|
|
2418
2418
|
hasDefault: false;
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
* - WezTerm
|
|
19
19
|
* - Windows Terminal
|
|
20
20
|
*/
|
|
21
|
+
import type { SkillArtifactMetadata } from "../agent/skill-artifact-metadata.js";
|
|
21
22
|
import type { AgentEvent, AppMessage } from "../agent/types.js";
|
|
22
|
-
import type { SkillArtifactMetadata } from "../skills/artifact-metadata.js";
|
|
23
23
|
import type { SessionHookService } from "./session-integration.js";
|
|
24
24
|
export type NotificationEventType = "turn-complete" | "session-start" | "session-end" | "tool-execution" | "error";
|
|
25
25
|
export interface NotificationPayload {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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"}
|