@north-light/cli 0.0.0 → 0.3.413
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 +18 -0
- package/README.md +182 -2
- package/bin/crouter +4 -0
- package/bin/crtr +4 -0
- package/bin/crtr-launcher +4 -0
- package/bin/crtrd +4 -0
- package/bin/progress-painter.mjs +89 -0
- package/bin/runtime-generation-manifest.mjs +286 -0
- package/bin/runtime-selector.mjs +510 -0
- package/dist/api/client.d.ts +501 -0
- package/dist/api/client.js +3 -0
- package/dist/api/command-manifest/index.d.ts +3 -0
- package/dist/api/command-manifest/index.js +1 -0
- package/dist/api/command-manifest/manifest.d.ts +51 -0
- package/dist/api/command-manifest/manifest.js +1 -0
- package/dist/api/command-manifest/result.d.ts +25 -0
- package/dist/api/command-manifest/result.js +1 -0
- package/dist/api/command-manifest/schema.d.ts +28 -0
- package/dist/api/command-manifest/schema.js +1 -0
- package/dist/api/dto/analytics.d.ts +184 -0
- package/dist/api/dto/analytics.js +0 -0
- package/dist/api/dto/attach.d.ts +22 -0
- package/dist/api/dto/attach.js +0 -0
- package/dist/api/dto/bash-jobs.d.ts +24 -0
- package/dist/api/dto/bash-jobs.js +1 -0
- package/dist/api/dto/bash.d.ts +17 -0
- package/dist/api/dto/bash.js +0 -0
- package/dist/api/dto/broker-ops.d.ts +187 -0
- package/dist/api/dto/broker-ops.js +0 -0
- package/dist/api/dto/broker-signals.d.ts +25 -0
- package/dist/api/dto/broker-signals.js +0 -0
- package/dist/api/dto/broker.d.ts +86 -0
- package/dist/api/dto/broker.js +0 -0
- package/dist/api/dto/canvas.d.ts +359 -0
- package/dist/api/dto/canvas.js +0 -0
- package/dist/api/dto/chat-inventory.d.ts +56 -0
- package/dist/api/dto/chat-inventory.js +0 -0
- package/dist/api/dto/common.d.ts +29 -0
- package/dist/api/dto/common.js +1 -0
- package/dist/api/dto/config.d.ts +46 -0
- package/dist/api/dto/config.js +0 -0
- package/dist/api/dto/crons.d.ts +158 -0
- package/dist/api/dto/crons.js +1 -0
- package/dist/api/dto/custom-objects.d.ts +66 -0
- package/dist/api/dto/custom-objects.js +0 -0
- package/dist/api/dto/delivery.d.ts +71 -0
- package/dist/api/dto/delivery.js +0 -0
- package/dist/api/dto/docs.d.ts +135 -0
- package/dist/api/dto/docs.js +1 -0
- package/dist/api/dto/files.d.ts +21 -0
- package/dist/api/dto/files.js +0 -0
- package/dist/api/dto/focus.d.ts +24 -0
- package/dist/api/dto/focus.js +0 -0
- package/dist/api/dto/grants.d.ts +28 -0
- package/dist/api/dto/grants.js +0 -0
- package/dist/api/dto/health.d.ts +116 -0
- package/dist/api/dto/health.js +0 -0
- package/dist/api/dto/human-requests.d.ts +113 -0
- package/dist/api/dto/human-requests.js +0 -0
- package/dist/api/dto/human.d.ts +28 -0
- package/dist/api/dto/human.js +0 -0
- package/dist/api/dto/inbox.d.ts +273 -0
- package/dist/api/dto/inbox.js +0 -0
- package/dist/api/dto/lifecycle.d.ts +88 -0
- package/dist/api/dto/lifecycle.js +0 -0
- package/dist/api/dto/limits.d.ts +29 -0
- package/dist/api/dto/limits.js +0 -0
- package/dist/api/dto/mail.d.ts +44 -0
- package/dist/api/dto/mail.js +0 -0
- package/dist/api/dto/messages.d.ts +104 -0
- package/dist/api/dto/messages.js +0 -0
- package/dist/api/dto/model-config.d.ts +25 -0
- package/dist/api/dto/model-config.js +0 -0
- package/dist/api/dto/modelauth.d.ts +132 -0
- package/dist/api/dto/modelauth.js +0 -0
- package/dist/api/dto/node-events.d.ts +65 -0
- package/dist/api/dto/node-events.js +0 -0
- package/dist/api/dto/node-outcomes.d.ts +88 -0
- package/dist/api/dto/node-outcomes.js +0 -0
- package/dist/api/dto/node-records.d.ts +35 -0
- package/dist/api/dto/node-records.js +0 -0
- package/dist/api/dto/nodes.d.ts +371 -0
- package/dist/api/dto/nodes.js +0 -0
- package/dist/api/dto/objects.d.ts +172 -0
- package/dist/api/dto/objects.js +1 -0
- package/dist/api/dto/profiles.d.ts +117 -0
- package/dist/api/dto/profiles.js +1 -0
- package/dist/api/dto/recovery.d.ts +104 -0
- package/dist/api/dto/recovery.js +0 -0
- package/dist/api/dto/reports.d.ts +95 -0
- package/dist/api/dto/reports.js +0 -0
- package/dist/api/dto/review-comments.d.ts +146 -0
- package/dist/api/dto/review-comments.js +0 -0
- package/dist/api/dto/reviews.d.ts +113 -0
- package/dist/api/dto/reviews.js +0 -0
- package/dist/api/dto/run-events.d.ts +295 -0
- package/dist/api/dto/run-events.js +0 -0
- package/dist/api/dto/structured-requests.d.ts +64 -0
- package/dist/api/dto/structured-requests.js +1 -0
- package/dist/api/dto/subscriptions.d.ts +14 -0
- package/dist/api/dto/subscriptions.js +0 -0
- package/dist/api/dto/worktree.d.ts +55 -0
- package/dist/api/dto/worktree.js +0 -0
- package/dist/api/error-codes.d.ts +259 -0
- package/dist/api/error-codes.js +1 -0
- package/dist/api/errors.d.ts +47 -0
- package/dist/api/errors.js +1 -0
- package/dist/api/index.d.ts +48 -0
- package/dist/api/index.js +1 -0
- package/dist/api/long-poll.d.ts +59 -0
- package/dist/api/long-poll.js +1 -0
- package/dist/api/node-transport.d.ts +18 -0
- package/dist/api/node-transport.js +1 -0
- package/dist/api/plugin-manifest-schema.d.ts +233 -0
- package/dist/api/plugin-manifest-schema.js +0 -0
- package/dist/api/routes.d.ts +164 -0
- package/dist/api/routes.js +1 -0
- package/dist/api/runtime-version.d.ts +31 -0
- package/dist/api/runtime-version.js +1 -0
- package/dist/build-root.d.ts +58 -0
- package/dist/build-root.js +1 -0
- package/dist/builtin-memory/00-runtime-base/00-authoring.md +46 -0
- package/dist/builtin-memory/00-runtime-base/01-escalation-unattended.md +15 -0
- package/dist/builtin-memory/00-runtime-base/01-escalation.md +15 -0
- package/dist/builtin-memory/00-runtime-base/02-insight-capture.md +11 -0
- package/dist/builtin-memory/01-spine/00-has-manager.md +14 -0
- package/dist/builtin-memory/02-turn-lifecycle/00-ending-a-turn.md +28 -0
- package/dist/builtin-memory/02-turn-lifecycle/01-terminal-user.md +11 -0
- package/dist/builtin-memory/02-turn-lifecycle/01-terminal.md +13 -0
- package/dist/builtin-memory/02-turn-lifecycle/02-resident.md +19 -0
- package/dist/builtin-memory/04-base-worker-exploring.md +13 -0
- package/dist/builtin-memory/04-base-worker.md +15 -0
- package/dist/builtin-memory/04-orchestration-kernel.md +62 -0
- package/dist/builtin-memory/05-kinds/advisor/01-orchestrator.md +17 -0
- package/dist/builtin-memory/05-kinds/advisor/advice-contract.md +15 -0
- package/dist/builtin-memory/05-kinds/explore/00-base.md +19 -0
- package/dist/builtin-memory/05-kinds/explore/01-orchestrator.md +17 -0
- package/dist/builtin-memory/05-kinds/general/00-base.md +15 -0
- package/dist/builtin-memory/05-kinds/review/00-base.md +17 -0
- package/dist/builtin-memory/05-kinds/review/01-orchestrator.md +20 -0
- package/dist/builtin-memory/05-kinds/review/companion/00-base.md +21 -0
- package/dist/builtin-memory/05-kinds/review/security-findings.md +13 -0
- package/dist/builtin-memory/advisor/council.md +33 -0
- package/dist/builtin-memory/crouter-concepts/INDEX.md +15 -0
- package/dist/builtin-memory/crouter-concepts/README.md +19 -0
- package/dist/builtin-memory/crouter-concepts/documents.md +54 -0
- package/dist/builtin-memory/crouter-concepts/lifecycle-and-wakes.md +28 -0
- package/dist/builtin-memory/crouter-concepts/nodes-and-the-canvas.md +31 -0
- package/dist/builtin-memory/crouter-concepts/profiles-kinds-and-modes.md +33 -0
- package/dist/builtin-memory/crouter-concepts/scopes-and-trust.md +41 -0
- package/dist/builtin-memory/crouter-concepts/why-a-daemon.md +31 -0
- package/dist/builtin-memory/crouter-plugin/INDEX.md +12 -0
- package/dist/builtin-memory/crouter-plugin/README.md +22 -0
- package/dist/builtin-memory/crouter-plugin/bundles-and-memory.md +30 -0
- package/dist/builtin-memory/crouter-plugin/commands.md +24 -0
- package/dist/builtin-memory/crouter-plugin/deploying.md +36 -0
- package/dist/builtin-memory/crouter-plugin/errors.md +41 -0
- package/dist/builtin-memory/crouter-plugin/getting-started.md +25 -0
- package/dist/builtin-memory/crouter-plugin/output.md +52 -0
- package/dist/builtin-memory/crouter-plugin/parameters.md +31 -0
- package/dist/builtin-memory/crouter-sdk/INDEX.md +13 -0
- package/dist/builtin-memory/crouter-sdk/README.md +92 -0
- package/dist/builtin-memory/crouter-sdk/bash.md +40 -0
- package/dist/builtin-memory/crouter-sdk/client.md +299 -0
- package/dist/builtin-memory/crouter-sdk/docker.md +70 -0
- package/dist/builtin-memory/crouter-sdk/error-envelope.md +38 -0
- package/dist/builtin-memory/crouter-sdk/errors.md +113 -0
- package/dist/builtin-memory/crouter-sdk/files.md +50 -0
- package/dist/builtin-memory/crouter-sdk/getting-started.md +226 -0
- package/dist/builtin-memory/crouter-sdk/guides/README.md +20 -0
- package/dist/builtin-memory/crouter-sdk/guides/apps-on-crouter-cloud.md +117 -0
- package/dist/builtin-memory/crouter-sdk/guides/apps-with-many-users.md +61 -0
- package/dist/builtin-memory/crouter-sdk/guides/event-driven-assistant.md +91 -0
- package/dist/builtin-memory/crouter-sdk/guides/fan-out-pipeline.md +57 -0
- package/dist/builtin-memory/crouter-sdk/guides/human-approval.md +79 -0
- package/dist/builtin-memory/crouter-sdk/guides/typed-extraction.md +55 -0
- package/dist/builtin-memory/crouter-sdk/memory.md +49 -0
- package/dist/builtin-memory/crouter-sdk/nodes.md +195 -0
- package/dist/builtin-memory/crouter-sdk/release-notes.md +209 -0
- package/dist/builtin-memory/crouter-sdk/resources.md +101 -0
- package/dist/builtin-memory/crouter-sdk/streaming.md +218 -0
- package/dist/builtin-memory/crouter-sdk/testing.md +165 -0
- package/dist/builtin-memory/explore/exploration-doc.md +27 -0
- package/dist/builtin-memory/insights/capture.md +49 -0
- package/dist/builtin-memory/insights/init.md +88 -0
- package/dist/builtin-memory/internal/INDEX.md +40 -0
- package/dist/builtin-memory/internal/agent-shaping.md +80 -0
- package/dist/builtin-memory/internal/examples/INDEX.md +16 -0
- package/dist/builtin-memory/internal/examples/imessage-assistant.md +101 -0
- package/dist/builtin-memory/internal/marketplaces.md +160 -0
- package/dist/builtin-memory/internal/memory-loading.md +68 -0
- package/dist/builtin-memory/internal/nodes-and-canvas.md +60 -0
- package/dist/builtin-memory/internal/plugins.md +457 -0
- package/dist/builtin-memory/internal/storage-tiers.md +51 -0
- package/dist/builtin-memory/memory-read-orientation.md +13 -0
- package/dist/builtin-memory/wedged-child-on-runaway-bash.md +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/README.md +49 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/claude-plugin-commands.ts +440 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crtr-commands/filters.json +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crtr-commands/index.ts +214 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/frontmatter-rules/index.ts +421 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/memory-slash-commands.ts +145 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/pi-shell-runner.ts +34 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.d.ts +78 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.js +1181 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +1409 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/sysprompt-window.ts +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/package.json +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/subscription-state.js +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/subscription-state.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/LICENSE +13 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/README.md +172 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/bin.mjs +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/errors.js +57 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/index.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/log.js +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/util.js +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/visit.js +233 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/index.js +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/package.json +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/cli.d.ts +8 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/cli.mjs +201 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/composer.js +224 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/Document.js +337 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/directives.js +178 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/errors.d.ts +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/errors.js +62 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/index.d.ts +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/index.js +50 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/log.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/log.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/options.d.ts +350 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst.js +112 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/parser.js +980 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/public-api.js +107 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/tags.js +99 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/test-events.js +134 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/util.d.ts +16 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/util.js +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/visit.d.ts +102 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/visit.js +236 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/package.json +97 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/util.js +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/package-lock.json +3857 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/package.json +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/tsconfig.json +10 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +11 -0
- package/dist/clients/attach/ansi-cells.d.ts +44 -0
- package/dist/clients/attach/ansi-cells.js +1 -0
- package/dist/clients/attach/assets/README.md +7 -0
- package/dist/clients/attach/assets/whip-06.mp3 +0 -0
- package/dist/clients/attach/assets/whip-crack.mp3 +0 -0
- package/dist/clients/attach/assets/whip-snap.mp3 +0 -0
- package/dist/clients/attach/chrome/bash-jobs.d.ts +6 -0
- package/dist/clients/attach/chrome/bash-jobs.js +1 -0
- package/dist/clients/attach/chrome/canvas-panels.d.ts +38 -0
- package/dist/clients/attach/chrome/canvas-panels.js +1 -0
- package/dist/clients/attach/chrome/completion-bell.d.ts +10 -0
- package/dist/clients/attach/chrome/completion-bell.js +1 -0
- package/dist/clients/attach/chrome/cron-wait.d.ts +3 -0
- package/dist/clients/attach/chrome/cron-wait.js +1 -0
- package/dist/clients/attach/chrome/git-info.d.ts +20 -0
- package/dist/clients/attach/chrome/git-info.js +2 -0
- package/dist/clients/attach/chrome/header.d.ts +10 -0
- package/dist/clients/attach/chrome/header.js +1 -0
- package/dist/clients/attach/chrome/inbox-strip.d.ts +31 -0
- package/dist/clients/attach/chrome/inbox-strip.js +1 -0
- package/dist/clients/attach/chrome/key-hint.d.ts +9 -0
- package/dist/clients/attach/chrome/key-hint.js +1 -0
- package/dist/clients/attach/chrome/recap.d.ts +7 -0
- package/dist/clients/attach/chrome/recap.js +1 -0
- package/dist/clients/attach/chrome/review-wait.d.ts +6 -0
- package/dist/clients/attach/chrome/review-wait.js +1 -0
- package/dist/clients/attach/chrome/roster.d.ts +36 -0
- package/dist/clients/attach/chrome/roster.js +4 -0
- package/dist/clients/attach/chrome/status-line.d.ts +38 -0
- package/dist/clients/attach/chrome/status-line.js +1 -0
- package/dist/clients/attach/chrome/ticket-panel.d.ts +29 -0
- package/dist/clients/attach/chrome/ticket-panel.js +1 -0
- package/dist/clients/attach/chrome/widgets.d.ts +9 -0
- package/dist/clients/attach/chrome/widgets.js +1 -0
- package/dist/clients/attach/command.d.ts +3 -0
- package/dist/clients/attach/command.js +1 -0
- package/dist/clients/attach/config.d.ts +95 -0
- package/dist/clients/attach/config.js +1 -0
- package/dist/clients/attach/input/capabilities.d.ts +30 -0
- package/dist/clients/attach/input/capabilities.js +1 -0
- package/dist/clients/attach/input/clipboard-image.d.ts +55 -0
- package/dist/clients/attach/input/clipboard-image.js +20 -0
- package/dist/clients/attach/input/completion-frecency.d.ts +45 -0
- package/dist/clients/attach/input/completion-frecency.js +1 -0
- package/dist/clients/attach/input/controller.d.ts +91 -0
- package/dist/clients/attach/input/controller.js +7 -0
- package/dist/clients/attach/input/overlay-owner.d.ts +41 -0
- package/dist/clients/attach/input/overlay-owner.js +1 -0
- package/dist/clients/attach/input/ref-autocomplete.d.ts +77 -0
- package/dist/clients/attach/input/ref-autocomplete.js +2 -0
- package/dist/clients/attach/input/titled-editor.d.ts +225 -0
- package/dist/clients/attach/input/titled-editor.js +4 -0
- package/dist/clients/attach/overlays/auth.d.ts +13 -0
- package/dist/clients/attach/overlays/auth.js +2 -0
- package/dist/clients/attach/overlays/dialogs.d.ts +27 -0
- package/dist/clients/attach/overlays/dialogs.js +2 -0
- package/dist/clients/attach/overlays/file-review.d.ts +10 -0
- package/dist/clients/attach/overlays/file-review.js +2 -0
- package/dist/clients/attach/overlays/graph.d.ts +83 -0
- package/dist/clients/attach/overlays/graph.js +1 -0
- package/dist/clients/attach/overlays/help.d.ts +33 -0
- package/dist/clients/attach/overlays/help.js +1 -0
- package/dist/clients/attach/overlays/mcp.d.ts +32 -0
- package/dist/clients/attach/overlays/mcp.js +1 -0
- package/dist/clients/attach/overlays/pickers.d.ts +56 -0
- package/dist/clients/attach/overlays/pickers.js +1 -0
- package/dist/clients/attach/photon_rs_bg.wasm +0 -0
- package/dist/clients/attach/render/activity-slot.d.ts +4 -0
- package/dist/clients/attach/render/activity-slot.js +1 -0
- package/dist/clients/attach/render/assistant-message.d.ts +13 -0
- package/dist/clients/attach/render/assistant-message.js +1 -0
- package/dist/clients/attach/render/card-presentation.d.ts +36 -0
- package/dist/clients/attach/render/card-presentation.js +5 -0
- package/dist/clients/attach/render/chat-view.d.ts +356 -0
- package/dist/clients/attach/render/chat-view.js +5 -0
- package/dist/clients/attach/render/condensed-history.d.ts +21 -0
- package/dist/clients/attach/render/condensed-history.js +1 -0
- package/dist/clients/attach/render/context-message.d.ts +22 -0
- package/dist/clients/attach/render/context-message.js +1 -0
- package/dist/clients/attach/render/crtr-output.d.ts +52 -0
- package/dist/clients/attach/render/crtr-output.js +17 -0
- package/dist/clients/attach/render/diagram.d.ts +4 -0
- package/dist/clients/attach/render/diagram.js +7 -0
- package/dist/clients/attach/render/doc-links.d.ts +34 -0
- package/dist/clients/attach/render/doc-links.js +1 -0
- package/dist/clients/attach/render/edit-diff.d.ts +12 -0
- package/dist/clients/attach/render/edit-diff.js +5 -0
- package/dist/clients/attach/render/glyph-codepoints.d.ts +3 -0
- package/dist/clients/attach/render/glyph-codepoints.js +1 -0
- package/dist/clients/attach/render/group-activity.d.ts +84 -0
- package/dist/clients/attach/render/group-activity.js +2 -0
- package/dist/clients/attach/render/group-recap.d.ts +13 -0
- package/dist/clients/attach/render/group-recap.js +1 -0
- package/dist/clients/attach/render/markdown-source.d.ts +16 -0
- package/dist/clients/attach/render/markdown-source.js +5 -0
- package/dist/clients/attach/render/measured-container.d.ts +96 -0
- package/dist/clients/attach/render/measured-container.js +1 -0
- package/dist/clients/attach/render/page-block.d.ts +37 -0
- package/dist/clients/attach/render/page-block.js +1 -0
- package/dist/clients/attach/render/scroll-animation.d.ts +8 -0
- package/dist/clients/attach/render/scroll-animation.js +1 -0
- package/dist/clients/attach/render/tool-calls.d.ts +53 -0
- package/dist/clients/attach/render/tool-calls.js +3 -0
- package/dist/clients/attach/render/transcript-copy.d.ts +9 -0
- package/dist/clients/attach/render/transcript-copy.js +2 -0
- package/dist/clients/attach/render/transcript-search.d.ts +28 -0
- package/dist/clients/attach/render/transcript-search.js +1 -0
- package/dist/clients/attach/render/viewport.d.ts +38 -0
- package/dist/clients/attach/render/viewport.js +1 -0
- package/dist/clients/attach/session/banner.d.ts +13 -0
- package/dist/clients/attach/session/banner.js +1 -0
- package/dist/clients/attach/session/bindings.d.ts +20 -0
- package/dist/clients/attach/session/bindings.js +1 -0
- package/dist/clients/attach/session/chrome-refresh.d.ts +40 -0
- package/dist/clients/attach/session/chrome-refresh.js +1 -0
- package/dist/clients/attach/session/connection.d.ts +53 -0
- package/dist/clients/attach/session/connection.js +1 -0
- package/dist/clients/attach/session/context.d.ts +59 -0
- package/dist/clients/attach/session/context.js +0 -0
- package/dist/clients/attach/session/doc-materialize.d.ts +53 -0
- package/dist/clients/attach/session/doc-materialize.js +3 -0
- package/dist/clients/attach/session/document-links.d.ts +21 -0
- package/dist/clients/attach/session/document-links.js +1 -0
- package/dist/clients/attach/session/editor-frame.d.ts +47 -0
- package/dist/clients/attach/session/editor-frame.js +1 -0
- package/dist/clients/attach/session/editor-inventory.d.ts +63 -0
- package/dist/clients/attach/session/editor-inventory.js +6 -0
- package/dist/clients/attach/session/file-links.d.ts +24 -0
- package/dist/clients/attach/session/file-links.js +1 -0
- package/dist/clients/attach/session/focus-events.d.ts +4 -0
- package/dist/clients/attach/session/focus-events.js +1 -0
- package/dist/clients/attach/session/frame.d.ts +46 -0
- package/dist/clients/attach/session/frame.js +1 -0
- package/dist/clients/attach/session/frames.d.ts +49 -0
- package/dist/clients/attach/session/frames.js +1 -0
- package/dist/clients/attach/session/identity.d.ts +16 -0
- package/dist/clients/attach/session/identity.js +1 -0
- package/dist/clients/attach/session/input-wiring.d.ts +50 -0
- package/dist/clients/attach/session/input-wiring.js +1 -0
- package/dist/clients/attach/session/invariant.d.ts +9 -0
- package/dist/clients/attach/session/invariant.js +1 -0
- package/dist/clients/attach/session/keys.d.ts +46 -0
- package/dist/clients/attach/session/keys.js +1 -0
- package/dist/clients/attach/session/layout.d.ts +22 -0
- package/dist/clients/attach/session/layout.js +1 -0
- package/dist/clients/attach/session/mouse.d.ts +27 -0
- package/dist/clients/attach/session/mouse.js +1 -0
- package/dist/clients/attach/session/pane-focus.d.ts +8 -0
- package/dist/clients/attach/session/pane-focus.js +1 -0
- package/dist/clients/attach/session/pane-tag.d.ts +44 -0
- package/dist/clients/attach/session/pane-tag.js +1 -0
- package/dist/clients/attach/session/pi-assets.d.ts +1 -0
- package/dist/clients/attach/session/pi-assets.js +1 -0
- package/dist/clients/attach/session/pi-oauth-flows.d.ts +1 -0
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -0
- package/dist/clients/attach/session/profile-files.d.ts +17 -0
- package/dist/clients/attach/session/profile-files.js +1 -0
- package/dist/clients/attach/session/reconnect.d.ts +44 -0
- package/dist/clients/attach/session/reconnect.js +1 -0
- package/dist/clients/attach/session/selection.d.ts +28 -0
- package/dist/clients/attach/session/selection.js +3 -0
- package/dist/clients/attach/session/state-sync.d.ts +38 -0
- package/dist/clients/attach/session/state-sync.js +1 -0
- package/dist/clients/attach/session/surface-frame.d.ts +20 -0
- package/dist/clients/attach/session/surface-frame.js +1 -0
- package/dist/clients/attach/session/surface-host.d.ts +65 -0
- package/dist/clients/attach/session/surface-host.js +1 -0
- package/dist/clients/attach/session/teardown.d.ts +30 -0
- package/dist/clients/attach/session/teardown.js +5 -0
- package/dist/clients/attach/session/transcript-search.d.ts +20 -0
- package/dist/clients/attach/session/transcript-search.js +3 -0
- package/dist/clients/attach/session/whip-achievements.d.ts +4 -0
- package/dist/clients/attach/session/whip-achievements.js +2 -0
- package/dist/clients/attach/session/whip.d.ts +20 -0
- package/dist/clients/attach/session/whip.js +1 -0
- package/dist/clients/attach/slash/dispatch.d.ts +116 -0
- package/dist/clients/attach/slash/dispatch.js +2 -0
- package/dist/clients/attach/slash/prompt-preview.d.ts +30 -0
- package/dist/clients/attach/slash/prompt-preview.js +1 -0
- package/dist/clients/attach/viewer.d.ts +8 -0
- package/dist/clients/attach/viewer.js +1946 -0
- package/dist/clients/conversation/projection.d.ts +79 -0
- package/dist/clients/conversation/projection.js +1 -0
- package/dist/clients/conversation/submit.d.ts +38 -0
- package/dist/clients/conversation/submit.js +1 -0
- package/dist/clients/inbox/controller.d.ts +174 -0
- package/dist/clients/inbox/controller.js +1 -0
- package/dist/clients/inbox/dto-adapt.d.ts +28 -0
- package/dist/clients/inbox/dto-adapt.js +1 -0
- package/dist/clients/inbox/layout.d.ts +8 -0
- package/dist/clients/inbox/layout.js +1 -0
- package/dist/clients/inbox/page-adapter.d.ts +33 -0
- package/dist/clients/inbox/page-adapter.js +1 -0
- package/dist/clients/inbox/resolve.d.ts +16 -0
- package/dist/clients/inbox/resolve.js +1 -0
- package/dist/clients/inbox/review/anchors.d.ts +41 -0
- package/dist/clients/inbox/review/anchors.js +1 -0
- package/dist/clients/inbox/review/comments-client.d.ts +74 -0
- package/dist/clients/inbox/review/comments-client.js +1 -0
- package/dist/clients/inbox/review/companion-pane.d.ts +47 -0
- package/dist/clients/inbox/review/companion-pane.js +1 -0
- package/dist/clients/inbox/review/document-surface.d.ts +212 -0
- package/dist/clients/inbox/review/document-surface.js +2 -0
- package/dist/clients/inbox/review/frame.d.ts +57 -0
- package/dist/clients/inbox/review/frame.js +1 -0
- package/dist/clients/inbox/review/keys.d.ts +69 -0
- package/dist/clients/inbox/review/keys.js +1 -0
- package/dist/clients/inbox/review/launch.d.ts +16 -0
- package/dist/clients/inbox/review/launch.js +1 -0
- package/dist/clients/inbox/review/live-source.d.ts +24 -0
- package/dist/clients/inbox/review/live-source.js +1 -0
- package/dist/clients/inbox/review/nvim.d.ts +15 -0
- package/dist/clients/inbox/review/nvim.js +1 -0
- package/dist/clients/inbox/review/remap.d.ts +51 -0
- package/dist/clients/inbox/review/remap.js +1 -0
- package/dist/clients/inbox/review/review-client.d.ts +43 -0
- package/dist/clients/inbox/review/review-client.js +1 -0
- package/dist/clients/inbox/review/roundtrip.d.ts +5 -0
- package/dist/clients/inbox/review/roundtrip.js +3 -0
- package/dist/clients/inbox/review/state.d.ts +153 -0
- package/dist/clients/inbox/review/state.js +4 -0
- package/dist/clients/inbox/review-adapter.d.ts +17 -0
- package/dist/clients/inbox/review-adapter.js +1 -0
- package/dist/clients/inbox/surface.d.ts +25 -0
- package/dist/clients/inbox/surface.js +1 -0
- package/dist/clients/inbox/tui/ansi.d.ts +68 -0
- package/dist/clients/inbox/tui/ansi.js +3 -0
- package/dist/clients/inbox/tui/input.d.ts +5 -0
- package/dist/clients/inbox/tui/input.js +5 -0
- package/dist/clients/inbox/tui/keys.d.ts +28 -0
- package/dist/clients/inbox/tui/keys.js +1 -0
- package/dist/clients/inbox/tui/page-body.d.ts +10 -0
- package/dist/clients/inbox/tui/page-body.js +1 -0
- package/dist/clients/inbox/tui/panel.d.ts +4 -0
- package/dist/clients/inbox/tui/panel.js +1 -0
- package/dist/clients/inbox/tui/render.d.ts +23 -0
- package/dist/clients/inbox/tui/render.js +2 -0
- package/dist/clients/inbox/tui/slots.d.ts +33 -0
- package/dist/clients/inbox/tui/slots.js +3 -0
- package/dist/clients/inbox/tui/types.d.ts +73 -0
- package/dist/clients/inbox/tui/types.js +0 -0
- package/dist/clients/inbox/tui.d.ts +17 -0
- package/dist/clients/inbox/tui.js +1 -0
- package/dist/clients/surfaces/host.d.ts +74 -0
- package/dist/clients/surfaces/host.js +0 -0
- package/dist/commands/api-client.d.ts +104 -0
- package/dist/commands/api-client.js +4 -0
- package/dist/commands/attention.d.ts +2 -0
- package/dist/commands/attention.js +1 -0
- package/dist/commands/canvas/edges.d.ts +2 -0
- package/dist/commands/canvas/edges.js +2 -0
- package/dist/commands/canvas/list.d.ts +4 -0
- package/dist/commands/canvas/list.js +3 -0
- package/dist/commands/canvas/read.d.ts +14 -0
- package/dist/commands/canvas/read.js +10 -0
- package/dist/commands/canvas/search.d.ts +2 -0
- package/dist/commands/canvas/search.js +3 -0
- package/dist/commands/canvas/unwatch.d.ts +2 -0
- package/dist/commands/canvas/unwatch.js +1 -0
- package/dist/commands/canvas/watch.d.ts +3 -0
- package/dist/commands/canvas/watch.js +1 -0
- package/dist/commands/canvas-analytics/chart.d.ts +52 -0
- package/dist/commands/canvas-analytics/chart.js +1 -0
- package/dist/commands/canvas-analytics/drilldown.d.ts +34 -0
- package/dist/commands/canvas-analytics/drilldown.js +1 -0
- package/dist/commands/canvas-analytics/format.d.ts +29 -0
- package/dist/commands/canvas-analytics/format.js +1 -0
- package/dist/commands/canvas-analytics/graph-detail.d.ts +2 -0
- package/dist/commands/canvas-analytics/graph-detail.js +2 -0
- package/dist/commands/canvas-analytics/graphs.d.ts +9 -0
- package/dist/commands/canvas-analytics/graphs.js +1 -0
- package/dist/commands/canvas-analytics/memory.d.ts +2 -0
- package/dist/commands/canvas-analytics/memory.js +1 -0
- package/dist/commands/canvas-analytics/overview.d.ts +2 -0
- package/dist/commands/canvas-analytics/overview.js +1 -0
- package/dist/commands/canvas-analytics/shell.d.ts +60 -0
- package/dist/commands/canvas-analytics/shell.js +2 -0
- package/dist/commands/canvas-analytics/time.d.ts +2 -0
- package/dist/commands/canvas-analytics/time.js +1 -0
- package/dist/commands/canvas-analytics/usage.d.ts +2 -0
- package/dist/commands/canvas-analytics/usage.js +1 -0
- package/dist/commands/canvas-analytics/view.d.ts +85 -0
- package/dist/commands/canvas-analytics/view.js +1 -0
- package/dist/commands/canvas-analytics.d.ts +2 -0
- package/dist/commands/canvas-analytics.js +1 -0
- package/dist/commands/canvas-browse.d.ts +2 -0
- package/dist/commands/canvas-browse.js +1 -0
- package/dist/commands/canvas-config.d.ts +2 -0
- package/dist/commands/canvas-config.js +2 -0
- package/dist/commands/canvas-history/grep.d.ts +1 -0
- package/dist/commands/canvas-history/grep.js +7 -0
- package/dist/commands/canvas-history/read.d.ts +1 -0
- package/dist/commands/canvas-history/read.js +3 -0
- package/dist/commands/canvas-history/search.d.ts +1 -0
- package/dist/commands/canvas-history/search.js +10 -0
- package/dist/commands/canvas-history/shared.d.ts +34 -0
- package/dist/commands/canvas-history/shared.js +1 -0
- package/dist/commands/canvas-history/stats.d.ts +1 -0
- package/dist/commands/canvas-history/stats.js +6 -0
- package/dist/commands/canvas-history.d.ts +2 -0
- package/dist/commands/canvas-history.js +1 -0
- package/dist/commands/canvas-issue.d.ts +2 -0
- package/dist/commands/canvas-issue.js +14 -0
- package/dist/commands/canvas-prune.d.ts +2 -0
- package/dist/commands/canvas-prune.js +1 -0
- package/dist/commands/canvas-roster.d.ts +2 -0
- package/dist/commands/canvas-roster.js +1 -0
- package/dist/commands/canvas-snapshot.d.ts +2 -0
- package/dist/commands/canvas-snapshot.js +1 -0
- package/dist/commands/canvas-use.d.ts +1 -0
- package/dist/commands/canvas-use.js +1 -0
- package/dist/commands/canvas.d.ts +3 -0
- package/dist/commands/canvas.js +1 -0
- package/dist/commands/chord.d.ts +2 -0
- package/dist/commands/chord.js +1 -0
- package/dist/commands/cron.d.ts +2 -0
- package/dist/commands/cron.js +11 -0
- package/dist/commands/custom-object/ack.d.ts +2 -0
- package/dist/commands/custom-object/ack.js +3 -0
- package/dist/commands/custom-object/publish.d.ts +2 -0
- package/dist/commands/custom-object/publish.js +1 -0
- package/dist/commands/custom-object/receive.d.ts +2 -0
- package/dist/commands/custom-object/receive.js +2 -0
- package/dist/commands/custom-object/register.d.ts +2 -0
- package/dist/commands/custom-object/register.js +3 -0
- package/dist/commands/custom-object/shared.d.ts +5 -0
- package/dist/commands/custom-object/shared.js +1 -0
- package/dist/commands/custom-object/unregister.d.ts +2 -0
- package/dist/commands/custom-object/unregister.js +1 -0
- package/dist/commands/custom-object.d.ts +2 -0
- package/dist/commands/custom-object.js +1 -0
- package/dist/commands/dashboard.d.ts +2 -0
- package/dist/commands/dashboard.js +1 -0
- package/dist/commands/doc/delete.d.ts +2 -0
- package/dist/commands/doc/delete.js +1 -0
- package/dist/commands/doc/edit.d.ts +2 -0
- package/dist/commands/doc/edit.js +1 -0
- package/dist/commands/doc/history.d.ts +2 -0
- package/dist/commands/doc/history.js +2 -0
- package/dist/commands/doc/lint.d.ts +2 -0
- package/dist/commands/doc/lint.js +2 -0
- package/dist/commands/doc/list.d.ts +2 -0
- package/dist/commands/doc/list.js +1 -0
- package/dist/commands/doc/move.d.ts +2 -0
- package/dist/commands/doc/move.js +1 -0
- package/dist/commands/doc/read.d.ts +2 -0
- package/dist/commands/doc/read.js +1 -0
- package/dist/commands/doc/replace-blocks.d.ts +6 -0
- package/dist/commands/doc/replace-blocks.js +4 -0
- package/dist/commands/doc/shared.d.ts +25 -0
- package/dist/commands/doc/shared.js +2 -0
- package/dist/commands/doc/write.d.ts +2 -0
- package/dist/commands/doc/write.js +1 -0
- package/dist/commands/doc.d.ts +2 -0
- package/dist/commands/doc.js +1 -0
- package/dist/commands/human/components.d.ts +4 -0
- package/dist/commands/human/components.js +3 -0
- package/dist/commands/human/feedback.d.ts +2 -0
- package/dist/commands/human/feedback.js +1 -0
- package/dist/commands/human/prompts.d.ts +21 -0
- package/dist/commands/human/prompts.js +1 -0
- package/dist/commands/human/queue.d.ts +3 -0
- package/dist/commands/human/queue.js +1 -0
- package/dist/commands/human/request.d.ts +2 -0
- package/dist/commands/human/request.js +1 -0
- package/dist/commands/human/review.d.ts +2 -0
- package/dist/commands/human/review.js +1 -0
- package/dist/commands/human/shared.d.ts +16 -0
- package/dist/commands/human/shared.js +1 -0
- package/dist/commands/human.d.ts +2 -0
- package/dist/commands/human.js +4 -0
- package/dist/commands/node/bash.d.ts +1 -0
- package/dist/commands/node/bash.js +5 -0
- package/dist/commands/node/create.d.ts +6 -0
- package/dist/commands/node/create.js +2 -0
- package/dist/commands/node/inspect.d.ts +2 -0
- package/dist/commands/node/inspect.js +12 -0
- package/dist/commands/node/lifecycle.d.ts +4 -0
- package/dist/commands/node/lifecycle.js +4 -0
- package/dist/commands/node/message.d.ts +1 -0
- package/dist/commands/node/message.js +1 -0
- package/dist/commands/node/outcome.d.ts +2 -0
- package/dist/commands/node/outcome.js +4 -0
- package/dist/commands/node/pyramid.d.ts +2 -0
- package/dist/commands/node/pyramid.js +2 -0
- package/dist/commands/node/subscription.d.ts +1 -0
- package/dist/commands/node/subscription.js +1 -0
- package/dist/commands/node/wait.d.ts +1 -0
- package/dist/commands/node/wait.js +7 -0
- package/dist/commands/node-context.d.ts +2 -0
- package/dist/commands/node-context.js +2 -0
- package/dist/commands/node-lifecycle-revive.d.ts +12 -0
- package/dist/commands/node-lifecycle-revive.js +1 -0
- package/dist/commands/node-snapshot.d.ts +2 -0
- package/dist/commands/node-snapshot.js +1 -0
- package/dist/commands/node-transcript.d.ts +2 -0
- package/dist/commands/node-transcript.js +1 -0
- package/dist/commands/node-worktree.d.ts +2 -0
- package/dist/commands/node-worktree.js +1 -0
- package/dist/commands/node.d.ts +2 -0
- package/dist/commands/node.js +1 -0
- package/dist/commands/pkg/browse/actions.d.ts +7 -0
- package/dist/commands/pkg/browse/actions.js +1 -0
- package/dist/commands/pkg/browse/catalog.d.ts +9 -0
- package/dist/commands/pkg/browse/catalog.js +1 -0
- package/dist/commands/pkg/browse/command-view.d.ts +3 -0
- package/dist/commands/pkg/browse/command-view.js +1 -0
- package/dist/commands/pkg/browse/detail-panel.d.ts +66 -0
- package/dist/commands/pkg/browse/detail-panel.js +1 -0
- package/dist/commands/pkg/browse/doc-view.d.ts +3 -0
- package/dist/commands/pkg/browse/doc-view.js +1 -0
- package/dist/commands/pkg/browse/list-panel.d.ts +28 -0
- package/dist/commands/pkg/browse/list-panel.js +2 -0
- package/dist/commands/pkg/browse/model.d.ts +223 -0
- package/dist/commands/pkg/browse/model.js +1 -0
- package/dist/commands/pkg/browse/shell.d.ts +93 -0
- package/dist/commands/pkg/browse/shell.js +1 -0
- package/dist/commands/pkg/browse.d.ts +2 -0
- package/dist/commands/pkg/browse.js +1 -0
- package/dist/commands/pkg/market-inspect.d.ts +2 -0
- package/dist/commands/pkg/market-inspect.js +1 -0
- package/dist/commands/pkg/market-manage.d.ts +16 -0
- package/dist/commands/pkg/market-manage.js +1 -0
- package/dist/commands/pkg/market.d.ts +1 -0
- package/dist/commands/pkg/market.js +1 -0
- package/dist/commands/pkg/plugin-env.d.ts +3 -0
- package/dist/commands/pkg/plugin-env.js +4 -0
- package/dist/commands/pkg/plugin-inspect.d.ts +2 -0
- package/dist/commands/pkg/plugin-inspect.js +1 -0
- package/dist/commands/pkg/plugin-manage.d.ts +94 -0
- package/dist/commands/pkg/plugin-manage.js +17 -0
- package/dist/commands/pkg/plugin.d.ts +1 -0
- package/dist/commands/pkg/plugin.js +1 -0
- package/dist/commands/pkg/shared.d.ts +13 -0
- package/dist/commands/pkg/shared.js +1 -0
- package/dist/commands/pkg.d.ts +2 -0
- package/dist/commands/pkg.js +1 -0
- package/dist/commands/profile/daemon-profiles.d.ts +13 -0
- package/dist/commands/profile/daemon-profiles.js +4 -0
- package/dist/commands/profile/default.d.ts +2 -0
- package/dist/commands/profile/default.js +2 -0
- package/dist/commands/profile/delete.d.ts +1 -0
- package/dist/commands/profile/delete.js +1 -0
- package/dist/commands/profile/env.d.ts +8 -0
- package/dist/commands/profile/env.js +3 -0
- package/dist/commands/profile/kind.d.ts +1 -0
- package/dist/commands/profile/kind.js +1 -0
- package/dist/commands/profile/list.d.ts +1 -0
- package/dist/commands/profile/list.js +1 -0
- package/dist/commands/profile/meta.d.ts +4 -0
- package/dist/commands/profile/meta.js +1 -0
- package/dist/commands/profile/new.d.ts +1 -0
- package/dist/commands/profile/new.js +1 -0
- package/dist/commands/profile/pause.d.ts +2 -0
- package/dist/commands/profile/pause.js +1 -0
- package/dist/commands/profile/project.d.ts +2 -0
- package/dist/commands/profile/project.js +1 -0
- package/dist/commands/profile/rename.d.ts +1 -0
- package/dist/commands/profile/rename.js +1 -0
- package/dist/commands/profile/show.d.ts +1 -0
- package/dist/commands/profile/show.js +1 -0
- package/dist/commands/profile.d.ts +2 -0
- package/dist/commands/profile.js +1 -0
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +9 -0
- package/dist/commands/revive.d.ts +2 -0
- package/dist/commands/revive.js +10 -0
- package/dist/commands/surface/node/cycle.d.ts +1 -0
- package/dist/commands/surface/node/cycle.js +1 -0
- package/dist/commands/surface/node/focus.d.ts +1 -0
- package/dist/commands/surface/node/focus.js +1 -0
- package/dist/commands/surface/node/id.d.ts +1 -0
- package/dist/commands/surface/node/id.js +1 -0
- package/dist/commands/surface/node/pin.d.ts +1 -0
- package/dist/commands/surface/node/pin.js +1 -0
- package/dist/commands/surface/node/placement.d.ts +30 -0
- package/dist/commands/surface/node/placement.js +1 -0
- package/dist/commands/surface-edit.d.ts +2 -0
- package/dist/commands/surface-edit.js +1 -0
- package/dist/commands/surface-inbox.d.ts +2 -0
- package/dist/commands/surface-inbox.js +1 -0
- package/dist/commands/surface-inspect.d.ts +2 -0
- package/dist/commands/surface-inspect.js +1 -0
- package/dist/commands/surface-node.d.ts +2 -0
- package/dist/commands/surface-node.js +1 -0
- package/dist/commands/surface-reload.d.ts +7 -0
- package/dist/commands/surface-reload.js +1 -0
- package/dist/commands/surface-tmux-spread.d.ts +2 -0
- package/dist/commands/surface-tmux-spread.js +1 -0
- package/dist/commands/surface.d.ts +2 -0
- package/dist/commands/surface.js +1 -0
- package/dist/commands/sys/branch.d.ts +2 -0
- package/dist/commands/sys/branch.js +1 -0
- package/dist/commands/sys/config.d.ts +1 -0
- package/dist/commands/sys/config.js +1 -0
- package/dist/commands/sys/connect.d.ts +1 -0
- package/dist/commands/sys/connect.js +3 -0
- package/dist/commands/sys/context/admin/actions.d.ts +23 -0
- package/dist/commands/sys/context/admin/actions.js +1 -0
- package/dist/commands/sys/context/admin/detail-panel.d.ts +73 -0
- package/dist/commands/sys/context/admin/detail-panel.js +2 -0
- package/dist/commands/sys/context/admin/docs-panel.d.ts +63 -0
- package/dist/commands/sys/context/admin/docs-panel.js +1 -0
- package/dist/commands/sys/context/admin/list-view.d.ts +62 -0
- package/dist/commands/sys/context/admin/list-view.js +1 -0
- package/dist/commands/sys/context/admin/model.d.ts +123 -0
- package/dist/commands/sys/context/admin/model.js +1 -0
- package/dist/commands/sys/context/admin/rail-panel.d.ts +84 -0
- package/dist/commands/sys/context/admin/rail-panel.js +1 -0
- package/dist/commands/sys/context/admin/read-view.d.ts +27 -0
- package/dist/commands/sys/context/admin/read-view.js +1 -0
- package/dist/commands/sys/context/admin/shell.d.ts +125 -0
- package/dist/commands/sys/context/admin/shell.js +1 -0
- package/dist/commands/sys/context/admin.d.ts +1 -0
- package/dist/commands/sys/context/admin.js +2 -0
- package/dist/commands/sys/context/doc.d.ts +1 -0
- package/dist/commands/sys/context/doc.js +2 -0
- package/dist/commands/sys/context/expose.d.ts +1 -0
- package/dist/commands/sys/context/expose.js +2 -0
- package/dist/commands/sys/context/prompt-review.d.ts +1 -0
- package/dist/commands/sys/context/prompt-review.js +11 -0
- package/dist/commands/sys/context/resolve.d.ts +115 -0
- package/dist/commands/sys/context/resolve.js +8 -0
- package/dist/commands/sys/context/sysprompt.d.ts +1 -0
- package/dist/commands/sys/context/sysprompt.js +5 -0
- package/dist/commands/sys/context.d.ts +2 -0
- package/dist/commands/sys/context.js +1 -0
- package/dist/commands/sys/daemon.d.ts +4 -0
- package/dist/commands/sys/daemon.js +1 -0
- package/dist/commands/sys/doctor.d.ts +36 -0
- package/dist/commands/sys/doctor.js +1 -0
- package/dist/commands/sys/env.d.ts +1 -0
- package/dist/commands/sys/env.js +1 -0
- package/dist/commands/sys/feedback.d.ts +1 -0
- package/dist/commands/sys/feedback.js +7 -0
- package/dist/commands/sys/join.d.ts +1 -0
- package/dist/commands/sys/join.js +1 -0
- package/dist/commands/sys/limits.d.ts +1 -0
- package/dist/commands/sys/limits.js +3 -0
- package/dist/commands/sys/logs.d.ts +1 -0
- package/dist/commands/sys/logs.js +3 -0
- package/dist/commands/sys/migrate.d.ts +1 -0
- package/dist/commands/sys/migrate.js +1 -0
- package/dist/commands/sys/panels/broker-limits-panel.d.ts +17 -0
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -0
- package/dist/commands/sys/panels/dependencies-panel.d.ts +14 -0
- package/dist/commands/sys/panels/dependencies-panel.js +1 -0
- package/dist/commands/sys/panels/keybindings-panel.d.ts +56 -0
- package/dist/commands/sys/panels/keybindings-panel.js +1 -0
- package/dist/commands/sys/panels/models-panel.d.ts +100 -0
- package/dist/commands/sys/panels/models-panel.js +1 -0
- package/dist/commands/sys/panels/plugin-env-panel.d.ts +19 -0
- package/dist/commands/sys/panels/plugin-env-panel.js +2 -0
- package/dist/commands/sys/panels/plugins-panel.d.ts +16 -0
- package/dist/commands/sys/panels/plugins-panel.js +1 -0
- package/dist/commands/sys/panels/prefs-panel.d.ts +21 -0
- package/dist/commands/sys/panels/prefs-panel.js +1 -0
- package/dist/commands/sys/panels/profiles-panel.d.ts +70 -0
- package/dist/commands/sys/panels/profiles-panel.js +1 -0
- package/dist/commands/sys/panels/provider-panel.d.ts +68 -0
- package/dist/commands/sys/panels/provider-panel.js +1 -0
- package/dist/commands/sys/panels/terminal-panel.d.ts +19 -0
- package/dist/commands/sys/panels/terminal-panel.js +1 -0
- package/dist/commands/sys/provider-login.d.ts +8 -0
- package/dist/commands/sys/provider-login.js +9 -0
- package/dist/commands/sys/retry-delivery.d.ts +1 -0
- package/dist/commands/sys/retry-delivery.js +1 -0
- package/dist/commands/sys/settings-shell.d.ts +54 -0
- package/dist/commands/sys/settings-shell.js +1 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +1 -0
- package/dist/commands/sys/setup-core.d.ts +121 -0
- package/dist/commands/sys/setup-core.js +9 -0
- package/dist/commands/sys/setup-settings-runner.d.ts +13 -0
- package/dist/commands/sys/setup-settings-runner.js +1 -0
- package/dist/commands/sys/setup-wizard.d.ts +52 -0
- package/dist/commands/sys/setup-wizard.js +1 -0
- package/dist/commands/sys/setup.d.ts +6 -0
- package/dist/commands/sys/setup.js +1 -0
- package/dist/commands/sys/shared.d.ts +51 -0
- package/dist/commands/sys/shared.js +1 -0
- package/dist/commands/sys/spaces.d.ts +1 -0
- package/dist/commands/sys/spaces.js +2 -0
- package/dist/commands/sys/support/prepare.d.ts +13 -0
- package/dist/commands/sys/support/prepare.js +3 -0
- package/dist/commands/sys/support/submit.d.ts +19 -0
- package/dist/commands/sys/support/submit.js +6 -0
- package/dist/commands/sys/support.d.ts +2 -0
- package/dist/commands/sys/support.js +1 -0
- package/dist/commands/sys/sync-deps.d.ts +16 -0
- package/dist/commands/sys/sync-deps.js +14 -0
- package/dist/commands/sys/sync-project-guidance.d.ts +1 -0
- package/dist/commands/sys/sync-project-guidance.js +5 -0
- package/dist/commands/sys/sync-shared.d.ts +44 -0
- package/dist/commands/sys/sync-shared.js +1 -0
- package/dist/commands/sys/sync-skills.d.ts +1 -0
- package/dist/commands/sys/sync-skills.js +2 -0
- package/dist/commands/sys/sync.d.ts +2 -0
- package/dist/commands/sys/sync.js +1 -0
- package/dist/commands/sys/terminal-option.d.ts +112 -0
- package/dist/commands/sys/terminal-option.js +15 -0
- package/dist/commands/sys/tutorial/branch.d.ts +1 -0
- package/dist/commands/sys/tutorial/branch.js +1 -0
- package/dist/commands/sys/tutorial/lessons.d.ts +5 -0
- package/dist/commands/sys/tutorial/lessons.js +8 -0
- package/dist/commands/sys/tutorial/scenario.d.ts +1 -0
- package/dist/commands/sys/tutorial/scenario.js +3 -0
- package/dist/commands/sys/tutorial/tracks.d.ts +1 -0
- package/dist/commands/sys/tutorial/tracks.js +4 -0
- package/dist/commands/sys/update.d.ts +2 -0
- package/dist/commands/sys/update.js +1 -0
- package/dist/commands/sys/worktrees.d.ts +2 -0
- package/dist/commands/sys/worktrees.js +5 -0
- package/dist/commands/sys.d.ts +2 -0
- package/dist/commands/sys.js +1 -0
- package/dist/core/activity-signal.d.ts +7 -0
- package/dist/core/activity-signal.js +2 -0
- package/dist/core/asset-root.d.ts +7 -0
- package/dist/core/asset-root.js +1 -0
- package/dist/core/auth-file.d.ts +41 -0
- package/dist/core/auth-file.js +2 -0
- package/dist/core/auth-interaction.d.ts +19 -0
- package/dist/core/auth-interaction.js +3 -0
- package/dist/core/auto-update.d.ts +1 -0
- package/dist/core/auto-update.js +4 -0
- package/dist/core/bash-guard.d.ts +6 -0
- package/dist/core/bash-guard.js +11 -0
- package/dist/core/bash-job-supervisor.d.ts +5 -0
- package/dist/core/bash-job-supervisor.js +4 -0
- package/dist/core/bash-jobs.d.ts +180 -0
- package/dist/core/bash-jobs.js +8 -0
- package/dist/core/bootstrap.d.ts +1 -0
- package/dist/core/bootstrap.js +2 -0
- package/dist/core/broker-client/client.d.ts +89 -0
- package/dist/core/broker-client/client.js +1 -0
- package/dist/core/broker-client/index.d.ts +1 -0
- package/dist/core/broker-client/index.js +1 -0
- package/dist/core/broker-client/transport-relay.d.ts +47 -0
- package/dist/core/broker-client/transport-relay.js +1 -0
- package/dist/core/broker-client/transport-socket.d.ts +35 -0
- package/dist/core/broker-client/transport-socket.js +1 -0
- package/dist/core/broker-client/transport.d.ts +36 -0
- package/dist/core/broker-client/transport.js +1 -0
- package/dist/core/canvas/app-run.d.ts +3 -0
- package/dist/core/canvas/app-run.js +1 -0
- package/dist/core/canvas/attention.d.ts +18 -0
- package/dist/core/canvas/attention.js +1 -0
- package/dist/core/canvas/boot-id.d.ts +6 -0
- package/dist/core/canvas/boot-id.js +1 -0
- package/dist/core/canvas/boot.d.ts +92 -0
- package/dist/core/canvas/boot.js +1 -0
- package/dist/core/canvas/browse/app.d.ts +26 -0
- package/dist/core/canvas/browse/app.js +3 -0
- package/dist/core/canvas/browse/model.d.ts +172 -0
- package/dist/core/canvas/browse/model.js +1 -0
- package/dist/core/canvas/browse/pins.d.ts +4 -0
- package/dist/core/canvas/browse/pins.js +1 -0
- package/dist/core/canvas/browse/render.d.ts +98 -0
- package/dist/core/canvas/browse/render.js +3 -0
- package/dist/core/canvas/canvas.d.ts +397 -0
- package/dist/core/canvas/canvas.js +65 -0
- package/dist/core/canvas/context-strip.d.ts +20 -0
- package/dist/core/canvas/context-strip.js +5 -0
- package/dist/core/canvas/crons.d.ts +298 -0
- package/dist/core/canvas/crons.js +36 -0
- package/dist/core/canvas/daemon-actions.d.ts +45 -0
- package/dist/core/canvas/daemon-actions.js +28 -0
- package/dist/core/canvas/daemon-owner.d.ts +67 -0
- package/dist/core/canvas/daemon-owner.js +6 -0
- package/dist/core/canvas/db.d.ts +33 -0
- package/dist/core/canvas/db.js +2 -0
- package/dist/core/canvas/deliveries.d.ts +120 -0
- package/dist/core/canvas/deliveries.js +102 -0
- package/dist/core/canvas/delivery-contract.d.ts +37 -0
- package/dist/core/canvas/delivery-contract.js +1 -0
- package/dist/core/canvas/executions.d.ts +29 -0
- package/dist/core/canvas/executions.js +1 -0
- package/dist/core/canvas/extensions.d.ts +9 -0
- package/dist/core/canvas/extensions.js +1 -0
- package/dist/core/canvas/focuses.d.ts +22 -0
- package/dist/core/canvas/focuses.js +1 -0
- package/dist/core/canvas/history.d.ts +104 -0
- package/dist/core/canvas/history.js +14 -0
- package/dist/core/canvas/index.d.ts +14 -0
- package/dist/core/canvas/index.js +1 -0
- package/dist/core/canvas/install-id.d.ts +9 -0
- package/dist/core/canvas/install-id.js +1 -0
- package/dist/core/canvas/labels.d.ts +30 -0
- package/dist/core/canvas/labels.js +1 -0
- package/dist/core/canvas/managed-worktree-sweep-candidates.d.ts +4 -0
- package/dist/core/canvas/managed-worktree-sweep-candidates.js +12 -0
- package/dist/core/canvas/memory-reads.d.ts +24 -0
- package/dist/core/canvas/memory-reads.js +1 -0
- package/dist/core/canvas/meta-file.d.ts +20 -0
- package/dist/core/canvas/meta-file.js +1 -0
- package/dist/core/canvas/migrations.d.ts +16 -0
- package/dist/core/canvas/migrations.js +989 -0
- package/dist/core/canvas/nav-model.d.ts +44 -0
- package/dist/core/canvas/nav-model.js +1 -0
- package/dist/core/canvas/nav-render.d.ts +136 -0
- package/dist/core/canvas/nav-render.js +1 -0
- package/dist/core/canvas/node-agent-paths.d.ts +8 -0
- package/dist/core/canvas/node-agent-paths.js +1 -0
- package/dist/core/canvas/node-order.d.ts +24 -0
- package/dist/core/canvas/node-order.js +1 -0
- package/dist/core/canvas/node-recap.d.ts +23 -0
- package/dist/core/canvas/node-recap.js +2 -0
- package/dist/core/canvas/node-sql-migration.d.ts +4 -0
- package/dist/core/canvas/node-sql-migration.js +80 -0
- package/dist/core/canvas/node-tokens.d.ts +24 -0
- package/dist/core/canvas/node-tokens.js +5 -0
- package/dist/core/canvas/outcome-actions.d.ts +23 -0
- package/dist/core/canvas/outcome-actions.js +6 -0
- package/dist/core/canvas/paths.d.ts +72 -0
- package/dist/core/canvas/paths.js +1 -0
- package/dist/core/canvas/pid.d.ts +391 -0
- package/dist/core/canvas/pid.js +5 -0
- package/dist/core/canvas/recovery.d.ts +90 -0
- package/dist/core/canvas/recovery.js +26 -0
- package/dist/core/canvas/remote-canvas-source.d.ts +70 -0
- package/dist/core/canvas/remote-canvas-source.js +1 -0
- package/dist/core/canvas/remote-transport.d.ts +7 -0
- package/dist/core/canvas/remote-transport.js +1 -0
- package/dist/core/canvas/render-source.d.ts +193 -0
- package/dist/core/canvas/render-source.js +7 -0
- package/dist/core/canvas/sessions.d.ts +57 -0
- package/dist/core/canvas/sessions.js +4 -0
- package/dist/core/canvas/source.d.ts +48 -0
- package/dist/core/canvas/source.js +1 -0
- package/dist/core/canvas/status-glyph.d.ts +52 -0
- package/dist/core/canvas/status-glyph.js +1 -0
- package/dist/core/canvas/structured-requests.d.ts +69 -0
- package/dist/core/canvas/structured-requests.js +15 -0
- package/dist/core/canvas/telemetry.d.ts +14 -0
- package/dist/core/canvas/telemetry.js +1 -0
- package/dist/core/canvas/tree.d.ts +29 -0
- package/dist/core/canvas/tree.js +12 -0
- package/dist/core/canvas/types.d.ts +454 -0
- package/dist/core/canvas/types.js +1 -0
- package/dist/core/canvas/waits.d.ts +18 -0
- package/dist/core/canvas/waits.js +6 -0
- package/dist/core/canvas/worktrees.d.ts +41 -0
- package/dist/core/canvas/worktrees.js +1 -0
- package/dist/core/clipboard-text.d.ts +11 -0
- package/dist/core/clipboard-text.js +1 -0
- package/dist/core/command-hooks/artifact.d.ts +16 -0
- package/dist/core/command-hooks/artifact.js +1 -0
- package/dist/core/command-hooks/catalog.d.ts +14 -0
- package/dist/core/command-hooks/catalog.js +1 -0
- package/dist/core/command-hooks/compose.d.ts +15 -0
- package/dist/core/command-hooks/compose.js +1 -0
- package/dist/core/command-hooks/discovery.d.ts +133 -0
- package/dist/core/command-hooks/discovery.js +1 -0
- package/dist/core/command-hooks/help.d.ts +5 -0
- package/dist/core/command-hooks/help.js +1 -0
- package/dist/core/command-hooks/index.d.ts +7 -0
- package/dist/core/command-hooks/index.js +1 -0
- package/dist/core/command-hooks/lifecycle-catalog.d.ts +21 -0
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -0
- package/dist/core/command-hooks/lifecycle-create.d.ts +4 -0
- package/dist/core/command-hooks/lifecycle-create.js +1 -0
- package/dist/core/command-hooks/report.d.ts +32 -0
- package/dist/core/command-hooks/report.js +1 -0
- package/dist/core/command-hooks/schema.d.ts +42 -0
- package/dist/core/command-hooks/schema.js +1 -0
- package/dist/core/command-hooks/transport/exec-invoke.d.ts +24 -0
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.d.ts +23 -0
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -0
- package/dist/core/command-hooks/transport/plan.d.ts +3 -0
- package/dist/core/command-hooks/transport/plan.js +1 -0
- package/dist/core/command-manifests/registry.d.ts +67 -0
- package/dist/core/command-manifests/registry.js +1 -0
- package/dist/core/command-plugins/bundle.d.ts +149 -0
- package/dist/core/command-plugins/bundle.js +1 -0
- package/dist/core/command-plugins/compose.d.ts +11 -0
- package/dist/core/command-plugins/compose.js +1 -0
- package/dist/core/command-plugins/discovery.d.ts +50 -0
- package/dist/core/command-plugins/discovery.js +1 -0
- package/dist/core/command-plugins/endpoint.d.ts +24 -0
- package/dist/core/command-plugins/endpoint.js +1 -0
- package/dist/core/command-plugins/extensions.d.ts +20 -0
- package/dist/core/command-plugins/extensions.js +1 -0
- package/dist/core/command-plugins/help-addenda.d.ts +25 -0
- package/dist/core/command-plugins/help-addenda.js +1 -0
- package/dist/core/command-plugins/presence.d.ts +2 -0
- package/dist/core/command-plugins/presence.js +1 -0
- package/dist/core/command-plugins/revalidate.d.ts +18 -0
- package/dist/core/command-plugins/revalidate.js +2 -0
- package/dist/core/command-plugins/transport/exec-invoke.d.ts +28 -0
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -0
- package/dist/core/command-plugins/transport/http-fetch.d.ts +41 -0
- package/dist/core/command-plugins/transport/http-fetch.js +1 -0
- package/dist/core/command-plugins/transport/http-invoke.d.ts +15 -0
- package/dist/core/command-plugins/transport/http-invoke.js +3 -0
- package/dist/core/command-plugins/transport/http-plan.d.ts +68 -0
- package/dist/core/command-plugins/transport/http-plan.js +1 -0
- package/dist/core/command.d.ts +210 -0
- package/dist/core/command.js +10 -0
- package/dist/core/config.d.ts +233 -0
- package/dist/core/config.js +1 -0
- package/dist/core/conversation-store/client-worker.d.ts +1 -0
- package/dist/core/conversation-store/client-worker.js +1 -0
- package/dist/core/conversation-store/client.d.ts +2 -0
- package/dist/core/conversation-store/client.js +2 -0
- package/dist/core/conversation-store/file-store.d.ts +37 -0
- package/dist/core/conversation-store/file-store.js +9 -0
- package/dist/core/conversation-store/index.d.ts +60 -0
- package/dist/core/conversation-store/index.js +1 -0
- package/dist/core/conversation-store/listener.d.ts +4 -0
- package/dist/core/conversation-store/listener.js +8 -0
- package/dist/core/conversation-store/patch.d.ts +1 -0
- package/dist/core/conversation-store/patch.js +1 -0
- package/dist/core/directory/join.d.ts +27 -0
- package/dist/core/directory/join.js +1 -0
- package/dist/core/disk-usage.d.ts +4 -0
- package/dist/core/disk-usage.js +1 -0
- package/dist/core/document-lines.d.ts +4 -0
- package/dist/core/document-lines.js +3 -0
- package/dist/core/editor-resolver.d.ts +28 -0
- package/dist/core/editor-resolver.js +4 -0
- package/dist/core/env-name.d.ts +6 -0
- package/dist/core/env-name.js +1 -0
- package/dist/core/errors.d.ts +38 -0
- package/dist/core/errors.js +1 -0
- package/dist/core/events/emit.d.ts +6 -0
- package/dist/core/events/emit.js +3 -0
- package/dist/core/events/envelope.d.ts +2 -0
- package/dist/core/events/envelope.js +1 -0
- package/dist/core/events/errors.d.ts +4 -0
- package/dist/core/events/errors.js +1 -0
- package/dist/core/events/index.d.ts +5 -0
- package/dist/core/events/index.js +1 -0
- package/dist/core/events/operation-id.d.ts +4 -0
- package/dist/core/events/operation-id.js +1 -0
- package/dist/core/events/read.d.ts +40 -0
- package/dist/core/events/read.js +1 -0
- package/dist/core/events/serialize.d.ts +4 -0
- package/dist/core/events/serialize.js +1 -0
- package/dist/core/events/source.d.ts +16 -0
- package/dist/core/events/source.js +1 -0
- package/dist/core/events/types.d.ts +68 -0
- package/dist/core/events/types.js +1 -0
- package/dist/core/exclusive-lock.d.ts +34 -0
- package/dist/core/exclusive-lock.js +1 -0
- package/dist/core/fault-classifier.d.ts +34 -0
- package/dist/core/fault-classifier.js +1 -0
- package/dist/core/feed/feed.d.ts +63 -0
- package/dist/core/feed/feed.js +4 -0
- package/dist/core/feed/inbox-migrate.d.ts +11 -0
- package/dist/core/feed/inbox-migrate.js +3 -0
- package/dist/core/feed/inbox.d.ts +34 -0
- package/dist/core/feed/inbox.js +1 -0
- package/dist/core/feed/messages.d.ts +83 -0
- package/dist/core/feed/messages.js +8 -0
- package/dist/core/feed/reports.d.ts +10 -0
- package/dist/core/feed/reports.js +2 -0
- package/dist/core/frontmatter.d.ts +8 -0
- package/dist/core/frontmatter.js +1 -0
- package/dist/core/fs-utils.d.ts +44 -0
- package/dist/core/fs-utils.js +3 -0
- package/dist/core/git.d.ts +28 -0
- package/dist/core/git.js +2 -0
- package/dist/core/grants/local.d.ts +4 -0
- package/dist/core/grants/local.js +1 -0
- package/dist/core/grants/mirror.d.ts +76 -0
- package/dist/core/grants/mirror.js +4 -0
- package/dist/core/grants/on-sync.d.ts +22 -0
- package/dist/core/grants/on-sync.js +1 -0
- package/dist/core/grants/remove.d.ts +7 -0
- package/dist/core/grants/remove.js +1 -0
- package/dist/core/grants/sandboxes.d.ts +7 -0
- package/dist/core/grants/sandboxes.js +1 -0
- package/dist/core/grants/sync.d.ts +40 -0
- package/dist/core/grants/sync.js +1 -0
- package/dist/core/grants/watch.d.ts +14 -0
- package/dist/core/grants/watch.js +1 -0
- package/dist/core/graph/access.d.ts +28 -0
- package/dist/core/graph/access.js +8 -0
- package/dist/core/graph/bodies.d.ts +6 -0
- package/dist/core/graph/bodies.js +1 -0
- package/dist/core/graph/custom.d.ts +74 -0
- package/dist/core/graph/custom.js +11 -0
- package/dist/core/graph/deletion.d.ts +17 -0
- package/dist/core/graph/deletion.js +6 -0
- package/dist/core/graph/diff.d.ts +4 -0
- package/dist/core/graph/diff.js +4 -0
- package/dist/core/graph/documents.d.ts +167 -0
- package/dist/core/graph/documents.js +10 -0
- package/dist/core/graph/edges.d.ts +25 -0
- package/dist/core/graph/edges.js +1 -0
- package/dist/core/graph/events.d.ts +50 -0
- package/dist/core/graph/events.js +11 -0
- package/dist/core/graph/exposures.d.ts +53 -0
- package/dist/core/graph/exposures.js +4 -0
- package/dist/core/graph/jobs.d.ts +31 -0
- package/dist/core/graph/jobs.js +2 -0
- package/dist/core/graph/kinds/action.d.ts +3 -0
- package/dist/core/graph/kinds/action.js +1 -0
- package/dist/core/graph/kinds/custom.d.ts +7 -0
- package/dist/core/graph/kinds/custom.js +7 -0
- package/dist/core/graph/kinds/document.d.ts +19 -0
- package/dist/core/graph/kinds/document.js +5 -0
- package/dist/core/graph/kinds/dto.d.ts +5 -0
- package/dist/core/graph/kinds/dto.js +1 -0
- package/dist/core/graph/kinds/job.d.ts +2 -0
- package/dist/core/graph/kinds/job.js +2 -0
- package/dist/core/graph/kinds/kind.d.ts +66 -0
- package/dist/core/graph/kinds/kind.js +1 -0
- package/dist/core/graph/kinds/node.d.ts +12 -0
- package/dist/core/graph/kinds/node.js +5 -0
- package/dist/core/graph/kinds/owner.d.ts +2 -0
- package/dist/core/graph/kinds/owner.js +2 -0
- package/dist/core/graph/kinds/registry.d.ts +13 -0
- package/dist/core/graph/kinds/registry.js +1 -0
- package/dist/core/graph/kinds/render.d.ts +9 -0
- package/dist/core/graph/kinds/render.js +1 -0
- package/dist/core/graph/names.d.ts +35 -0
- package/dist/core/graph/names.js +3 -0
- package/dist/core/graph/objects.d.ts +62 -0
- package/dist/core/graph/objects.js +11 -0
- package/dist/core/graph/package-docs.d.ts +32 -0
- package/dist/core/graph/package-docs.js +5 -0
- package/dist/core/graph/package-files.d.ts +20 -0
- package/dist/core/graph/package-files.js +2 -0
- package/dist/core/graph/reader.d.ts +30 -0
- package/dist/core/graph/reader.js +3 -0
- package/dist/core/graph/receiver-url.d.ts +11 -0
- package/dist/core/graph/receiver-url.js +1 -0
- package/dist/core/graph/receivers.d.ts +26 -0
- package/dist/core/graph/receivers.js +7 -0
- package/dist/core/graph/repo-sync/exchange.d.ts +34 -0
- package/dist/core/graph/repo-sync/exchange.js +2 -0
- package/dist/core/graph/repo-sync/identity.d.ts +30 -0
- package/dist/core/graph/repo-sync/identity.js +1 -0
- package/dist/core/graph/repo-sync/index.d.ts +4 -0
- package/dist/core/graph/repo-sync/index.js +1 -0
- package/dist/core/graph/repo-sync/mirror.d.ts +30 -0
- package/dist/core/graph/repo-sync/mirror.js +6 -0
- package/dist/core/graph/repo-sync/ref-format.d.ts +76 -0
- package/dist/core/graph/repo-sync/ref-format.js +2 -0
- package/dist/core/graph/repo-sync/repos.d.ts +19 -0
- package/dist/core/graph/repo-sync/repos.js +3 -0
- package/dist/core/graph/repo-sync/sync.d.ts +42 -0
- package/dist/core/graph/repo-sync/sync.js +2 -0
- package/dist/core/graph/rules.d.ts +26 -0
- package/dist/core/graph/rules.js +3 -0
- package/dist/core/graph/spaces/app.d.ts +3 -0
- package/dist/core/graph/spaces/app.js +1 -0
- package/dist/core/graph/spaces/index.d.ts +19 -0
- package/dist/core/graph/spaces/index.js +1 -0
- package/dist/core/graph/spaces/person.d.ts +5 -0
- package/dist/core/graph/spaces/person.js +3 -0
- package/dist/core/graph/spaces/repo.d.ts +13 -0
- package/dist/core/graph/spaces/repo.js +1 -0
- package/dist/core/graph/types.d.ts +94 -0
- package/dist/core/graph/types.js +1 -0
- package/dist/core/graph/watches.d.ts +62 -0
- package/dist/core/graph/watches.js +18 -0
- package/dist/core/help.d.ts +309 -0
- package/dist/core/help.js +9 -0
- package/dist/core/host-exports/builtins.d.ts +50 -0
- package/dist/core/host-exports/builtins.js +9 -0
- package/dist/core/host-exports/export.d.ts +31 -0
- package/dist/core/host-exports/export.js +3 -0
- package/dist/core/human/action-binding.d.ts +23 -0
- package/dist/core/human/action-binding.js +1 -0
- package/dist/core/human/answer-text.d.ts +5 -0
- package/dist/core/human/answer-text.js +5 -0
- package/dist/core/human/answer.d.ts +53 -0
- package/dist/core/human/answer.js +1 -0
- package/dist/core/human/claim.d.ts +23 -0
- package/dist/core/human/claim.js +3 -0
- package/dist/core/human/completion.d.ts +38 -0
- package/dist/core/human/completion.js +1 -0
- package/dist/core/human/component-docs.d.ts +18 -0
- package/dist/core/human/component-docs.js +248 -0
- package/dist/core/human/convention.d.ts +31 -0
- package/dist/core/human/convention.js +2 -0
- package/dist/core/human/feedback-companion.d.ts +19 -0
- package/dist/core/human/feedback-companion.js +1 -0
- package/dist/core/human/feedback.d.ts +62 -0
- package/dist/core/human/feedback.js +1 -0
- package/dist/core/human/page-authoring.d.ts +30 -0
- package/dist/core/human/page-authoring.js +1 -0
- package/dist/core/human/page-catalog.d.ts +57 -0
- package/dist/core/human/page-catalog.js +1 -0
- package/dist/core/human/page-errors.d.ts +4 -0
- package/dist/core/human/page-errors.js +1 -0
- package/dist/core/human/page-eval.d.ts +25 -0
- package/dist/core/human/page-eval.js +1 -0
- package/dist/core/human/page-html-markdown.d.ts +8 -0
- package/dist/core/human/page-html-markdown.js +8 -0
- package/dist/core/human/page-markdown.d.ts +3 -0
- package/dist/core/human/page-markdown.js +17 -0
- package/dist/core/human/page-schema.d.ts +289 -0
- package/dist/core/human/page-schema.js +1 -0
- package/dist/core/human/page-synth.d.ts +7 -0
- package/dist/core/human/page-synth.js +11 -0
- package/dist/core/human/page.d.ts +16 -0
- package/dist/core/human/page.js +1 -0
- package/dist/core/human/requests.d.ts +146 -0
- package/dist/core/human/requests.js +82 -0
- package/dist/core/human/review-schema.d.ts +20 -0
- package/dist/core/human/review-schema.js +1 -0
- package/dist/core/human/root.d.ts +4 -0
- package/dist/core/human/root.js +1 -0
- package/dist/core/human/scan.d.ts +6 -0
- package/dist/core/human/scan.js +1 -0
- package/dist/core/human/summary.d.ts +3 -0
- package/dist/core/human/summary.js +1 -0
- package/dist/core/human/tickets.d.ts +68 -0
- package/dist/core/human/tickets.js +1 -0
- package/dist/core/human/types.d.ts +118 -0
- package/dist/core/human/types.js +0 -0
- package/dist/core/human/visible-paths.d.ts +9 -0
- package/dist/core/human/visible-paths.js +1 -0
- package/dist/core/human-actions.d.ts +25 -0
- package/dist/core/human-actions.js +1 -0
- package/dist/core/inspector/chrome.d.ts +6 -0
- package/dist/core/inspector/chrome.js +1 -0
- package/dist/core/inspector/contract.d.ts +105 -0
- package/dist/core/inspector/contract.js +0 -0
- package/dist/core/inspector/core.d.ts +39 -0
- package/dist/core/inspector/core.js +2 -0
- package/dist/core/inspector/host.d.ts +46 -0
- package/dist/core/inspector/host.js +4 -0
- package/dist/core/inspector/model.d.ts +88 -0
- package/dist/core/inspector/model.js +2 -0
- package/dist/core/inspector/text.d.ts +5 -0
- package/dist/core/inspector/text.js +6 -0
- package/dist/core/inspector/transport.d.ts +6 -0
- package/dist/core/inspector/transport.js +1 -0
- package/dist/core/inspector/tui.d.ts +3 -0
- package/dist/core/inspector/tui.js +2 -0
- package/dist/core/installed-plugins.d.ts +2 -0
- package/dist/core/installed-plugins.js +1 -0
- package/dist/core/io.d.ts +122 -0
- package/dist/core/io.js +7 -0
- package/dist/core/keybindings/attach-control.d.ts +49 -0
- package/dist/core/keybindings/attach-control.js +1 -0
- package/dist/core/keybindings/background-bash.d.ts +13 -0
- package/dist/core/keybindings/background-bash.js +1 -0
- package/dist/core/keybindings/catalog.d.ts +18 -0
- package/dist/core/keybindings/catalog.js +1 -0
- package/dist/core/keybindings/inbox.d.ts +18 -0
- package/dist/core/keybindings/inbox.js +1 -0
- package/dist/core/keybindings/index.d.ts +8 -0
- package/dist/core/keybindings/index.js +1 -0
- package/dist/core/keybindings/match.d.ts +44 -0
- package/dist/core/keybindings/match.js +1 -0
- package/dist/core/keybindings/persistence.d.ts +18 -0
- package/dist/core/keybindings/persistence.js +1 -0
- package/dist/core/keybindings/resolve.d.ts +28 -0
- package/dist/core/keybindings/resolve.js +1 -0
- package/dist/core/keybindings/types.d.ts +42 -0
- package/dist/core/keybindings/types.js +0 -0
- package/dist/core/layout-migrate/index.d.ts +38 -0
- package/dist/core/layout-migrate/index.js +4 -0
- package/dist/core/layout-migrate/loose-keys.d.ts +2 -0
- package/dist/core/layout-migrate/loose-keys.js +1 -0
- package/dist/core/layout-migrate/paths.d.ts +30 -0
- package/dist/core/layout-migrate/paths.js +1 -0
- package/dist/core/layout-migrate/stored-paths.d.ts +9 -0
- package/dist/core/layout-migrate/stored-paths.js +11 -0
- package/dist/core/layout-migrate/stores.d.ts +30 -0
- package/dist/core/layout-migrate/stores.js +3 -0
- package/dist/core/layout.d.ts +34 -0
- package/dist/core/layout.js +2 -0
- package/dist/core/llm/body-limits.d.ts +7 -0
- package/dist/core/llm/body-limits.js +1 -0
- package/dist/core/llm/refusal.d.ts +13 -0
- package/dist/core/llm/refusal.js +1 -0
- package/dist/core/llm/run.d.ts +60 -0
- package/dist/core/llm/run.js +4 -0
- package/dist/core/locked-file.d.ts +27 -0
- package/dist/core/locked-file.js +1 -0
- package/dist/core/log.d.ts +9 -0
- package/dist/core/log.js +5 -0
- package/dist/core/manifest-recovery.d.ts +15 -0
- package/dist/core/manifest-recovery.js +1 -0
- package/dist/core/manifest-stale.d.ts +18 -0
- package/dist/core/manifest-stale.js +1 -0
- package/dist/core/manifest.d.ts +5 -0
- package/dist/core/manifest.js +1 -0
- package/dist/core/model-auth/daemon-login.d.ts +13 -0
- package/dist/core/model-auth/daemon-login.js +1 -0
- package/dist/core/model-auth/flows.d.ts +50 -0
- package/dist/core/model-auth/flows.js +1 -0
- package/dist/core/model-auth/handoff-jti.d.ts +4 -0
- package/dist/core/model-auth/handoff-jti.js +1 -0
- package/dist/core/model-config.d.ts +20 -0
- package/dist/core/model-config.js +1 -0
- package/dist/core/model-routes.d.ts +90 -0
- package/dist/core/model-routes.js +1 -0
- package/dist/core/nvim-launch.d.ts +7 -0
- package/dist/core/nvim-launch.js +1 -0
- package/dist/core/output.d.ts +35 -0
- package/dist/core/output.js +7 -0
- package/dist/core/pagination.d.ts +35 -0
- package/dist/core/pagination.js +1 -0
- package/dist/core/plugin-env.d.ts +8 -0
- package/dist/core/plugin-env.js +1 -0
- package/dist/core/plugin-extensions.d.ts +29 -0
- package/dist/core/plugin-extensions.js +1 -0
- package/dist/core/plugin-swap-lock.d.ts +9 -0
- package/dist/core/plugin-swap-lock.js +1 -0
- package/dist/core/pool-credential-store.d.ts +34 -0
- package/dist/core/pool-credential-store.js +1 -0
- package/dist/core/predicate.d.ts +65 -0
- package/dist/core/predicate.js +1 -0
- package/dist/core/preview-registry.d.ts +59 -0
- package/dist/core/preview-registry.js +3 -0
- package/dist/core/preview-result-path.d.ts +4 -0
- package/dist/core/preview-result-path.js +1 -0
- package/dist/core/profiles/app-env-store.d.ts +4 -0
- package/dist/core/profiles/app-env-store.js +2 -0
- package/dist/core/profiles/default-binding.d.ts +15 -0
- package/dist/core/profiles/default-binding.js +1 -0
- package/dist/core/profiles/deletion-reservation.d.ts +12 -0
- package/dist/core/profiles/deletion-reservation.js +1 -0
- package/dist/core/profiles/env-store.d.ts +22 -0
- package/dist/core/profiles/env-store.js +2 -0
- package/dist/core/profiles/fuzzy-match.d.ts +19 -0
- package/dist/core/profiles/fuzzy-match.js +1 -0
- package/dist/core/profiles/manifest.d.ts +120 -0
- package/dist/core/profiles/manifest.js +1 -0
- package/dist/core/profiles/select.d.ts +46 -0
- package/dist/core/profiles/select.js +35 -0
- package/dist/core/provider-credential.d.ts +6 -0
- package/dist/core/provider-credential.js +1 -0
- package/dist/core/provider-error-recognition.d.ts +27 -0
- package/dist/core/provider-error-recognition.js +1 -0
- package/dist/core/provider-failure.d.ts +42 -0
- package/dist/core/provider-failure.js +1 -0
- package/dist/core/provider-management.d.ts +12 -0
- package/dist/core/provider-management.js +1 -0
- package/dist/core/providers/approval.d.ts +23 -0
- package/dist/core/providers/approval.js +3 -0
- package/dist/core/providers/audit.d.ts +28 -0
- package/dist/core/providers/audit.js +4 -0
- package/dist/core/providers/bundles.d.ts +68 -0
- package/dist/core/providers/bundles.js +2 -0
- package/dist/core/providers/call.d.ts +62 -0
- package/dist/core/providers/call.js +1 -0
- package/dist/core/providers/errors.d.ts +97 -0
- package/dist/core/providers/errors.js +1 -0
- package/dist/core/providers/files.d.ts +89 -0
- package/dist/core/providers/files.js +1 -0
- package/dist/core/providers/inflight.d.ts +13 -0
- package/dist/core/providers/inflight.js +1 -0
- package/dist/core/providers/mint.d.ts +27 -0
- package/dist/core/providers/mint.js +1 -0
- package/dist/core/providers/receipts.d.ts +9 -0
- package/dist/core/providers/receipts.js +3 -0
- package/dist/core/providers/request.d.ts +27 -0
- package/dist/core/providers/request.js +1 -0
- package/dist/core/providers/token-cache.d.ts +44 -0
- package/dist/core/providers/token-cache.js +1 -0
- package/dist/core/rate-limit-scope.d.ts +25 -0
- package/dist/core/rate-limit-scope.js +1 -0
- package/dist/core/remote-canvas-target.d.ts +4 -0
- package/dist/core/remote-canvas-target.js +1 -0
- package/dist/core/render.d.ts +12 -0
- package/dist/core/render.js +18 -0
- package/dist/core/resolver.d.ts +14 -0
- package/dist/core/resolver.js +1 -0
- package/dist/core/review/birth.d.ts +7 -0
- package/dist/core/review/birth.js +1 -0
- package/dist/core/review/comments.d.ts +69 -0
- package/dist/core/review/comments.js +21 -0
- package/dist/core/review/companion.d.ts +33 -0
- package/dist/core/review/companion.js +1 -0
- package/dist/core/review/document.d.ts +27 -0
- package/dist/core/review/document.js +2 -0
- package/dist/core/review/fork.d.ts +8 -0
- package/dist/core/review/fork.js +5 -0
- package/dist/core/review/project.d.ts +17 -0
- package/dist/core/review/project.js +1 -0
- package/dist/core/review/realize.d.ts +3 -0
- package/dist/core/review/realize.js +1 -0
- package/dist/core/review/remap.d.ts +24 -0
- package/dist/core/review/remap.js +19 -0
- package/dist/core/review/signal.d.ts +5 -0
- package/dist/core/review/signal.js +1 -0
- package/dist/core/review/stage.d.ts +38 -0
- package/dist/core/review/stage.js +1 -0
- package/dist/core/review/store.d.ts +44 -0
- package/dist/core/review/store.js +1 -0
- package/dist/core/review/types.d.ts +139 -0
- package/dist/core/review/types.js +1 -0
- package/dist/core/runs/activity.d.ts +11 -0
- package/dist/core/runs/activity.js +6 -0
- package/dist/core/runs/confinement.d.ts +23 -0
- package/dist/core/runs/confinement.js +2 -0
- package/dist/core/runs/events.d.ts +41 -0
- package/dist/core/runs/events.js +7 -0
- package/dist/core/runs/operations.d.ts +75 -0
- package/dist/core/runs/operations.js +12 -0
- package/dist/core/runs/questions.d.ts +73 -0
- package/dist/core/runs/questions.js +4 -0
- package/dist/core/runtime/advertised-command-invocation.d.ts +20 -0
- package/dist/core/runtime/advertised-command-invocation.js +1 -0
- package/dist/core/runtime/auth-reload.d.ts +7 -0
- package/dist/core/runtime/auth-reload.js +1 -0
- package/dist/core/runtime/banner.d.ts +15 -0
- package/dist/core/runtime/banner.js +1 -0
- package/dist/core/runtime/bearings-render.d.ts +62 -0
- package/dist/core/runtime/bearings-render.js +18 -0
- package/dist/core/runtime/bearings.d.ts +56 -0
- package/dist/core/runtime/bearings.js +7 -0
- package/dist/core/runtime/bin-contributions.d.ts +44 -0
- package/dist/core/runtime/bin-contributions.js +2 -0
- package/dist/core/runtime/boot-root.d.ts +34 -0
- package/dist/core/runtime/boot-root.js +5 -0
- package/dist/core/runtime/branded-host.d.ts +55 -0
- package/dist/core/runtime/branded-host.js +2 -0
- package/dist/core/runtime/broker/cli-relay.d.ts +5 -0
- package/dist/core/runtime/broker/cli-relay.js +1 -0
- package/dist/core/runtime/broker/client-registry.d.ts +36 -0
- package/dist/core/runtime/broker/client-registry.js +1 -0
- package/dist/core/runtime/broker/daemon-ops.d.ts +65 -0
- package/dist/core/runtime/broker/daemon-ops.js +1 -0
- package/dist/core/runtime/broker/engine-drive.d.ts +37 -0
- package/dist/core/runtime/broker/engine-drive.js +1 -0
- package/dist/core/runtime/broker/engine-routing.d.ts +143 -0
- package/dist/core/runtime/broker/engine-routing.js +1 -0
- package/dist/core/runtime/broker/event-projection.d.ts +43 -0
- package/dist/core/runtime/broker/event-projection.js +1 -0
- package/dist/core/runtime/broker/extension-abort.d.ts +15 -0
- package/dist/core/runtime/broker/extension-abort.js +1 -0
- package/dist/core/runtime/broker/fault-retry.d.ts +127 -0
- package/dist/core/runtime/broker/fault-retry.js +1 -0
- package/dist/core/runtime/broker/frame-client.d.ts +38 -0
- package/dist/core/runtime/broker/frame-client.js +1 -0
- package/dist/core/runtime/broker/frame-dispatch.d.ts +64 -0
- package/dist/core/runtime/broker/frame-dispatch.js +1 -0
- package/dist/core/runtime/broker/frame-engine-control.d.ts +21 -0
- package/dist/core/runtime/broker/frame-engine-control.js +1 -0
- package/dist/core/runtime/broker/frame-memory-refs.d.ts +25 -0
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -0
- package/dist/core/runtime/broker/frame-model-query.d.ts +13 -0
- package/dist/core/runtime/broker/frame-model-query.js +1 -0
- package/dist/core/runtime/broker/frame-read.d.ts +19 -0
- package/dist/core/runtime/broker/frame-read.js +1 -0
- package/dist/core/runtime/broker/frame-replies.d.ts +24 -0
- package/dist/core/runtime/broker/frame-replies.js +1 -0
- package/dist/core/runtime/broker/frame-session.d.ts +34 -0
- package/dist/core/runtime/broker/frame-session.js +4 -0
- package/dist/core/runtime/broker/held-deferred-inbox.d.ts +15 -0
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -0
- package/dist/core/runtime/broker/inbox.d.ts +22 -0
- package/dist/core/runtime/broker/inbox.js +1 -0
- package/dist/core/runtime/broker/model-adapter.d.ts +24 -0
- package/dist/core/runtime/broker/model-adapter.js +2 -0
- package/dist/core/runtime/broker/node-named.d.ts +15 -0
- package/dist/core/runtime/broker/node-named.js +1 -0
- package/dist/core/runtime/broker/node-token.d.ts +3 -0
- package/dist/core/runtime/broker/node-token.js +1 -0
- package/dist/core/runtime/broker/read-ops.d.ts +27 -0
- package/dist/core/runtime/broker/read-ops.js +1 -0
- package/dist/core/runtime/broker/rebind.d.ts +78 -0
- package/dist/core/runtime/broker/rebind.js +1 -0
- package/dist/core/runtime/broker/retry-card-elision.d.ts +7 -0
- package/dist/core/runtime/broker/retry-card-elision.js +1 -0
- package/dist/core/runtime/broker/run-deferred-mail.d.ts +8 -0
- package/dist/core/runtime/broker/run-deferred-mail.js +1 -0
- package/dist/core/runtime/broker/run-turn-end.d.ts +38 -0
- package/dist/core/runtime/broker/run-turn-end.js +1 -0
- package/dist/core/runtime/broker/run-turn-queue.d.ts +48 -0
- package/dist/core/runtime/broker/run-turn-queue.js +1 -0
- package/dist/core/runtime/broker/signal-stream.d.ts +30 -0
- package/dist/core/runtime/broker/signal-stream.js +1 -0
- package/dist/core/runtime/broker/tool-groups.d.ts +39 -0
- package/dist/core/runtime/broker/tool-groups.js +1 -0
- package/dist/core/runtime/broker/turn-admission.d.ts +11 -0
- package/dist/core/runtime/broker/turn-admission.js +1 -0
- package/dist/core/runtime/broker/turn-ignition.d.ts +49 -0
- package/dist/core/runtime/broker/turn-ignition.js +1 -0
- package/dist/core/runtime/broker-cli.d.ts +1 -0
- package/dist/core/runtime/broker-cli.js +3 -0
- package/dist/core/runtime/broker-extension-render.d.ts +3 -0
- package/dist/core/runtime/broker-extension-render.js +3 -0
- package/dist/core/runtime/broker-inventory.d.ts +4 -0
- package/dist/core/runtime/broker-inventory.js +1 -0
- package/dist/core/runtime/broker-persona-guidance.d.ts +27 -0
- package/dist/core/runtime/broker-persona-guidance.js +4 -0
- package/dist/core/runtime/broker-protocol.d.ts +716 -0
- package/dist/core/runtime/broker-protocol.js +3 -0
- package/dist/core/runtime/broker-request.d.ts +37 -0
- package/dist/core/runtime/broker-request.js +1 -0
- package/dist/core/runtime/broker-sdk.d.ts +36 -0
- package/dist/core/runtime/broker-sdk.js +1 -0
- package/dist/core/runtime/broker.d.ts +73 -0
- package/dist/core/runtime/broker.js +1 -0
- package/dist/core/runtime/canvas-extensions.d.ts +34 -0
- package/dist/core/runtime/canvas-extensions.js +1 -0
- package/dist/core/runtime/chat-inventory-rows.d.ts +8 -0
- package/dist/core/runtime/chat-inventory-rows.js +1 -0
- package/dist/core/runtime/close.d.ts +46 -0
- package/dist/core/runtime/close.js +1 -0
- package/dist/core/runtime/come-back-note.d.ts +5 -0
- package/dist/core/runtime/come-back-note.js +3 -0
- package/dist/core/runtime/command-expansion.d.ts +19 -0
- package/dist/core/runtime/command-expansion.js +9 -0
- package/dist/core/runtime/command-surface.d.ts +38 -0
- package/dist/core/runtime/command-surface.js +1 -0
- package/dist/core/runtime/connectivity.d.ts +12 -0
- package/dist/core/runtime/connectivity.js +1 -0
- package/dist/core/runtime/crtr-theme.d.ts +12 -0
- package/dist/core/runtime/crtr-theme.js +1 -0
- package/dist/core/runtime/deliver-live.d.ts +38 -0
- package/dist/core/runtime/deliver-live.js +1 -0
- package/dist/core/runtime/fault-recovery.d.ts +23 -0
- package/dist/core/runtime/fault-recovery.js +1 -0
- package/dist/core/runtime/fault.d.ts +6 -0
- package/dist/core/runtime/fault.js +1 -0
- package/dist/core/runtime/first-run-offer.d.ts +11 -0
- package/dist/core/runtime/first-run-offer.js +5 -0
- package/dist/core/runtime/fleet.d.ts +93 -0
- package/dist/core/runtime/fleet.js +1 -0
- package/dist/core/runtime/focus-viewer.d.ts +39 -0
- package/dist/core/runtime/focus-viewer.js +1 -0
- package/dist/core/runtime/front-door-env.d.ts +5 -0
- package/dist/core/runtime/front-door-env.js +1 -0
- package/dist/core/runtime/front-door-login.d.ts +2 -0
- package/dist/core/runtime/front-door-login.js +1 -0
- package/dist/core/runtime/front-door.d.ts +26 -0
- package/dist/core/runtime/front-door.js +11 -0
- package/dist/core/runtime/headless-pi.d.ts +37 -0
- package/dist/core/runtime/headless-pi.js +1 -0
- package/dist/core/runtime/host.d.ts +59 -0
- package/dist/core/runtime/host.js +3 -0
- package/dist/core/runtime/interactive-deliver.d.ts +22 -0
- package/dist/core/runtime/interactive-deliver.js +1 -0
- package/dist/core/runtime/invocation.d.ts +9 -0
- package/dist/core/runtime/invocation.js +0 -0
- package/dist/core/runtime/kickoff.d.ts +49 -0
- package/dist/core/runtime/kickoff.js +28 -0
- package/dist/core/runtime/launch-config-worker.d.ts +1 -0
- package/dist/core/runtime/launch-config-worker.js +1 -0
- package/dist/core/runtime/launch-prompt.d.ts +8 -0
- package/dist/core/runtime/launch-prompt.js +4 -0
- package/dist/core/runtime/launch-target.d.ts +34 -0
- package/dist/core/runtime/launch-target.js +1 -0
- package/dist/core/runtime/launch.d.ts +194 -0
- package/dist/core/runtime/launch.js +3 -0
- package/dist/core/runtime/ledger.d.ts +10 -0
- package/dist/core/runtime/ledger.js +3 -0
- package/dist/core/runtime/lifecycle.d.ts +34 -0
- package/dist/core/runtime/lifecycle.js +2 -0
- package/dist/core/runtime/managed-provider-cooling.d.ts +24 -0
- package/dist/core/runtime/managed-provider-cooling.js +1 -0
- package/dist/core/runtime/model-registry.d.ts +3 -0
- package/dist/core/runtime/model-registry.js +1 -0
- package/dist/core/runtime/model-selection.d.ts +54 -0
- package/dist/core/runtime/model-selection.js +1 -0
- package/dist/core/runtime/model-swap.d.ts +26 -0
- package/dist/core/runtime/model-swap.js +1 -0
- package/dist/core/runtime/naming.d.ts +69 -0
- package/dist/core/runtime/naming.js +14 -0
- package/dist/core/runtime/nerd-font.d.ts +46 -0
- package/dist/core/runtime/nerd-font.js +2 -0
- package/dist/core/runtime/node-id-token.d.ts +6 -0
- package/dist/core/runtime/node-id-token.js +1 -0
- package/dist/core/runtime/node-read.d.ts +51 -0
- package/dist/core/runtime/node-read.js +3 -0
- package/dist/core/runtime/nodes.d.ts +138 -0
- package/dist/core/runtime/nodes.js +1 -0
- package/dist/core/runtime/outcome-document.d.ts +59 -0
- package/dist/core/runtime/outcome-document.js +1 -0
- package/dist/core/runtime/package-health.d.ts +34 -0
- package/dist/core/runtime/package-health.js +4 -0
- package/dist/core/runtime/persona.d.ts +21 -0
- package/dist/core/runtime/persona.js +2 -0
- package/dist/core/runtime/pi-cli.d.ts +8 -0
- package/dist/core/runtime/pi-cli.js +1 -0
- package/dist/core/runtime/pi-vendored.d.ts +28 -0
- package/dist/core/runtime/pi-vendored.js +1 -0
- package/dist/core/runtime/placement-tmux.d.ts +32 -0
- package/dist/core/runtime/placement-tmux.js +1 -0
- package/dist/core/runtime/placement.d.ts +100 -0
- package/dist/core/runtime/placement.js +1 -0
- package/dist/core/runtime/progress-bar.d.ts +13 -0
- package/dist/core/runtime/progress-bar.js +2 -0
- package/dist/core/runtime/promote.d.ts +76 -0
- package/dist/core/runtime/promote.js +1 -0
- package/dist/core/runtime/prospective-inventory-cli.d.ts +1 -0
- package/dist/core/runtime/prospective-inventory-cli.js +3 -0
- package/dist/core/runtime/prospective-inventory.d.ts +10 -0
- package/dist/core/runtime/prospective-inventory.js +2 -0
- package/dist/core/runtime/provider-credential-gate.d.ts +4 -0
- package/dist/core/runtime/provider-credential-gate.js +2 -0
- package/dist/core/runtime/recap.d.ts +3 -0
- package/dist/core/runtime/recap.js +27 -0
- package/dist/core/runtime/recovery-hold.d.ts +2 -0
- package/dist/core/runtime/recovery-hold.js +1 -0
- package/dist/core/runtime/recycle.d.ts +14 -0
- package/dist/core/runtime/recycle.js +1 -0
- package/dist/core/runtime/reopen.d.ts +38 -0
- package/dist/core/runtime/reopen.js +1 -0
- package/dist/core/runtime/reset.d.ts +68 -0
- package/dist/core/runtime/reset.js +1 -0
- package/dist/core/runtime/resume-root.d.ts +34 -0
- package/dist/core/runtime/resume-root.js +11 -0
- package/dist/core/runtime/revive-all.d.ts +57 -0
- package/dist/core/runtime/revive-all.js +1 -0
- package/dist/core/runtime/revive.d.ts +105 -0
- package/dist/core/runtime/revive.js +3 -0
- package/dist/core/runtime/roadmap.d.ts +24 -0
- package/dist/core/runtime/roadmap.js +15 -0
- package/dist/core/runtime/run-command.d.ts +36 -0
- package/dist/core/runtime/run-command.js +1 -0
- package/dist/core/runtime/session-branch.d.ts +7 -0
- package/dist/core/runtime/session-branch.js +1 -0
- package/dist/core/runtime/session-cycles.d.ts +45 -0
- package/dist/core/runtime/session-cycles.js +1 -0
- package/dist/core/runtime/session-list-cache.d.ts +37 -0
- package/dist/core/runtime/session-list-cache.js +1 -0
- package/dist/core/runtime/session-visibility.d.ts +37 -0
- package/dist/core/runtime/session-visibility.js +1 -0
- package/dist/core/runtime/setup-marker.d.ts +8 -0
- package/dist/core/runtime/setup-marker.js +1 -0
- package/dist/core/runtime/shell-expansion.d.ts +32 -0
- package/dist/core/runtime/shell-expansion.js +9 -0
- package/dist/core/runtime/situational-context.d.ts +19 -0
- package/dist/core/runtime/situational-context.js +2 -0
- package/dist/core/runtime/situational-live.d.ts +9 -0
- package/dist/core/runtime/situational-live.js +1 -0
- package/dist/core/runtime/spawn-env.d.ts +54 -0
- package/dist/core/runtime/spawn-env.js +1 -0
- package/dist/core/runtime/spawn.d.ts +155 -0
- package/dist/core/runtime/spawn.js +3 -0
- package/dist/core/runtime/stamp/channel.d.ts +20 -0
- package/dist/core/runtime/stamp/channel.js +1 -0
- package/dist/core/runtime/stamp/protocol.d.ts +90 -0
- package/dist/core/runtime/stamp/protocol.js +1 -0
- package/dist/core/runtime/stop-guard.d.ts +31 -0
- package/dist/core/runtime/stop-guard.js +8 -0
- package/dist/core/runtime/stop-signals.d.ts +16 -0
- package/dist/core/runtime/stop-signals.js +1 -0
- package/dist/core/runtime/stream-watchdog.d.ts +54 -0
- package/dist/core/runtime/stream-watchdog.js +1 -0
- package/dist/core/runtime/structured-output.d.ts +91 -0
- package/dist/core/runtime/structured-output.js +5 -0
- package/dist/core/runtime/surface-bg.d.ts +13 -0
- package/dist/core/runtime/surface-bg.js +1 -0
- package/dist/core/runtime/tmux-bindings.d.ts +30 -0
- package/dist/core/runtime/tmux-bindings.js +4 -0
- package/dist/core/runtime/tmux-chrome.d.ts +2 -0
- package/dist/core/runtime/tmux-chrome.js +1 -0
- package/dist/core/runtime/tmux-driver.d.ts +314 -0
- package/dist/core/runtime/tmux-driver.js +6 -0
- package/dist/core/runtime/tmux-handoff.d.ts +36 -0
- package/dist/core/runtime/tmux-handoff.js +10 -0
- package/dist/core/runtime/tool-group-summary.d.ts +19 -0
- package/dist/core/runtime/tool-group-summary.js +6 -0
- package/dist/core/runtime/turn-visibility.d.ts +10 -0
- package/dist/core/runtime/turn-visibility.js +1 -0
- package/dist/core/runtime/view-socket.d.ts +21 -0
- package/dist/core/runtime/view-socket.js +1 -0
- package/dist/core/runtime/warm-pool.d.ts +65 -0
- package/dist/core/runtime/warm-pool.js +1 -0
- package/dist/core/scope.d.ts +32 -0
- package/dist/core/scope.js +1 -0
- package/dist/core/scoped-state/db.d.ts +17 -0
- package/dist/core/scoped-state/db.js +2 -0
- package/dist/core/scoped-state/migrate.d.ts +8 -0
- package/dist/core/scoped-state/migrate.js +3 -0
- package/dist/core/scoped-state/paths.d.ts +9 -0
- package/dist/core/scoped-state/paths.js +1 -0
- package/dist/core/scoped-state/profiles.d.ts +27 -0
- package/dist/core/scoped-state/profiles.js +1 -0
- package/dist/core/scoped-state/providers.d.ts +24 -0
- package/dist/core/scoped-state/providers.js +1 -0
- package/dist/core/scoped-state/schema.d.ts +6 -0
- package/dist/core/scoped-state/schema.js +16 -0
- package/dist/core/scoped-state/settings.d.ts +28 -0
- package/dist/core/scoped-state/settings.js +1 -0
- package/dist/core/scopes.d.ts +17 -0
- package/dist/core/scopes.js +1 -0
- package/dist/core/secrets.d.ts +40 -0
- package/dist/core/secrets.js +2 -0
- package/dist/core/self-update.d.ts +27 -0
- package/dist/core/self-update.js +1 -0
- package/dist/core/session-model/session-state.d.ts +53 -0
- package/dist/core/session-model/session-state.js +1 -0
- package/dist/core/shell-segments.d.ts +42 -0
- package/dist/core/shell-segments.js +4 -0
- package/dist/core/spaces/cache-env.d.ts +2 -0
- package/dist/core/spaces/cache-env.js +1 -0
- package/dist/core/spaces/file-root.d.ts +23 -0
- package/dist/core/spaces/file-root.js +1 -0
- package/dist/core/spaces/mounts.d.ts +34 -0
- package/dist/core/spaces/mounts.js +1 -0
- package/dist/core/spaces/open-beneath.d.ts +71 -0
- package/dist/core/spaces/open-beneath.js +1 -0
- package/dist/core/spaces/permissions.d.ts +19 -0
- package/dist/core/spaces/permissions.js +1 -0
- package/dist/core/spaces/process.d.ts +41 -0
- package/dist/core/spaces/process.js +1 -0
- package/dist/core/spaces/runtime-home.d.ts +5 -0
- package/dist/core/spaces/runtime-home.js +1 -0
- package/dist/core/spaces/space.d.ts +8 -0
- package/dist/core/spaces/space.js +2 -0
- package/dist/core/spaces/stop.d.ts +21 -0
- package/dist/core/spaces/stop.js +2 -0
- package/dist/core/spaces/users.d.ts +19 -0
- package/dist/core/spaces/users.js +1 -0
- package/dist/core/spawn.d.ts +15 -0
- package/dist/core/spawn.js +1 -0
- package/dist/core/sqlite-statements.d.ts +4 -0
- package/dist/core/sqlite-statements.js +1 -0
- package/dist/core/stdout-errors.d.ts +3 -0
- package/dist/core/stdout-errors.js +1 -0
- package/dist/core/storage/attachments.d.ts +33 -0
- package/dist/core/storage/attachments.js +1 -0
- package/dist/core/storage/client.d.ts +109 -0
- package/dist/core/storage/client.js +3 -0
- package/dist/core/storage/download.d.ts +24 -0
- package/dist/core/storage/download.js +1 -0
- package/dist/core/storage/shares.d.ts +32 -0
- package/dist/core/storage/shares.js +1 -0
- package/dist/core/storage/tables.d.ts +63 -0
- package/dist/core/storage/tables.js +3 -0
- package/dist/core/subscription-state.d.ts +121 -0
- package/dist/core/subscription-state.js +4 -0
- package/dist/core/substrate/delivery/corpus.d.ts +27 -0
- package/dist/core/substrate/delivery/corpus.js +3 -0
- package/dist/core/substrate/delivery/deliver.d.ts +76 -0
- package/dist/core/substrate/delivery/deliver.js +6 -0
- package/dist/core/substrate/delivery/listings.d.ts +30 -0
- package/dist/core/substrate/delivery/listings.js +7 -0
- package/dist/core/substrate/delivery/match.d.ts +28 -0
- package/dist/core/substrate/delivery/match.js +1 -0
- package/dist/core/substrate/delivery/plan.d.ts +67 -0
- package/dist/core/substrate/delivery/plan.js +3 -0
- package/dist/core/substrate/delivery/render-boot.d.ts +20 -0
- package/dist/core/substrate/delivery/render-boot.js +54 -0
- package/dist/core/substrate/delivery/render-event.d.ts +54 -0
- package/dist/core/substrate/delivery/render-event.js +8 -0
- package/dist/core/substrate/delivery/sub-persona-menu.d.ts +2 -0
- package/dist/core/substrate/delivery/sub-persona-menu.js +6 -0
- package/dist/core/substrate/delivery/types.d.ts +30 -0
- package/dist/core/substrate/delivery/types.js +0 -0
- package/dist/core/substrate/gate-explain.d.ts +35 -0
- package/dist/core/substrate/gate-explain.js +1 -0
- package/dist/core/substrate/schema.d.ts +29 -0
- package/dist/core/substrate/schema.js +1 -0
- package/dist/core/substrate/subject-fields.d.ts +48 -0
- package/dist/core/substrate/subject-fields.js +1 -0
- package/dist/core/substrate/subject.d.ts +13 -0
- package/dist/core/substrate/subject.js +1 -0
- package/dist/core/termrender/code-doc.d.ts +12 -0
- package/dist/core/termrender/code-doc.js +5 -0
- package/dist/core/termrender/display.d.ts +16 -0
- package/dist/core/termrender/display.js +2 -0
- package/dist/core/termrender/termrender.d.ts +71 -0
- package/dist/core/termrender/termrender.js +14 -0
- package/dist/core/termrender/version.d.ts +1 -0
- package/dist/core/termrender/version.js +1 -0
- package/dist/core/timing.d.ts +11 -0
- package/dist/core/timing.js +2 -0
- package/dist/core/tui/draw.d.ts +103 -0
- package/dist/core/tui/draw.js +2 -0
- package/dist/core/tui/fuzzy.d.ts +9 -0
- package/dist/core/tui/fuzzy.js +1 -0
- package/dist/core/tui/markdown.d.ts +17 -0
- package/dist/core/tui/markdown.js +3 -0
- package/dist/core/tui/page-host.d.ts +31 -0
- package/dist/core/tui/page-host.js +1 -0
- package/dist/core/tui/panel.d.ts +45 -0
- package/dist/core/tui/panel.js +1 -0
- package/dist/core/tui/terminal.d.ts +23 -0
- package/dist/core/tui/terminal.js +2 -0
- package/dist/core/user-settings.d.ts +377 -0
- package/dist/core/user-settings.js +1 -0
- package/dist/core/wake.d.ts +89 -0
- package/dist/core/wake.js +1 -0
- package/dist/core/worktree-close.d.ts +4 -0
- package/dist/core/worktree-close.js +6 -0
- package/dist/core/worktree-containment.d.ts +14 -0
- package/dist/core/worktree-containment.js +3 -0
- package/dist/core/worktree-landing.d.ts +44 -0
- package/dist/core/worktree-landing.js +4 -0
- package/dist/core/worktree-mutation-async.d.ts +13 -0
- package/dist/core/worktree-mutation-async.js +10 -0
- package/dist/core/worktree-quarantine.d.ts +19 -0
- package/dist/core/worktree-quarantine.js +1 -0
- package/dist/core/worktree-remove.d.ts +15 -0
- package/dist/core/worktree-remove.js +1 -0
- package/dist/core/worktree-sweep.d.ts +60 -0
- package/dist/core/worktree-sweep.js +6 -0
- package/dist/core/worktree.d.ts +120 -0
- package/dist/core/worktree.js +18 -0
- package/dist/daemon/analytics/compute.d.ts +37 -0
- package/dist/daemon/analytics/compute.js +1 -0
- package/dist/daemon/analytics/scan-worker.d.ts +1 -0
- package/dist/daemon/analytics/scan-worker.js +2 -0
- package/dist/daemon/analytics/scan.d.ts +37 -0
- package/dist/daemon/analytics/scan.js +1 -0
- package/dist/daemon/api/app-listener.d.ts +22 -0
- package/dist/daemon/api/app-listener.js +24 -0
- package/dist/daemon/api/bridge.d.ts +63 -0
- package/dist/daemon/api/bridge.js +8 -0
- package/dist/daemon/api/deferred-head.d.ts +14 -0
- package/dist/daemon/api/deferred-head.js +4 -0
- package/dist/daemon/api/handlers/analytics.d.ts +2 -0
- package/dist/daemon/api/handlers/analytics.js +1 -0
- package/dist/daemon/api/handlers/app-profiles.d.ts +17 -0
- package/dist/daemon/api/handlers/app-profiles.js +1 -0
- package/dist/daemon/api/handlers/attach.d.ts +2 -0
- package/dist/daemon/api/handlers/attach.js +1 -0
- package/dist/daemon/api/handlers/bash-jobs.d.ts +2 -0
- package/dist/daemon/api/handlers/bash-jobs.js +1 -0
- package/dist/daemon/api/handlers/bash.d.ts +2 -0
- package/dist/daemon/api/handlers/bash.js +1 -0
- package/dist/daemon/api/handlers/broker-ops.d.ts +5 -0
- package/dist/daemon/api/handlers/broker-ops.js +1 -0
- package/dist/daemon/api/handlers/broker-recovery.d.ts +4 -0
- package/dist/daemon/api/handlers/broker-recovery.js +1 -0
- package/dist/daemon/api/handlers/broker-signals.d.ts +19 -0
- package/dist/daemon/api/handlers/broker-signals.js +2 -0
- package/dist/daemon/api/handlers/canvas.d.ts +7 -0
- package/dist/daemon/api/handlers/canvas.js +6 -0
- package/dist/daemon/api/handlers/chat-inventory.d.ts +2 -0
- package/dist/daemon/api/handlers/chat-inventory.js +1 -0
- package/dist/daemon/api/handlers/crons.d.ts +2 -0
- package/dist/daemon/api/handlers/crons.js +1 -0
- package/dist/daemon/api/handlers/custom-objects.d.ts +10 -0
- package/dist/daemon/api/handlers/custom-objects.js +3 -0
- package/dist/daemon/api/handlers/daemon.d.ts +2 -0
- package/dist/daemon/api/handlers/daemon.js +1 -0
- package/dist/daemon/api/handlers/delivery-retry.d.ts +2 -0
- package/dist/daemon/api/handlers/delivery-retry.js +1 -0
- package/dist/daemon/api/handlers/delivery.d.ts +2 -0
- package/dist/daemon/api/handlers/delivery.js +1 -0
- package/dist/daemon/api/handlers/docs.d.ts +2 -0
- package/dist/daemon/api/handlers/docs.js +1 -0
- package/dist/daemon/api/handlers/feedback-comments.d.ts +2 -0
- package/dist/daemon/api/handlers/feedback-comments.js +3 -0
- package/dist/daemon/api/handlers/files.d.ts +2 -0
- package/dist/daemon/api/handlers/files.js +1 -0
- package/dist/daemon/api/handlers/focus.d.ts +2 -0
- package/dist/daemon/api/handlers/focus.js +1 -0
- package/dist/daemon/api/handlers/health.d.ts +2 -0
- package/dist/daemon/api/handlers/health.js +14 -0
- package/dist/daemon/api/handlers/hook-exec.d.ts +2 -0
- package/dist/daemon/api/handlers/hook-exec.js +1 -0
- package/dist/daemon/api/handlers/human-requests.d.ts +2 -0
- package/dist/daemon/api/handlers/human-requests.js +1 -0
- package/dist/daemon/api/handlers/human.d.ts +2 -0
- package/dist/daemon/api/handlers/human.js +1 -0
- package/dist/daemon/api/handlers/inbox-page.d.ts +4 -0
- package/dist/daemon/api/handlers/inbox-page.js +1 -0
- package/dist/daemon/api/handlers/inbox.d.ts +12 -0
- package/dist/daemon/api/handlers/inbox.js +1 -0
- package/dist/daemon/api/handlers/limits.d.ts +2 -0
- package/dist/daemon/api/handlers/limits.js +1 -0
- package/dist/daemon/api/handlers/llm.d.ts +2 -0
- package/dist/daemon/api/handlers/llm.js +3 -0
- package/dist/daemon/api/handlers/memory-reads.d.ts +4 -0
- package/dist/daemon/api/handlers/memory-reads.js +1 -0
- package/dist/daemon/api/handlers/memory.d.ts +38 -0
- package/dist/daemon/api/handlers/memory.js +8 -0
- package/dist/daemon/api/handlers/messages.d.ts +4 -0
- package/dist/daemon/api/handlers/messages.js +2 -0
- package/dist/daemon/api/handlers/model-config.d.ts +2 -0
- package/dist/daemon/api/handlers/model-config.js +1 -0
- package/dist/daemon/api/handlers/modelauth.d.ts +5 -0
- package/dist/daemon/api/handlers/modelauth.js +1 -0
- package/dist/daemon/api/handlers/node-events.d.ts +44 -0
- package/dist/daemon/api/handlers/node-events.js +6 -0
- package/dist/daemon/api/handlers/node-outcomes.d.ts +2 -0
- package/dist/daemon/api/handlers/node-outcomes.js +1 -0
- package/dist/daemon/api/handlers/node-records.d.ts +2 -0
- package/dist/daemon/api/handlers/node-records.js +3 -0
- package/dist/daemon/api/handlers/nodes.d.ts +17 -0
- package/dist/daemon/api/handlers/nodes.js +1 -0
- package/dist/daemon/api/handlers/objects.d.ts +2 -0
- package/dist/daemon/api/handlers/objects.js +2 -0
- package/dist/daemon/api/handlers/package-docs.d.ts +2 -0
- package/dist/daemon/api/handlers/package-docs.js +1 -0
- package/dist/daemon/api/handlers/profiles.d.ts +11 -0
- package/dist/daemon/api/handlers/profiles.js +1 -0
- package/dist/daemon/api/handlers/prospective-chat-inventory.d.ts +2 -0
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -0
- package/dist/daemon/api/handlers/providers.d.ts +70 -0
- package/dist/daemon/api/handlers/providers.js +1 -0
- package/dist/daemon/api/handlers/questions.d.ts +7 -0
- package/dist/daemon/api/handlers/questions.js +1 -0
- package/dist/daemon/api/handlers/reports.d.ts +6 -0
- package/dist/daemon/api/handlers/reports.js +18 -0
- package/dist/daemon/api/handlers/review-comments.d.ts +2 -0
- package/dist/daemon/api/handlers/review-comments.js +1 -0
- package/dist/daemon/api/handlers/reviews.d.ts +5 -0
- package/dist/daemon/api/handlers/reviews.js +1 -0
- package/dist/daemon/api/handlers/run-routes.d.ts +2 -0
- package/dist/daemon/api/handlers/run-routes.js +1 -0
- package/dist/daemon/api/handlers/runs.d.ts +9 -0
- package/dist/daemon/api/handlers/runs.js +1 -0
- package/dist/daemon/api/handlers/structured-requests.d.ts +2 -0
- package/dist/daemon/api/handlers/structured-requests.js +1 -0
- package/dist/daemon/api/handlers/subscriptions.d.ts +2 -0
- package/dist/daemon/api/handlers/subscriptions.js +1 -0
- package/dist/daemon/api/handlers/telemetry-record.d.ts +4 -0
- package/dist/daemon/api/handlers/telemetry-record.js +1 -0
- package/dist/daemon/api/handlers/transfer.d.ts +15 -0
- package/dist/daemon/api/handlers/transfer.js +1 -0
- package/dist/daemon/api/handlers/validate.d.ts +23 -0
- package/dist/daemon/api/handlers/validate.js +1 -0
- package/dist/daemon/api/handlers/vendor-status.d.ts +8 -0
- package/dist/daemon/api/handlers/vendor-status.js +1 -0
- package/dist/daemon/api/handlers/worktree.d.ts +2 -0
- package/dist/daemon/api/handlers/worktree.js +1 -0
- package/dist/daemon/api/long-poll-wait.d.ts +3 -0
- package/dist/daemon/api/long-poll-wait.js +1 -0
- package/dist/daemon/api/map.d.ts +167 -0
- package/dist/daemon/api/map.js +2 -0
- package/dist/daemon/api/operations.d.ts +18 -0
- package/dist/daemon/api/operations.js +1 -0
- package/dist/daemon/api/principal.d.ts +71 -0
- package/dist/daemon/api/principal.js +1 -0
- package/dist/daemon/api/reader.d.ts +17 -0
- package/dist/daemon/api/reader.js +1 -0
- package/dist/daemon/api/router.d.ts +123 -0
- package/dist/daemon/api/router.js +1 -0
- package/dist/daemon/api/server.d.ts +28 -0
- package/dist/daemon/api/server.js +1 -0
- package/dist/daemon/api/vendor-signin.d.ts +7 -0
- package/dist/daemon/api/vendor-signin.js +77 -0
- package/dist/daemon/api/viewer-presence.d.ts +3 -0
- package/dist/daemon/api/viewer-presence.js +1 -0
- package/dist/daemon/boot-migrations.d.ts +14 -0
- package/dist/daemon/boot-migrations.js +1 -0
- package/dist/daemon/broker-signals/bus.d.ts +30 -0
- package/dist/daemon/broker-signals/bus.js +10 -0
- package/dist/daemon/companion-retire.d.ts +4 -0
- package/dist/daemon/companion-retire.js +1 -0
- package/dist/daemon/control.d.ts +40 -0
- package/dist/daemon/control.js +1 -0
- package/dist/daemon/cron/armed-context.d.ts +25 -0
- package/dist/daemon/cron/armed-context.js +1 -0
- package/dist/daemon/cron/capture.d.ts +22 -0
- package/dist/daemon/cron/capture.js +2 -0
- package/dist/daemon/cron/disposition.d.ts +21 -0
- package/dist/daemon/cron/disposition.js +1 -0
- package/dist/daemon/cron/escalation.d.ts +12 -0
- package/dist/daemon/cron/escalation.js +3 -0
- package/dist/daemon/cron/held.d.ts +4 -0
- package/dist/daemon/cron/held.js +1 -0
- package/dist/daemon/cron/lease-recovery.d.ts +3 -0
- package/dist/daemon/cron/lease-recovery.js +1 -0
- package/dist/daemon/cron/live-runs.d.ts +11 -0
- package/dist/daemon/cron/live-runs.js +1 -0
- package/dist/daemon/cron/passes.d.ts +6 -0
- package/dist/daemon/cron/passes.js +1 -0
- package/dist/daemon/cron/settle.d.ts +28 -0
- package/dist/daemon/cron/settle.js +1 -0
- package/dist/daemon/cron/sinks.d.ts +19 -0
- package/dist/daemon/cron/sinks.js +2 -0
- package/dist/daemon/cron-run.d.ts +31 -0
- package/dist/daemon/cron-run.js +1 -0
- package/dist/daemon/crtrd-cli.d.ts +1 -0
- package/dist/daemon/crtrd-cli.js +1 -0
- package/dist/daemon/crtrd.d.ts +28 -0
- package/dist/daemon/crtrd.js +12 -0
- package/dist/daemon/delivery/run-delivery.d.ts +34 -0
- package/dist/daemon/delivery/run-delivery.js +1 -0
- package/dist/daemon/due-sources.d.ts +15 -0
- package/dist/daemon/due-sources.js +1 -0
- package/dist/daemon/due.d.ts +14 -0
- package/dist/daemon/due.js +11 -0
- package/dist/daemon/fleet.d.ts +79 -0
- package/dist/daemon/fleet.js +19 -0
- package/dist/daemon/http-dispatcher.d.ts +1 -0
- package/dist/daemon/http-dispatcher.js +1 -0
- package/dist/daemon/human/finish.d.ts +24 -0
- package/dist/daemon/human/finish.js +10 -0
- package/dist/daemon/human/settle.d.ts +44 -0
- package/dist/daemon/human/settle.js +1 -0
- package/dist/daemon/human/sweep.d.ts +21 -0
- package/dist/daemon/human/sweep.js +1 -0
- package/dist/daemon/joined-owner.d.ts +5 -0
- package/dist/daemon/joined-owner.js +1 -0
- package/dist/daemon/launcher-events.d.ts +2 -0
- package/dist/daemon/launcher-events.js +1 -0
- package/dist/daemon/manage.d.ts +176 -0
- package/dist/daemon/manage.js +2 -0
- package/dist/daemon/messaging/node-message.d.ts +27 -0
- package/dist/daemon/messaging/node-message.js +1 -0
- package/dist/daemon/park-activity.d.ts +9 -0
- package/dist/daemon/park-activity.js +1 -0
- package/dist/daemon/park-pending.d.ts +18 -0
- package/dist/daemon/park-pending.js +1 -0
- package/dist/daemon/pidfile.d.ts +8 -0
- package/dist/daemon/pidfile.js +1 -0
- package/dist/daemon/profile-delete.d.ts +7 -0
- package/dist/daemon/profile-delete.js +1 -0
- package/dist/daemon/reconcilers/action-lane.d.ts +8 -0
- package/dist/daemon/reconcilers/action-lane.js +1 -0
- package/dist/daemon/reconcilers/bash-deadline.d.ts +27 -0
- package/dist/daemon/reconcilers/bash-deadline.js +2 -0
- package/dist/daemon/reconcilers/broker-supervision.d.ts +88 -0
- package/dist/daemon/reconcilers/broker-supervision.js +4 -0
- package/dist/daemon/reconcilers/controller-death.d.ts +7 -0
- package/dist/daemon/reconcilers/controller-death.js +1 -0
- package/dist/daemon/reconcilers/cron-lane.d.ts +7 -0
- package/dist/daemon/reconcilers/cron-lane.js +1 -0
- package/dist/daemon/reconcilers/delivery-lane.d.ts +9 -0
- package/dist/daemon/reconcilers/delivery-lane.js +8 -0
- package/dist/daemon/reconcilers/fault-retry-backstop.d.ts +41 -0
- package/dist/daemon/reconcilers/fault-retry-backstop.js +1 -0
- package/dist/daemon/reconcilers/grove-instance-sweep.d.ts +36 -0
- package/dist/daemon/reconcilers/grove-instance-sweep.js +1 -0
- package/dist/daemon/reconcilers/live-obligation.d.ts +65 -0
- package/dist/daemon/reconcilers/live-obligation.js +1 -0
- package/dist/daemon/reconcilers/managed-worktree-sweep.d.ts +24 -0
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -0
- package/dist/daemon/reconcilers/node-deadline.d.ts +7 -0
- package/dist/daemon/reconcilers/node-deadline.js +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.d.ts +48 -0
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.d.ts +30 -0
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/terminating.d.ts +5 -0
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/tick.d.ts +20 -0
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -0
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.d.ts +8 -0
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -0
- package/dist/daemon/reconcilers/pending-review-submit.d.ts +7 -0
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -0
- package/dist/daemon/reconcilers/storage-due-work.d.ts +32 -0
- package/dist/daemon/reconcilers/storage-due-work.js +1 -0
- package/dist/daemon/reconcilers/storage-maintenance.d.ts +69 -0
- package/dist/daemon/reconcilers/storage-maintenance.js +8 -0
- package/dist/daemon/reconcilers/structured-request-lane.d.ts +4 -0
- package/dist/daemon/reconcilers/structured-request-lane.js +1 -0
- package/dist/daemon/resume-detector.d.ts +12 -0
- package/dist/daemon/resume-detector.js +1 -0
- package/dist/daemon/review/comment-notify.d.ts +27 -0
- package/dist/daemon/review/comment-notify.js +2 -0
- package/dist/daemon/review/companion.d.ts +8 -0
- package/dist/daemon/review/companion.js +1 -0
- package/dist/daemon/review/deliver.d.ts +5 -0
- package/dist/daemon/review/deliver.js +3 -0
- package/dist/daemon/review/finish.d.ts +27 -0
- package/dist/daemon/review/finish.js +1 -0
- package/dist/daemon/review/sweep.d.ts +4 -0
- package/dist/daemon/review/sweep.js +1 -0
- package/dist/daemon/run-notices.d.ts +49 -0
- package/dist/daemon/run-notices.js +1 -0
- package/dist/daemon/runs/append-section.d.ts +6 -0
- package/dist/daemon/runs/append-section.js +2 -0
- package/dist/daemon/runs/observer.d.ts +14 -0
- package/dist/daemon/runs/observer.js +4 -0
- package/dist/daemon/startup-policy.d.ts +1 -0
- package/dist/daemon/startup-policy.js +1 -0
- package/dist/daemon/structured-requests/boot.d.ts +2 -0
- package/dist/daemon/structured-requests/boot.js +1 -0
- package/dist/daemon/structured-requests/effects.d.ts +4 -0
- package/dist/daemon/structured-requests/effects.js +1 -0
- package/dist/daemon/structured-requests/notifier.d.ts +2 -0
- package/dist/daemon/structured-requests/notifier.js +1 -0
- package/dist/daemon/structured-requests/sidecar.d.ts +3 -0
- package/dist/daemon/structured-requests/sidecar.js +1 -0
- package/dist/daemon/supervise-cadence.d.ts +1 -0
- package/dist/daemon/supervise-cadence.js +1 -0
- package/dist/hook-authoring.d.ts +130 -0
- package/dist/hook-authoring.js +5 -0
- package/dist/hook-process.d.ts +7 -0
- package/dist/hook-process.js +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +1 -0
- package/dist/launcher/bwrap.d.ts +13 -0
- package/dist/launcher/bwrap.js +2 -0
- package/dist/launcher/client.d.ts +4 -0
- package/dist/launcher/client.js +3 -0
- package/dist/launcher/limits/cgroup.d.ts +28 -0
- package/dist/launcher/limits/cgroup.js +2 -0
- package/dist/launcher/limits/log.d.ts +3 -0
- package/dist/launcher/limits/log.js +1 -0
- package/dist/launcher/limits/manager.d.ts +82 -0
- package/dist/launcher/limits/manager.js +1 -0
- package/dist/launcher/limits/policy.d.ts +98 -0
- package/dist/launcher/limits/policy.js +1 -0
- package/dist/launcher/limits/purge-worker.d.ts +8 -0
- package/dist/launcher/limits/purge-worker.js +2 -0
- package/dist/launcher/limits/quota.d.ts +48 -0
- package/dist/launcher/limits/quota.js +4 -0
- package/dist/launcher/limits/settings.d.ts +19 -0
- package/dist/launcher/limits/settings.js +2 -0
- package/dist/launcher/main.d.ts +1 -0
- package/dist/launcher/main.js +3 -0
- package/dist/launcher/netrule.d.ts +1 -0
- package/dist/launcher/netrule.js +1 -0
- package/dist/launcher/scope-directories.d.ts +4 -0
- package/dist/launcher/scope-directories.js +1 -0
- package/dist/launcher/seccomp.d.ts +1 -0
- package/dist/launcher/seccomp.js +1 -0
- package/dist/launcher/spec.d.ts +149 -0
- package/dist/launcher/spec.js +1 -0
- package/dist/launcher/users.d.ts +23 -0
- package/dist/launcher/users.js +7 -0
- package/dist/launcher/validate.d.ts +22 -0
- package/dist/launcher/validate.js +1 -0
- package/dist/migrations/004-canvas-documents/apply.d.ts +10 -0
- package/dist/migrations/004-canvas-documents/apply.js +1 -0
- package/dist/migrations/004-canvas-documents/fields.d.ts +24 -0
- package/dist/migrations/004-canvas-documents/fields.js +2 -0
- package/dist/migrations/004-canvas-documents/index.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/index.js +2 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.d.ts +16 -0
- package/dist/migrations/004-canvas-documents/legacy/discover.js +1 -0
- package/dist/migrations/004-canvas-documents/legacy/history.d.ts +5 -0
- package/dist/migrations/004-canvas-documents/legacy/history.js +2 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.d.ts +7 -0
- package/dist/migrations/004-canvas-documents/legacy/nested.js +1 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.d.ts +14 -0
- package/dist/migrations/004-canvas-documents/legacy/parse.js +1 -0
- package/dist/migrations/004-canvas-documents/legacy/types.d.ts +91 -0
- package/dist/migrations/004-canvas-documents/legacy/types.js +0 -0
- package/dist/migrations/004-canvas-documents/legacy-edges.d.ts +6 -0
- package/dist/migrations/004-canvas-documents/legacy-edges.js +18 -0
- package/dist/migrations/004-canvas-documents/plan.d.ts +102 -0
- package/dist/migrations/004-canvas-documents/plan.js +3 -0
- package/dist/migrations/004-canvas-documents/pointers.d.ts +23 -0
- package/dist/migrations/004-canvas-documents/pointers.js +4 -0
- package/dist/migrations/activation.d.ts +17 -0
- package/dist/migrations/activation.js +2 -0
- package/dist/native/linux/arm64/addon.node +0 -0
- package/dist/native/linux/x64/addon.node +0 -0
- package/dist/native/linux.d.ts +29 -0
- package/dist/native/linux.js +1 -0
- package/dist/pi-extensions/broker-local.d.ts +19 -0
- package/dist/pi-extensions/broker-local.js +2 -0
- package/dist/pi-extensions/canvas-bash-valve.d.ts +23 -0
- package/dist/pi-extensions/canvas-bash-valve.js +7 -0
- package/dist/pi-extensions/canvas-context-intro.d.ts +55 -0
- package/dist/pi-extensions/canvas-context-intro.js +2 -0
- package/dist/pi-extensions/canvas-doc-substrate.d.ts +51 -0
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -0
- package/dist/pi-extensions/canvas-elapsed.d.ts +21 -0
- package/dist/pi-extensions/canvas-elapsed.js +2 -0
- package/dist/pi-extensions/canvas-goal-capture.d.ts +21 -0
- package/dist/pi-extensions/canvas-goal-capture.js +1 -0
- package/dist/pi-extensions/canvas-inbox-watcher.d.ts +26 -0
- package/dist/pi-extensions/canvas-inbox-watcher.js +2 -0
- package/dist/pi-extensions/canvas-passive-context.d.ts +38 -0
- package/dist/pi-extensions/canvas-passive-context.js +14 -0
- package/dist/pi-extensions/canvas-preview-result.d.ts +22 -0
- package/dist/pi-extensions/canvas-preview-result.js +4 -0
- package/dist/pi-extensions/canvas-prompt-scrub.d.ts +13 -0
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -0
- package/dist/pi-extensions/canvas-recap.d.ts +54 -0
- package/dist/pi-extensions/canvas-recap.js +11 -0
- package/dist/pi-extensions/canvas-review-boundary.d.ts +42 -0
- package/dist/pi-extensions/canvas-review-boundary.js +3 -0
- package/dist/pi-extensions/canvas-stamp.d.ts +14 -0
- package/dist/pi-extensions/canvas-stamp.js +2 -0
- package/dist/pi-extensions/canvas-stophook.d.ts +48 -0
- package/dist/pi-extensions/canvas-stophook.js +1 -0
- package/dist/pi-extensions/canvas-structured-output.d.ts +49 -0
- package/dist/pi-extensions/canvas-structured-output.js +19 -0
- package/dist/pi-extensions/canvas-tool-guide.d.ts +14 -0
- package/dist/pi-extensions/canvas-tool-guide.js +9 -0
- package/dist/pi-extensions/envelope-merge.d.ts +13 -0
- package/dist/pi-extensions/envelope-merge.js +8 -0
- package/dist/pi-extensions/system-prompt-entry.d.ts +15 -0
- package/dist/pi-extensions/system-prompt-entry.js +1 -0
- package/dist/prompts/review.d.ts +2 -0
- package/dist/prompts/review.js +110 -0
- package/dist/shared/crtr-version.d.ts +2 -0
- package/dist/shared/crtr-version.js +1 -0
- package/dist/shared/env.d.ts +116 -0
- package/dist/shared/env.js +2 -0
- package/dist/shared/generated-context.d.ts +83 -0
- package/dist/shared/generated-context.js +8 -0
- package/dist/shared/inbox-entry-body.d.ts +22 -0
- package/dist/shared/inbox-entry-body.js +10 -0
- package/dist/shared/inline-ref-grammar.d.ts +53 -0
- package/dist/shared/inline-ref-grammar.js +1 -0
- package/dist/shared/inline-ref-guidance.d.ts +8 -0
- package/dist/shared/inline-ref-guidance.js +2 -0
- package/dist/shared/predicates.d.ts +2 -0
- package/dist/shared/predicates.js +1 -0
- package/dist/shared/shell-quote.d.ts +3 -0
- package/dist/shared/shell-quote.js +1 -0
- package/dist/shared/strip-cd-prefix.d.ts +1 -0
- package/dist/shared/strip-cd-prefix.js +1 -0
- package/dist/shared/tool-groups.d.ts +26 -0
- package/dist/shared/tool-groups.js +1 -0
- package/dist/shared/working-activity.d.ts +9 -0
- package/dist/shared/working-activity.js +1 -0
- package/dist/suppress-experimental-warnings.d.ts +1 -0
- package/dist/suppress-experimental-warnings.js +1 -0
- package/dist/types.d.ts +562 -0
- package/dist/types.js +1 -0
- package/docs/cli/README.md +17 -0
- package/docs/cli/canvas-and-dashboard.md +56 -0
- package/docs/cli/documents-and-preferences.md +52 -0
- package/docs/cli/first-session.md +76 -0
- package/docs/cli/human-inbox.md +34 -0
- package/docs/cli/official-marketplace.md +75 -0
- package/docs/cli/the-viewer.md +80 -0
- package/docs/concepts/README.md +17 -0
- package/docs/concepts/documents.md +52 -0
- package/docs/concepts/lifecycle-and-wakes.md +26 -0
- package/docs/concepts/nodes-and-the-canvas.md +29 -0
- package/docs/concepts/profiles-kinds-and-modes.md +31 -0
- package/docs/concepts/scopes-and-trust.md +39 -0
- package/docs/concepts/why-a-daemon.md +29 -0
- package/docs/plugin/README.md +20 -0
- package/docs/plugin/bundles-and-memory.md +28 -0
- package/docs/plugin/commands.md +22 -0
- package/docs/plugin/deploying.md +34 -0
- package/docs/plugin/errors.md +39 -0
- package/docs/plugin/getting-started.md +23 -0
- package/docs/plugin/output.md +51 -0
- package/docs/plugin/parameters.md +29 -0
- package/docs/public-api.md +75 -0
- package/docs/release-local.md +8 -0
- package/docs/sdk/README.md +90 -0
- package/docs/sdk/bash.md +39 -0
- package/docs/sdk/client.md +297 -0
- package/docs/sdk/docker.md +68 -0
- package/docs/sdk/error-envelope.md +36 -0
- package/docs/sdk/errors.md +111 -0
- package/docs/sdk/files.md +49 -0
- package/docs/sdk/getting-started.md +224 -0
- package/docs/sdk/guides/README.md +19 -0
- package/docs/sdk/guides/apps-on-crouter-cloud.md +115 -0
- package/docs/sdk/guides/apps-with-many-users.md +59 -0
- package/docs/sdk/guides/event-driven-assistant.md +24 -0
- package/docs/sdk/guides/fan-out-pipeline.md +24 -0
- package/docs/sdk/guides/human-approval.md +24 -0
- package/docs/sdk/guides/typed-extraction.md +24 -0
- package/docs/sdk/memory.md +47 -0
- package/docs/sdk/nodes.md +194 -0
- package/docs/sdk/release-notes.md +207 -0
- package/docs/sdk/resources.md +99 -0
- package/docs/sdk/streaming.md +216 -0
- package/docs/sdk/testing.md +163 -0
- package/package.json +158 -4
- package/packages/crouter-identity/dist/index.d.ts +107 -0
- package/packages/crouter-identity/dist/index.js +226 -0
- package/packages/crouter-identity/package.json +33 -0
- package/runtime.lock.json +13864 -0
- package/scripts/build-native-linux.mjs +35 -0
- package/scripts/ensure-native-linux.mjs +72 -0
- package/scripts/install-runtime.mjs +614 -0
- package/scripts/lib/isolation-env.mjs +48 -0
- package/scripts/lib/pack-args.mjs +19 -0
- package/scripts/lib/runtime-deps-key.mjs +50 -0
- package/scripts/lib/update-target.mjs +78 -0
- package/scripts/pack-minify.mjs +114 -0
- package/scripts/patch-pi-tree-root-ordering.mjs +57 -0
- package/scripts/postinstall.mjs +55 -0
- package/scripts/runtime-lock.mjs +26 -0
- package/scripts/runtime-smoke.mjs +54 -0
- package/scripts/self-update.mjs +45 -0
- package/src/native/linux/addon.c +255 -0
|
@@ -0,0 +1,1181 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { createAssistantMessageEventStream, } from '@earendil-works/pi-ai';
|
|
3
|
+
import { anthropicMessagesApi, openAICodexResponsesApi, openAIResponsesApi } from '@earendil-works/pi-ai/compat';
|
|
4
|
+
import { ANTHROPIC_PROVIDER_ID, OPENAI_CHATGPT_PROVIDER_ID, OPENAI_CODEX_PROVIDER_ID, INVALID_REFRESH_TOKEN_BACKOFF_MS, openAIDeviceId, coolingUntilFor, formatCooldowns, formatStatusLine, getProviderLabel, isManagedProvider, isInvalidRefreshTokenError, addSubscription, enrichManagedLoginIdentity, markSubscriptionAuthenticationFailed, markSubscriptionRateLimited, markSubscriptionSuccess, retryAfterMsFromHeaders, retryAfterMsFromError, promoteSubscription, readRotationConfig, readSubscriptionPool, refreshSubscriptionCredential, removeManagedAccount, resolveProviderCandidates, upsertSubscriptionWithUniqueAccount, subscriptionNeedsSuccessWrite, } from '../../../core/subscription-state.js';
|
|
5
|
+
import { classifyRateLimit, describeRateLimitScope, rateLimitHeaders } from '../../../core/rate-limit-scope.js';
|
|
6
|
+
import { readMergedLaunchConfig } from '../../../core/config.js';
|
|
7
|
+
import { expandModelCandidates, modelRequestFromConfig, probeRouteAvailability } from '../../../core/model-routes.js';
|
|
8
|
+
import { envModelExact, envNodeId } from '../../../shared/env.js';
|
|
9
|
+
import { ManagedProviderCoolingError } from '../../../core/runtime/managed-provider-cooling.js';
|
|
10
|
+
import { recordBrokerTurn } from '../../../core/runtime/broker/daemon-ops.js';
|
|
11
|
+
import { recognizeProviderError } from '../../../core/provider-error-recognition.js';
|
|
12
|
+
import { normalizeProviderFailure, providerFailureDiagnostic } from '../../../core/provider-failure.js';
|
|
13
|
+
// A response without Retry-After proves only that THIS attempt was throttled; it
|
|
14
|
+
// does not authorize crouter to invent a five-minute provider-wide outage. Keep
|
|
15
|
+
// a short turn-local probe backoff to avoid an immediate retry loop, then let a
|
|
16
|
+
// fresh turn prove whether the credential is usable again. Real
|
|
17
|
+
// server-provided Retry-After deadlines are still honored exactly.
|
|
18
|
+
const DEFAULT_RATE_LIMIT_BACKOFF_MS = 15 * 1000;
|
|
19
|
+
// Short in-place retry budget for a transient network/5xx blip on the same credential.
|
|
20
|
+
// Once this budget is exhausted, surface the error and rotate to another candidate.
|
|
21
|
+
const TRANSIENT_RETRY_BACKOFFS_MS = [250, 750];
|
|
22
|
+
// After the in-place transient retry budget is exhausted, rotate instead of failing: the
|
|
23
|
+
// credential itself is probably healthy (this is a provider-side blip like "overloaded"),
|
|
24
|
+
// so cool it down only briefly -- long enough to rotate to another credential / fallback
|
|
25
|
+
// provider, short enough that it comes back quickly if it was the only option.
|
|
26
|
+
const TRANSIENT_ROTATE_COOLDOWN_MS = 60 * 1000;
|
|
27
|
+
// A 401/403 before any content means the provider refused this credential (a lapsed
|
|
28
|
+
// plan, a revoked server-side key). That is not a transient blip, but it is not proof
|
|
29
|
+
// the account is gone either: cool the account for 30 minutes and rotate, rather than
|
|
30
|
+
// the 30-day invalid_grant backoff. Exact requests keep the auth error.
|
|
31
|
+
const AUTH_REJECTED_COOLDOWN_MS = 30 * 60 * 1000;
|
|
32
|
+
// A few short outer retries absorb a normal multi-broker collision; if the metadata file
|
|
33
|
+
// remains busy, the provider call still proceeds. Subscription bookkeeping must never turn a
|
|
34
|
+
// healthy model response into a fatal generation fault.
|
|
35
|
+
const SUBSCRIPTION_LOCK_RETRY_BACKOFFS_MS = [25, 75, 150];
|
|
36
|
+
const { streamSimple: streamAnthropicMessages } = anthropicMessagesApi();
|
|
37
|
+
const { streamSimple: streamOpenAICodexResponses } = openAICodexResponsesApi();
|
|
38
|
+
const { streamSimple: streamOpenAIResponses } = openAIResponsesApi();
|
|
39
|
+
function createProviderRotationState(options) {
|
|
40
|
+
return { delegatedProviderStreams: new Map(), transportOnlyExhaustedPasses: 0, ...(options === undefined ? {} : { options: { ...options } }) };
|
|
41
|
+
}
|
|
42
|
+
function configuredValue(state, key, envName) {
|
|
43
|
+
return state.options === undefined ? process.env[envName] : state.options[key];
|
|
44
|
+
}
|
|
45
|
+
function isExactModel(state) {
|
|
46
|
+
return state.options === undefined && envModelExact();
|
|
47
|
+
}
|
|
48
|
+
function classifyProviderSignal(signal, policy) {
|
|
49
|
+
const hadRetryAfterHeader = signal.retryAfterMs !== undefined;
|
|
50
|
+
if (signal.kind === 'rate-limit' && signal.matchedOn === 'status') {
|
|
51
|
+
return { kind: 'rate_limit', status: signal.status, reason: 'http 429', hadRetryAfterHeader };
|
|
52
|
+
}
|
|
53
|
+
if (signal.kind === 'transient-http') {
|
|
54
|
+
if (signal.status === 503 && hadRetryAfterHeader) {
|
|
55
|
+
return { kind: 'rate_limit', status: signal.status, reason: 'http 503 with retry-after', hadRetryAfterHeader };
|
|
56
|
+
}
|
|
57
|
+
return { kind: 'transient', status: signal.status, reason: `http ${signal.status}`, hadRetryAfterHeader };
|
|
58
|
+
}
|
|
59
|
+
const textMatches = signal.textMatches ?? (signal.matchedOn === 'text' && signal.match ? [{ kind: signal.kind, match: signal.match }] : []);
|
|
60
|
+
if (policy.rotateOnAuth && signal.kind === 'auth' && signal.matchedOn === 'status' && !textMatches.some(({ kind }) => kind === 'rate-limit')) {
|
|
61
|
+
return { kind: 'rate_limit', status: signal.status, reason: `http ${signal.status}`, hadRetryAfterHeader, cooldownMs: AUTH_REJECTED_COOLDOWN_MS };
|
|
62
|
+
}
|
|
63
|
+
const transientMatch = textMatches.find(({ kind }) => kind === 'connection' || kind === 'socket' || kind === 'service-unavailable' || kind === 'overloaded');
|
|
64
|
+
if (transientMatch) {
|
|
65
|
+
return { kind: 'transient', status: signal.status, reason: transientMatch.match.toLowerCase(), hadRetryAfterHeader };
|
|
66
|
+
}
|
|
67
|
+
const rateLimitMatch = textMatches.find(({ kind }) => kind === 'rate-limit');
|
|
68
|
+
if (rateLimitMatch) {
|
|
69
|
+
return { kind: 'rate_limit', status: signal.status, reason: rateLimitMatch.match.toLowerCase(), hadRetryAfterHeader };
|
|
70
|
+
}
|
|
71
|
+
return { kind: 'fatal', status: signal.status, reason: 'unclassified', hadRetryAfterHeader };
|
|
72
|
+
}
|
|
73
|
+
function classifyProviderFailure(failure, retryAfterMs, policy) {
|
|
74
|
+
const nested = failure.causes ?? [];
|
|
75
|
+
const code = failure.code ?? nested.find((cause) => cause.code !== undefined)?.code;
|
|
76
|
+
const errno = failure.errno ?? nested.find((cause) => cause.errno !== undefined)?.errno;
|
|
77
|
+
const message = [failure.message, failure.body, ...nested.flatMap((cause) => [cause.message, cause.body])]
|
|
78
|
+
.filter((part) => typeof part === 'string' && part.length > 0)
|
|
79
|
+
.join(' ');
|
|
80
|
+
return classifyProviderSignal(recognizeProviderError({
|
|
81
|
+
status: failure.status,
|
|
82
|
+
retryAfterMs,
|
|
83
|
+
code,
|
|
84
|
+
errno,
|
|
85
|
+
message,
|
|
86
|
+
}), policy);
|
|
87
|
+
}
|
|
88
|
+
/** Test seam for the policy mapping over the shared recognition signal. */
|
|
89
|
+
export function __classifyProviderErrorForTest(error, observed = {}, policy = { rotateOnAuth: false }) {
|
|
90
|
+
return classifyProviderFailure(normalizeProviderFailure(error, { status: observed.status }), observed.retryAfterMs, policy);
|
|
91
|
+
}
|
|
92
|
+
function providerFailureAssistantMessage(model, failure) {
|
|
93
|
+
const message = toAssistantError(model, failure.message);
|
|
94
|
+
message.diagnostics = [providerFailureDiagnostic(failure)];
|
|
95
|
+
return message;
|
|
96
|
+
}
|
|
97
|
+
async function defaultSleep(ms) {
|
|
98
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
99
|
+
}
|
|
100
|
+
// Indirection so tests can inject deterministic waits without real timers.
|
|
101
|
+
let activeSleep = defaultSleep;
|
|
102
|
+
/** Test-only seam: override the sleep implementation used for in-place/wait-out retries. Pass undefined to restore the default. */
|
|
103
|
+
export function __setSleepForTest(fn) {
|
|
104
|
+
activeSleep = fn ?? defaultSleep;
|
|
105
|
+
}
|
|
106
|
+
// After this many CONSECUTIVE route-queue passes in which every failure was
|
|
107
|
+
// transport-level (no HTTP status and no Retry-After header — the provider was
|
|
108
|
+
// never reached at all), the broker process itself is presumed poisoned: a
|
|
109
|
+
// corrupted large TLS upload can leave Node/undici's HTTP/2 session permanently
|
|
110
|
+
// destroyed, after which EVERY provider request from this process fails while
|
|
111
|
+
// curl and fresh processes on the same host succeed. There is no clean in-process
|
|
112
|
+
// heal (the dispatcher cannot be safely re-instantiated), so the recovery is a
|
|
113
|
+
// fresh process: self-terminate via SIGTERM and let the daemon's exit policy
|
|
114
|
+
// respawn this broker against the same session. A genuine full network outage
|
|
115
|
+
// trips this too, and a fresh process cannot heal that one — so the daemon's
|
|
116
|
+
// respawn path probes network reachability before it counts a relaunch, and an
|
|
117
|
+
// offline box parks the node until the network returns instead of spending its
|
|
118
|
+
// respawn budget (daemon/fleet.ts, `deferRespawnWhileOffline`).
|
|
119
|
+
export const POISONED_TRANSPORT_PASS_LIMIT = 2;
|
|
120
|
+
async function defaultTerminatePoisonedProcess(tried) {
|
|
121
|
+
// Only the broker process itself may self-terminate: runBroker stamps
|
|
122
|
+
// CRTR_BROKER_PID with its own pid at boot. Any other host (tests, tooling)
|
|
123
|
+
// keeps the ordinary terminal-error path.
|
|
124
|
+
if (process.env["CRTR_BROKER_PID"] !== String(process.pid))
|
|
125
|
+
return false;
|
|
126
|
+
const routes = tried.split(', ').filter((route) => route !== '');
|
|
127
|
+
const nodeId = envNodeId();
|
|
128
|
+
if (nodeId === undefined || routes.length === 0) {
|
|
129
|
+
throw new Error('poisoned broker is missing CRTR_NODE_ID or attempted routes');
|
|
130
|
+
}
|
|
131
|
+
await recordBrokerTurn(nodeId, {
|
|
132
|
+
event: 'exit-diagnostic',
|
|
133
|
+
exit_diagnostic: {
|
|
134
|
+
schema: 'crtr.execution-exit-diagnostic/v1',
|
|
135
|
+
transport_poison: { consecutive_passes: POISONED_TRANSPORT_PASS_LIMIT, routes },
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
logRotation(`process transport poisoned: ${POISONED_TRANSPORT_PASS_LIMIT} consecutive route-queue passes failed with no HTTP response (tried ${tried}); exiting so the daemon respawns this broker fresh`);
|
|
139
|
+
process.kill(process.pid, "SIGTERM");
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
let activeTerminatePoisonedProcess = defaultTerminatePoisonedProcess;
|
|
143
|
+
/** Test-only seam: override poisoned-process self-termination. Pass undefined to restore the default. */
|
|
144
|
+
export function __setTerminatePoisonedProcessForTest(fn) {
|
|
145
|
+
activeTerminatePoisonedProcess = fn ?? defaultTerminatePoisonedProcess;
|
|
146
|
+
}
|
|
147
|
+
function isSubscriptionLockContention(error) {
|
|
148
|
+
const value = error;
|
|
149
|
+
return value?.code === "ELOCKED" || (typeof value?.message === "string" && /lock file is already being held/i.test(value.message));
|
|
150
|
+
}
|
|
151
|
+
async function recordSubscriptionMutation(description, mutate) {
|
|
152
|
+
for (let attempt = 0;; attempt++) {
|
|
153
|
+
try {
|
|
154
|
+
await mutate();
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
if (!isSubscriptionLockContention(error))
|
|
159
|
+
throw error;
|
|
160
|
+
const backoffMs = SUBSCRIPTION_LOCK_RETRY_BACKOFFS_MS[attempt];
|
|
161
|
+
if (backoffMs === undefined) {
|
|
162
|
+
logRotation(`subscription metadata lock remained busy while ${description}; continuing without failing the provider turn`);
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
await activeSleep(backoffMs);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/** Test-only seam for the bounded, non-fatal subscription bookkeeping path. */
|
|
170
|
+
export async function __recordSubscriptionMutationForTest(description, mutate) {
|
|
171
|
+
return recordSubscriptionMutation(description, mutate);
|
|
172
|
+
}
|
|
173
|
+
// A user/host abort (ESC, a critical-tier interrupt, a torn-down window) is NOT a provider
|
|
174
|
+
// failure — it must never cool down a credential or rotate providers. The upstream pi-ai
|
|
175
|
+
// providers set `reason: "aborted"` / `stopReason: "aborted"` (and throw "Request was aborted")
|
|
176
|
+
// ONLY when the request's AbortSignal fired, so those markers alone are a reliable abort
|
|
177
|
+
// signal; we do NOT require the signal to be threaded back through our own options (it may not
|
|
178
|
+
// be), which is what made an ESC drain both provider pools.
|
|
179
|
+
function isUserAbortEvent(event, signal) {
|
|
180
|
+
if (signal?.aborted)
|
|
181
|
+
return true;
|
|
182
|
+
if (event.type !== "error")
|
|
183
|
+
return false;
|
|
184
|
+
return event.reason === "aborted" || event.error.stopReason === "aborted" || /request was aborted/i.test(event.error.errorMessage ?? "");
|
|
185
|
+
}
|
|
186
|
+
function isUserAbortError(error, signal) {
|
|
187
|
+
if (signal?.aborted)
|
|
188
|
+
return true;
|
|
189
|
+
const value = error;
|
|
190
|
+
const message = [value?.errorMessage, value?.message, error instanceof Error ? error.message : String(error ?? "")]
|
|
191
|
+
.filter((part) => typeof part === "string" && part.length > 0)
|
|
192
|
+
.join(" ");
|
|
193
|
+
return (error instanceof Error && /abort/i.test(error.name)) || /request was aborted|operation was aborted|the user aborted/i.test(message);
|
|
194
|
+
}
|
|
195
|
+
function setStatus(state, text) {
|
|
196
|
+
state.runtimeContext?.ui.setStatus("provider-rotation", text);
|
|
197
|
+
}
|
|
198
|
+
function logRotation(message) {
|
|
199
|
+
process.stderr.write(`[provider-rotation] ${message}\n`);
|
|
200
|
+
}
|
|
201
|
+
function getCurrentModelRef(model) {
|
|
202
|
+
return isManagedProvider(model?.provider) ? { providerId: model.provider, modelId: model.id } : undefined;
|
|
203
|
+
}
|
|
204
|
+
function toAssistantError(model, errorMessage) {
|
|
205
|
+
return {
|
|
206
|
+
role: "assistant",
|
|
207
|
+
content: [],
|
|
208
|
+
api: model.api,
|
|
209
|
+
provider: model.provider,
|
|
210
|
+
model: model.id,
|
|
211
|
+
usage: {
|
|
212
|
+
input: 0,
|
|
213
|
+
output: 0,
|
|
214
|
+
cacheRead: 0,
|
|
215
|
+
cacheWrite: 0,
|
|
216
|
+
totalTokens: 0,
|
|
217
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
|
|
218
|
+
},
|
|
219
|
+
stopReason: "error",
|
|
220
|
+
errorMessage,
|
|
221
|
+
timestamp: Date.now(),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
function loginClientId(cred) {
|
|
225
|
+
return typeof cred.clientId === "string" && cred.clientId.trim() ? cred.clientId.trim() : undefined;
|
|
226
|
+
}
|
|
227
|
+
// Extract an account identity supplied directly by the OAuth credential.
|
|
228
|
+
function loginAccountId(cred) {
|
|
229
|
+
return typeof cred.accountId === "string" && cred.accountId.trim() ? cred.accountId.trim() : undefined;
|
|
230
|
+
}
|
|
231
|
+
// Short, display-only rendering of a Codex account id for `/provider-sub list`, so distinct
|
|
232
|
+
// accounts are observable without dumping the full opaque id.
|
|
233
|
+
function shortAccountId(accountId) {
|
|
234
|
+
return accountId.length > 12 ? `${accountId.slice(0, 8)}\u2026${accountId.slice(-4)}` : accountId;
|
|
235
|
+
}
|
|
236
|
+
// The registered provider exposes its OAuth flow through `provider.auth.oauth`. Composed managed
|
|
237
|
+
// providers retain that flow, so the session registry supplies the Anthropic and Codex flows.
|
|
238
|
+
function oauthFlow(providerId, ctx) {
|
|
239
|
+
const oauth = ctx?.modelRegistry.getProvider(providerId)?.auth.oauth;
|
|
240
|
+
if (!oauth)
|
|
241
|
+
throw new Error(`${getProviderLabel(providerId)} has no OAuth flow registered`);
|
|
242
|
+
return oauth;
|
|
243
|
+
}
|
|
244
|
+
// `refresh` is a pure token exchange that reads only `credential.refresh` and persists
|
|
245
|
+
// nothing; crouter records the rotated token in the selected pool row.
|
|
246
|
+
async function defaultRefreshForProvider(state, providerId, refreshToken, parentSignal, clientId) {
|
|
247
|
+
const localController = parentSignal === undefined ? new AbortController() : undefined;
|
|
248
|
+
const signal = parentSignal ?? localController.signal;
|
|
249
|
+
try {
|
|
250
|
+
const refreshed = await oauthFlow(providerId, state.runtimeContext).refresh({ type: "oauth", refresh: refreshToken, access: "", expires: 0, ...(clientId ? { clientId } : {}) }, signal);
|
|
251
|
+
const nextClientId = loginClientId(refreshed);
|
|
252
|
+
return { refresh: refreshed.refresh, access: refreshed.access, expires: refreshed.expires, ...(nextClientId ? { clientId: nextClientId } : {}) };
|
|
253
|
+
}
|
|
254
|
+
finally {
|
|
255
|
+
localController?.abort();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Indirection so tests can inject refresh failures without real network calls.
|
|
259
|
+
let activeRefreshForProvider;
|
|
260
|
+
/** Test-only seam: override the per-provider refresh function. Pass undefined to restore the default. */
|
|
261
|
+
export function __setRefreshForProviderForTest(fn) {
|
|
262
|
+
activeRefreshForProvider = fn;
|
|
263
|
+
}
|
|
264
|
+
function openBrowser(url) {
|
|
265
|
+
const [cmd, args] = process.platform === "darwin"
|
|
266
|
+
? ["open", [url]]
|
|
267
|
+
: process.platform === "win32"
|
|
268
|
+
? ["cmd", ["/c", "start", "", url]]
|
|
269
|
+
: ["xdg-open", [url]];
|
|
270
|
+
try {
|
|
271
|
+
const child = spawn(cmd, args, { stdio: "ignore", detached: true });
|
|
272
|
+
child.on("error", () => {
|
|
273
|
+
/* best effort -- the manual-code dialog's title carries the URL too */
|
|
274
|
+
});
|
|
275
|
+
child.unref();
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
/* best effort */
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Every account refreshes the same way: the pool holds its value, so an expired token is a
|
|
282
|
+
// token exchange serialized on the pool file's lock. A still-fresh access token takes the
|
|
283
|
+
// side-effect-free fast path and never joins the lock. We do NOT route through pi's public
|
|
284
|
+
// `getApiKey`, which wraps pi-ai's `getOAuthApiKey` and collapses a refresh failure into a
|
|
285
|
+
// generic message; calling `activeRefreshForProvider` directly keeps the real error intact so
|
|
286
|
+
// `isInvalidRefreshTokenError` can classify it (cooldown -> reauth -> cross-provider-fallback).
|
|
287
|
+
async function refreshCredentialIfNeeded(state, providerId, credential, signal) {
|
|
288
|
+
if (!credential.refresh || !credential.access || credential.expires === undefined) {
|
|
289
|
+
throw new Error(`${getProviderLabel(providerId)} subscription "${credential.label}" is missing its credential value`);
|
|
290
|
+
}
|
|
291
|
+
if (credential.expires > Date.now())
|
|
292
|
+
return credential;
|
|
293
|
+
const refreshed = await refreshSubscriptionCredential(providerId, credential.label, (token, clientId) => activeRefreshForProvider?.(providerId, token, signal, clientId) ?? defaultRefreshForProvider(state, providerId, token, signal, clientId));
|
|
294
|
+
return { ...credential, ...refreshed };
|
|
295
|
+
}
|
|
296
|
+
/** Test-only seam: exercises the real `refreshCredentialIfNeeded` (including its locked refresh
|
|
297
|
+
* transaction) without duplicating its logic. */
|
|
298
|
+
export async function __refreshCredentialIfNeededForTest(providerId, credential, signal) {
|
|
299
|
+
return refreshCredentialIfNeeded(createProviderRotationState(), providerId, credential, signal);
|
|
300
|
+
}
|
|
301
|
+
async function defaultLoginForProvider(providerId, ctx) {
|
|
302
|
+
return loginProvider(providerId, ctx);
|
|
303
|
+
}
|
|
304
|
+
let activeLoginForProvider = defaultLoginForProvider;
|
|
305
|
+
/** Test-only seam: override the per-provider login function. Pass undefined to restore the default. */
|
|
306
|
+
export function __setLoginForProviderForTest(fn) {
|
|
307
|
+
activeLoginForProvider = fn ?? defaultLoginForProvider;
|
|
308
|
+
}
|
|
309
|
+
async function reauthenticateCredential(state, providerId, credential) {
|
|
310
|
+
const ctx = state.runtimeContext;
|
|
311
|
+
if (!ctx?.hasUI)
|
|
312
|
+
return undefined;
|
|
313
|
+
ctx.ui.notify(`${getProviderLabel(providerId)} subscription "${credential.label}" needs re-authentication. Opening OAuth login...`, "warning");
|
|
314
|
+
const authenticated = await activeLoginForProvider(providerId, ctx);
|
|
315
|
+
const identity = await enrichManagedLoginIdentity(providerId, authenticated);
|
|
316
|
+
// A failed Anthropic profile lookup leaves identity unknown. Do not carry the old row's identity
|
|
317
|
+
// onto newly issued tokens: it could describe a different account and bypass that account's
|
|
318
|
+
// duplicate check. Codex supplies its identity directly, so it can retain its existing claim
|
|
319
|
+
// only when that provider's login result omits one.
|
|
320
|
+
const reauthedAccountId = identity.accountId ?? (providerId === ANTHROPIC_PROVIDER_ID ? undefined : loginAccountId(authenticated) ?? credential.accountId);
|
|
321
|
+
const { authFailure: _authFailure, clientId: _oldClientId, ...healthyCredential } = credential;
|
|
322
|
+
const reauthedClientId = loginClientId(authenticated);
|
|
323
|
+
const next = {
|
|
324
|
+
...healthyCredential,
|
|
325
|
+
refresh: authenticated.refresh,
|
|
326
|
+
access: authenticated.access,
|
|
327
|
+
expires: authenticated.expires,
|
|
328
|
+
...(reauthedAccountId ? { accountId: reauthedAccountId } : {}),
|
|
329
|
+
...(reauthedClientId ? { clientId: reauthedClientId } : {}),
|
|
330
|
+
rateLimitedUntil: 0,
|
|
331
|
+
lastAttemptAt: Date.now(),
|
|
332
|
+
lastRateLimitedAt: credential.lastRateLimitedAt,
|
|
333
|
+
};
|
|
334
|
+
// Identity-checked upsert: reauthenticating this explicit slot into an account already held by
|
|
335
|
+
// ANOTHER slot throws DuplicateSubscriptionError rather than creating a duplicate quota entry.
|
|
336
|
+
return ((await upsertSubscriptionWithUniqueAccount(providerId, next)).find((entry) => entry.label === next.label) ?? next);
|
|
337
|
+
}
|
|
338
|
+
function defaultStreamForProvider(model, context, options) {
|
|
339
|
+
if (model.provider === ANTHROPIC_PROVIDER_ID) {
|
|
340
|
+
return streamAnthropicMessages(model, context, options);
|
|
341
|
+
}
|
|
342
|
+
if (model.provider === OPENAI_CHATGPT_PROVIDER_ID) {
|
|
343
|
+
return streamOpenAIResponses(model, context, options);
|
|
344
|
+
}
|
|
345
|
+
return streamOpenAICodexResponses(model, context, options);
|
|
346
|
+
}
|
|
347
|
+
// Indirection so tests can inject a fake per-provider stream without real network calls.
|
|
348
|
+
let activeStreamForProvider = defaultStreamForProvider;
|
|
349
|
+
function streamForProvider(model, context, options) {
|
|
350
|
+
return activeStreamForProvider(model, context, options);
|
|
351
|
+
}
|
|
352
|
+
const ANTHROPIC_SERVER_SIDE_FALLBACK_BETA = "server-side-fallback-2026-07-01";
|
|
353
|
+
const ANTHROPIC_SERVER_SIDE_FALLBACK_PRIMARY_MODELS = new Set(["claude-fable-5", "claude-opus-5"]);
|
|
354
|
+
function supportsAnthropicServerSideFallback(model) {
|
|
355
|
+
return ANTHROPIC_SERVER_SIDE_FALLBACK_PRIMARY_MODELS.has(model.id);
|
|
356
|
+
}
|
|
357
|
+
function includesAnthropicBetaToken(value) {
|
|
358
|
+
return value.split(",").some((token) => token.trim() === ANTHROPIC_SERVER_SIDE_FALLBACK_BETA);
|
|
359
|
+
}
|
|
360
|
+
function appendAnthropicFallbackBeta(headers) {
|
|
361
|
+
if (headers instanceof Headers) {
|
|
362
|
+
const next = new Headers(headers);
|
|
363
|
+
const current = next.get("anthropic-beta");
|
|
364
|
+
if (current === null || !includesAnthropicBetaToken(current)) {
|
|
365
|
+
next.set("anthropic-beta", current === null ? ANTHROPIC_SERVER_SIDE_FALLBACK_BETA : `${current},${ANTHROPIC_SERVER_SIDE_FALLBACK_BETA}`);
|
|
366
|
+
}
|
|
367
|
+
return next;
|
|
368
|
+
}
|
|
369
|
+
if (Array.isArray(headers)) {
|
|
370
|
+
const next = headers.map(([name, value]) => [name, value]);
|
|
371
|
+
const index = next.findIndex(([name]) => name.toLowerCase() === "anthropic-beta");
|
|
372
|
+
if (index === -1)
|
|
373
|
+
next.push(["anthropic-beta", ANTHROPIC_SERVER_SIDE_FALLBACK_BETA]);
|
|
374
|
+
else if (!includesAnthropicBetaToken(next[index][1]))
|
|
375
|
+
next[index][1] = `${next[index][1]},${ANTHROPIC_SERVER_SIDE_FALLBACK_BETA}`;
|
|
376
|
+
return next;
|
|
377
|
+
}
|
|
378
|
+
const next = { ...(headers ?? {}) };
|
|
379
|
+
const headerName = Object.keys(next).find((name) => name.toLowerCase() === "anthropic-beta");
|
|
380
|
+
if (headerName === undefined)
|
|
381
|
+
next["anthropic-beta"] = ANTHROPIC_SERVER_SIDE_FALLBACK_BETA;
|
|
382
|
+
else if (!includesAnthropicBetaToken(next[headerName]))
|
|
383
|
+
next[headerName] = `${next[headerName]},${ANTHROPIC_SERVER_SIDE_FALLBACK_BETA}`;
|
|
384
|
+
return next;
|
|
385
|
+
}
|
|
386
|
+
function withAnthropicFallbackBeta(fetch) {
|
|
387
|
+
return (input, init) => {
|
|
388
|
+
const headers = init?.headers ?? (input instanceof Request ? input.headers : undefined);
|
|
389
|
+
return fetch(input, { ...init, headers: appendAnthropicFallbackBeta(headers) });
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
/** Test-only seam: override the per-provider stream factory. Pass undefined to restore the default. */
|
|
393
|
+
export function __setStreamForProviderForTest(fn) {
|
|
394
|
+
activeStreamForProvider = fn ?? defaultStreamForProvider;
|
|
395
|
+
}
|
|
396
|
+
/** Test-only seam: exercise `fallbackRejectionHint` for one rejection discriminant
|
|
397
|
+
* (with an optional resolved-but-rejected candidate) without staging a full turn. */
|
|
398
|
+
// Drives one credential, retrying transient (non-rate-limit) failures in place on the
|
|
399
|
+
// same credential and reporting a classified result for rotation logging.
|
|
400
|
+
// A genuine rate limit ends the attempt immediately (the caller cools the credential down
|
|
401
|
+
// and rotates); a transient blip gets a short in-place retry budget before giving up.
|
|
402
|
+
async function streamProviderAttempt(state, providerId, model, context, options, credential, outer) {
|
|
403
|
+
const policy = { rotateOnAuth: !isExactModel(state) };
|
|
404
|
+
for (let attempt = 1;; attempt++) {
|
|
405
|
+
const attemptAt = Date.now();
|
|
406
|
+
let observedStatus;
|
|
407
|
+
let requestedRetryAfterMs;
|
|
408
|
+
let limitHeaders;
|
|
409
|
+
const useAnthropicServerSideFallback = credential !== undefined
|
|
410
|
+
&& providerId === ANTHROPIC_PROVIDER_ID
|
|
411
|
+
&& supportsAnthropicServerSideFallback(model);
|
|
412
|
+
const streamOptions = {
|
|
413
|
+
...options,
|
|
414
|
+
...(credential ? { apiKey: credential.access } : {}),
|
|
415
|
+
...(useAnthropicServerSideFallback
|
|
416
|
+
? {
|
|
417
|
+
onPayload: async (payload, payloadModel) => {
|
|
418
|
+
const callerPayload = await options?.onPayload?.(payload, payloadModel);
|
|
419
|
+
return { ...(callerPayload === undefined ? payload : callerPayload), fallbacks: "default" };
|
|
420
|
+
},
|
|
421
|
+
// `headers` would overwrite pi-ai's OAuth beta list. Compose at fetch time so the
|
|
422
|
+
// SDK's generated headers stay intact; replace this shim with pi-ai's `fallbacks`
|
|
423
|
+
// option when that upstream option ships.
|
|
424
|
+
fetch: withAnthropicFallbackBeta(options?.fetch ?? globalThis.fetch),
|
|
425
|
+
}
|
|
426
|
+
: {}),
|
|
427
|
+
// Codex fast mode: the ChatGPT backend serves the turn at its priority
|
|
428
|
+
// tier. The wire value is `priority` (`fast` is rejected 400), and the
|
|
429
|
+
// response always echoes `service_tier: "default"` regardless — only
|
|
430
|
+
// generation timing shows whether it took effect.
|
|
431
|
+
...(providerId === OPENAI_CODEX_PROVIDER_ID && state.providerOptions?.[OPENAI_CODEX_PROVIDER_ID]?.fastMode === true
|
|
432
|
+
? {
|
|
433
|
+
onPayload: async (payload, payloadModel) => {
|
|
434
|
+
const callerPayload = await options?.onPayload?.(payload, payloadModel);
|
|
435
|
+
return { ...(callerPayload === undefined ? payload : callerPayload), service_tier: "priority" };
|
|
436
|
+
},
|
|
437
|
+
}
|
|
438
|
+
: {}),
|
|
439
|
+
onResponse: async (response, responseModel) => {
|
|
440
|
+
observedStatus = response.status;
|
|
441
|
+
if (response.status === 429 || response.status === 503) {
|
|
442
|
+
requestedRetryAfterMs = retryAfterMsFromHeaders(response.headers);
|
|
443
|
+
limitHeaders = rateLimitHeaders(response.headers);
|
|
444
|
+
}
|
|
445
|
+
await options?.onResponse?.(response, responseModel);
|
|
446
|
+
},
|
|
447
|
+
};
|
|
448
|
+
const provider = state.runtimeContext?.modelRegistry.getProvider?.(model.provider);
|
|
449
|
+
const inner = isManagedProvider(providerId)
|
|
450
|
+
? streamForProvider(model, context, streamOptions)
|
|
451
|
+
: state.delegatedProviderStreams.get(providerId)?.(model, context, streamOptions)
|
|
452
|
+
?? provider?.streamSimple(model, context, streamOptions)
|
|
453
|
+
?? streamForProvider(model, context, streamOptions);
|
|
454
|
+
const bufferedEvents = [];
|
|
455
|
+
let sawContent = false;
|
|
456
|
+
let committed = false;
|
|
457
|
+
let classification;
|
|
458
|
+
let failure;
|
|
459
|
+
let failureMessage;
|
|
460
|
+
// Events are buffered ONLY until this attempt commits to the provider -- i.e. until the
|
|
461
|
+
// first real content event (thinking/text/toolcall) arrives, after which rotating away is
|
|
462
|
+
// no longer possible. Before commit the buffer lets a clean pre-content rate-limit rotate
|
|
463
|
+
// to another credential with nothing yet shown. Once committed we flush and forward every
|
|
464
|
+
// subsequent event LIVE, so viewers stream token-by-token instead of receiving the whole
|
|
465
|
+
// message at once when the turn finally completes.
|
|
466
|
+
const emit = (event) => {
|
|
467
|
+
if (committed)
|
|
468
|
+
outer.push(event);
|
|
469
|
+
else
|
|
470
|
+
bufferedEvents.push(event);
|
|
471
|
+
};
|
|
472
|
+
const flush = () => {
|
|
473
|
+
for (const event of bufferedEvents)
|
|
474
|
+
outer.push(event);
|
|
475
|
+
bufferedEvents.length = 0;
|
|
476
|
+
committed = true;
|
|
477
|
+
};
|
|
478
|
+
try {
|
|
479
|
+
for await (const event of inner) {
|
|
480
|
+
if (event.type === "error") {
|
|
481
|
+
if (isUserAbortEvent(event, options?.signal)) {
|
|
482
|
+
emit(event);
|
|
483
|
+
flush();
|
|
484
|
+
return { result: "fatal", attemptAt };
|
|
485
|
+
}
|
|
486
|
+
failure = normalizeProviderFailure(event.error, { status: observedStatus });
|
|
487
|
+
failureMessage = failure.message;
|
|
488
|
+
classification = classifyProviderFailure(failure, requestedRetryAfterMs, policy);
|
|
489
|
+
if (classification.kind === "fatal" || sawContent) {
|
|
490
|
+
emit({ ...event, error: providerFailureAssistantMessage(model, failure) });
|
|
491
|
+
flush();
|
|
492
|
+
return { result: "fatal", attemptAt, classification, failure };
|
|
493
|
+
}
|
|
494
|
+
break;
|
|
495
|
+
}
|
|
496
|
+
if (event.type !== "start" && event.type !== "done")
|
|
497
|
+
sawContent = true;
|
|
498
|
+
emit(event);
|
|
499
|
+
// First content event: commit to this provider -- flush the buffer and switch to live
|
|
500
|
+
// forwarding so the rest of the turn streams incrementally.
|
|
501
|
+
if (sawContent && !committed)
|
|
502
|
+
flush();
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
catch (error) {
|
|
506
|
+
if (isUserAbortError(error, options?.signal)) {
|
|
507
|
+
emit({
|
|
508
|
+
type: "error",
|
|
509
|
+
reason: "aborted",
|
|
510
|
+
error: { ...toAssistantError(model, error instanceof Error ? error.message : String(error)), stopReason: "aborted" },
|
|
511
|
+
});
|
|
512
|
+
flush();
|
|
513
|
+
return { result: "fatal", attemptAt };
|
|
514
|
+
}
|
|
515
|
+
requestedRetryAfterMs ??= retryAfterMsFromError(error);
|
|
516
|
+
if (limitHeaders === undefined && error && typeof error === "object" && "headers" in error && error.headers && typeof error.headers === "object") {
|
|
517
|
+
const fromError = rateLimitHeaders(error.headers);
|
|
518
|
+
if (Object.keys(fromError).length)
|
|
519
|
+
limitHeaders = fromError;
|
|
520
|
+
}
|
|
521
|
+
failure = normalizeProviderFailure(error, { status: observedStatus });
|
|
522
|
+
failureMessage = failure.message;
|
|
523
|
+
classification = classifyProviderFailure(failure, requestedRetryAfterMs, policy);
|
|
524
|
+
if (classification.kind === "fatal" || sawContent) {
|
|
525
|
+
emit({
|
|
526
|
+
type: "error",
|
|
527
|
+
reason: "error",
|
|
528
|
+
error: providerFailureAssistantMessage(model, failure),
|
|
529
|
+
});
|
|
530
|
+
flush();
|
|
531
|
+
return { result: "fatal", attemptAt, classification, failure };
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
if (!classification && requestedRetryAfterMs !== undefined && !sawContent) {
|
|
535
|
+
// Some providers signal a 429/503 purely via the response header without ever raising
|
|
536
|
+
// a stream "error" event; treat that the same as an explicit rate-limit classification.
|
|
537
|
+
classification = { kind: "rate_limit", status: observedStatus, reason: "retry-after header on success path", hadRetryAfterHeader: true };
|
|
538
|
+
}
|
|
539
|
+
if (!classification) {
|
|
540
|
+
flush();
|
|
541
|
+
return { result: "success", attemptAt };
|
|
542
|
+
}
|
|
543
|
+
if (classification.kind === "rate_limit") {
|
|
544
|
+
// Only a genuine 429 is classified for scope; a 401/403 or 503 cooldown stays account-wide.
|
|
545
|
+
const rateLimit = classification.status === 429 || (classification.status === undefined && classification.cooldownMs === undefined)
|
|
546
|
+
? classifyRateLimit(limitHeaders, model.id)
|
|
547
|
+
: undefined;
|
|
548
|
+
let retryAfterMs = classification.cooldownMs ?? requestedRetryAfterMs;
|
|
549
|
+
// No Retry-After but a rejected window's reset: wait for the window, not the default backoff.
|
|
550
|
+
if (retryAfterMs === undefined && rateLimit?.resetAt !== undefined)
|
|
551
|
+
retryAfterMs = Math.max(0, rateLimit.resetAt - Date.now());
|
|
552
|
+
if (rateLimit && Object.keys(rateLimit.headers).length) {
|
|
553
|
+
logRotation(`${credential ? `${getProviderLabel(providerId)} subscription "${credential.label}"` : providerId} 429 on ${model.id}: scope=${describeRateLimitScope(rateLimit.scope)} headers=${JSON.stringify(rateLimit.headers)}`);
|
|
554
|
+
}
|
|
555
|
+
return { result: "rate_limited", retryAfterMs, attemptAt, classification, failureMessage, ...(rateLimit ? { rateLimit } : {}) };
|
|
556
|
+
}
|
|
557
|
+
// Transient: retry the SAME credential/provider in place first -- no cooldown for the
|
|
558
|
+
// quick in-place budget.
|
|
559
|
+
const backoffMs = TRANSIENT_RETRY_BACKOFFS_MS[attempt - 1];
|
|
560
|
+
if (backoffMs === undefined) {
|
|
561
|
+
// In-place retry budget exhausted. Rather than hard-failing the turn, hand back a
|
|
562
|
+
// transient-exhausted result so the caller surfaces the error to the user AND rotates
|
|
563
|
+
// to another credential / fallback provider. Nothing is emitted into the stream here:
|
|
564
|
+
// the buffered (pre-content) events are discarded exactly like the rate-limit path, so
|
|
565
|
+
// the rotation target streams a clean turn.
|
|
566
|
+
return { result: "transient_exhausted", attemptAt, classification, attempts: attempt, failure, failureMessage };
|
|
567
|
+
}
|
|
568
|
+
logRotation(`${credential ? `${getProviderLabel(providerId)} subscription "${credential.label}"` : providerId} hit a transient error (${classification.reason}, status=${classification.status ?? "n/a"}); retrying same route in ${backoffMs}ms (attempt ${attempt + 1})`);
|
|
569
|
+
await activeSleep(backoffMs);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
function emitTerminalError(stream, model, message, failure) {
|
|
573
|
+
stream.push({ type: "error", reason: "error", error: failure === undefined ? toAssistantError(model, message) : providerFailureAssistantMessage(model, failure) });
|
|
574
|
+
stream.end();
|
|
575
|
+
}
|
|
576
|
+
function enqueueFreshRouteCandidates(candidates, queuedRouteIds, knownRoutes, seenReadyLabels, cooldownAttempts, localCoolingDeadlines) {
|
|
577
|
+
const now = Date.now();
|
|
578
|
+
for (const [routeId, candidate] of knownRoutes) {
|
|
579
|
+
if (queuedRouteIds.has(routeId) || (localCoolingDeadlines.get(routeId) ?? 0) > now || !isManagedProvider(candidate.providerId))
|
|
580
|
+
continue;
|
|
581
|
+
const seenLabels = seenReadyLabels.get(routeId) ?? new Set();
|
|
582
|
+
const hasFreshCredential = readSubscriptionPool(candidate.providerId).some((credential) => {
|
|
583
|
+
if (credential.authFailure !== undefined || coolingUntilFor(credential, candidate.model.id) > now)
|
|
584
|
+
return false;
|
|
585
|
+
const cooldownAttempt = cooldownAttempts.get(`${routeId}/${credential.label}`);
|
|
586
|
+
return !seenLabels.has(credential.label) || (cooldownAttempt !== undefined && credential.lastAttemptAt > cooldownAttempt);
|
|
587
|
+
});
|
|
588
|
+
if (hasFreshCredential) {
|
|
589
|
+
candidates.push(candidate);
|
|
590
|
+
queuedRouteIds.add(routeId);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
async function switchToRoute(pi, ctx, candidate) {
|
|
595
|
+
if (ctx.model?.provider !== candidate.providerId || ctx.model.id !== candidate.model.id) {
|
|
596
|
+
if (!await pi.setModel(candidate.model))
|
|
597
|
+
return false;
|
|
598
|
+
}
|
|
599
|
+
pi.setThinkingLevel((candidate.thinkingLevel ?? 'off'));
|
|
600
|
+
return ctx.model?.provider === candidate.providerId && ctx.model.id === candidate.model.id;
|
|
601
|
+
}
|
|
602
|
+
function logRouteQueueAdvance(from, to, result) {
|
|
603
|
+
logRotation(`from=${from.providerId}/${from.model.id} from_route_id=${from.routeId} from_credential_source=${from.credentialSource} from_rank=${from.rank} to=${to ? `${to.providerId}/${to.model.id}` : "none"} to_route_id=${to?.routeId ?? "none"} to_credential_source=${to?.credentialSource ?? "none"} to_rank=${to?.rank ?? "none"} reason=${result.classification?.reason ?? result.result}; advancing route queue`);
|
|
604
|
+
}
|
|
605
|
+
// Drive the deterministic route queue from the live rank. Managed routes walk
|
|
606
|
+
// their pool rows; every other declared route is one configured credential.
|
|
607
|
+
async function runManagedProvider(state, model, context, options, stream) {
|
|
608
|
+
const liveThinking = state.runtimeContext?.thinkingLevel === undefined || state.runtimeContext?.thinkingLevel === 'off'
|
|
609
|
+
? undefined
|
|
610
|
+
: state.runtimeContext.thinkingLevel;
|
|
611
|
+
const request = modelRequestFromConfig(`${model.provider}/${model.id}${liveThinking ? `:${liveThinking}` : ''}`, configuredValue(state, 'modelIntent', 'CRTR_MODEL_INTENT'), isExactModel(state));
|
|
612
|
+
const expanded = request ? expandModelCandidates(request, configuredValue(state, 'nodeCwd', 'CRTR_NODE_CWD'), configuredValue(state, 'profileId', 'CRTR_PROFILE_ID')) : [];
|
|
613
|
+
// The node's thinking level holds on its own model; a route to another
|
|
614
|
+
// provider or model takes that cell's thinking.
|
|
615
|
+
const onLiveModel = (candidate) => candidate.providerId === model.provider && candidate.modelId === model.id;
|
|
616
|
+
const liveRank = (expanded.find((candidate) => onLiveModel(candidate) && candidate.thinkingLevel === liveThinking) ?? expanded.find(onLiveModel))?.rank ?? 0;
|
|
617
|
+
const routeCandidates = expanded.slice(liveRank)
|
|
618
|
+
.map((route) => {
|
|
619
|
+
const registry = state.runtimeContext?.modelRegistry;
|
|
620
|
+
const routeModel = registry?.find(route.providerId, route.modelId);
|
|
621
|
+
if (!registry || !routeModel)
|
|
622
|
+
return undefined;
|
|
623
|
+
const availability = probeRouteAvailability(route, registry);
|
|
624
|
+
if (!availability.registered || (!isManagedProvider(route.providerId) && !availability.authenticated))
|
|
625
|
+
return undefined;
|
|
626
|
+
return { routeId: route.routeId, credentialSource: route.credentialSource, rank: route.rank, providerId: route.providerId, model: routeModel, thinkingLevel: onLiveModel(route) ? liveThinking : route.thinkingLevel };
|
|
627
|
+
})
|
|
628
|
+
.filter((candidate) => candidate !== undefined)
|
|
629
|
+
.filter((candidate, index, all) => all.findIndex((other) => other.routeId === candidate.routeId && other.providerId === candidate.providerId && other.model.id === candidate.model.id && other.thinkingLevel === candidate.thinkingLevel) === index);
|
|
630
|
+
const isLiveRoute = (candidate) => candidate.providerId === model.provider && candidate.model.id === model.id && candidate.thinkingLevel === liveThinking;
|
|
631
|
+
// A cooling or unauthenticated managed route contributes its diagnostic and may
|
|
632
|
+
// later re-enter when a credential becomes ready, but it is never selected now.
|
|
633
|
+
const candidates = routeCandidates.filter((candidate) => {
|
|
634
|
+
if (isLiveRoute(candidate) || !isManagedProvider(candidate.providerId))
|
|
635
|
+
return true;
|
|
636
|
+
const pool = readSubscriptionPool(candidate.providerId);
|
|
637
|
+
return pool.length === 0
|
|
638
|
+
? state.runtimeContext.modelRegistry.hasConfiguredAuth(candidate.model)
|
|
639
|
+
: pool.some((entry) => entry.authFailure === undefined && coolingUntilFor(entry, candidate.model.id) <= Date.now());
|
|
640
|
+
});
|
|
641
|
+
if (!candidates.some(isLiveRoute)) {
|
|
642
|
+
candidates.unshift({ routeId: `live:${model.provider}/${model.id}`, credentialSource: 'live', rank: liveRank, providerId: model.provider, model, thinkingLevel: liveThinking });
|
|
643
|
+
}
|
|
644
|
+
const queuedRouteIds = new Set(candidates.map((candidate) => candidate.routeId));
|
|
645
|
+
const knownRoutes = new Map([...routeCandidates, ...candidates].map((candidate) => [candidate.routeId, candidate]));
|
|
646
|
+
const attemptedRoutes = new Set();
|
|
647
|
+
const authFailures = new Set();
|
|
648
|
+
const localCoolingDeadlines = new Map();
|
|
649
|
+
const seenReadyLabels = new Map();
|
|
650
|
+
const cooldownAttempts = new Map();
|
|
651
|
+
let terminalModel = model;
|
|
652
|
+
let lastTransientFailure;
|
|
653
|
+
// The last pre-content 401/403 that cooled a route; its text is the only
|
|
654
|
+
// record of why the routes ran out when they end in a cooling error.
|
|
655
|
+
let lastAuthRejection;
|
|
656
|
+
// The last 429 whose response carried rate-limit headers: recorded on the
|
|
657
|
+
// cooling fault so an incident traces to the account or to one model family.
|
|
658
|
+
let lastRateLimit;
|
|
659
|
+
// Any HTTP response observed this pass (a status, a Retry-After header, or a
|
|
660
|
+
// rate-limit classification) proves this process can still reach a provider,
|
|
661
|
+
// clearing the poisoned-transport suspicion.
|
|
662
|
+
let sawHttpEvidence = false;
|
|
663
|
+
for (let candidate = candidates.shift(); candidate !== undefined; candidate = candidates.shift()) {
|
|
664
|
+
const { routeId, providerId, model: candidateModel } = candidate;
|
|
665
|
+
queuedRouteIds.delete(routeId);
|
|
666
|
+
knownRoutes.set(routeId, candidate);
|
|
667
|
+
attemptedRoutes.add(routeId);
|
|
668
|
+
terminalModel = candidateModel;
|
|
669
|
+
if (!await switchToRoute(state.extensionAPI, state.runtimeContext, candidate)) {
|
|
670
|
+
emitTerminalError(stream, candidateModel, `Provider route ${routeId} is unavailable: failed to select ${providerId}/${candidateModel.id}`);
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
const rawPool = isManagedProvider(providerId) ? readSubscriptionPool(providerId) : [];
|
|
674
|
+
if (!isManagedProvider(providerId) || rawPool.length === 0) {
|
|
675
|
+
const liveKey = isLiveRoute(candidate) ? options?.apiKey : undefined;
|
|
676
|
+
if (isManagedProvider(providerId) && !liveKey && !state.runtimeContext.modelRegistry.hasConfiguredAuth(candidateModel))
|
|
677
|
+
continue;
|
|
678
|
+
const auth = isManagedProvider(providerId) && !liveKey
|
|
679
|
+
? await state.runtimeContext.modelRegistry.getApiKeyAndHeaders(candidateModel)
|
|
680
|
+
: undefined;
|
|
681
|
+
if (isManagedProvider(providerId) && !liveKey && (!auth?.ok || !auth.apiKey))
|
|
682
|
+
continue;
|
|
683
|
+
const headers = { ...options?.headers };
|
|
684
|
+
for (const [name, value] of Object.entries(auth?.ok ? auth.headers ?? {} : {})) {
|
|
685
|
+
for (const existing of Object.keys(headers))
|
|
686
|
+
if (existing.toLowerCase() === name.toLowerCase())
|
|
687
|
+
delete headers[existing];
|
|
688
|
+
headers[name] = value;
|
|
689
|
+
}
|
|
690
|
+
const attemptOptions = auth?.ok ? { ...options, apiKey: auth.apiKey, headers } : options;
|
|
691
|
+
const result = await streamProviderAttempt(state, providerId, candidateModel, context, attemptOptions, undefined, stream);
|
|
692
|
+
if (result.result === 'success' || result.result === 'fatal') {
|
|
693
|
+
state.transportOnlyExhaustedPasses = 0;
|
|
694
|
+
stream.end();
|
|
695
|
+
return;
|
|
696
|
+
}
|
|
697
|
+
if (result.result === 'rate_limited' || result.classification?.status !== undefined || result.classification?.hadRetryAfterHeader === true)
|
|
698
|
+
sawHttpEvidence = true;
|
|
699
|
+
const cooldownMs = result.result === 'rate_limited' ? result.retryAfterMs ?? DEFAULT_RATE_LIMIT_BACKOFF_MS : TRANSIENT_ROTATE_COOLDOWN_MS;
|
|
700
|
+
if (result.result === 'transient_exhausted')
|
|
701
|
+
lastTransientFailure = result;
|
|
702
|
+
if (result.result === 'rate_limited' && (result.classification?.status === 401 || result.classification?.status === 403))
|
|
703
|
+
lastAuthRejection = result;
|
|
704
|
+
if (result.rateLimit && Object.keys(result.rateLimit.headers).length)
|
|
705
|
+
lastRateLimit = { providerId, model: candidateModel, observation: result.rateLimit };
|
|
706
|
+
localCoolingDeadlines.set(routeId, Math.max(localCoolingDeadlines.get(routeId) ?? 0, Date.now() + cooldownMs));
|
|
707
|
+
logRouteQueueAdvance(candidate, candidates[0], result);
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
710
|
+
for (const entry of rawPool)
|
|
711
|
+
if (entry.authFailure === 'invalid_grant')
|
|
712
|
+
authFailures.add(`${providerId}/${entry.label}`);
|
|
713
|
+
const available = rawPool.filter((entry) => entry.authFailure === undefined && coolingUntilFor(entry, candidateModel.id) <= Date.now());
|
|
714
|
+
const seenLabels = seenReadyLabels.get(routeId) ?? new Set();
|
|
715
|
+
for (const credential of available)
|
|
716
|
+
seenLabels.add(credential.label);
|
|
717
|
+
seenReadyLabels.set(routeId, seenLabels);
|
|
718
|
+
let advanceResult;
|
|
719
|
+
for (const credential of available) {
|
|
720
|
+
let freshCredential;
|
|
721
|
+
try {
|
|
722
|
+
freshCredential = await refreshCredentialIfNeeded(state, providerId, credential, options?.signal);
|
|
723
|
+
}
|
|
724
|
+
catch (error) {
|
|
725
|
+
if (!isInvalidRefreshTokenError(error))
|
|
726
|
+
throw error;
|
|
727
|
+
let reauthenticated;
|
|
728
|
+
try {
|
|
729
|
+
reauthenticated = await reauthenticateCredential(state, providerId, credential);
|
|
730
|
+
}
|
|
731
|
+
catch (loginError) {
|
|
732
|
+
state.runtimeContext?.ui.notify(`${getProviderLabel(providerId)} re-authentication failed: ${loginError instanceof Error ? loginError.message : String(loginError)}`, 'error');
|
|
733
|
+
}
|
|
734
|
+
if (!reauthenticated) {
|
|
735
|
+
const attemptAt = Date.now();
|
|
736
|
+
await recordSubscriptionMutation(`recording ${getProviderLabel(providerId)} authentication failure`, () => markSubscriptionAuthenticationFailed(providerId, credential.label, credential, INVALID_REFRESH_TOKEN_BACKOFF_MS, attemptAt));
|
|
737
|
+
authFailures.add(`${providerId}/${credential.label}`);
|
|
738
|
+
continue;
|
|
739
|
+
}
|
|
740
|
+
freshCredential = reauthenticated;
|
|
741
|
+
}
|
|
742
|
+
const result = await streamProviderAttempt(state, providerId, candidateModel, context, options, freshCredential, stream);
|
|
743
|
+
if (result.result === 'success') {
|
|
744
|
+
state.transportOnlyExhaustedPasses = 0;
|
|
745
|
+
if (subscriptionNeedsSuccessWrite(freshCredential, candidateModel.id))
|
|
746
|
+
await recordSubscriptionMutation(`recording ${getProviderLabel(providerId)} success`, () => markSubscriptionSuccess(providerId, freshCredential.label, result.attemptAt, candidateModel.id));
|
|
747
|
+
stream.end();
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
750
|
+
if (result.result === 'fatal') {
|
|
751
|
+
state.transportOnlyExhaustedPasses = 0;
|
|
752
|
+
stream.end();
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
if (result.result === 'rate_limited' || result.classification?.status !== undefined || result.classification?.hadRetryAfterHeader === true)
|
|
756
|
+
sawHttpEvidence = true;
|
|
757
|
+
const cooldownMs = result.result === 'rate_limited' ? result.retryAfterMs ?? DEFAULT_RATE_LIMIT_BACKOFF_MS : TRANSIENT_ROTATE_COOLDOWN_MS;
|
|
758
|
+
if (result.result === 'transient_exhausted')
|
|
759
|
+
lastTransientFailure = result;
|
|
760
|
+
if (result.result === 'rate_limited' && (result.classification?.status === 401 || result.classification?.status === 403))
|
|
761
|
+
lastAuthRejection = result;
|
|
762
|
+
if (result.rateLimit && Object.keys(result.rateLimit.headers).length)
|
|
763
|
+
lastRateLimit = { providerId, model: candidateModel, account: freshCredential.label, observation: result.rateLimit };
|
|
764
|
+
if (result.result === 'rate_limited' && result.retryAfterMs !== undefined) {
|
|
765
|
+
const persisted = await recordSubscriptionMutation(`recording ${getProviderLabel(providerId)} server cooldown`, () => markSubscriptionRateLimited(providerId, freshCredential.label, cooldownMs, result.attemptAt, Date.now(), result.rateLimit?.scope ?? { kind: 'account' }));
|
|
766
|
+
if (persisted)
|
|
767
|
+
cooldownAttempts.set(`${routeId}/${freshCredential.label}`, result.attemptAt);
|
|
768
|
+
else
|
|
769
|
+
localCoolingDeadlines.set(routeId, Math.max(localCoolingDeadlines.get(routeId) ?? 0, Date.now() + cooldownMs));
|
|
770
|
+
}
|
|
771
|
+
else {
|
|
772
|
+
localCoolingDeadlines.set(routeId, Math.max(localCoolingDeadlines.get(routeId) ?? 0, Date.now() + cooldownMs));
|
|
773
|
+
}
|
|
774
|
+
advanceResult = result;
|
|
775
|
+
}
|
|
776
|
+
enqueueFreshRouteCandidates(candidates, queuedRouteIds, knownRoutes, seenReadyLabels, cooldownAttempts, localCoolingDeadlines);
|
|
777
|
+
if (advanceResult !== undefined)
|
|
778
|
+
logRouteQueueAdvance(candidate, candidates[0], advanceResult);
|
|
779
|
+
}
|
|
780
|
+
const coolingDeadline = earliestCoolingDeadline([...knownRoutes.values()], localCoolingDeadlines);
|
|
781
|
+
const tried = [...attemptedRoutes].join(', ');
|
|
782
|
+
if (lastTransientFailure !== undefined) {
|
|
783
|
+
state.transportOnlyExhaustedPasses = sawHttpEvidence ? 0 : state.transportOnlyExhaustedPasses + 1;
|
|
784
|
+
if (state.transportOnlyExhaustedPasses >= POISONED_TRANSPORT_PASS_LIMIT && await activeTerminatePoisonedProcess(tried)) {
|
|
785
|
+
// The stream is deliberately left OPEN: the SIGTERM handler sees a live
|
|
786
|
+
// turn, so it either certifies a clean abort (→ the daemon respawns and
|
|
787
|
+
// resumes with a continuation prompt) or marks the turn dirty (→ the
|
|
788
|
+
// respawn re-cycles the turn). Ending the stream first could settle the
|
|
789
|
+
// turn idle before the signal lands, leaving the respawned node parked
|
|
790
|
+
// with a terminal error and nothing to re-drive it.
|
|
791
|
+
return;
|
|
792
|
+
}
|
|
793
|
+
const detail = lastTransientFailure.failureMessage ?? lastTransientFailure.classification?.reason ?? 'unknown connection failure';
|
|
794
|
+
emitTerminalError(stream, terminalModel, `Provider routes failed after transient retries: ${detail} (tried ${tried})`, lastTransientFailure.failure);
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
state.transportOnlyExhaustedPasses = 0;
|
|
798
|
+
if (coolingDeadline !== undefined) {
|
|
799
|
+
const cooling = `cooling down ~${Math.ceil((coolingDeadline - Date.now()) / 1000)}s`;
|
|
800
|
+
const message = lastAuthRejection === undefined
|
|
801
|
+
? `All provider routes are rate limited (${cooling}; tried ${tried})`
|
|
802
|
+
: `All provider routes are rate limited or rejected (${cooling}; last rejection ${lastAuthRejection.classification.reason}: ${lastAuthRejection.failureMessage ?? 'no error message'}; tried ${tried})`;
|
|
803
|
+
emitCoolingError(stream, terminalModel, new ManagedProviderCoolingError(message, coolingDeadline), lastRateLimit);
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
const authFailure = [...authFailures][0];
|
|
807
|
+
if (authFailure !== undefined) {
|
|
808
|
+
emitTerminalError(stream, terminalModel, `Provider authentication failed (invalid_grant) for ${authFailure}; re-authenticate the credential and retry (tried ${tried})`);
|
|
809
|
+
return;
|
|
810
|
+
}
|
|
811
|
+
emitTerminalError(stream, terminalModel, `All provider routes exhausted (tried ${tried})`);
|
|
812
|
+
}
|
|
813
|
+
// The earliest strictly-future deadline only when every attempted route is cooling.
|
|
814
|
+
function earliestCoolingDeadline(attempted, localCoolingDeadlines) {
|
|
815
|
+
const now = Date.now();
|
|
816
|
+
let earliest;
|
|
817
|
+
let sawRoute = false;
|
|
818
|
+
for (const route of attempted) {
|
|
819
|
+
const localUntil = localCoolingDeadlines.get(route.routeId) ?? 0;
|
|
820
|
+
if (localUntil > now) {
|
|
821
|
+
sawRoute = true;
|
|
822
|
+
earliest = earliest === undefined ? localUntil : Math.min(earliest, localUntil);
|
|
823
|
+
continue;
|
|
824
|
+
}
|
|
825
|
+
if (!isManagedProvider(route.providerId))
|
|
826
|
+
return undefined;
|
|
827
|
+
const pool = readSubscriptionPool(route.providerId).filter((entry) => entry.authFailure === undefined);
|
|
828
|
+
// Routes with no usable credential were never runnable this turn, so they do
|
|
829
|
+
// not defeat the cooling outcome of another route. An auth-failed-only pool
|
|
830
|
+
// is likewise unauthenticated; a valid cooling row still contributes its
|
|
831
|
+
// deadline even when a sibling row carries invalid_grant.
|
|
832
|
+
if (pool.length === 0)
|
|
833
|
+
continue;
|
|
834
|
+
sawRoute = true;
|
|
835
|
+
if (pool.some((entry) => coolingUntilFor(entry, route.model.id) <= now))
|
|
836
|
+
return undefined;
|
|
837
|
+
const routeEarliest = Math.min(...pool.map((entry) => coolingUntilFor(entry, route.model.id)));
|
|
838
|
+
earliest = earliest === undefined ? routeEarliest : Math.min(earliest, routeEarliest);
|
|
839
|
+
}
|
|
840
|
+
return sawRoute ? earliest : undefined;
|
|
841
|
+
}
|
|
842
|
+
// Emit the typed cooling terminal error, attaching its diagnostic (the earliest
|
|
843
|
+
// deadline) to the assistant error message so the deadline survives verbatim into
|
|
844
|
+
// agent_end.messages for the stophook to read.
|
|
845
|
+
function emitCoolingError(stream, model, error, rateLimit) {
|
|
846
|
+
const message = toAssistantError(model, error.message);
|
|
847
|
+
message.diagnostics = [
|
|
848
|
+
error.toDiagnostic(),
|
|
849
|
+
...(rateLimit === undefined ? [] : [providerFailureDiagnostic({
|
|
850
|
+
status: 429,
|
|
851
|
+
ratelimit: {
|
|
852
|
+
scope: describeRateLimitScope(rateLimit.observation.scope),
|
|
853
|
+
// The rate-limited route may be a fallback, not the model the error is stamped with.
|
|
854
|
+
model: `${rateLimit.providerId}/${rateLimit.model.id}`,
|
|
855
|
+
...(rateLimit.observation.claim !== undefined ? { claim: rateLimit.observation.claim } : {}),
|
|
856
|
+
...(rateLimit.account !== undefined ? { account: rateLimit.account } : {}),
|
|
857
|
+
headers: rateLimit.observation.headers,
|
|
858
|
+
},
|
|
859
|
+
})]),
|
|
860
|
+
];
|
|
861
|
+
stream.push({ type: "error", reason: "error", error: message });
|
|
862
|
+
stream.end();
|
|
863
|
+
}
|
|
864
|
+
function streamManagedProvider(state, model, context, options) {
|
|
865
|
+
const stream = createAssistantMessageEventStream();
|
|
866
|
+
runManagedProvider(state, model, context, options, stream).catch((error) => {
|
|
867
|
+
stream.push({
|
|
868
|
+
type: "error",
|
|
869
|
+
reason: "error",
|
|
870
|
+
error: toAssistantError(model, error instanceof Error ? error.message : String(error)),
|
|
871
|
+
});
|
|
872
|
+
stream.end();
|
|
873
|
+
});
|
|
874
|
+
return stream;
|
|
875
|
+
}
|
|
876
|
+
function parseCommand(args) {
|
|
877
|
+
return args
|
|
878
|
+
.trim()
|
|
879
|
+
.split(/\s+/)
|
|
880
|
+
.map((part) => part.trim())
|
|
881
|
+
.filter(Boolean);
|
|
882
|
+
}
|
|
883
|
+
function parseProvider(value) {
|
|
884
|
+
return isManagedProvider(value) ? value : undefined;
|
|
885
|
+
}
|
|
886
|
+
/** Merged config for the NODE's scope (its own cwd/profile), not this
|
|
887
|
+
* process's ambient one. */
|
|
888
|
+
function readTargetLaunchConfig(state, ctx) {
|
|
889
|
+
return readMergedLaunchConfig(ctx.cwd, configuredValue(state, 'profileId', 'CRTR_PROFILE_ID') || null);
|
|
890
|
+
}
|
|
891
|
+
function installDeclaredRouteProviders(state, pi, ctx, config) {
|
|
892
|
+
const providerIds = new Set(Object.values({ ...(config.modelRoutes ?? {}), ...(config.legacyModelRoutes ?? {}) }).map((route) => route.providerId));
|
|
893
|
+
for (const providerId of providerIds) {
|
|
894
|
+
if (isManagedProvider(providerId) || state.delegatedProviderStreams.has(providerId))
|
|
895
|
+
continue;
|
|
896
|
+
const provider = ctx.modelRegistry.getProvider?.(providerId);
|
|
897
|
+
const model = ctx.modelRegistry.getAll?.().find((entry) => entry.provider === providerId);
|
|
898
|
+
if (!provider || !model)
|
|
899
|
+
continue;
|
|
900
|
+
state.delegatedProviderStreams.set(providerId, provider.streamSimple.bind(provider));
|
|
901
|
+
// `api` is required by pi whenever a registration supplies streamSimple.
|
|
902
|
+
// Re-registration merges this wrapper over the existing declaration, so the
|
|
903
|
+
// provider's models, auth, and captured composed transport remain intact.
|
|
904
|
+
pi.registerProvider(providerId, { api: model.api, streamSimple: (model, context, options) => streamManagedProvider(state, model, context, options) });
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
function updateRotationStatus(state, ctx) {
|
|
908
|
+
const current = getCurrentModelRef(ctx.model);
|
|
909
|
+
if (current && isManagedProvider(current.providerId))
|
|
910
|
+
setStatus(state, formatStatusLine(current.providerId, Date.now(), current.modelId));
|
|
911
|
+
}
|
|
912
|
+
/** Restore only when the deterministic route rank improves; no shared-home
|
|
913
|
+
* preferred-model state is needed or consulted. */
|
|
914
|
+
async function restoreHigherRankIfAvailable(state, pi, ctx) {
|
|
915
|
+
if (!readRotationConfig().revertWhenAvailable)
|
|
916
|
+
return false;
|
|
917
|
+
const liveThinking = ctx.thinkingLevel === undefined || ctx.thinkingLevel === 'off' ? undefined : ctx.thinkingLevel;
|
|
918
|
+
const request = modelRequestFromConfig(`${ctx.model?.provider ?? ''}/${ctx.model?.id ?? ''}${liveThinking ? `:${liveThinking}` : ''}`, configuredValue(state, 'modelIntent', 'CRTR_MODEL_INTENT'), isExactModel(state));
|
|
919
|
+
if (!request || !ctx.model)
|
|
920
|
+
return false;
|
|
921
|
+
const candidates = expandModelCandidates(request, configuredValue(state, 'nodeCwd', 'CRTR_NODE_CWD'), configuredValue(state, 'profileId', 'CRTR_PROFILE_ID'));
|
|
922
|
+
const onLiveModel = (candidate) => candidate.providerId === ctx.model?.provider && candidate.modelId === ctx.model?.id;
|
|
923
|
+
const liveRank = (candidates.find((candidate) => onLiveModel(candidate) && candidate.thinkingLevel === liveThinking) ?? candidates.find(onLiveModel))?.rank;
|
|
924
|
+
if (liveRank === undefined)
|
|
925
|
+
return false;
|
|
926
|
+
const preferred = candidates.find((candidate) => candidate.rank < liveRank && resolveProviderCandidates([{
|
|
927
|
+
...candidate,
|
|
928
|
+
...probeRouteAvailability(candidate, ctx.modelRegistry),
|
|
929
|
+
automaticFallback: true,
|
|
930
|
+
}]).candidates.length > 0);
|
|
931
|
+
if (!preferred)
|
|
932
|
+
return false;
|
|
933
|
+
const model = ctx.modelRegistry.find(preferred.providerId, preferred.modelId);
|
|
934
|
+
if (!model || !await pi.setModel(model))
|
|
935
|
+
return false;
|
|
936
|
+
pi.setThinkingLevel((preferred.thinkingLevel ?? 'off'));
|
|
937
|
+
return true;
|
|
938
|
+
}
|
|
939
|
+
// Manual-code input is a human-in-the-loop OAuth round-trip (open link, log in on
|
|
940
|
+
// whatever device, copy the localhost redirect URL back) that routinely exceeds
|
|
941
|
+
// DEFAULT_DIALOG_TIMEOUT_MS -- give it a human-scale bound instead of the ordinary
|
|
942
|
+
// confirm/select default.
|
|
943
|
+
const OAUTH_MANUAL_INPUT_TIMEOUT_MS = 600_000;
|
|
944
|
+
/**
|
|
945
|
+
* pi-ai races the manual-code-paste dialog against its loopback callback server. When the
|
|
946
|
+
* callback supplies a code, the manual-input promise can remain pending, so `run` receives:
|
|
947
|
+
* - `readCode`, a `ctx.ui.input` wrapper with an AbortSignal. Aborting it removes the pending
|
|
948
|
+
* broker entry and emits an `extension_ui_dismiss` frame for exactly that dialog.
|
|
949
|
+
* - `dismissManual`, which aborts the signal at the post-code `onProgress` boundary before
|
|
950
|
+
* the token exchange completes. `onProgress` is emitted only after a code is available, so
|
|
951
|
+
* dismissing then cannot close a dialog the user still needs; `finally` covers paths without
|
|
952
|
+
* progress, and repeated AbortController calls are inert.
|
|
953
|
+
*
|
|
954
|
+
* `undefined` from `readCode` means cancellation or timeout. It throws so OAuth ends directly
|
|
955
|
+
* instead of opening a second paste-only dialog.
|
|
956
|
+
*/
|
|
957
|
+
export async function loginWithManualInputCleanup(ctx, run) {
|
|
958
|
+
const controller = new AbortController();
|
|
959
|
+
const readCode = async (title, placeholder) => {
|
|
960
|
+
const result = await ctx.ui.input(title, placeholder, { timeout: OAUTH_MANUAL_INPUT_TIMEOUT_MS, signal: controller.signal });
|
|
961
|
+
if (result === undefined)
|
|
962
|
+
throw new Error("OAuth login cancelled");
|
|
963
|
+
return result;
|
|
964
|
+
};
|
|
965
|
+
try {
|
|
966
|
+
return await run(readCode, () => controller.abort());
|
|
967
|
+
}
|
|
968
|
+
finally {
|
|
969
|
+
controller.abort();
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
// The manual-code dialog carries the authorize URL in its title (rendered as a tappable link
|
|
973
|
+
// on web), so a headless remote box where `openBrowser` opens nothing still has a real path
|
|
974
|
+
// through login. pi's own `manual_code` message is URL-less, hence these per-provider titles.
|
|
975
|
+
const MANUAL_CODE_DIALOG = {
|
|
976
|
+
[ANTHROPIC_PROVIDER_ID]: {
|
|
977
|
+
title: (url) => `Open this URL to authenticate Claude:\n${url}\n\nPaste the redirect URL or code`,
|
|
978
|
+
placeholder: "http://localhost:53692/callback?...",
|
|
979
|
+
},
|
|
980
|
+
[OPENAI_CODEX_PROVIDER_ID]: {
|
|
981
|
+
title: (url) => `Open this URL to authenticate OpenAI Codex:\n${url}\n\nPaste the redirect URL or code`,
|
|
982
|
+
placeholder: "http://localhost:1455/auth/callback?...",
|
|
983
|
+
},
|
|
984
|
+
[OPENAI_CHATGPT_PROVIDER_ID]: {
|
|
985
|
+
title: (url) => `Open this URL to sign in with ChatGPT:\n${url}\n\nPaste the final redirect URL`,
|
|
986
|
+
placeholder: "http://127.0.0.1:1455/auth/callback?...",
|
|
987
|
+
},
|
|
988
|
+
};
|
|
989
|
+
// This extension adapts the provider OAuth interaction onto `ctx.ui`. The attach viewer and
|
|
990
|
+
// `crtr sys setup` use LoginDialogComponent with `core/auth-interaction.ts`; the broker uses
|
|
991
|
+
// the dialog primitives below.
|
|
992
|
+
async function loginProvider(providerId, ctx) {
|
|
993
|
+
const oauth = oauthFlow(providerId, ctx);
|
|
994
|
+
const manual = MANUAL_CODE_DIALOG[providerId];
|
|
995
|
+
const controller = new AbortController();
|
|
996
|
+
let authorizeUrl;
|
|
997
|
+
// ChatGPT sign-in identifies this install to OpenAI by a stable device UUID.
|
|
998
|
+
const loginOptions = providerId === OPENAI_CHATGPT_PROVIDER_ID ? { getDeviceId: openAIDeviceId } : undefined;
|
|
999
|
+
return loginWithManualInputCleanup(ctx, (readCode, dismissManual) => oauth.login({
|
|
1000
|
+
signal: controller.signal,
|
|
1001
|
+
notify: (event) => {
|
|
1002
|
+
switch (event.type) {
|
|
1003
|
+
case "auth_url":
|
|
1004
|
+
authorizeUrl = event.url;
|
|
1005
|
+
openBrowser(event.url);
|
|
1006
|
+
if (event.instructions)
|
|
1007
|
+
ctx.ui.notify(event.instructions, "info");
|
|
1008
|
+
break;
|
|
1009
|
+
case "device_code":
|
|
1010
|
+
openBrowser(event.verificationUri);
|
|
1011
|
+
ctx.ui.notify(`Enter code ${event.userCode} at ${event.verificationUri}`, "info");
|
|
1012
|
+
break;
|
|
1013
|
+
case "progress":
|
|
1014
|
+
// Progress follows receipt of an OAuth code, so dismiss the now-unneeded manual
|
|
1015
|
+
// dialog before token exchange. The browser path may emit no progress; `finally`
|
|
1016
|
+
// closes that dialog when the OAuth attempt settles.
|
|
1017
|
+
dismissManual();
|
|
1018
|
+
ctx.ui.notify(event.message, "info");
|
|
1019
|
+
break;
|
|
1020
|
+
case "info":
|
|
1021
|
+
ctx.ui.notify(event.message, "info");
|
|
1022
|
+
break;
|
|
1023
|
+
}
|
|
1024
|
+
},
|
|
1025
|
+
prompt: async (prompt) => {
|
|
1026
|
+
if (prompt.type === "manual_code")
|
|
1027
|
+
return readCode(manual.title(authorizeUrl), manual.placeholder);
|
|
1028
|
+
if (prompt.type === "select") {
|
|
1029
|
+
// Codex now opens its login with a browser-vs-device-code choice.
|
|
1030
|
+
const labels = prompt.options.map((option) => option.label);
|
|
1031
|
+
const chosen = await ctx.ui.select(prompt.message, labels);
|
|
1032
|
+
const selected = chosen === undefined ? undefined : prompt.options[labels.indexOf(chosen)];
|
|
1033
|
+
if (!selected)
|
|
1034
|
+
throw new Error("OAuth login cancelled");
|
|
1035
|
+
return selected.id;
|
|
1036
|
+
}
|
|
1037
|
+
return (await ctx.ui.input(prompt.message, prompt.placeholder ?? "")) ?? "";
|
|
1038
|
+
},
|
|
1039
|
+
}, loginOptions)).finally(() => controller.abort());
|
|
1040
|
+
}
|
|
1041
|
+
export function createProviderRotationExtension(options) {
|
|
1042
|
+
const state = createProviderRotationState(options);
|
|
1043
|
+
return async (pi) => {
|
|
1044
|
+
state.extensionAPI = pi;
|
|
1045
|
+
pi.registerProvider(ANTHROPIC_PROVIDER_ID, {
|
|
1046
|
+
api: "anthropic-messages",
|
|
1047
|
+
streamSimple: (model, context, streamOptions) => streamManagedProvider(state, model, context, streamOptions),
|
|
1048
|
+
});
|
|
1049
|
+
pi.registerProvider(OPENAI_CODEX_PROVIDER_ID, {
|
|
1050
|
+
api: "openai-codex-responses",
|
|
1051
|
+
streamSimple: (model, context, streamOptions) => streamManagedProvider(state, model, context, streamOptions),
|
|
1052
|
+
});
|
|
1053
|
+
// pi's built-in `openai` provider (Responses API). Its pool holds ChatGPT sign-ins; with an
|
|
1054
|
+
// empty pool the route falls back to the provider's own auth (OPENAI_API_KEY / auth.json).
|
|
1055
|
+
pi.registerProvider(OPENAI_CHATGPT_PROVIDER_ID, {
|
|
1056
|
+
api: "openai-responses",
|
|
1057
|
+
streamSimple: (model, context, streamOptions) => streamManagedProvider(state, model, context, streamOptions),
|
|
1058
|
+
});
|
|
1059
|
+
pi.on("session_start", async (_event, ctx) => {
|
|
1060
|
+
state.runtimeContext = ctx;
|
|
1061
|
+
const config = readTargetLaunchConfig(state, ctx);
|
|
1062
|
+
state.providerOptions = config.providerOptions;
|
|
1063
|
+
installDeclaredRouteProviders(state, pi, ctx, config);
|
|
1064
|
+
updateRotationStatus(state, ctx);
|
|
1065
|
+
});
|
|
1066
|
+
pi.on("before_agent_start", async (_event, ctx) => {
|
|
1067
|
+
state.runtimeContext = ctx;
|
|
1068
|
+
// Re-read per turn: this is what makes a provider-options toggle apply to
|
|
1069
|
+
// a broker that is already running, on its next turn.
|
|
1070
|
+
state.providerOptions = readTargetLaunchConfig(state, ctx).providerOptions;
|
|
1071
|
+
const restored = await restoreHigherRankIfAvailable(state, pi, ctx);
|
|
1072
|
+
if (restored && ctx.model && isManagedProvider(ctx.model.provider)) {
|
|
1073
|
+
logRotation(`restored higher-ranked route ${ctx.model.provider}/${ctx.model.id}`);
|
|
1074
|
+
setStatus(state, formatStatusLine(ctx.model.provider, Date.now(), ctx.model.id));
|
|
1075
|
+
}
|
|
1076
|
+
});
|
|
1077
|
+
pi.on("model_select", async (_event, ctx) => {
|
|
1078
|
+
state.runtimeContext = ctx;
|
|
1079
|
+
updateRotationStatus(state, ctx);
|
|
1080
|
+
});
|
|
1081
|
+
pi.registerCommand("provider-sub", {
|
|
1082
|
+
description: "Manage subscription credential pools for provider rotation",
|
|
1083
|
+
handler: async (args, ctx) => {
|
|
1084
|
+
const [providerArg, verb, ...rest] = parseCommand(args);
|
|
1085
|
+
const providerId = parseProvider(providerArg);
|
|
1086
|
+
if (!providerId) {
|
|
1087
|
+
ctx.ui.notify("Usage: /provider-sub <anthropic|openai-codex|openai> <list|add|select|rm>", "error");
|
|
1088
|
+
return;
|
|
1089
|
+
}
|
|
1090
|
+
const action = verb === "rm" ? "remove" : verb || "list";
|
|
1091
|
+
if (action === "status" || action === "list") {
|
|
1092
|
+
const pool = readSubscriptionPool(providerId);
|
|
1093
|
+
const lines = [formatStatusLine(providerId, Date.now(), ctx.model?.provider === providerId ? ctx.model.id : undefined), ""];
|
|
1094
|
+
for (const [index, entry] of pool.entries()) {
|
|
1095
|
+
const cooling = formatCooldowns(entry);
|
|
1096
|
+
const cooldown = cooling ? ` ${cooling}` : "";
|
|
1097
|
+
const account = entry.accountId ? ` account=${shortAccountId(entry.accountId)}` : "";
|
|
1098
|
+
lines.push(`${index + 1}. ${entry.label}${account}${cooldown}`);
|
|
1099
|
+
}
|
|
1100
|
+
ctx.ui.notify(lines.join("\n"), "info");
|
|
1101
|
+
return;
|
|
1102
|
+
}
|
|
1103
|
+
if (action === "add") {
|
|
1104
|
+
if (!ctx.hasUI) {
|
|
1105
|
+
ctx.ui.notify(`${getProviderLabel(providerId)} login requires an interactive UI.`, "error");
|
|
1106
|
+
return;
|
|
1107
|
+
}
|
|
1108
|
+
const pool = readSubscriptionPool(providerId);
|
|
1109
|
+
const label = (rest.join(" ") || (await ctx.ui.input(`${getProviderLabel(providerId)} subscription label`, "")) || "").trim();
|
|
1110
|
+
if (!label)
|
|
1111
|
+
return;
|
|
1112
|
+
if (pool.some((entry) => entry.label.toLowerCase() === label.toLowerCase())) {
|
|
1113
|
+
ctx.ui.notify(`${getProviderLabel(providerId)} subscription already exists: ${label}`, "error");
|
|
1114
|
+
return;
|
|
1115
|
+
}
|
|
1116
|
+
try {
|
|
1117
|
+
const cred = await activeLoginForProvider(providerId, ctx);
|
|
1118
|
+
const identity = await enrichManagedLoginIdentity(providerId, cred);
|
|
1119
|
+
// Explicit add always creates a new label, so a matching real account is rejected by
|
|
1120
|
+
// the locked uniqueness gate rather than creating a second quota slot.
|
|
1121
|
+
await addSubscription(providerId, {
|
|
1122
|
+
label,
|
|
1123
|
+
refresh: cred.refresh,
|
|
1124
|
+
access: cred.access,
|
|
1125
|
+
expires: cred.expires,
|
|
1126
|
+
...(identity.accountId ? { accountId: identity.accountId } : {}),
|
|
1127
|
+
...(loginClientId(cred) ? { clientId: loginClientId(cred) } : {}),
|
|
1128
|
+
rateLimitedUntil: 0,
|
|
1129
|
+
lastAttemptAt: 0,
|
|
1130
|
+
lastRateLimitedAt: 0,
|
|
1131
|
+
});
|
|
1132
|
+
logRotation(`added ${getProviderLabel(providerId)} subscription "${label}"`);
|
|
1133
|
+
ctx.ui.notify(`Added ${getProviderLabel(providerId)} subscription: ${label}`, "info");
|
|
1134
|
+
updateRotationStatus(state, ctx);
|
|
1135
|
+
}
|
|
1136
|
+
catch (error) {
|
|
1137
|
+
ctx.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
1138
|
+
}
|
|
1139
|
+
return;
|
|
1140
|
+
}
|
|
1141
|
+
if (action === "select") {
|
|
1142
|
+
const ref = rest.join(" ");
|
|
1143
|
+
if (!ref) {
|
|
1144
|
+
ctx.ui.notify(`Usage: /provider-sub ${providerId} select <label|index>`, "error");
|
|
1145
|
+
return;
|
|
1146
|
+
}
|
|
1147
|
+
try {
|
|
1148
|
+
await promoteSubscription(providerId, ref);
|
|
1149
|
+
logRotation(`selected ${getProviderLabel(providerId)} subscription "${ref}"`);
|
|
1150
|
+
ctx.ui.notify(`Preferred ${getProviderLabel(providerId)} subscription: ${ref}`, "info");
|
|
1151
|
+
updateRotationStatus(state, ctx);
|
|
1152
|
+
}
|
|
1153
|
+
catch (error) {
|
|
1154
|
+
ctx.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
1155
|
+
}
|
|
1156
|
+
return;
|
|
1157
|
+
}
|
|
1158
|
+
if (action === "remove") {
|
|
1159
|
+
const ref = rest.join(" ");
|
|
1160
|
+
if (!ref) {
|
|
1161
|
+
ctx.ui.notify(`Usage: /provider-sub ${providerId} rm <label|index>`, "error");
|
|
1162
|
+
return;
|
|
1163
|
+
}
|
|
1164
|
+
try {
|
|
1165
|
+
await removeManagedAccount(providerId, ref);
|
|
1166
|
+
logRotation(`removed ${getProviderLabel(providerId)} subscription "${ref}"`);
|
|
1167
|
+
ctx.ui.notify(`Removed ${getProviderLabel(providerId)} subscription: ${ref}`, "info");
|
|
1168
|
+
updateRotationStatus(state, ctx);
|
|
1169
|
+
}
|
|
1170
|
+
catch (error) {
|
|
1171
|
+
ctx.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
1172
|
+
}
|
|
1173
|
+
return;
|
|
1174
|
+
}
|
|
1175
|
+
ctx.ui.notify(`Unknown /provider-sub verb: ${verb}`, "error");
|
|
1176
|
+
},
|
|
1177
|
+
});
|
|
1178
|
+
};
|
|
1179
|
+
}
|
|
1180
|
+
const defaultProviderRotationExtension = createProviderRotationExtension();
|
|
1181
|
+
export default defaultProviderRotationExtension;
|