muonroi-cli 1.8.4 → 1.8.5
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/LICENSE +17 -5
- package/dist/packages/agent-harness-core/src/driver.d.ts +27 -1
- package/dist/packages/agent-harness-core/src/driver.js +46 -0
- package/dist/packages/agent-harness-core/src/event-tee.d.ts +48 -0
- package/dist/packages/agent-harness-core/src/event-tee.js +77 -0
- package/dist/packages/agent-harness-core/src/mcp-server.d.ts +11 -0
- package/dist/packages/agent-harness-core/src/mcp-server.js +87 -15
- package/dist/packages/agent-harness-core/src/protocol.d.ts +66 -2
- package/dist/packages/agent-harness-core/src/protocol.js +15 -0
- package/dist/packages/agent-harness-core/src/visual-quality.d.ts +58 -0
- package/dist/packages/agent-harness-core/src/visual-quality.js +141 -0
- package/dist/packages/agent-harness-opentui/src/agent-mode.d.ts +6 -0
- package/dist/packages/agent-harness-opentui/src/agent-mode.js +14 -1
- package/dist/packages/agent-harness-opentui/src/input-bridge.d.ts +2 -10
- package/dist/packages/agent-harness-opentui/src/input-bridge.js +103 -16
- package/dist/packages/agent-harness-opentui/src/install.d.ts +8 -0
- package/dist/packages/agent-harness-opentui/src/install.js +10 -0
- package/dist/packages/agent-harness-opentui/src/semantic.js +12 -10
- package/dist/packages/agent-harness-opentui/src/visual-capture.d.ts +56 -0
- package/dist/packages/agent-harness-opentui/src/visual-capture.js +103 -0
- package/dist/src/agent-harness/mock-model.d.ts +28 -0
- package/dist/src/agent-harness/mock-model.js +63 -1
- package/dist/src/agent-harness/test-spawn.js +31 -0
- package/dist/src/cli/config/screen-providers.js +1 -1
- package/dist/src/cli/cost-forensics.d.ts +10 -0
- package/dist/src/cli/cost-forensics.js +18 -3
- package/dist/src/cli/keys-bundle.d.ts +1 -1
- package/dist/src/cli/keys-bundle.js +1 -1
- package/dist/src/cli/keys.d.ts +2 -2
- package/dist/src/cli/keys.js +19 -81
- package/dist/src/council/clarifier.d.ts +28 -2
- package/dist/src/council/clarifier.js +81 -15
- package/dist/src/council/context.js +49 -15
- package/dist/src/council/debate-checkpoint.d.ts +129 -0
- package/dist/src/council/debate-checkpoint.js +176 -0
- package/dist/src/council/debate-planner.js +51 -3
- package/dist/src/council/debate-summary.d.ts +25 -0
- package/dist/src/council/debate-summary.js +85 -0
- package/dist/src/council/debate.d.ts +169 -2
- package/dist/src/council/debate.js +1210 -134
- package/dist/src/council/index.d.ts +85 -1
- package/dist/src/council/index.js +634 -196
- package/dist/src/council/leader.d.ts +26 -0
- package/dist/src/council/leader.js +150 -9
- package/dist/src/council/llm.d.ts +32 -0
- package/dist/src/council/llm.js +231 -38
- package/dist/src/council/panel-select.d.ts +30 -0
- package/dist/src/council/panel-select.js +72 -0
- package/dist/src/council/planner.js +23 -0
- package/dist/src/council/preflight.d.ts +7 -0
- package/dist/src/council/preflight.js +14 -2
- package/dist/src/council/prompts.d.ts +30 -3
- package/dist/src/council/prompts.js +234 -64
- package/dist/src/council/stance-recall.d.ts +42 -0
- package/dist/src/council/stance-recall.js +57 -0
- package/dist/src/council/strip-think.d.ts +17 -0
- package/dist/src/council/strip-think.js +33 -0
- package/dist/src/council/types.d.ts +128 -0
- package/dist/src/ee/artifact-cache.d.ts +16 -0
- package/dist/src/ee/artifact-cache.js +32 -0
- package/dist/src/ee/auth.d.ts +1 -0
- package/dist/src/ee/auth.js +15 -2
- package/dist/src/ee/bridge.d.ts +10 -0
- package/dist/src/ee/bridge.js +58 -0
- package/dist/src/ee/client.js +81 -18
- package/dist/src/ee/export-transcripts.d.ts +1 -0
- package/dist/src/ee/export-transcripts.js +8 -10
- package/dist/src/ee/extract-session.js +29 -0
- package/dist/src/ee/extract-style.d.ts +58 -0
- package/dist/src/ee/extract-style.js +270 -0
- package/dist/src/ee/recall-ledger.d.ts +9 -0
- package/dist/src/ee/recall-ledger.js +3 -0
- package/dist/src/ee/scope.d.ts +1 -0
- package/dist/src/ee/scope.js +26 -1
- package/dist/src/ee/search.d.ts +7 -0
- package/dist/src/ee/search.js +24 -0
- package/dist/src/ee/transcript-emit.js +2 -0
- package/dist/src/ee/types.d.ts +22 -0
- package/dist/src/ee/who-am-i-brain.d.ts +35 -0
- package/dist/src/ee/who-am-i-brain.js +220 -0
- package/dist/src/ee/who-am-i.d.ts +10 -3
- package/dist/src/ee/who-am-i.js +12 -0
- package/dist/src/ee/workflow-event.d.ts +48 -0
- package/dist/src/ee/workflow-event.js +81 -0
- package/dist/src/flow/compaction/compress.d.ts +3 -3
- package/dist/src/flow/compaction/compress.js +45 -8
- package/dist/src/flow/compaction/extract.d.ts +4 -7
- package/dist/src/flow/compaction/extract.js +50 -10
- package/dist/src/flow/compaction/index.d.ts +13 -1
- package/dist/src/flow/compaction/index.js +70 -3
- package/dist/src/flow/compaction/input-guard.d.ts +24 -0
- package/dist/src/flow/compaction/input-guard.js +43 -0
- package/dist/src/flow/fold-planning.d.ts +36 -0
- package/dist/src/flow/fold-planning.js +83 -0
- package/dist/src/flow/hierarchy.d.ts +146 -0
- package/dist/src/flow/hierarchy.js +427 -0
- package/dist/src/flow/index.d.ts +1 -0
- package/dist/src/flow/index.js +2 -0
- package/dist/src/flow/run-artifacts.d.ts +102 -0
- package/dist/src/flow/run-artifacts.js +208 -0
- package/dist/src/generated/version.d.ts +1 -1
- package/dist/src/generated/version.js +1 -1
- package/dist/src/gsd/assessment-schema.d.ts +44 -0
- package/dist/src/gsd/assessment-schema.js +134 -0
- package/dist/src/gsd/capability-registry.d.ts +45 -0
- package/dist/src/gsd/capability-registry.js +337 -0
- package/dist/src/gsd/complexity-assessor.d.ts +39 -0
- package/dist/src/gsd/complexity-assessor.js +152 -0
- package/dist/src/gsd/config-bridge.d.ts +7 -0
- package/dist/src/gsd/config-bridge.js +114 -0
- package/dist/src/gsd/config-loader.d.ts +27 -0
- package/dist/src/gsd/config-loader.js +50 -0
- package/dist/src/gsd/council-context.d.ts +44 -0
- package/dist/src/gsd/council-context.js +114 -0
- package/dist/src/gsd/ee-closure.d.ts +28 -0
- package/dist/src/gsd/ee-closure.js +49 -0
- package/dist/src/gsd/flags.d.ts +55 -0
- package/dist/src/gsd/flags.js +83 -0
- package/dist/src/gsd/gsd-dispatch.d.ts +58 -0
- package/dist/src/gsd/gsd-dispatch.js +131 -0
- package/dist/src/gsd/gsd-runtime.d.ts +22 -0
- package/dist/src/gsd/gsd-runtime.js +37 -0
- package/dist/src/gsd/host-adapter.d.ts +11 -0
- package/dist/src/gsd/host-adapter.js +29 -0
- package/dist/src/gsd/index.d.ts +24 -1
- package/dist/src/gsd/index.js +27 -0
- package/dist/src/gsd/loop-host-contract.d.ts +21 -0
- package/dist/src/gsd/loop-host-contract.js +39 -0
- package/dist/src/gsd/loop-host.d.ts +69 -0
- package/dist/src/gsd/loop-host.js +245 -0
- package/dist/src/gsd/loop-resolver.d.ts +36 -0
- package/dist/src/gsd/loop-resolver.js +79 -0
- package/dist/src/gsd/model-tier.d.ts +13 -0
- package/dist/src/gsd/model-tier.js +45 -0
- package/dist/src/gsd/mutation-gate.d.ts +16 -0
- package/dist/src/gsd/mutation-gate.js +41 -0
- package/dist/src/gsd/native-roadmap.d.ts +89 -0
- package/dist/src/gsd/native-roadmap.js +343 -0
- package/dist/src/gsd/native-state.d.ts +47 -0
- package/dist/src/gsd/native-state.js +220 -0
- package/dist/src/gsd/paths.d.ts +23 -0
- package/dist/src/gsd/paths.js +66 -0
- package/dist/src/gsd/phase-dag.d.ts +12 -0
- package/dist/src/gsd/phase-dag.js +94 -0
- package/dist/src/gsd/phase-sync.d.ts +42 -0
- package/dist/src/gsd/phase-sync.js +321 -0
- package/dist/src/gsd/pil-gate-context.d.ts +13 -0
- package/dist/src/gsd/pil-gate-context.js +64 -0
- package/dist/src/gsd/pil-gate-critic.d.ts +19 -0
- package/dist/src/gsd/pil-gate-critic.js +74 -0
- package/dist/src/gsd/plan-council-prompts.d.ts +25 -0
- package/dist/src/gsd/plan-council-prompts.js +79 -0
- package/dist/src/gsd/plan-council.d.ts +44 -0
- package/dist/src/gsd/plan-council.js +251 -0
- package/dist/src/gsd/plan-gate-vocabulary.d.ts +40 -0
- package/dist/src/gsd/plan-gate-vocabulary.js +64 -0
- package/dist/src/gsd/product-workspace.d.ts +13 -0
- package/dist/src/gsd/product-workspace.js +124 -0
- package/dist/src/gsd/ship-bridge.d.ts +25 -0
- package/dist/src/gsd/ship-bridge.js +65 -0
- package/dist/src/gsd/state-document.d.ts +40 -0
- package/dist/src/gsd/state-document.js +163 -0
- package/dist/src/gsd/verdict-schema.d.ts +39 -0
- package/dist/src/gsd/verdict-schema.js +144 -0
- package/dist/src/gsd/verify-context.d.ts +22 -0
- package/dist/src/gsd/verify-context.js +27 -0
- package/dist/src/gsd/verify-council-prompts.d.ts +19 -0
- package/dist/src/gsd/verify-council-prompts.js +85 -0
- package/dist/src/gsd/verify-council.d.ts +25 -0
- package/dist/src/gsd/verify-council.js +119 -0
- package/dist/src/gsd/verify-gate-vocabulary.d.ts +25 -0
- package/dist/src/gsd/verify-gate-vocabulary.js +46 -0
- package/dist/src/gsd/workflow-engine.d.ts +60 -0
- package/dist/src/gsd/workflow-engine.js +207 -0
- package/dist/src/gsd/workflow-tools.d.ts +13 -0
- package/dist/src/gsd/workflow-tools.js +277 -0
- package/dist/src/hooks/index.js +1 -1
- package/dist/src/index.js +44 -11
- package/dist/src/maintain/pr-builder.js +23 -13
- package/dist/src/mcp/auto-setup.js +57 -32
- package/dist/src/mcp/client-pool.js +1 -1
- package/dist/src/mcp/ee-tools.js +1 -0
- package/dist/src/mcp/research-onboarding.js +8 -7
- package/dist/src/mcp/runtime.js +34 -2
- package/dist/src/models/catalog-client.d.ts +87 -0
- package/dist/src/models/catalog-client.js +105 -38
- package/dist/src/models/catalog.json +528 -265
- package/dist/src/models/registry.d.ts +22 -7
- package/dist/src/models/registry.js +73 -10
- package/dist/src/ops/doctor.js +1 -1
- package/dist/src/orchestrator/auto-commit.js +1 -1
- package/dist/src/orchestrator/batch-turn-runner.js +2 -2
- package/dist/src/orchestrator/cache-prefix.d.ts +67 -0
- package/dist/src/orchestrator/cache-prefix.js +83 -0
- package/dist/src/orchestrator/compact-request.d.ts +32 -0
- package/dist/src/orchestrator/compact-request.js +41 -0
- package/dist/src/orchestrator/compaction.d.ts +10 -0
- package/dist/src/orchestrator/compaction.js +27 -7
- package/dist/src/orchestrator/council-manager.d.ts +12 -3
- package/dist/src/orchestrator/council-manager.js +65 -24
- package/dist/src/orchestrator/cross-turn-dedup.d.ts +6 -0
- package/dist/src/orchestrator/cross-turn-dedup.js +22 -1
- package/dist/src/orchestrator/error-utils.d.ts +29 -0
- package/dist/src/orchestrator/error-utils.js +132 -24
- package/dist/src/orchestrator/grounding-check.js +39 -1
- package/dist/src/orchestrator/message-processor.js +242 -33
- package/dist/src/orchestrator/orchestrator.d.ts +39 -3
- package/dist/src/orchestrator/orchestrator.js +651 -102
- package/dist/src/orchestrator/preprocessor.js +1 -1
- package/dist/src/orchestrator/proactive-compact-detector.d.ts +26 -0
- package/dist/src/orchestrator/proactive-compact-detector.js +36 -0
- package/dist/src/orchestrator/prompts.js +17 -17
- package/dist/src/orchestrator/reactive-delegation.d.ts +39 -0
- package/dist/src/orchestrator/reactive-delegation.js +59 -0
- package/dist/src/orchestrator/retry-classifier.d.ts +2 -1
- package/dist/src/orchestrator/retry-classifier.js +46 -2
- package/dist/src/orchestrator/safety-intercept.d.ts +45 -0
- package/dist/src/orchestrator/safety-intercept.js +55 -0
- package/dist/src/orchestrator/scope-reminder.js +1 -1
- package/dist/src/orchestrator/session-experience.d.ts +2 -1
- package/dist/src/orchestrator/session-experience.js +2 -1
- package/dist/src/orchestrator/should-run-gate.d.ts +5 -0
- package/dist/src/orchestrator/should-run-gate.js +18 -0
- package/dist/src/orchestrator/stall-watchdog.d.ts +24 -3
- package/dist/src/orchestrator/stall-watchdog.js +47 -13
- package/dist/src/orchestrator/stream-runner.js +62 -29
- package/dist/src/orchestrator/sub-agent-cap.d.ts +13 -1
- package/dist/src/orchestrator/sub-agent-cap.js +16 -1
- package/dist/src/orchestrator/sub-agent-model-tier.d.ts +13 -1
- package/dist/src/orchestrator/sub-agent-model-tier.js +16 -2
- package/dist/src/orchestrator/subagent-compactor.d.ts +53 -1
- package/dist/src/orchestrator/subagent-compactor.js +126 -15
- package/dist/src/orchestrator/tool-engine.d.ts +22 -0
- package/dist/src/orchestrator/tool-engine.js +620 -56
- package/dist/src/orchestrator/tool-limit-auto-recover.d.ts +22 -0
- package/dist/src/orchestrator/tool-limit-auto-recover.js +30 -0
- package/dist/src/orchestrator/turn-runner-deps.d.ts +19 -0
- package/dist/src/orchestrator/turn-watchdog.d.ts +37 -0
- package/dist/src/orchestrator/turn-watchdog.js +55 -0
- package/dist/src/pil/agent-operating-contract.d.ts +1 -1
- package/dist/src/pil/agent-operating-contract.js +1 -1
- package/dist/src/pil/cheap-model-playbook.d.ts +1 -1
- package/dist/src/pil/cheap-model-playbook.js +5 -1
- package/dist/src/pil/cheap-model-workbooks.d.ts +1 -1
- package/dist/src/pil/cheap-model-workbooks.js +1 -1
- package/dist/src/pil/discovery-types.d.ts +1 -0
- package/dist/src/pil/discovery.js +16 -11
- package/dist/src/pil/layer1-intent.d.ts +18 -6
- package/dist/src/pil/layer1-intent.js +66 -757
- package/dist/src/pil/layer15-context-scan.js +15 -1
- package/dist/src/pil/layer3-ee-injection.js +23 -8
- package/dist/src/pil/layer4-gsd.js +69 -16
- package/dist/src/pil/layer5-context.js +7 -3
- package/dist/src/pil/layer6-output.d.ts +23 -0
- package/dist/src/pil/layer6-output.js +5 -1
- package/dist/src/pil/llm-classify.d.ts +33 -2
- package/dist/src/pil/llm-classify.js +123 -131
- package/dist/src/pil/native-capabilities-workbook.d.ts +1 -1
- package/dist/src/pil/native-capabilities-workbook.js +1 -0
- package/dist/src/pil/pipeline.js +34 -2
- package/dist/src/pil/response-tools.js +5 -3
- package/dist/src/pil/schema.d.ts +1 -0
- package/dist/src/pil/schema.js +2 -0
- package/dist/src/pil/types.d.ts +18 -0
- package/dist/src/playbook/directives.d.ts +4 -0
- package/dist/src/playbook/directives.js +17 -5
- package/dist/src/product-loop/backlog-builder.d.ts +14 -1
- package/dist/src/product-loop/backlog-builder.js +30 -6
- package/dist/src/product-loop/discovery-context-format.js +3 -1
- package/dist/src/product-loop/discovery-ecosystem.js +4 -1
- package/dist/src/product-loop/discovery-interview.js +32 -3
- package/dist/src/product-loop/discovery-schema.js +5 -1
- package/dist/src/product-loop/ideal-trace.d.ts +7 -0
- package/dist/src/product-loop/ideal-trace.js +64 -0
- package/dist/src/product-loop/index.d.ts +13 -1
- package/dist/src/product-loop/index.js +333 -52
- package/dist/src/product-loop/loop-driver.d.ts +7 -0
- package/dist/src/product-loop/loop-driver.js +310 -99
- package/dist/src/product-loop/phase-plan.d.ts +5 -0
- package/dist/src/product-loop/phase-plan.js +39 -2
- package/dist/src/product-loop/phase-runner.js +9 -1
- package/dist/src/product-loop/sprint-runner.d.ts +111 -0
- package/dist/src/product-loop/sprint-runner.js +559 -16
- package/dist/src/product-loop/types.d.ts +36 -5
- package/dist/src/providers/adapter.d.ts +1 -1
- package/dist/src/providers/adapter.js +3 -4
- package/dist/src/providers/auth/browser-flow.d.ts +1 -1
- package/dist/src/providers/auth/browser-flow.js +1 -1
- package/dist/src/providers/auth/openai-oauth.js +1 -1
- package/dist/src/providers/auth/registry.js +0 -34
- package/dist/src/providers/auth/token-store.js +4 -1
- package/dist/src/providers/auth/types.d.ts +1 -1
- package/dist/src/providers/auth/types.js +1 -1
- package/dist/src/providers/capabilities.d.ts +24 -5
- package/dist/src/providers/capabilities.js +42 -24
- package/dist/src/providers/endpoints.d.ts +2 -2
- package/dist/src/providers/endpoints.js +11 -10
- package/dist/src/providers/keychain.d.ts +1 -1
- package/dist/src/providers/keychain.js +7 -9
- package/dist/src/providers/mcp-vision-bridge.js +56 -146
- package/dist/src/providers/openai-compatible.js +8 -1
- package/dist/src/providers/pricing.d.ts +2 -2
- package/dist/src/providers/pricing.js +3 -13
- package/dist/src/providers/runtime.d.ts +27 -2
- package/dist/src/providers/runtime.js +78 -15
- package/dist/src/providers/strategies/base.strategy.d.ts +16 -0
- package/dist/src/providers/strategies/base.strategy.js +24 -1
- package/dist/src/providers/strategies/{siliconflow.strategy.d.ts → opencode-go.strategy.d.ts} +3 -3
- package/dist/src/providers/strategies/opencode-go.strategy.js +83 -0
- package/dist/src/providers/strategies/registry.js +4 -4
- package/dist/src/providers/strategies/thinking-mode.d.ts +109 -0
- package/dist/src/providers/strategies/thinking-mode.js +280 -1
- package/dist/src/providers/strategies/zai.strategy.d.ts +14 -0
- package/dist/src/providers/strategies/zai.strategy.js +44 -0
- package/dist/src/providers/types.d.ts +5 -6
- package/dist/src/providers/types.js +2 -2
- package/dist/src/providers/vision-backend.d.ts +47 -0
- package/dist/src/providers/vision-backend.js +258 -0
- package/dist/src/providers/vision-proxy.d.ts +22 -9
- package/dist/src/providers/vision-proxy.js +63 -132
- package/dist/src/providers/wire-debug.js +95 -0
- package/dist/src/router/decide.d.ts +13 -0
- package/dist/src/router/decide.js +138 -36
- package/dist/src/router/peak-hour.d.ts +38 -0
- package/dist/src/router/peak-hour.js +107 -0
- package/dist/src/router/step-router.js +3 -2
- package/dist/src/router/warm.js +4 -5
- package/dist/src/scaffold/continuation-prompt.d.ts +11 -0
- package/dist/src/scaffold/continuation-prompt.js +26 -0
- package/dist/src/scaffold/point-to-existing.d.ts +21 -0
- package/dist/src/scaffold/point-to-existing.js +25 -0
- package/dist/src/self-qa/agentic-loop.js +3 -3
- package/dist/src/{ui/state → state}/active-run.d.ts +19 -0
- package/dist/src/{ui/state → state}/active-run.js +21 -0
- package/dist/src/{ui/status-bar/store.d.ts → state/status-bar-store.d.ts} +4 -1
- package/dist/src/{ui/status-bar/store.js → state/status-bar-store.js} +12 -9
- package/dist/src/state/turn-trace.d.ts +43 -0
- package/dist/src/state/turn-trace.js +32 -0
- package/dist/src/storage/db.js +2 -1
- package/dist/src/storage/index.d.ts +1 -1
- package/dist/src/storage/index.js +1 -1
- package/dist/src/storage/interaction-log.d.ts +1 -1
- package/dist/src/storage/migrations.js +71 -1
- package/dist/src/storage/sessions.d.ts +28 -10
- package/dist/src/storage/sessions.js +78 -21
- package/dist/src/storage/transcript-view.js +1 -1
- package/dist/src/storage/transcript.d.ts +51 -0
- package/dist/src/storage/transcript.js +284 -13
- package/dist/src/tools/file.d.ts +15 -0
- package/dist/src/tools/file.js +32 -0
- package/dist/src/tools/native-tools.js +5 -0
- package/dist/src/tools/registry.d.ts +3 -0
- package/dist/src/tools/registry.js +460 -22
- package/dist/src/tools/research.d.ts +29 -0
- package/dist/src/tools/research.js +233 -0
- package/dist/src/types/index.d.ts +118 -3
- package/dist/src/ui/app.js +0 -0
- package/dist/src/ui/cards/product-status-card.js +1 -1
- package/dist/src/ui/components/bubble-body-guard.d.ts +27 -0
- package/dist/src/ui/components/bubble-body-guard.js +50 -0
- package/dist/src/ui/components/context-rail.d.ts +26 -0
- package/dist/src/ui/components/context-rail.js +33 -0
- package/dist/src/ui/components/council-conclusion-card.d.ts +73 -0
- package/dist/src/ui/components/council-conclusion-card.js +420 -0
- package/dist/src/ui/components/council-debate-pill.d.ts +36 -0
- package/dist/src/ui/components/council-debate-pill.js +34 -0
- package/dist/src/ui/components/council-info-card.js +2 -2
- package/dist/src/ui/components/council-leader-bubble.d.ts +10 -3
- package/dist/src/ui/components/council-leader-bubble.js +21 -11
- package/dist/src/ui/components/council-message-bubble.d.ts +15 -2
- package/dist/src/ui/components/council-message-bubble.js +16 -15
- package/dist/src/ui/components/council-phase-timeline.d.ts +9 -1
- package/dist/src/ui/components/council-phase-timeline.js +49 -15
- package/dist/src/ui/components/council-placeholder-bubble.d.ts +16 -9
- package/dist/src/ui/components/council-placeholder-bubble.js +32 -29
- package/dist/src/ui/components/council-question-card.js +12 -12
- package/dist/src/ui/components/council-rail-rounds.d.ts +26 -0
- package/dist/src/ui/components/council-rail-rounds.js +57 -0
- package/dist/src/ui/components/council-round-group.d.ts +38 -0
- package/dist/src/ui/components/council-round-group.js +88 -0
- package/dist/src/ui/components/council-status-list.d.ts +3 -1
- package/dist/src/ui/components/council-status-list.js +36 -24
- package/dist/src/ui/components/council-synthesis-banner.d.ts +7 -2
- package/dist/src/ui/components/council-synthesis-banner.js +20 -5
- package/dist/src/ui/components/halt-recovery-card.js +9 -5
- package/dist/src/ui/components/jump-to-latest-pill.d.ts +11 -0
- package/dist/src/ui/components/jump-to-latest-pill.js +14 -0
- package/dist/src/ui/components/prompt-box.js +18 -16
- package/dist/src/ui/components/session-tree-card.d.ts +14 -0
- package/dist/src/ui/components/session-tree-card.js +46 -0
- package/dist/src/ui/components/slash-inline-menu.d.ts +12 -0
- package/dist/src/ui/components/slash-inline-menu.js +26 -5
- package/dist/src/ui/components/task-list-panel.d.ts +14 -1
- package/dist/src/ui/components/task-list-panel.js +22 -2
- package/dist/src/ui/containers/modals-layer.d.ts +2 -1
- package/dist/src/ui/hooks/use-session-picker.d.ts +3 -3
- package/dist/src/ui/mcp-modal.js +2 -4
- package/dist/src/ui/modals/api-key-modal.js +1 -1
- package/dist/src/ui/modals/connect-modal.js +4 -3
- package/dist/src/ui/modals/session-picker-modal.d.ts +2 -2
- package/dist/src/ui/modals/session-picker-modal.js +3 -5
- package/dist/src/ui/picker-providers.d.ts +1 -1
- package/dist/src/ui/picker-providers.js +1 -1
- package/dist/src/ui/primitives/index.d.ts +1 -0
- package/dist/src/ui/primitives/index.js +2 -0
- package/dist/src/ui/primitives/semantic-primitives.d.ts +76 -0
- package/dist/src/ui/primitives/semantic-primitives.js +81 -0
- package/dist/src/ui/slash/compact.js +5 -7
- package/dist/src/ui/slash/cost.js +1 -1
- package/dist/src/ui/slash/council.js +19 -1
- package/dist/src/ui/slash/debug.d.ts +3 -31
- package/dist/src/ui/slash/debug.js +9 -20
- package/dist/src/ui/slash/ideal.d.ts +6 -2
- package/dist/src/ui/slash/ideal.js +97 -7
- package/dist/src/ui/slash/menu-items.d.ts +7 -0
- package/dist/src/ui/slash/menu-items.js +12 -18
- package/dist/src/ui/slash/registry.d.ts +2 -0
- package/dist/src/ui/slash/registry.js +4 -0
- package/dist/src/ui/status-bar/cache-hit.d.ts +6 -0
- package/dist/src/ui/status-bar/cache-hit.js +9 -0
- package/dist/src/ui/status-bar/index.d.ts +1 -1
- package/dist/src/ui/status-bar/index.js +7 -3
- package/dist/src/ui/status-bar/usd-meter.d.ts +5 -4
- package/dist/src/ui/status-bar/usd-meter.js +6 -4
- package/dist/src/ui/theme.d.ts +1 -0
- package/dist/src/ui/theme.js +2 -0
- package/dist/src/ui/types.d.ts +7 -0
- package/dist/src/ui/use-app-logic.js +0 -0
- package/dist/src/ui/utils/format.d.ts +14 -0
- package/dist/src/ui/utils/format.js +23 -3
- package/dist/src/usage/downgrade.js +2 -2
- package/dist/src/usage/product-ledger.js +2 -2
- package/dist/src/utils/install-manager.js +2 -1
- package/dist/src/utils/logger.js +2 -2
- package/dist/src/utils/permission-mode.js +5 -3
- package/dist/src/utils/redactor.js +1 -1
- package/dist/src/utils/settings.d.ts +153 -5
- package/dist/src/utils/settings.js +233 -29
- package/dist/src/utils/visible-retry.d.ts +11 -0
- package/dist/src/utils/visible-retry.js +10 -1
- package/dist/src/verify/entrypoint.d.ts +1 -1
- package/dist/src/verify/entrypoint.js +1 -1
- package/dist/src/verify/recipes.d.ts +13 -0
- package/dist/src/verify/recipes.js +15 -0
- package/package.json +135 -132
- package/dist/src/providers/auth/gcloud.d.ts +0 -28
- package/dist/src/providers/auth/gcloud.js +0 -102
- package/dist/src/providers/auth/gemini-oauth.d.ts +0 -82
- package/dist/src/providers/auth/gemini-oauth.js +0 -472
- package/dist/src/providers/gemini.d.ts +0 -11
- package/dist/src/providers/gemini.js +0 -45
- package/dist/src/providers/siliconflow-sse-repair.d.ts +0 -58
- package/dist/src/providers/siliconflow-sse-repair.js +0 -177
- package/dist/src/providers/strategies/google.strategy.d.ts +0 -22
- package/dist/src/providers/strategies/google.strategy.js +0 -174
- package/dist/src/providers/strategies/siliconflow.strategy.js +0 -29
- package/dist/src/ui/containers/chat-feed.d.ts +0 -40
- package/dist/src/ui/containers/chat-feed.js +0 -66
package/package.json
CHANGED
|
@@ -1,132 +1,135 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "muonroi-cli",
|
|
3
|
-
"workspaces": [
|
|
4
|
-
"packages/*"
|
|
5
|
-
],
|
|
6
|
-
"version": "1.8.
|
|
7
|
-
"description": "BYOK AI coding agent with multi-model council debate, role-based routing, and auto-compact.",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/muonroi/muonroi-cli.git"
|
|
11
|
-
},
|
|
12
|
-
"homepage": "https://github.com/muonroi/muonroi-cli#readme",
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/muonroi/muonroi-cli/issues"
|
|
15
|
-
},
|
|
16
|
-
"type": "module",
|
|
17
|
-
"main": "dist/src/index.js",
|
|
18
|
-
"exports": {
|
|
19
|
-
".": {
|
|
20
|
-
"import": "./dist/src/index.js",
|
|
21
|
-
"types": "./dist/src/index.d.ts"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"bin": {
|
|
25
|
-
"muonroi-cli": "dist/src/index.js",
|
|
26
|
-
"mu": "dist/src/index.js"
|
|
27
|
-
},
|
|
28
|
-
"scripts": {
|
|
29
|
-
"dev": "node scripts/sync-version.cjs && bun run src/index.ts",
|
|
30
|
-
"build": "node scripts/sync-version.cjs && tsc && node scripts/fix-extensions.cjs && node -e \"require('fs').cpSync('src/models/catalog.json', 'dist/src/models/catalog.json', { recursive: true })\"",
|
|
31
|
-
"build:binary": "bun build --compile --outfile ./dist/muonroi-cli-standalone ./src/index.ts",
|
|
32
|
-
"start": "bun run dist/index.js",
|
|
33
|
-
"typecheck": "tsc --noEmit",
|
|
34
|
-
"
|
|
35
|
-
"test
|
|
36
|
-
"test:
|
|
37
|
-
"test:
|
|
38
|
-
"test:
|
|
39
|
-
"test:harness-
|
|
40
|
-
"test:angular": "bunx vitest -c
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"format
|
|
45
|
-
"
|
|
46
|
-
"lint:
|
|
47
|
-
"lint:
|
|
48
|
-
"lint:
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"!dist
|
|
63
|
-
"!dist
|
|
64
|
-
"!dist/**/
|
|
65
|
-
"!dist
|
|
66
|
-
"!dist
|
|
67
|
-
"!dist/**/*.
|
|
68
|
-
"!dist/**/*.
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"@ai-sdk/
|
|
85
|
-
"@ai-sdk/
|
|
86
|
-
"@ai-sdk/openai
|
|
87
|
-
"@ai-sdk/
|
|
88
|
-
"@ai-sdk/provider
|
|
89
|
-
"@
|
|
90
|
-
"@
|
|
91
|
-
"@
|
|
92
|
-
"@opentui/
|
|
93
|
-
"@
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"tree-sitter-
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"@
|
|
117
|
-
"@types/
|
|
118
|
-
"@types/
|
|
119
|
-
"@types/
|
|
120
|
-
"@types/
|
|
121
|
-
"@types/
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
},
|
|
131
|
-
"
|
|
132
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "muonroi-cli",
|
|
3
|
+
"workspaces": [
|
|
4
|
+
"packages/*"
|
|
5
|
+
],
|
|
6
|
+
"version": "1.8.5",
|
|
7
|
+
"description": "BYOK AI coding agent with multi-model council debate, role-based routing, and auto-compact.",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/muonroi/muonroi-cli.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/muonroi/muonroi-cli#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/muonroi/muonroi-cli/issues"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "dist/src/index.js",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"import": "./dist/src/index.js",
|
|
21
|
+
"types": "./dist/src/index.d.ts"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"bin": {
|
|
25
|
+
"muonroi-cli": "dist/src/index.js",
|
|
26
|
+
"mu": "dist/src/index.js"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"dev": "node scripts/sync-version.cjs && bun run src/index.ts",
|
|
30
|
+
"build": "node scripts/sync-version.cjs && tsc && node scripts/fix-extensions.cjs && node -e \"require('fs').cpSync('src/models/catalog.json', 'dist/src/models/catalog.json', { recursive: true })\"",
|
|
31
|
+
"build:binary": "bun build --compile --outfile ./dist/muonroi-cli-standalone ./src/index.ts",
|
|
32
|
+
"start": "bun run dist/index.js",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"ci:local": "rm -rf /tmp/flow /tmp/gsd-* /tmp/muonroi-* /tmp/sprint-runner-* 2>/dev/null; bun install --frozen-lockfile && bun --filter @muonroi/agent-harness-core build && bunx tsc --noEmit && bunx vitest run && DBUS_SESSION_BUS_ADDRESS=unix:path=/dev/null GNOME_KEYRING_CONTROL= bunx vitest -c vitest.harness.config.ts run tests/harness/",
|
|
35
|
+
"test": "bunx vitest run",
|
|
36
|
+
"test:watch": "bunx vitest",
|
|
37
|
+
"test:harness": "bunx vitest -c vitest.harness.config.ts run tests/harness/",
|
|
38
|
+
"test:core": "bunx vitest run packages/agent-harness-core/__tests__/",
|
|
39
|
+
"test:harness-react": "bunx vitest -c packages/agent-harness-react/vitest.config.ts run",
|
|
40
|
+
"test:harness-angular": "bunx vitest -c vitest.harness-angular.config.ts run tests/harness-angular/",
|
|
41
|
+
"test:angular": "bunx vitest -c packages/agent-harness-angular/vitest.config.ts run",
|
|
42
|
+
"build:core": "cd packages/agent-harness-core && bun run build",
|
|
43
|
+
"lint": "biome check src/",
|
|
44
|
+
"format": "biome format src/",
|
|
45
|
+
"format:fix": "biome format --write src/",
|
|
46
|
+
"lint:fix": "biome check --fix src/",
|
|
47
|
+
"lint:semantic": "bun scripts/check-semantic-wrap.ts",
|
|
48
|
+
"lint:semantic:strict": "bun scripts/check-semantic-wrap.ts --strict",
|
|
49
|
+
"lint:harness-skips": "bun run scripts/check-harness-skips.ts",
|
|
50
|
+
"lint:harness-skips:strict": "bun run scripts/check-harness-skips.ts --strict",
|
|
51
|
+
"pre-commit": "lint-staged",
|
|
52
|
+
"prepare": "husky",
|
|
53
|
+
"postinstall": "node scripts/postinstall.cjs || exit 0",
|
|
54
|
+
"ee:ingest-bb": "bun run scripts/ingest-bb-to-ee.mts",
|
|
55
|
+
"clean:meta": "git clean -fdX -- .scratch chat-export-*.txt .ee-ingest-state.json .brain-*.tmp 2>/dev/null || echo 'clean:meta: no matching untracked ignored files or git unavailable'"
|
|
56
|
+
},
|
|
57
|
+
"lint-staged": {
|
|
58
|
+
"*.{ts,tsx,js,mjs,cjs,json}": "biome check --write --no-errors-on-unmatched --max-diagnostics=200"
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"dist/",
|
|
62
|
+
"!dist/**/*.exe",
|
|
63
|
+
"!dist/**/*.map",
|
|
64
|
+
"!dist/**/__tests__/**",
|
|
65
|
+
"!dist/**/__test-helpers__/**",
|
|
66
|
+
"!dist/**/__test-stubs__/**",
|
|
67
|
+
"!dist/**/*.test.js",
|
|
68
|
+
"!dist/**/*.test.d.ts",
|
|
69
|
+
"!dist/**/*.spec.js",
|
|
70
|
+
"!dist/**/*.spec.d.ts",
|
|
71
|
+
"scripts/postinstall.cjs"
|
|
72
|
+
],
|
|
73
|
+
"keywords": [
|
|
74
|
+
"cli",
|
|
75
|
+
"agent",
|
|
76
|
+
"ai",
|
|
77
|
+
"coding",
|
|
78
|
+
"terminal",
|
|
79
|
+
"opentui"
|
|
80
|
+
],
|
|
81
|
+
"author": "muonroi",
|
|
82
|
+
"license": "MIT",
|
|
83
|
+
"dependencies": {
|
|
84
|
+
"@ai-sdk/anthropic": "3.0.72",
|
|
85
|
+
"@ai-sdk/mcp": "1.0.37",
|
|
86
|
+
"@ai-sdk/openai": "3.0.54",
|
|
87
|
+
"@ai-sdk/openai-compatible": "2.0.42",
|
|
88
|
+
"@ai-sdk/provider": "3.0.9",
|
|
89
|
+
"@ai-sdk/provider-utils": "4.0.24",
|
|
90
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
91
|
+
"@npmcli/arborist": "^9.4.3",
|
|
92
|
+
"@opentui/core": "0.1.107",
|
|
93
|
+
"@opentui/react": "0.1.107",
|
|
94
|
+
"@qdrant/js-client-rest": "1.17.0",
|
|
95
|
+
"ai": "6.0.169",
|
|
96
|
+
"better-sqlite3": "^12.10.0",
|
|
97
|
+
"commander": "^12.1.0",
|
|
98
|
+
"diff": "^8.0.3",
|
|
99
|
+
"fast-xml-parser": "^4.4.1",
|
|
100
|
+
"gpt-tokenizer": "^3.4.0",
|
|
101
|
+
"keytar": "7.9.0",
|
|
102
|
+
"ollama-ai-provider-v2": "1.5.5",
|
|
103
|
+
"proper-lockfile": "^4.1.2",
|
|
104
|
+
"react": "19.2.5",
|
|
105
|
+
"ripgrep": "^0.3.1",
|
|
106
|
+
"semver": "^7.7.4",
|
|
107
|
+
"tree-sitter-python": "^0.25.0",
|
|
108
|
+
"tree-sitter-typescript": "^0.23.2",
|
|
109
|
+
"turndown": "^7.2.4",
|
|
110
|
+
"vscode-jsonrpc": "8.2.1",
|
|
111
|
+
"vscode-languageserver-types": "3.17.5",
|
|
112
|
+
"web-tree-sitter": "0.26.8",
|
|
113
|
+
"zod": "^4.3.6"
|
|
114
|
+
},
|
|
115
|
+
"devDependencies": {
|
|
116
|
+
"@biomejs/biome": "2.4.13",
|
|
117
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
118
|
+
"@types/diff": "^8.0.0",
|
|
119
|
+
"@types/node": "^22.19.15",
|
|
120
|
+
"@types/npmcli__arborist": "^6.3.3",
|
|
121
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
122
|
+
"@types/react": "^19.2.14",
|
|
123
|
+
"@types/semver": "^7.7.1",
|
|
124
|
+
"@types/turndown": "^5.0.6",
|
|
125
|
+
"ajv": "^8.20.0",
|
|
126
|
+
"husky": "9.1.7",
|
|
127
|
+
"lint-staged": "16.4.0",
|
|
128
|
+
"typescript": "5.9.3",
|
|
129
|
+
"vitest": "4.1.5"
|
|
130
|
+
},
|
|
131
|
+
"engines": {
|
|
132
|
+
"node": ">=20.0.0"
|
|
133
|
+
},
|
|
134
|
+
"preferGlobal": true
|
|
135
|
+
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* src/providers/auth/gcloud.ts
|
|
3
|
-
*
|
|
4
|
-
* Reads and refreshes tokens from Google Cloud SDK credentials
|
|
5
|
-
* (~/.config/gcloud/application_default_credentials.json).
|
|
6
|
-
*
|
|
7
|
-
* The gcloud ADC token uses GCP's official OAuth client with cloud-platform
|
|
8
|
-
* scopes, which IS accepted by generativelanguage.googleapis.com (unlike the
|
|
9
|
-
* Agy OAuth token whose scope is restricted to cloudcode-pa).
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
* 1. User runs `gcloud auth application-default login` once.
|
|
13
|
-
* 2. This file reads the resulting credentials file, extracts the token,
|
|
14
|
-
* and returns it as an OAuthTokens-compatible object.
|
|
15
|
-
* 3. The token auto-refreshes when expired (using the refresh_token inside
|
|
16
|
-
* the credentials file).
|
|
17
|
-
*/
|
|
18
|
-
import type { OAuthTokens } from "./types.js";
|
|
19
|
-
/**
|
|
20
|
-
* Try to load a token from gcloud ADC.
|
|
21
|
-
* Returns null if gcloud is not installed or no credentials exist.
|
|
22
|
-
*/
|
|
23
|
-
export declare function loadGcloudToken(): Promise<OAuthTokens | null>;
|
|
24
|
-
/**
|
|
25
|
-
* Obtain auth headers from a gcloud-derived OAuthTokens.
|
|
26
|
-
* Compatible with ProviderOAuth.authHeaders() signature.
|
|
27
|
-
*/
|
|
28
|
-
export declare function gcloudAuthHeaders(tokens: OAuthTokens): Record<string, string>;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* src/providers/auth/gcloud.ts
|
|
3
|
-
*
|
|
4
|
-
* Reads and refreshes tokens from Google Cloud SDK credentials
|
|
5
|
-
* (~/.config/gcloud/application_default_credentials.json).
|
|
6
|
-
*
|
|
7
|
-
* The gcloud ADC token uses GCP's official OAuth client with cloud-platform
|
|
8
|
-
* scopes, which IS accepted by generativelanguage.googleapis.com (unlike the
|
|
9
|
-
* Agy OAuth token whose scope is restricted to cloudcode-pa).
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
* 1. User runs `gcloud auth application-default login` once.
|
|
13
|
-
* 2. This file reads the resulting credentials file, extracts the token,
|
|
14
|
-
* and returns it as an OAuthTokens-compatible object.
|
|
15
|
-
* 3. The token auto-refreshes when expired (using the refresh_token inside
|
|
16
|
-
* the credentials file).
|
|
17
|
-
*/
|
|
18
|
-
import { readFile } from "node:fs/promises";
|
|
19
|
-
import { homedir } from "node:os";
|
|
20
|
-
import { join } from "node:path";
|
|
21
|
-
import { OAuthRefreshError } from "./types.js";
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Paths
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
const GCLOUD_ADC_PATH = join(homedir(), ".config", "gcloud", "application_default_credentials.json");
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
// Loader
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
|
-
/**
|
|
30
|
-
* Load gcloud Application Default Credentials file.
|
|
31
|
-
*/
|
|
32
|
-
async function loadADC() {
|
|
33
|
-
try {
|
|
34
|
-
const raw = await readFile(GCLOUD_ADC_PATH, "utf8");
|
|
35
|
-
const creds = JSON.parse(raw);
|
|
36
|
-
if (creds.type !== "authorized_user") {
|
|
37
|
-
// service-account keys have a different shape; skip
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
return creds;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// ---------------------------------------------------------------------------
|
|
47
|
-
// Token exchange
|
|
48
|
-
// ---------------------------------------------------------------------------
|
|
49
|
-
/**
|
|
50
|
-
* Exchange a gcloud refresh_token for a fresh access_token.
|
|
51
|
-
* Google's OAuth token endpoint accepts gcloud ADC credentials.
|
|
52
|
-
*/
|
|
53
|
-
async function exchangeRefreshToken(clientId, clientSecret, refreshToken) {
|
|
54
|
-
const body = new URLSearchParams({
|
|
55
|
-
client_id: clientId,
|
|
56
|
-
client_secret: clientSecret,
|
|
57
|
-
refresh_token: refreshToken,
|
|
58
|
-
grant_type: "refresh_token",
|
|
59
|
-
});
|
|
60
|
-
let res;
|
|
61
|
-
try {
|
|
62
|
-
res = await fetch("https://oauth2.googleapis.com/token", {
|
|
63
|
-
method: "POST",
|
|
64
|
-
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
65
|
-
body,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
throw new OAuthRefreshError("google", `gcloud ADC refresh network error: ${err.message}`);
|
|
70
|
-
}
|
|
71
|
-
if (!res.ok) {
|
|
72
|
-
const text = await res.text().catch(() => "");
|
|
73
|
-
throw new OAuthRefreshError("google", `gcloud ADC refresh failed (${res.status}): ${text}`);
|
|
74
|
-
}
|
|
75
|
-
const data = (await res.json());
|
|
76
|
-
return {
|
|
77
|
-
accessToken: data.access_token,
|
|
78
|
-
refreshToken,
|
|
79
|
-
expiresAt: Date.now() + data.expires_in * 1000,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Public API
|
|
84
|
-
// ---------------------------------------------------------------------------
|
|
85
|
-
/**
|
|
86
|
-
* Try to load a token from gcloud ADC.
|
|
87
|
-
* Returns null if gcloud is not installed or no credentials exist.
|
|
88
|
-
*/
|
|
89
|
-
export async function loadGcloudToken() {
|
|
90
|
-
const creds = await loadADC();
|
|
91
|
-
if (!creds)
|
|
92
|
-
return null;
|
|
93
|
-
return exchangeRefreshToken(creds.client_id, creds.client_secret, creds.refresh_token);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Obtain auth headers from a gcloud-derived OAuthTokens.
|
|
97
|
-
* Compatible with ProviderOAuth.authHeaders() signature.
|
|
98
|
-
*/
|
|
99
|
-
export function gcloudAuthHeaders(tokens) {
|
|
100
|
-
return { Authorization: `Bearer ${tokens.accessToken}` };
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=gcloud.js.map
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* src/providers/auth/gemini-oauth.ts
|
|
3
|
-
*
|
|
4
|
-
* Agy (Antigravity) Google OAuth implementation.
|
|
5
|
-
* Replaces the old abandoned public gemini-cli OAuth client.
|
|
6
|
-
*
|
|
7
|
-
* Uses client credentials extracted from the local agy.exe binary
|
|
8
|
-
* (registered for agy's "oauth-personal" / Code Assist flow).
|
|
9
|
-
*
|
|
10
|
-
* Agy stores tokens in ~/.gemini/oauth_creds.json (legacy path).
|
|
11
|
-
* We auto-import so existing agy logins continue to work.
|
|
12
|
-
*
|
|
13
|
-
* Override with MUONROI_GOOGLE_* env vars if needed.
|
|
14
|
-
*
|
|
15
|
-
* Note: Even though the provider ID is "google" (for model routing),
|
|
16
|
-
* the OAuth registration and naming is now Agy.
|
|
17
|
-
*/
|
|
18
|
-
import type { OAuthCallbackServer } from "../../mcp/oauth-callback.js";
|
|
19
|
-
import type { FetchFn } from "./device-flow.js";
|
|
20
|
-
import type { OAuthTokens, ProviderOAuth } from "./types.js";
|
|
21
|
-
export type CallbackServerFn = (opts: {
|
|
22
|
-
onCode: (code: string, state: string) => void;
|
|
23
|
-
timeoutMs?: number;
|
|
24
|
-
host?: string;
|
|
25
|
-
}) => Promise<OAuthCallbackServer>;
|
|
26
|
-
export type OpenBrowserFn = (url: string) => void;
|
|
27
|
-
export declare class AgyOAuthProvider implements ProviderOAuth {
|
|
28
|
-
readonly providerId: "google";
|
|
29
|
-
private clientId;
|
|
30
|
-
private clientSecret;
|
|
31
|
-
private readonly fetchFn;
|
|
32
|
-
private readonly callbackServerFn;
|
|
33
|
-
private readonly openBrowserFn;
|
|
34
|
-
private readonly mutex;
|
|
35
|
-
constructor(opts?: {
|
|
36
|
-
clientId?: string;
|
|
37
|
-
clientSecret?: string;
|
|
38
|
-
fetchFn?: FetchFn;
|
|
39
|
-
callbackServerFn?: CallbackServerFn;
|
|
40
|
-
openBrowserFn?: OpenBrowserFn;
|
|
41
|
-
});
|
|
42
|
-
login(opts?: {
|
|
43
|
-
onUserCode?: (code: string, url: string) => void;
|
|
44
|
-
}): Promise<OAuthTokens>;
|
|
45
|
-
refresh(tokens: OAuthTokens): Promise<OAuthTokens>;
|
|
46
|
-
revoke(tokens: OAuthTokens): Promise<void>;
|
|
47
|
-
authHeaders(tokens: OAuthTokens): Record<string, string>;
|
|
48
|
-
private _fetchUserEmail;
|
|
49
|
-
}
|
|
50
|
-
/** Back-compat for tests that still reference the old class name. */
|
|
51
|
-
export { AgyOAuthProvider as GeminiOAuthProvider };
|
|
52
|
-
/** Default Agy OAuth provider singleton (uses agy's Google client registration). */
|
|
53
|
-
export declare const agyOAuth: AgyOAuthProvider;
|
|
54
|
-
/** Back-compat alias (some code still references the old name). */
|
|
55
|
-
export declare const geminiOAuth: AgyOAuthProvider;
|
|
56
|
-
/**
|
|
57
|
-
* Load stored OAuth tokens for the Google provider using Agy's registration.
|
|
58
|
-
* - Auto-imports from ~/.gemini/oauth_creds.json (agy storage).
|
|
59
|
-
* - Refreshes using the agy client/secret when near expiry.
|
|
60
|
-
*/
|
|
61
|
-
export declare function loadAgyTokensWithRefresh(oauthProvider?: AgyOAuthProvider): Promise<OAuthTokens | null>;
|
|
62
|
-
/** Back-compat alias for older call sites. */
|
|
63
|
-
export declare const loadGeminiTokensWithRefresh: typeof loadAgyTokensWithRefresh;
|
|
64
|
-
/**
|
|
65
|
-
* Load a custom OAuth token using user-provided GCP OAuth client credentials.
|
|
66
|
-
* Users register their own OAuth client in GCP Console → use these credentials
|
|
67
|
-
* to obtain tokens with the `generativelanguage` scope (not restricted to
|
|
68
|
-
* cloudcode-pa like the Agy client).
|
|
69
|
-
*
|
|
70
|
-
* Settings sources (in priority order):
|
|
71
|
-
* 1. settings.json → providers → google → oauthClientId / oauthClientSecret
|
|
72
|
-
* 2. MUONROI_GOOGLE_CLIENT_ID / MUONROI_GOOGLE_CLIENT_SECRET env vars
|
|
73
|
-
*
|
|
74
|
-
* Returns null when no custom client is configured.
|
|
75
|
-
*/
|
|
76
|
-
export declare function loadCustomOAuthTokens(): Promise<OAuthTokens | null>;
|
|
77
|
-
/**
|
|
78
|
-
* Perform a full OAuth login with a custom client (Approach C).
|
|
79
|
-
* Users run `keys login google` with their own GCP OAuth client configured
|
|
80
|
-
* in settings → this opens the browser with the right scopes.
|
|
81
|
-
*/
|
|
82
|
-
export declare function loginWithCustomClient(): Promise<OAuthTokens | null>;
|