@vibesdotdev/external 0.0.0-stage → 1.0.0-rc.1
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 +68 -2
- package/REFERENCE.md +217 -0
- package/dist/acp/index.d.ts +28 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +31 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/ambient/agent-roster-heartbeat.d.ts +67 -0
- package/dist/ambient/agent-roster-heartbeat.d.ts.map +1 -0
- package/dist/ambient/agent-roster-heartbeat.js +257 -0
- package/dist/ambient/agent-roster-heartbeat.js.map +1 -0
- package/dist/ambient/attempt.d.ts +19 -0
- package/dist/ambient/attempt.d.ts.map +1 -0
- package/dist/ambient/attempt.js +39 -0
- package/dist/ambient/attempt.js.map +1 -0
- package/dist/ambient/cloud-agent-roster-provider.impl.d.ts +13 -0
- package/dist/ambient/cloud-agent-roster-provider.impl.d.ts.map +1 -0
- package/dist/ambient/cloud-agent-roster-provider.impl.js +73 -0
- package/dist/ambient/cloud-agent-roster-provider.impl.js.map +1 -0
- package/dist/ambient/cloud-authenticated-json.d.ts +69 -0
- package/dist/ambient/cloud-authenticated-json.d.ts.map +1 -0
- package/dist/ambient/cloud-authenticated-json.js +108 -0
- package/dist/ambient/cloud-authenticated-json.js.map +1 -0
- package/dist/ambient/cloud-touch-projection.impl.d.ts +74 -0
- package/dist/ambient/cloud-touch-projection.impl.d.ts.map +1 -0
- package/dist/ambient/cloud-touch-projection.impl.js +225 -0
- package/dist/ambient/cloud-touch-projection.impl.js.map +1 -0
- package/dist/ambient/collaboration-settings.d.ts +50 -0
- package/dist/ambient/collaboration-settings.d.ts.map +1 -0
- package/dist/ambient/collaboration-settings.js +57 -0
- package/dist/ambient/collaboration-settings.js.map +1 -0
- package/dist/ambient/collision-notice.d.ts +41 -0
- package/dist/ambient/collision-notice.d.ts.map +1 -0
- package/dist/ambient/collision-notice.js +104 -0
- package/dist/ambient/collision-notice.js.map +1 -0
- package/dist/ambient/default-collision-filter.impl.d.ts +19 -0
- package/dist/ambient/default-collision-filter.impl.d.ts.map +1 -0
- package/dist/ambient/default-collision-filter.impl.js +53 -0
- package/dist/ambient/default-collision-filter.impl.js.map +1 -0
- package/dist/ambient/default-notice-formatter.impl.d.ts +4 -0
- package/dist/ambient/default-notice-formatter.impl.d.ts.map +1 -0
- package/dist/ambient/default-notice-formatter.impl.js +38 -0
- package/dist/ambient/default-notice-formatter.impl.js.map +1 -0
- package/dist/ambient/file-access-ambient-drain.impl.d.ts +21 -0
- package/dist/ambient/file-access-ambient-drain.impl.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient-drain.impl.js +53 -0
- package/dist/ambient/file-access-ambient-drain.impl.js.map +1 -0
- package/dist/ambient/file-access-ambient-drain.subscription.descriptor.d.ts +27 -0
- package/dist/ambient/file-access-ambient-drain.subscription.descriptor.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient-drain.subscription.descriptor.js +27 -0
- package/dist/ambient/file-access-ambient-drain.subscription.descriptor.js.map +1 -0
- package/dist/ambient/file-access-ambient-fs.impl.d.ts +45 -0
- package/dist/ambient/file-access-ambient-fs.impl.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient-fs.impl.js +243 -0
- package/dist/ambient/file-access-ambient-fs.impl.js.map +1 -0
- package/dist/ambient/file-access-ambient-fs.subscription.descriptor.d.ts +32 -0
- package/dist/ambient/file-access-ambient-fs.subscription.descriptor.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient-fs.subscription.descriptor.js +39 -0
- package/dist/ambient/file-access-ambient-fs.subscription.descriptor.js.map +1 -0
- package/dist/ambient/file-access-ambient.impl.d.ts +32 -0
- package/dist/ambient/file-access-ambient.impl.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient.impl.js +231 -0
- package/dist/ambient/file-access-ambient.impl.js.map +1 -0
- package/dist/ambient/file-access-ambient.subscription.descriptor.d.ts +31 -0
- package/dist/ambient/file-access-ambient.subscription.descriptor.d.ts.map +1 -0
- package/dist/ambient/file-access-ambient.subscription.descriptor.js +31 -0
- package/dist/ambient/file-access-ambient.subscription.descriptor.js.map +1 -0
- package/dist/ambient/file-access-shared.d.ts +48 -0
- package/dist/ambient/file-access-shared.d.ts.map +1 -0
- package/dist/ambient/file-access-shared.js +59 -0
- package/dist/ambient/file-access-shared.js.map +1 -0
- package/dist/ambient/message-transport.impl.d.ts +47 -0
- package/dist/ambient/message-transport.impl.d.ts.map +1 -0
- package/dist/ambient/message-transport.impl.js +300 -0
- package/dist/ambient/message-transport.impl.js.map +1 -0
- package/dist/ambient/pending-notices.d.ts +11 -0
- package/dist/ambient/pending-notices.d.ts.map +1 -0
- package/dist/ambient/pending-notices.js +24 -0
- package/dist/ambient/pending-notices.js.map +1 -0
- package/dist/ambient/subsystem-overlap.impl.d.ts +60 -0
- package/dist/ambient/subsystem-overlap.impl.d.ts.map +1 -0
- package/dist/ambient/subsystem-overlap.impl.js +127 -0
- package/dist/ambient/subsystem-overlap.impl.js.map +1 -0
- package/dist/cli/dev.external.hooks-install.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.hooks-install.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-install.descriptor.js +27 -0
- package/dist/cli/dev.external.hooks-install.descriptor.js.map +1 -0
- package/dist/cli/dev.external.hooks-install.impl.d.ts +9 -0
- package/dist/cli/dev.external.hooks-install.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-install.impl.js +57 -0
- package/dist/cli/dev.external.hooks-install.impl.js.map +1 -0
- package/dist/cli/dev.external.hooks-list.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.hooks-list.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-list.descriptor.js +16 -0
- package/dist/cli/dev.external.hooks-list.descriptor.js.map +1 -0
- package/dist/cli/dev.external.hooks-list.impl.d.ts +3 -0
- package/dist/cli/dev.external.hooks-list.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-list.impl.js +68 -0
- package/dist/cli/dev.external.hooks-list.impl.js.map +1 -0
- package/dist/cli/dev.external.hooks-uninstall.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.hooks-uninstall.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-uninstall.descriptor.js +30 -0
- package/dist/cli/dev.external.hooks-uninstall.descriptor.js.map +1 -0
- package/dist/cli/dev.external.hooks-uninstall.impl.d.ts +9 -0
- package/dist/cli/dev.external.hooks-uninstall.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks-uninstall.impl.js +59 -0
- package/dist/cli/dev.external.hooks-uninstall.impl.js.map +1 -0
- package/dist/cli/dev.external.hooks.call.descriptor.d.ts +12 -0
- package/dist/cli/dev.external.hooks.call.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks.call.descriptor.js +51 -0
- package/dist/cli/dev.external.hooks.call.descriptor.js.map +1 -0
- package/dist/cli/dev.external.hooks.call.impl.d.ts +6 -0
- package/dist/cli/dev.external.hooks.call.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks.call.impl.js +162 -0
- package/dist/cli/dev.external.hooks.call.impl.js.map +1 -0
- package/dist/cli/dev.external.hooks.descriptor.d.ts +9 -0
- package/dist/cli/dev.external.hooks.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.hooks.descriptor.js +17 -0
- package/dist/cli/dev.external.hooks.descriptor.js.map +1 -0
- package/dist/cli/dev.external.launch.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.launch.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.launch.descriptor.js +31 -0
- package/dist/cli/dev.external.launch.descriptor.js.map +1 -0
- package/dist/cli/dev.external.launch.impl.d.ts +17 -0
- package/dist/cli/dev.external.launch.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.launch.impl.js +137 -0
- package/dist/cli/dev.external.launch.impl.js.map +1 -0
- package/dist/cli/dev.external.presets-apply.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.presets-apply.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-apply.descriptor.js +36 -0
- package/dist/cli/dev.external.presets-apply.descriptor.js.map +1 -0
- package/dist/cli/dev.external.presets-apply.impl.d.ts +3 -0
- package/dist/cli/dev.external.presets-apply.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-apply.impl.js +119 -0
- package/dist/cli/dev.external.presets-apply.impl.js.map +1 -0
- package/dist/cli/dev.external.presets-list.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.presets-list.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-list.descriptor.js +21 -0
- package/dist/cli/dev.external.presets-list.descriptor.js.map +1 -0
- package/dist/cli/dev.external.presets-list.impl.d.ts +3 -0
- package/dist/cli/dev.external.presets-list.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-list.impl.js +33 -0
- package/dist/cli/dev.external.presets-list.impl.js.map +1 -0
- package/dist/cli/dev.external.presets-show.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.presets-show.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-show.descriptor.js +29 -0
- package/dist/cli/dev.external.presets-show.descriptor.js.map +1 -0
- package/dist/cli/dev.external.presets-show.impl.d.ts +7 -0
- package/dist/cli/dev.external.presets-show.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.presets-show.impl.js +39 -0
- package/dist/cli/dev.external.presets-show.impl.js.map +1 -0
- package/dist/cli/dev.external.presets.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.presets.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.presets.descriptor.js +15 -0
- package/dist/cli/dev.external.presets.descriptor.js.map +1 -0
- package/dist/cli/dev.external.setup.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.setup.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.setup.descriptor.js +29 -0
- package/dist/cli/dev.external.setup.descriptor.js.map +1 -0
- package/dist/cli/dev.external.setup.impl.d.ts +3 -0
- package/dist/cli/dev.external.setup.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.setup.impl.js +129 -0
- package/dist/cli/dev.external.setup.impl.js.map +1 -0
- package/dist/cli/dev.external.skills-generate.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.skills-generate.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.skills-generate.descriptor.js +43 -0
- package/dist/cli/dev.external.skills-generate.descriptor.js.map +1 -0
- package/dist/cli/dev.external.skills-generate.impl.consumer.d.ts +3 -0
- package/dist/cli/dev.external.skills-generate.impl.consumer.d.ts.map +1 -0
- package/dist/cli/dev.external.skills-generate.impl.consumer.js +140 -0
- package/dist/cli/dev.external.skills-generate.impl.consumer.js.map +1 -0
- package/dist/cli/dev.external.skills.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.skills.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.skills.descriptor.js +15 -0
- package/dist/cli/dev.external.skills.descriptor.js.map +1 -0
- package/dist/cli/dev.external.status.descriptor.d.ts +7 -0
- package/dist/cli/dev.external.status.descriptor.d.ts.map +1 -0
- package/dist/cli/dev.external.status.descriptor.js +16 -0
- package/dist/cli/dev.external.status.descriptor.js.map +1 -0
- package/dist/cli/dev.external.status.impl.d.ts +24 -0
- package/dist/cli/dev.external.status.impl.d.ts.map +1 -0
- package/dist/cli/dev.external.status.impl.js +165 -0
- package/dist/cli/dev.external.status.impl.js.map +1 -0
- package/dist/cli/launch/launch.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/launch/launch.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/launch/launch.cli-group.descriptor.js +12 -0
- package/dist/cli/launch/launch.cli-group.descriptor.js.map +1 -0
- package/dist/cli/launch/launch.harness.impl.consumer.d.ts +6 -0
- package/dist/cli/launch/launch.harness.impl.consumer.d.ts.map +1 -0
- package/dist/cli/launch/launch.harness.impl.consumer.js +55 -0
- package/dist/cli/launch/launch.harness.impl.consumer.js.map +1 -0
- package/dist/cli/launch/launch.list.descriptor.d.ts +4 -0
- package/dist/cli/launch/launch.list.descriptor.d.ts.map +1 -0
- package/dist/cli/launch/launch.list.descriptor.js +13 -0
- package/dist/cli/launch/launch.list.descriptor.js.map +1 -0
- package/dist/cli/launch/launch.list.impl.consumer.d.ts +7 -0
- package/dist/cli/launch/launch.list.impl.consumer.d.ts.map +1 -0
- package/dist/cli/launch/launch.list.impl.consumer.js +26 -0
- package/dist/cli/launch/launch.list.impl.consumer.js.map +1 -0
- package/dist/cli/launch/launch.logs.descriptor.d.ts +4 -0
- package/dist/cli/launch/launch.logs.descriptor.d.ts.map +1 -0
- package/dist/cli/launch/launch.logs.descriptor.js +30 -0
- package/dist/cli/launch/launch.logs.descriptor.js.map +1 -0
- package/dist/cli/launch/launch.logs.impl.consumer.d.ts +7 -0
- package/dist/cli/launch/launch.logs.impl.consumer.d.ts.map +1 -0
- package/dist/cli/launch/launch.logs.impl.consumer.js +78 -0
- package/dist/cli/launch/launch.logs.impl.consumer.js.map +1 -0
- package/dist/cli/launch/launch.status.descriptor.d.ts +4 -0
- package/dist/cli/launch/launch.status.descriptor.d.ts.map +1 -0
- package/dist/cli/launch/launch.status.descriptor.js +21 -0
- package/dist/cli/launch/launch.status.descriptor.js.map +1 -0
- package/dist/cli/launch/launch.status.impl.consumer.d.ts +7 -0
- package/dist/cli/launch/launch.status.impl.consumer.d.ts.map +1 -0
- package/dist/cli/launch/launch.status.impl.consumer.js +69 -0
- package/dist/cli/launch/launch.status.impl.consumer.js.map +1 -0
- package/dist/cli/plugin.d.ts +4 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +76 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/runtime-projection.d.ts +34 -0
- package/dist/cli/runtime-projection.d.ts.map +1 -0
- package/dist/cli/runtime-projection.js +272 -0
- package/dist/cli/runtime-projection.js.map +1 -0
- package/dist/cli/stdio.d.ts +15 -0
- package/dist/cli/stdio.d.ts.map +1 -0
- package/dist/cli/stdio.js +15 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/who.descriptor.d.ts +16 -0
- package/dist/cli/who.descriptor.d.ts.map +1 -0
- package/dist/cli/who.descriptor.js +38 -0
- package/dist/cli/who.descriptor.js.map +1 -0
- package/dist/cli/who.impl.d.ts +16 -0
- package/dist/cli/who.impl.d.ts.map +1 -0
- package/dist/cli/who.impl.js +127 -0
- package/dist/cli/who.impl.js.map +1 -0
- package/dist/client/external-client.d.ts +423 -0
- package/dist/client/external-client.d.ts.map +1 -0
- package/dist/client/external-client.js +988 -0
- package/dist/client/external-client.js.map +1 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +25 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +134 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/config/binary-detection.d.ts +26 -0
- package/dist/config/binary-detection.d.ts.map +1 -0
- package/dist/config/binary-detection.js +105 -0
- package/dist/config/binary-detection.js.map +1 -0
- package/dist/config/external.config.descriptor.d.ts +11 -0
- package/dist/config/external.config.descriptor.d.ts.map +1 -0
- package/dist/config/external.config.descriptor.js +41 -0
- package/dist/config/external.config.descriptor.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manifest.d.ts +4696 -0
- package/dist/config/manifest.d.ts.map +1 -0
- package/dist/config/manifest.js +210 -0
- package/dist/config/manifest.js.map +1 -0
- package/dist/config/read.d.ts +13 -0
- package/dist/config/read.d.ts.map +1 -0
- package/dist/config/read.js +20 -0
- package/dist/config/read.js.map +1 -0
- package/dist/consumer.d.ts +15 -0
- package/dist/consumer.d.ts.map +1 -0
- package/dist/consumer.js +15 -0
- package/dist/consumer.js.map +1 -0
- package/dist/detection/base.d.ts +71 -0
- package/dist/detection/base.d.ts.map +1 -0
- package/dist/detection/base.js +115 -0
- package/dist/detection/base.js.map +1 -0
- package/dist/detection/command-probe.d.ts +43 -0
- package/dist/detection/command-probe.d.ts.map +1 -0
- package/dist/detection/command-probe.js +75 -0
- package/dist/detection/command-probe.js.map +1 -0
- package/dist/detection/config-document.d.ts +31 -0
- package/dist/detection/config-document.d.ts.map +1 -0
- package/dist/detection/config-document.js +138 -0
- package/dist/detection/config-document.js.map +1 -0
- package/dist/detection/index.d.ts +11 -0
- package/dist/detection/index.d.ts.map +1 -0
- package/dist/detection/index.js +13 -0
- package/dist/detection/index.js.map +1 -0
- package/dist/detection/manifest-detector-helpers.d.ts +45 -0
- package/dist/detection/manifest-detector-helpers.d.ts.map +1 -0
- package/dist/detection/manifest-detector-helpers.js +198 -0
- package/dist/detection/manifest-detector-helpers.js.map +1 -0
- package/dist/detection/manifest-detector.d.ts +34 -0
- package/dist/detection/manifest-detector.d.ts.map +1 -0
- package/dist/detection/manifest-detector.js +123 -0
- package/dist/detection/manifest-detector.js.map +1 -0
- package/dist/detection/service.d.ts +99 -0
- package/dist/detection/service.d.ts.map +1 -0
- package/dist/detection/service.js +124 -0
- package/dist/detection/service.js.map +1 -0
- package/dist/detection/types.d.ts +113 -0
- package/dist/detection/types.d.ts.map +1 -0
- package/dist/detection/types.js +30 -0
- package/dist/detection/types.js.map +1 -0
- package/dist/dev.external.descriptor.d.ts +9 -0
- package/dist/dev.external.descriptor.d.ts.map +1 -0
- package/dist/dev.external.descriptor.js +17 -0
- package/dist/dev.external.descriptor.js.map +1 -0
- package/dist/docs/external.ambient.docs.descriptor.d.ts +4 -0
- package/dist/docs/external.ambient.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/external.ambient.docs.descriptor.js +109 -0
- package/dist/docs/external.ambient.docs.descriptor.js.map +1 -0
- package/dist/external-adapter/descriptors.d.ts +133 -0
- package/dist/external-adapter/descriptors.d.ts.map +1 -0
- package/dist/external-adapter/descriptors.js +70 -0
- package/dist/external-adapter/descriptors.js.map +1 -0
- package/dist/external-adapter/implementations.d.ts +13 -0
- package/dist/external-adapter/implementations.d.ts.map +1 -0
- package/dist/external-adapter/implementations.js +97 -0
- package/dist/external-adapter/implementations.js.map +1 -0
- package/dist/external-adapter/schemas/adapter.d.ts +66 -0
- package/dist/external-adapter/schemas/adapter.d.ts.map +1 -0
- package/dist/external-adapter/schemas/adapter.js +55 -0
- package/dist/external-adapter/schemas/adapter.js.map +1 -0
- package/dist/external-tool/impl/default-tool.d.ts +201 -0
- package/dist/external-tool/impl/default-tool.d.ts.map +1 -0
- package/dist/external-tool/impl/default-tool.js +243 -0
- package/dist/external-tool/impl/default-tool.js.map +1 -0
- package/dist/external-tool/interfaces/tool.d.ts +102 -0
- package/dist/external-tool/interfaces/tool.d.ts.map +1 -0
- package/dist/external-tool/interfaces/tool.js +2 -0
- package/dist/external-tool/interfaces/tool.js.map +1 -0
- package/dist/external-tool/loader.d.ts +5 -0
- package/dist/external-tool/loader.d.ts.map +1 -0
- package/dist/external-tool/loader.js +8 -0
- package/dist/external-tool/loader.js.map +1 -0
- package/dist/external-tool/path-template.d.ts +54 -0
- package/dist/external-tool/path-template.d.ts.map +1 -0
- package/dist/external-tool/path-template.js +65 -0
- package/dist/external-tool/path-template.js.map +1 -0
- package/dist/external-tool/runtime.d.ts +38 -0
- package/dist/external-tool/runtime.d.ts.map +1 -0
- package/dist/external-tool/runtime.js +89 -0
- package/dist/external-tool/runtime.js.map +1 -0
- package/dist/external-tool/schemas/tool.d.ts +269 -0
- package/dist/external-tool/schemas/tool.d.ts.map +1 -0
- package/dist/external-tool/schemas/tool.js +77 -0
- package/dist/external-tool/schemas/tool.js.map +1 -0
- package/dist/external.plugin.d.ts +4 -0
- package/dist/external.plugin.d.ts.map +1 -0
- package/dist/external.plugin.js +184 -0
- package/dist/external.plugin.js.map +1 -0
- package/dist/harness/agent-host-scope.d.ts +18 -0
- package/dist/harness/agent-host-scope.d.ts.map +1 -0
- package/dist/harness/agent-host-scope.js +30 -0
- package/dist/harness/agent-host-scope.js.map +1 -0
- package/dist/harness/agent-host-settings.d.ts +6 -0
- package/dist/harness/agent-host-settings.d.ts.map +1 -0
- package/dist/harness/agent-host-settings.js +18 -0
- package/dist/harness/agent-host-settings.js.map +1 -0
- package/dist/harness/agent-host.config.descriptor.d.ts +6 -0
- package/dist/harness/agent-host.config.descriptor.d.ts.map +1 -0
- package/dist/harness/agent-host.config.descriptor.js +22 -0
- package/dist/harness/agent-host.config.descriptor.js.map +1 -0
- package/dist/harness/agent-host.d.ts +98 -0
- package/dist/harness/agent-host.d.ts.map +1 -0
- package/dist/harness/agent-host.js +203 -0
- package/dist/harness/agent-host.js.map +1 -0
- package/dist/harness/command-arguments.d.ts +54 -0
- package/dist/harness/command-arguments.d.ts.map +1 -0
- package/dist/harness/command-arguments.js +113 -0
- package/dist/harness/command-arguments.js.map +1 -0
- package/dist/harness/command-execution.d.ts +20 -0
- package/dist/harness/command-execution.d.ts.map +1 -0
- package/dist/harness/command-execution.js +78 -0
- package/dist/harness/command-execution.js.map +1 -0
- package/dist/harness/command-output.d.ts +59 -0
- package/dist/harness/command-output.d.ts.map +1 -0
- package/dist/harness/command-output.js +173 -0
- package/dist/harness/command-output.js.map +1 -0
- package/dist/harness/execution-queue.d.ts +14 -0
- package/dist/harness/execution-queue.d.ts.map +1 -0
- package/dist/harness/execution-queue.js +23 -0
- package/dist/harness/execution-queue.js.map +1 -0
- package/dist/harness/index.d.ts +15 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +12 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/live-tools.d.ts +130 -0
- package/dist/harness/live-tools.d.ts.map +1 -0
- package/dist/harness/live-tools.js +257 -0
- package/dist/harness/live-tools.js.map +1 -0
- package/dist/harness/managed-block.d.ts +34 -0
- package/dist/harness/managed-block.d.ts.map +1 -0
- package/dist/harness/managed-block.js +66 -0
- package/dist/harness/managed-block.js.map +1 -0
- package/dist/harness/markers.d.ts +22 -0
- package/dist/harness/markers.d.ts.map +1 -0
- package/dist/harness/markers.js +28 -0
- package/dist/harness/markers.js.map +1 -0
- package/dist/harness/node.d.ts +6 -0
- package/dist/harness/node.d.ts.map +1 -0
- package/dist/harness/node.js +6 -0
- package/dist/harness/node.js.map +1 -0
- package/dist/harness/prompt.d.ts +54 -0
- package/dist/harness/prompt.d.ts.map +1 -0
- package/dist/harness/prompt.js +78 -0
- package/dist/harness/prompt.js.map +1 -0
- package/dist/harness/prompts/index.d.ts +113 -0
- package/dist/harness/prompts/index.d.ts.map +1 -0
- package/dist/harness/prompts/index.js +5 -0
- package/dist/harness/prompts/index.js.map +1 -0
- package/dist/harness/prompts/static-briefing-note.prompt.descriptor.d.ts +114 -0
- package/dist/harness/prompts/static-briefing-note.prompt.descriptor.d.ts.map +1 -0
- package/dist/harness/prompts/static-briefing-note.prompt.descriptor.js +17 -0
- package/dist/harness/prompts/static-briefing-note.prompt.descriptor.js.map +1 -0
- package/dist/harness/prompts/system-prompt.prompt.descriptor.d.ts +114 -0
- package/dist/harness/prompts/system-prompt.prompt.descriptor.d.ts.map +1 -0
- package/dist/harness/prompts/system-prompt.prompt.descriptor.js +35 -0
- package/dist/harness/prompts/system-prompt.prompt.descriptor.js.map +1 -0
- package/dist/harness/role-prompt.d.ts +12 -0
- package/dist/harness/role-prompt.d.ts.map +1 -0
- package/dist/harness/role-prompt.js +24 -0
- package/dist/harness/role-prompt.js.map +1 -0
- package/dist/harness/runtime-transport.d.ts +89 -0
- package/dist/harness/runtime-transport.d.ts.map +1 -0
- package/dist/harness/runtime-transport.js +356 -0
- package/dist/harness/runtime-transport.js.map +1 -0
- package/dist/harness/schemas/agent-host.d.ts +146 -0
- package/dist/harness/schemas/agent-host.d.ts.map +1 -0
- package/dist/harness/schemas/agent-host.js +26 -0
- package/dist/harness/schemas/agent-host.js.map +1 -0
- package/dist/harness/stdio-sink.d.ts +35 -0
- package/dist/harness/stdio-sink.d.ts.map +1 -0
- package/dist/harness/stdio-sink.js +34 -0
- package/dist/harness/stdio-sink.js.map +1 -0
- package/dist/harness/strip-undefined.d.ts +9 -0
- package/dist/harness/strip-undefined.d.ts.map +1 -0
- package/dist/harness/strip-undefined.js +11 -0
- package/dist/harness/strip-undefined.js.map +1 -0
- package/dist/harness/tool-projection.d.ts +130 -0
- package/dist/harness/tool-projection.d.ts.map +1 -0
- package/dist/harness/tool-projection.js +195 -0
- package/dist/harness/tool-projection.js.map +1 -0
- package/dist/harness/validation-errors.d.ts +11 -0
- package/dist/harness/validation-errors.d.ts.map +1 -0
- package/dist/harness/validation-errors.js +32 -0
- package/dist/harness/validation-errors.js.map +1 -0
- package/dist/hooks/bounded-payload.d.ts +39 -0
- package/dist/hooks/bounded-payload.d.ts.map +1 -0
- package/dist/hooks/bounded-payload.js +70 -0
- package/dist/hooks/bounded-payload.js.map +1 -0
- package/dist/hooks/bridge.d.ts +34 -0
- package/dist/hooks/bridge.d.ts.map +1 -0
- package/dist/hooks/bridge.js +86 -0
- package/dist/hooks/bridge.js.map +1 -0
- package/dist/hooks/call.d.ts +298 -0
- package/dist/hooks/call.d.ts.map +1 -0
- package/dist/hooks/call.js +1550 -0
- package/dist/hooks/call.js.map +1 -0
- package/dist/hooks/consumer.d.ts +7 -0
- package/dist/hooks/consumer.d.ts.map +1 -0
- package/dist/hooks/consumer.js +5 -0
- package/dist/hooks/consumer.js.map +1 -0
- package/dist/hooks/continuity.d.ts +155 -0
- package/dist/hooks/continuity.d.ts.map +1 -0
- package/dist/hooks/continuity.js +187 -0
- package/dist/hooks/continuity.js.map +1 -0
- package/dist/hooks/dispatch-script.d.ts +27 -0
- package/dist/hooks/dispatch-script.d.ts.map +1 -0
- package/dist/hooks/dispatch-script.js +77 -0
- package/dist/hooks/dispatch-script.js.map +1 -0
- package/dist/hooks/edit-targets.d.ts +23 -0
- package/dist/hooks/edit-targets.d.ts.map +1 -0
- package/dist/hooks/edit-targets.js +74 -0
- package/dist/hooks/edit-targets.js.map +1 -0
- package/dist/hooks/hook-delivery.d.ts +21 -0
- package/dist/hooks/hook-delivery.d.ts.map +1 -0
- package/dist/hooks/hook-delivery.js +87 -0
- package/dist/hooks/hook-delivery.js.map +1 -0
- package/dist/hooks/hook-seat.d.ts +37 -0
- package/dist/hooks/hook-seat.d.ts.map +1 -0
- package/dist/hooks/hook-seat.js +59 -0
- package/dist/hooks/hook-seat.js.map +1 -0
- package/dist/hooks/index.d.ts +9 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/native-edit-guard.d.ts +25 -0
- package/dist/hooks/native-edit-guard.d.ts.map +1 -0
- package/dist/hooks/native-edit-guard.js +33 -0
- package/dist/hooks/native-edit-guard.js.map +1 -0
- package/dist/hooks/native-edit-locks.d.ts +54 -0
- package/dist/hooks/native-edit-locks.d.ts.map +1 -0
- package/dist/hooks/native-edit-locks.js +98 -0
- package/dist/hooks/native-edit-locks.js.map +1 -0
- package/dist/hooks/resolve-event.d.ts +13 -0
- package/dist/hooks/resolve-event.d.ts.map +1 -0
- package/dist/hooks/resolve-event.js +32 -0
- package/dist/hooks/resolve-event.js.map +1 -0
- package/dist/hooks/review-state.d.ts +22 -0
- package/dist/hooks/review-state.d.ts.map +1 -0
- package/dist/hooks/review-state.js +57 -0
- package/dist/hooks/review-state.js.map +1 -0
- package/dist/hooks/runtime.d.ts +146 -0
- package/dist/hooks/runtime.d.ts.map +1 -0
- package/dist/hooks/runtime.js +83 -0
- package/dist/hooks/runtime.js.map +1 -0
- package/dist/hooks/self-review.d.ts +14 -0
- package/dist/hooks/self-review.d.ts.map +1 -0
- package/dist/hooks/self-review.js +28 -0
- package/dist/hooks/self-review.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/logging/subagent-completions.output.descriptor.d.ts +4 -0
- package/dist/ingest/logging/subagent-completions.output.descriptor.d.ts.map +1 -0
- package/dist/ingest/logging/subagent-completions.output.descriptor.js +22 -0
- package/dist/ingest/logging/subagent-completions.output.descriptor.js.map +1 -0
- package/dist/ingest/logging/success-patterns.output.descriptor.d.ts +4 -0
- package/dist/ingest/logging/success-patterns.output.descriptor.d.ts.map +1 -0
- package/dist/ingest/logging/success-patterns.output.descriptor.js +22 -0
- package/dist/ingest/logging/success-patterns.output.descriptor.js.map +1 -0
- package/dist/ingest/logging/tool-use.output.descriptor.d.ts +4 -0
- package/dist/ingest/logging/tool-use.output.descriptor.d.ts.map +1 -0
- package/dist/ingest/logging/tool-use.output.descriptor.js +22 -0
- package/dist/ingest/logging/tool-use.output.descriptor.js.map +1 -0
- package/dist/ingest/resolve-log-paths.d.ts +16 -0
- package/dist/ingest/resolve-log-paths.d.ts.map +1 -0
- package/dist/ingest/resolve-log-paths.js +43 -0
- package/dist/ingest/resolve-log-paths.js.map +1 -0
- package/dist/ingest/schemas.d.ts +43 -0
- package/dist/ingest/schemas.d.ts.map +1 -0
- package/dist/ingest/schemas.js +46 -0
- package/dist/ingest/schemas.js.map +1 -0
- package/dist/jsonrpc/client.d.ts +129 -0
- package/dist/jsonrpc/client.d.ts.map +1 -0
- package/dist/jsonrpc/client.js +553 -0
- package/dist/jsonrpc/client.js.map +1 -0
- package/dist/jsonrpc/envelope.d.ts +37 -0
- package/dist/jsonrpc/envelope.d.ts.map +1 -0
- package/dist/jsonrpc/envelope.js +46 -0
- package/dist/jsonrpc/envelope.js.map +1 -0
- package/dist/jsonrpc/errors.d.ts +28 -0
- package/dist/jsonrpc/errors.d.ts.map +1 -0
- package/dist/jsonrpc/errors.js +110 -0
- package/dist/jsonrpc/errors.js.map +1 -0
- package/dist/jsonrpc/framing.d.ts +35 -0
- package/dist/jsonrpc/framing.d.ts.map +1 -0
- package/dist/jsonrpc/framing.js +134 -0
- package/dist/jsonrpc/framing.js.map +1 -0
- package/dist/jsonrpc/index.d.ts +11 -0
- package/dist/jsonrpc/index.d.ts.map +1 -0
- package/dist/jsonrpc/index.js +11 -0
- package/dist/jsonrpc/index.js.map +1 -0
- package/dist/jsonrpc/outcome.d.ts +25 -0
- package/dist/jsonrpc/outcome.d.ts.map +1 -0
- package/dist/jsonrpc/outcome.js +32 -0
- package/dist/jsonrpc/outcome.js.map +1 -0
- package/dist/jsonrpc/queue.d.ts +30 -0
- package/dist/jsonrpc/queue.d.ts.map +1 -0
- package/dist/jsonrpc/queue.js +113 -0
- package/dist/jsonrpc/queue.js.map +1 -0
- package/dist/jsonrpc/schemas.d.ts +74 -0
- package/dist/jsonrpc/schemas.d.ts.map +1 -0
- package/dist/jsonrpc/schemas.js +65 -0
- package/dist/jsonrpc/schemas.js.map +1 -0
- package/dist/launch/consumer/execute.d.ts +5 -0
- package/dist/launch/consumer/execute.d.ts.map +1 -0
- package/dist/launch/consumer/execute.js +358 -0
- package/dist/launch/consumer/execute.js.map +1 -0
- package/dist/launch/consumer/paths.d.ts +15 -0
- package/dist/launch/consumer/paths.d.ts.map +1 -0
- package/dist/launch/consumer/paths.js +18 -0
- package/dist/launch/consumer/paths.js.map +1 -0
- package/dist/launch/consumer/prepare.d.ts +25 -0
- package/dist/launch/consumer/prepare.d.ts.map +1 -0
- package/dist/launch/consumer/prepare.js +158 -0
- package/dist/launch/consumer/prepare.js.map +1 -0
- package/dist/launch/consumer/prompt.d.ts +18 -0
- package/dist/launch/consumer/prompt.d.ts.map +1 -0
- package/dist/launch/consumer/prompt.js +45 -0
- package/dist/launch/consumer/prompt.js.map +1 -0
- package/dist/launch/consumer/rotate-logs.d.ts +23 -0
- package/dist/launch/consumer/rotate-logs.d.ts.map +1 -0
- package/dist/launch/consumer/rotate-logs.js +43 -0
- package/dist/launch/consumer/rotate-logs.js.map +1 -0
- package/dist/launch/consumer/spawn.d.ts +38 -0
- package/dist/launch/consumer/spawn.d.ts.map +1 -0
- package/dist/launch/consumer/spawn.js +82 -0
- package/dist/launch/consumer/spawn.js.map +1 -0
- package/dist/launch/consumer/state-rows.d.ts +41 -0
- package/dist/launch/consumer/state-rows.d.ts.map +1 -0
- package/dist/launch/consumer/state-rows.js +78 -0
- package/dist/launch/consumer/state-rows.js.map +1 -0
- package/dist/launch/consumer/store.d.ts +139 -0
- package/dist/launch/consumer/store.d.ts.map +1 -0
- package/dist/launch/consumer/store.js +495 -0
- package/dist/launch/consumer/store.js.map +1 -0
- package/dist/launch/index.d.ts +5 -0
- package/dist/launch/index.d.ts.map +1 -0
- package/dist/launch/index.js +3 -0
- package/dist/launch/index.js.map +1 -0
- package/dist/launch/resolve.d.ts +9 -0
- package/dist/launch/resolve.d.ts.map +1 -0
- package/dist/launch/resolve.js +139 -0
- package/dist/launch/resolve.js.map +1 -0
- package/dist/launch/schemas.d.ts +289 -0
- package/dist/launch/schemas.d.ts.map +1 -0
- package/dist/launch/schemas.js +154 -0
- package/dist/launch/schemas.js.map +1 -0
- package/dist/launch/task-executor/external-harness.descriptor.d.ts +6 -0
- package/dist/launch/task-executor/external-harness.descriptor.d.ts.map +1 -0
- package/dist/launch/task-executor/external-harness.descriptor.js +13 -0
- package/dist/launch/task-executor/external-harness.descriptor.js.map +1 -0
- package/dist/launch/task-executor/external-harness.impl.consumer.d.ts +17 -0
- package/dist/launch/task-executor/external-harness.impl.consumer.d.ts.map +1 -0
- package/dist/launch/task-executor/external-harness.impl.consumer.js +151 -0
- package/dist/launch/task-executor/external-harness.impl.consumer.js.map +1 -0
- package/dist/launch/task-executor/isolated-workspace.d.ts +3 -0
- package/dist/launch/task-executor/isolated-workspace.d.ts.map +1 -0
- package/dist/launch/task-executor/isolated-workspace.js +3 -0
- package/dist/launch/task-executor/isolated-workspace.js.map +1 -0
- package/dist/launch/task-executor/session-locks.d.ts +28 -0
- package/dist/launch/task-executor/session-locks.d.ts.map +1 -0
- package/dist/launch/task-executor/session-locks.js +50 -0
- package/dist/launch/task-executor/session-locks.js.map +1 -0
- package/dist/pack/adapter-codegen.d.ts +38 -0
- package/dist/pack/adapter-codegen.d.ts.map +1 -0
- package/dist/pack/adapter-codegen.js +70 -0
- package/dist/pack/adapter-codegen.js.map +1 -0
- package/dist/pack/build.d.ts +48 -0
- package/dist/pack/build.d.ts.map +1 -0
- package/dist/pack/build.js +171 -0
- package/dist/pack/build.js.map +1 -0
- package/dist/pack/emitters/hooks.d.ts +14 -0
- package/dist/pack/emitters/hooks.d.ts.map +1 -0
- package/dist/pack/emitters/hooks.js +15 -0
- package/dist/pack/emitters/hooks.js.map +1 -0
- package/dist/pack/emitters/json.d.ts +10 -0
- package/dist/pack/emitters/json.d.ts.map +1 -0
- package/dist/pack/emitters/json.js +17 -0
- package/dist/pack/emitters/json.js.map +1 -0
- package/dist/pack/emitters/registry.d.ts +22 -0
- package/dist/pack/emitters/registry.d.ts.map +1 -0
- package/dist/pack/emitters/registry.js +38 -0
- package/dist/pack/emitters/registry.js.map +1 -0
- package/dist/pack/emitters/toml.d.ts +8 -0
- package/dist/pack/emitters/toml.d.ts.map +1 -0
- package/dist/pack/emitters/toml.js +28 -0
- package/dist/pack/emitters/toml.js.map +1 -0
- package/dist/pack/emitters/yaml.d.ts +8 -0
- package/dist/pack/emitters/yaml.d.ts.map +1 -0
- package/dist/pack/emitters/yaml.js +27 -0
- package/dist/pack/emitters/yaml.js.map +1 -0
- package/dist/pack/index.d.ts +11 -0
- package/dist/pack/index.d.ts.map +1 -0
- package/dist/pack/index.js +11 -0
- package/dist/pack/index.js.map +1 -0
- package/dist/pack/mcp.d.ts +28 -0
- package/dist/pack/mcp.d.ts.map +1 -0
- package/dist/pack/mcp.js +70 -0
- package/dist/pack/mcp.js.map +1 -0
- package/dist/pack/persist.d.ts +28 -0
- package/dist/pack/persist.d.ts.map +1 -0
- package/dist/pack/persist.js +35 -0
- package/dist/pack/persist.js.map +1 -0
- package/dist/pack/schema.d.ts +126 -0
- package/dist/pack/schema.d.ts.map +1 -0
- package/dist/pack/schema.js +56 -0
- package/dist/pack/schema.js.map +1 -0
- package/dist/plugins/index.d.ts +512 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +25 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/installers/config-file.d.ts +21 -0
- package/dist/plugins/installers/config-file.d.ts.map +1 -0
- package/dist/plugins/installers/config-file.js +48 -0
- package/dist/plugins/installers/config-file.js.map +1 -0
- package/dist/plugins/installers/config-value.d.ts +35 -0
- package/dist/plugins/installers/config-value.d.ts.map +1 -0
- package/dist/plugins/installers/config-value.js +52 -0
- package/dist/plugins/installers/config-value.js.map +1 -0
- package/dist/plugins/installers/hooks/index.d.ts +9 -0
- package/dist/plugins/installers/hooks/index.d.ts.map +1 -0
- package/dist/plugins/installers/hooks/index.js +12 -0
- package/dist/plugins/installers/hooks/index.js.map +1 -0
- package/dist/plugins/installers/hooks/scoped-paths.d.ts +24 -0
- package/dist/plugins/installers/hooks/scoped-paths.d.ts.map +1 -0
- package/dist/plugins/installers/hooks/scoped-paths.js +80 -0
- package/dist/plugins/installers/hooks/scoped-paths.js.map +1 -0
- package/dist/plugins/installers/hooks/settings-registration.d.ts +79 -0
- package/dist/plugins/installers/hooks/settings-registration.d.ts.map +1 -0
- package/dist/plugins/installers/hooks/settings-registration.js +125 -0
- package/dist/plugins/installers/hooks/settings-registration.js.map +1 -0
- package/dist/plugins/installers/hooks/shell-installer.d.ts +21 -0
- package/dist/plugins/installers/hooks/shell-installer.d.ts.map +1 -0
- package/dist/plugins/installers/hooks/shell-installer.js +298 -0
- package/dist/plugins/installers/hooks/shell-installer.js.map +1 -0
- package/dist/plugins/installers/hooks/uninstall-backup.d.ts +19 -0
- package/dist/plugins/installers/hooks/uninstall-backup.d.ts.map +1 -0
- package/dist/plugins/installers/hooks/uninstall-backup.js +20 -0
- package/dist/plugins/installers/hooks/uninstall-backup.js.map +1 -0
- package/dist/plugins/installers/index.d.ts +58 -0
- package/dist/plugins/installers/index.d.ts.map +1 -0
- package/dist/plugins/installers/index.js +303 -0
- package/dist/plugins/installers/index.js.map +1 -0
- package/dist/plugins/installers/mcp/environment.d.ts +180 -0
- package/dist/plugins/installers/mcp/environment.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/environment.js +314 -0
- package/dist/plugins/installers/mcp/environment.js.map +1 -0
- package/dist/plugins/installers/mcp/index.d.ts +9 -0
- package/dist/plugins/installers/mcp/index.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/index.js +11 -0
- package/dist/plugins/installers/mcp/index.js.map +1 -0
- package/dist/plugins/installers/mcp/json-installer.d.ts +18 -0
- package/dist/plugins/installers/mcp/json-installer.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/json-installer.js +155 -0
- package/dist/plugins/installers/mcp/json-installer.js.map +1 -0
- package/dist/plugins/installers/mcp/json-paths.d.ts +13 -0
- package/dist/plugins/installers/mcp/json-paths.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/json-paths.js +130 -0
- package/dist/plugins/installers/mcp/json-paths.js.map +1 -0
- package/dist/plugins/installers/mcp/serve-identity.d.ts +19 -0
- package/dist/plugins/installers/mcp/serve-identity.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/serve-identity.js +31 -0
- package/dist/plugins/installers/mcp/serve-identity.js.map +1 -0
- package/dist/plugins/installers/mcp/server-config.d.ts +20 -0
- package/dist/plugins/installers/mcp/server-config.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/server-config.js +64 -0
- package/dist/plugins/installers/mcp/server-config.js.map +1 -0
- package/dist/plugins/installers/mcp/toml-installer.d.ts +41 -0
- package/dist/plugins/installers/mcp/toml-installer.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/toml-installer.js +407 -0
- package/dist/plugins/installers/mcp/toml-installer.js.map +1 -0
- package/dist/plugins/installers/mcp/yaml-installer.d.ts +22 -0
- package/dist/plugins/installers/mcp/yaml-installer.d.ts.map +1 -0
- package/dist/plugins/installers/mcp/yaml-installer.js +156 -0
- package/dist/plugins/installers/mcp/yaml-installer.js.map +1 -0
- package/dist/plugins/installers/runtime.d.ts +42 -0
- package/dist/plugins/installers/runtime.d.ts.map +1 -0
- package/dist/plugins/installers/runtime.js +56 -0
- package/dist/plugins/installers/runtime.js.map +1 -0
- package/dist/plugins/installers/types.d.ts +306 -0
- package/dist/plugins/installers/types.d.ts.map +1 -0
- package/dist/plugins/installers/types.js +40 -0
- package/dist/plugins/installers/types.js.map +1 -0
- package/dist/plugins/schemas/index.d.ts +6 -0
- package/dist/plugins/schemas/index.d.ts.map +1 -0
- package/dist/plugins/schemas/index.js +5 -0
- package/dist/plugins/schemas/index.js.map +1 -0
- package/dist/plugins/schemas/manifest.d.ts +527 -0
- package/dist/plugins/schemas/manifest.d.ts.map +1 -0
- package/dist/plugins/schemas/manifest.js +355 -0
- package/dist/plugins/schemas/manifest.js.map +1 -0
- package/dist/plugins/tools/index.d.ts +12 -0
- package/dist/plugins/tools/index.d.ts.map +1 -0
- package/dist/plugins/tools/index.js +19 -0
- package/dist/plugins/tools/index.js.map +1 -0
- package/dist/presets/executor.d.ts +20 -0
- package/dist/presets/executor.d.ts.map +1 -0
- package/dist/presets/executor.js +629 -0
- package/dist/presets/executor.js.map +1 -0
- package/dist/presets/file-backup.d.ts +66 -0
- package/dist/presets/file-backup.d.ts.map +1 -0
- package/dist/presets/file-backup.js +108 -0
- package/dist/presets/file-backup.js.map +1 -0
- package/dist/presets/index.d.ts +11 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +10 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/resolve.d.ts +32 -0
- package/dist/presets/resolve.d.ts.map +1 -0
- package/dist/presets/resolve.js +49 -0
- package/dist/presets/resolve.js.map +1 -0
- package/dist/presets/runtime.d.ts +21 -0
- package/dist/presets/runtime.d.ts.map +1 -0
- package/dist/presets/runtime.js +115 -0
- package/dist/presets/runtime.js.map +1 -0
- package/dist/projection/attestation.d.ts +43 -0
- package/dist/projection/attestation.d.ts.map +1 -0
- package/dist/projection/attestation.js +59 -0
- package/dist/projection/attestation.js.map +1 -0
- package/dist/runtime/agent-roster-provider.d.ts +75 -0
- package/dist/runtime/agent-roster-provider.d.ts.map +1 -0
- package/dist/runtime/agent-roster-provider.js +30 -0
- package/dist/runtime/agent-roster-provider.js.map +1 -0
- package/dist/runtime/external-surface-projector.d.ts +37 -0
- package/dist/runtime/external-surface-projector.d.ts.map +1 -0
- package/dist/runtime/external-surface-projector.js +21 -0
- package/dist/runtime/external-surface-projector.js.map +1 -0
- package/dist/runtime/lifecycle-task.d.ts +54 -0
- package/dist/runtime/lifecycle-task.d.ts.map +1 -0
- package/dist/runtime/lifecycle-task.js +111 -0
- package/dist/runtime/lifecycle-task.js.map +1 -0
- package/dist/runtime.d.ts +496 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +168 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schemas/agent-message.d.ts +136 -0
- package/dist/schemas/agent-message.d.ts.map +1 -0
- package/dist/schemas/agent-message.js +131 -0
- package/dist/schemas/agent-message.js.map +1 -0
- package/dist/schemas/agent-roster.d.ts +50 -0
- package/dist/schemas/agent-roster.d.ts.map +1 -0
- package/dist/schemas/agent-roster.js +52 -0
- package/dist/schemas/agent-roster.js.map +1 -0
- package/dist/schemas/collision.d.ts +109 -0
- package/dist/schemas/collision.d.ts.map +1 -0
- package/dist/schemas/collision.js +71 -0
- package/dist/schemas/collision.js.map +1 -0
- package/dist/schemas/context-summary.d.ts +225 -0
- package/dist/schemas/context-summary.d.ts.map +1 -0
- package/dist/schemas/context-summary.js +117 -0
- package/dist/schemas/context-summary.js.map +1 -0
- package/dist/schemas/file-access.d.ts +176 -0
- package/dist/schemas/file-access.d.ts.map +1 -0
- package/dist/schemas/file-access.js +139 -0
- package/dist/schemas/file-access.js.map +1 -0
- package/dist/schemas/hooks.d.ts +170 -0
- package/dist/schemas/hooks.d.ts.map +1 -0
- package/dist/schemas/hooks.js +171 -0
- package/dist/schemas/hooks.js.map +1 -0
- package/dist/schemas/index.d.ts +19 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +17 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/path-identity.d.ts +44 -0
- package/dist/schemas/path-identity.d.ts.map +1 -0
- package/dist/schemas/path-identity.js +93 -0
- package/dist/schemas/path-identity.js.map +1 -0
- package/dist/schemas/pending-notice.d.ts +13 -0
- package/dist/schemas/pending-notice.d.ts.map +1 -0
- package/dist/schemas/pending-notice.js +5 -0
- package/dist/schemas/pending-notice.js.map +1 -0
- package/dist/schemas/presets.d.ts +1239 -0
- package/dist/schemas/presets.d.ts.map +1 -0
- package/dist/schemas/presets.js +270 -0
- package/dist/schemas/presets.js.map +1 -0
- package/dist/schemas/roster.d.ts +96 -0
- package/dist/schemas/roster.d.ts.map +1 -0
- package/dist/schemas/roster.js +310 -0
- package/dist/schemas/roster.js.map +1 -0
- package/dist/schemas/tiers.d.ts +95 -0
- package/dist/schemas/tiers.d.ts.map +1 -0
- package/dist/schemas/tiers.js +143 -0
- package/dist/schemas/tiers.js.map +1 -0
- package/dist/schemas/touch-identity.d.ts +25 -0
- package/dist/schemas/touch-identity.d.ts.map +1 -0
- package/dist/schemas/touch-identity.js +16 -0
- package/dist/schemas/touch-identity.js.map +1 -0
- package/dist/schemas/touch-projection.d.ts +157 -0
- package/dist/schemas/touch-projection.d.ts.map +1 -0
- package/dist/schemas/touch-projection.js +100 -0
- package/dist/schemas/touch-projection.js.map +1 -0
- package/dist/session-capability.d.ts +88 -0
- package/dist/session-capability.d.ts.map +1 -0
- package/dist/session-capability.js +28 -0
- package/dist/session-capability.js.map +1 -0
- package/dist/setup/index.d.ts +9 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +8 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/steps/detect-tools.d.ts +9 -0
- package/dist/setup/steps/detect-tools.d.ts.map +1 -0
- package/dist/setup/steps/detect-tools.js +120 -0
- package/dist/setup/steps/detect-tools.js.map +1 -0
- package/dist/setup/steps/index.d.ts +11 -0
- package/dist/setup/steps/index.d.ts.map +1 -0
- package/dist/setup/steps/index.js +11 -0
- package/dist/setup/steps/index.js.map +1 -0
- package/dist/setup/steps/install-helpers.d.ts +9 -0
- package/dist/setup/steps/install-helpers.d.ts.map +1 -0
- package/dist/setup/steps/install-helpers.js +29 -0
- package/dist/setup/steps/install-helpers.js.map +1 -0
- package/dist/setup/steps/install.d.ts +11 -0
- package/dist/setup/steps/install.d.ts.map +1 -0
- package/dist/setup/steps/install.js +143 -0
- package/dist/setup/steps/install.js.map +1 -0
- package/dist/setup/steps/select-location.d.ts +8 -0
- package/dist/setup/steps/select-location.d.ts.map +1 -0
- package/dist/setup/steps/select-location.js +55 -0
- package/dist/setup/steps/select-location.js.map +1 -0
- package/dist/setup/steps/select-targets.d.ts +8 -0
- package/dist/setup/steps/select-targets.d.ts.map +1 -0
- package/dist/setup/steps/select-targets.js +53 -0
- package/dist/setup/steps/select-targets.js.map +1 -0
- package/dist/setup/steps/select-tiers.d.ts +8 -0
- package/dist/setup/steps/select-tiers.d.ts.map +1 -0
- package/dist/setup/steps/select-tiers.js +124 -0
- package/dist/setup/steps/select-tiers.js.map +1 -0
- package/dist/setup/types.d.ts +128 -0
- package/dist/setup/types.d.ts.map +1 -0
- package/dist/setup/types.js +28 -0
- package/dist/setup/types.js.map +1 -0
- package/dist/setup/wizard.d.ts +25 -0
- package/dist/setup/wizard.d.ts.map +1 -0
- package/dist/setup/wizard.js +182 -0
- package/dist/setup/wizard.js.map +1 -0
- package/dist/storage/agent-message.record.descriptor.d.ts +43 -0
- package/dist/storage/agent-message.record.descriptor.d.ts.map +1 -0
- package/dist/storage/agent-message.record.descriptor.js +72 -0
- package/dist/storage/agent-message.record.descriptor.js.map +1 -0
- package/dist/storage/file-access.record.descriptor.d.ts +104 -0
- package/dist/storage/file-access.record.descriptor.d.ts.map +1 -0
- package/dist/storage/file-access.record.descriptor.js +370 -0
- package/dist/storage/file-access.record.descriptor.js.map +1 -0
- package/dist/storage/touch-identity.d.ts +43 -0
- package/dist/storage/touch-identity.d.ts.map +1 -0
- package/dist/storage/touch-identity.js +155 -0
- package/dist/storage/touch-identity.js.map +1 -0
- package/dist/svelte/external-svelte.plugin.d.ts +39 -0
- package/dist/svelte/external-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/external-svelte.plugin.js +25 -0
- package/dist/svelte/index.d.ts +11 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +10 -0
- package/dist/svelte/styles.css +8 -0
- package/dist/svelte/tool-widgets/ExternalToolCard.svelte +71 -0
- package/dist/svelte/tool-widgets/ExternalToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/ExternalToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +3 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +2 -0
- package/dist/svelte/tool-widgets/summary.d.ts +27 -0
- package/dist/svelte/tool-widgets/summary.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/summary.js +198 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/unified/action-descriptors.d.ts +185 -0
- package/dist/tools/unified/action-descriptors.d.ts.map +1 -0
- package/dist/tools/unified/action-descriptors.js +10 -0
- package/dist/tools/unified/action-descriptors.js.map +1 -0
- package/dist/tools/unified/action-input.d.ts +7 -0
- package/dist/tools/unified/action-input.d.ts.map +1 -0
- package/dist/tools/unified/action-input.js +13 -0
- package/dist/tools/unified/action-input.js.map +1 -0
- package/dist/tools/unified/actions.d.ts +10 -0
- package/dist/tools/unified/actions.d.ts.map +1 -0
- package/dist/tools/unified/actions.js +26 -0
- package/dist/tools/unified/actions.js.map +1 -0
- package/dist/tools/unified/external.descriptor.d.ts +30 -0
- package/dist/tools/unified/external.descriptor.d.ts.map +1 -0
- package/dist/tools/unified/external.descriptor.js +27 -0
- package/dist/tools/unified/external.descriptor.js.map +1 -0
- package/dist/tools/unified/external.impl.consumer.d.ts +8 -0
- package/dist/tools/unified/external.impl.consumer.d.ts.map +1 -0
- package/dist/tools/unified/external.impl.consumer.js +38 -0
- package/dist/tools/unified/external.impl.consumer.js.map +1 -0
- package/dist/tools/unified/handlers/context-summary.d.ts +4 -0
- package/dist/tools/unified/handlers/context-summary.d.ts.map +1 -0
- package/dist/tools/unified/handlers/context-summary.js +271 -0
- package/dist/tools/unified/handlers/context-summary.js.map +1 -0
- package/dist/tools/unified/handlers/file-access-list.d.ts +4 -0
- package/dist/tools/unified/handlers/file-access-list.d.ts.map +1 -0
- package/dist/tools/unified/handlers/file-access-list.js +39 -0
- package/dist/tools/unified/handlers/file-access-list.js.map +1 -0
- package/dist/tools/unified/handlers/file-access-track.d.ts +4 -0
- package/dist/tools/unified/handlers/file-access-track.d.ts.map +1 -0
- package/dist/tools/unified/handlers/file-access-track.js +34 -0
- package/dist/tools/unified/handlers/file-access-track.js.map +1 -0
- package/dist/tools/unified/handlers/hook-call.d.ts +23 -0
- package/dist/tools/unified/handlers/hook-call.d.ts.map +1 -0
- package/dist/tools/unified/handlers/hook-call.js +86 -0
- package/dist/tools/unified/handlers/hook-call.js.map +1 -0
- package/dist/tools/unified/handlers/hook-generator.d.ts +4 -0
- package/dist/tools/unified/handlers/hook-generator.d.ts.map +1 -0
- package/dist/tools/unified/handlers/hook-generator.js +37 -0
- package/dist/tools/unified/handlers/hook-generator.js.map +1 -0
- package/dist/tools/unified/handlers/signal.d.ts +22 -0
- package/dist/tools/unified/handlers/signal.d.ts.map +1 -0
- package/dist/tools/unified/handlers/signal.js +114 -0
- package/dist/tools/unified/handlers/signal.js.map +1 -0
- package/dist/tools/unified/index.d.ts +6 -0
- package/dist/tools/unified/index.d.ts.map +1 -0
- package/dist/tools/unified/index.js +6 -0
- package/dist/tools/unified/index.js.map +1 -0
- package/dist/tools/unified/install/handler.d.ts +4 -0
- package/dist/tools/unified/install/handler.d.ts.map +1 -0
- package/dist/tools/unified/install/handler.js +17 -0
- package/dist/tools/unified/install/handler.js.map +1 -0
- package/dist/tools/unified/runtime.d.ts +35 -0
- package/dist/tools/unified/runtime.d.ts.map +1 -0
- package/dist/tools/unified/runtime.js +23 -0
- package/dist/tools/unified/runtime.js.map +1 -0
- package/dist/tools/unified/schemas.d.ts +160 -0
- package/dist/tools/unified/schemas.d.ts.map +1 -0
- package/dist/tools/unified/schemas.js +139 -0
- package/dist/tools/unified/schemas.js.map +1 -0
- package/dist/utils/fs-absence.d.ts +22 -0
- package/dist/utils/fs-absence.d.ts.map +1 -0
- package/dist/utils/fs-absence.js +37 -0
- package/dist/utils/fs-absence.js.map +1 -0
- package/dist/utils/runtime-fs.d.ts +37 -0
- package/dist/utils/runtime-fs.d.ts.map +1 -0
- package/dist/utils/runtime-fs.js +100 -0
- package/dist/utils/runtime-fs.js.map +1 -0
- package/dist/utils/toml.d.ts +26 -0
- package/dist/utils/toml.d.ts.map +1 -0
- package/dist/utils/toml.js +415 -0
- package/dist/utils/toml.js.map +1 -0
- package/package.json +263 -4
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/** Resolve and publish the current runtime's agent-session identity. */
|
|
2
|
+
import * as z from 'zod/v4';
|
|
3
|
+
import { CaughtFailureSchema, isCapabilityError } from '@vibesdotdev/kernel';
|
|
4
|
+
import { ACCOUNT_AGENT_ROSTER_PROVIDER_ID, AGENT_ROSTER_PROVIDER_QUALIFIER, AGENT_ROSTER_UNAUTHORIZED_REASON, EXTERNAL_AGENT_ROSTER_PROVIDER_KIND } from "../runtime/agent-roster-provider.js";
|
|
5
|
+
import { resolveTouchIdentity } from "../storage/touch-identity.js";
|
|
6
|
+
import { attempt } from "./attempt.js";
|
|
7
|
+
const HeartbeatMetadataSchema = z.object({
|
|
8
|
+
agentId: z.unknown().optional(),
|
|
9
|
+
modelId: z.unknown().optional(),
|
|
10
|
+
providerId: z.unknown().optional(),
|
|
11
|
+
clientInfo: z.unknown().optional(),
|
|
12
|
+
externalToolId: z.unknown().optional(),
|
|
13
|
+
name: z.unknown().optional(),
|
|
14
|
+
workItemTitle: z.unknown().optional()
|
|
15
|
+
});
|
|
16
|
+
const AgentsReaderSchema = z.custom((value) => value instanceof Object &&
|
|
17
|
+
(!('definitions' in value) || Object(value).definitions instanceof Object));
|
|
18
|
+
const AiReaderSchema = z.custom((value) => value instanceof Object &&
|
|
19
|
+
(!('models' in value) || Object(value).models instanceof Object));
|
|
20
|
+
function nonEmpty(value) {
|
|
21
|
+
const parsed = z.string().trim().min(1).safeParse(value);
|
|
22
|
+
return parsed.success ? parsed.data : undefined;
|
|
23
|
+
}
|
|
24
|
+
function record(value) {
|
|
25
|
+
const parsed = HeartbeatMetadataSchema.safeParse(value);
|
|
26
|
+
return parsed.success ? parsed.data : {};
|
|
27
|
+
}
|
|
28
|
+
async function enrichConfiguredModel(runtime, agentId, modelId, providerId) {
|
|
29
|
+
let resolvedModelId = modelId;
|
|
30
|
+
let resolvedProviderId = providerId;
|
|
31
|
+
if (!resolvedModelId) {
|
|
32
|
+
const agentsOutcome = await attempt(runtime, async () => AgentsReaderSchema.parse(await runtime.query('runtime/client').withId('agents').resolve()));
|
|
33
|
+
const definitions = agentsOutcome.ok ? agentsOutcome.value.definitions : undefined;
|
|
34
|
+
if (definitions) {
|
|
35
|
+
const modelOutcome = await attempt(runtime, () => definitions.get(agentId));
|
|
36
|
+
if (modelOutcome.ok)
|
|
37
|
+
resolvedModelId = nonEmpty(modelOutcome.value?.modelId);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const modelIdForProvider = resolvedModelId;
|
|
41
|
+
if (modelIdForProvider && !resolvedProviderId) {
|
|
42
|
+
const aiOutcome = await attempt(runtime, async () => AiReaderSchema.parse(await runtime.query('runtime/client').withId('ai').resolve()));
|
|
43
|
+
const models = aiOutcome.ok ? aiOutcome.value.models : undefined;
|
|
44
|
+
if (models) {
|
|
45
|
+
const modelOutcome = await attempt(runtime, () => models.get(modelIdForProvider));
|
|
46
|
+
if (modelOutcome.ok) {
|
|
47
|
+
resolvedProviderId = nonEmpty(modelOutcome.value?.descriptor?.providerId);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { modelId: resolvedModelId, providerId: resolvedProviderId };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build the portable heartbeat from runtime/session facts.
|
|
55
|
+
*
|
|
56
|
+
* Provider/model are never guessed from a brand name. A harness may report
|
|
57
|
+
* them via participant/client metadata or runtime env; configured Vibes agents
|
|
58
|
+
* can be enriched from the Agents + AI clients. Otherwise the wire carries
|
|
59
|
+
* explicit nulls and `vibes who` renders `unreported`.
|
|
60
|
+
*/
|
|
61
|
+
export async function resolveCurrentAgentSessionAnnouncement(runtime, now = new Date()) {
|
|
62
|
+
const managerOutcome = await attempt(runtime, () => runtime.context('session/manager'));
|
|
63
|
+
if (!managerOutcome.ok)
|
|
64
|
+
return null;
|
|
65
|
+
const manager = managerOutcome.value;
|
|
66
|
+
if (!manager)
|
|
67
|
+
return null;
|
|
68
|
+
// Identity is the active invocation's actor, never a declared qualifier.
|
|
69
|
+
const actor = runtime.scope.actor ?? {};
|
|
70
|
+
let sessionId = nonEmpty(actor.sessionId) ?? nonEmpty(manager.activeSessionId);
|
|
71
|
+
if (!sessionId) {
|
|
72
|
+
const defaultSessionOutcome = await attempt(runtime, async () => manager.getDefaultActiveSession
|
|
73
|
+
? nonEmpty(await manager.getDefaultActiveSession())
|
|
74
|
+
: undefined);
|
|
75
|
+
if (defaultSessionOutcome.ok)
|
|
76
|
+
sessionId = defaultSessionOutcome.value;
|
|
77
|
+
}
|
|
78
|
+
if (!sessionId || !manager.getSession)
|
|
79
|
+
return null;
|
|
80
|
+
const sessionOutcome = await attempt(runtime, () => manager.getSession(sessionId));
|
|
81
|
+
if (!sessionOutcome.ok)
|
|
82
|
+
return null;
|
|
83
|
+
const session = sessionOutcome.value;
|
|
84
|
+
if (!session)
|
|
85
|
+
return null;
|
|
86
|
+
const participantId = nonEmpty(actor.participantId) ?? nonEmpty(session.ownerParticipant);
|
|
87
|
+
let participant;
|
|
88
|
+
if (participantId && manager.getParticipant) {
|
|
89
|
+
const participantOutcome = await attempt(runtime, () => manager.getParticipant(participantId));
|
|
90
|
+
if (participantOutcome.ok)
|
|
91
|
+
participant = participantOutcome.value;
|
|
92
|
+
}
|
|
93
|
+
const participantMetadata = record(participant?.metadata);
|
|
94
|
+
const clientInfo = record(participantMetadata.clientInfo);
|
|
95
|
+
const sessionMetadata = record(session.metadata);
|
|
96
|
+
const agentId = nonEmpty(participantMetadata.agentId) ??
|
|
97
|
+
nonEmpty(clientInfo.agentId) ??
|
|
98
|
+
nonEmpty(actor.agentId) ??
|
|
99
|
+
nonEmpty(runtime.getEnv('VIBES_AGENT_ID')) ??
|
|
100
|
+
participantId ??
|
|
101
|
+
sessionId;
|
|
102
|
+
const configured = await enrichConfiguredModel(runtime, agentId, nonEmpty(participantMetadata.modelId) ??
|
|
103
|
+
nonEmpty(clientInfo.modelId) ??
|
|
104
|
+
nonEmpty(runtime.getEnv('VIBES_MODEL_ID')), nonEmpty(participantMetadata.providerId) ??
|
|
105
|
+
nonEmpty(clientInfo.providerId) ??
|
|
106
|
+
nonEmpty(runtime.getEnv('VIBES_PROVIDER_ID')));
|
|
107
|
+
const identityOutcome = await attempt(runtime, () => resolveTouchIdentity(runtime));
|
|
108
|
+
const identity = identityOutcome.ok ? identityOutcome.value : {};
|
|
109
|
+
const started = new Date(session.createdAt);
|
|
110
|
+
if (Number.isNaN(started.getTime()))
|
|
111
|
+
return null;
|
|
112
|
+
return {
|
|
113
|
+
agentId,
|
|
114
|
+
providerId: configured.providerId ?? null,
|
|
115
|
+
modelId: configured.modelId ?? null,
|
|
116
|
+
sessionId: session.id,
|
|
117
|
+
sessionStartedAt: started,
|
|
118
|
+
observedAt: now,
|
|
119
|
+
participantId,
|
|
120
|
+
participantSlug: identity.participantSlug,
|
|
121
|
+
runtimeEnvironment: nonEmpty(clientInfo.externalToolId) ??
|
|
122
|
+
nonEmpty(clientInfo.name) ??
|
|
123
|
+
nonEmpty(runtime.scope.surface) ??
|
|
124
|
+
nonEmpty(runtime.scope.hardware),
|
|
125
|
+
machineId: identity.machineId,
|
|
126
|
+
machineName: identity.machineName,
|
|
127
|
+
workspaceRoot: identity.workspaceRoot,
|
|
128
|
+
gitBranch: identity.gitBranch,
|
|
129
|
+
workItemId: identity.workItemId ?? nonEmpty(session.workItemId),
|
|
130
|
+
workItemTitle: identity.workItemTitle ?? nonEmpty(sessionMetadata.workItemTitle)
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export async function resolveAgentRosterProvider(runtime, providerId) {
|
|
134
|
+
if (runtime.hasKind(EXTERNAL_AGENT_ROSTER_PROVIDER_KIND)) {
|
|
135
|
+
const qualifier = z
|
|
136
|
+
.object({ [AGENT_ROSTER_PROVIDER_QUALIFIER]: z.unknown().optional() })
|
|
137
|
+
.safeParse(runtime.scope.qualifiers);
|
|
138
|
+
const selectedProviderId = nonEmpty(providerId) ??
|
|
139
|
+
nonEmpty(qualifier.success ? qualifier.data[AGENT_ROSTER_PROVIDER_QUALIFIER] : undefined) ??
|
|
140
|
+
ACCOUNT_AGENT_ROSTER_PROVIDER_ID;
|
|
141
|
+
const resolved = await runtime
|
|
142
|
+
.query(EXTERNAL_AGENT_ROSTER_PROVIDER_KIND)
|
|
143
|
+
.withId(selectedProviderId)
|
|
144
|
+
.resolve();
|
|
145
|
+
if (resolved)
|
|
146
|
+
return resolved;
|
|
147
|
+
}
|
|
148
|
+
const { CloudAgentRosterProvider } = await import("./cloud-agent-roster-provider.impl.js");
|
|
149
|
+
const { asCallerBearerRuntime } = await import("./cloud-authenticated-json.js");
|
|
150
|
+
return new CloudAgentRosterProvider(asCallerBearerRuntime(runtime));
|
|
151
|
+
}
|
|
152
|
+
export async function announceCurrentAgentSession(runtime, now = new Date()) {
|
|
153
|
+
const entry = await resolveCurrentAgentSessionAnnouncement(runtime, now);
|
|
154
|
+
if (!entry)
|
|
155
|
+
return null;
|
|
156
|
+
const provider = await resolveAgentRosterProvider(runtime);
|
|
157
|
+
if (provider)
|
|
158
|
+
await provider.announce(entry);
|
|
159
|
+
return entry;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Longest gap the runtime leaves between roster writes while the session is
|
|
163
|
+
* unchanged.
|
|
164
|
+
*
|
|
165
|
+
* The server holds an announcement for its own TTL (15 minutes, see hq-web's
|
|
166
|
+
* `AGENT_ROSTER_TTL_SECONDS`) and expires crashed sessions on read, so staying
|
|
167
|
+
* listed only requires a write comfortably inside that window — not one per
|
|
168
|
+
* tick. This keepalive leaves a 10x margin under the TTL while still sitting
|
|
169
|
+
* under the 3-minute freshness convention used elsewhere for hosts.
|
|
170
|
+
*/
|
|
171
|
+
export const AGENT_ROSTER_KEEPALIVE_MS = 90 * 1000;
|
|
172
|
+
/**
|
|
173
|
+
* Everything the roster row carries except the observation timestamp.
|
|
174
|
+
*
|
|
175
|
+
* `observedAt` advances on every tick by construction, so comparing whole
|
|
176
|
+
* entries would report "changed" forever. Two entries with the same fingerprint
|
|
177
|
+
* describe the same session doing the same work, and the later one tells the
|
|
178
|
+
* server nothing it does not already hold.
|
|
179
|
+
*/
|
|
180
|
+
export function agentSessionAnnouncementFingerprint(entry) {
|
|
181
|
+
const { observedAt: _observedAt, ...rest } = entry;
|
|
182
|
+
const normalized = Object.entries(rest)
|
|
183
|
+
.filter(([, value]) => value !== undefined)
|
|
184
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
185
|
+
.map(([key, value]) => [key, value instanceof Date ? value.toISOString() : value]);
|
|
186
|
+
return JSON.stringify(normalized);
|
|
187
|
+
}
|
|
188
|
+
/** Whether `failure` is the provider refusing the presented credential. */
|
|
189
|
+
function isRosterRefusal(failure) {
|
|
190
|
+
return isCapabilityError(failure) && failure.reason === AGENT_ROSTER_UNAUTHORIZED_REASON;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* A digest naming the credential the runtime presents now, so a refusal can
|
|
194
|
+
* be remembered without holding the credential. A runtime with no bearer, or
|
|
195
|
+
* one whose bearer cannot be resolved, is named by that fact.
|
|
196
|
+
*/
|
|
197
|
+
async function presentedCredential(runtime) {
|
|
198
|
+
const { asCallerBearerRuntime, resolveAmbientBearer } = await import("./cloud-authenticated-json.js");
|
|
199
|
+
const outcome = await attempt(runtime, () => resolveAmbientBearer(asCallerBearerRuntime(runtime)), 'roster credential read');
|
|
200
|
+
if (!outcome.ok)
|
|
201
|
+
return 'unresolved';
|
|
202
|
+
if (outcome.value === null)
|
|
203
|
+
return 'none';
|
|
204
|
+
const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(outcome.value));
|
|
205
|
+
return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Announce the current session only when it actually changed, or when the
|
|
209
|
+
* keepalive falls due.
|
|
210
|
+
*
|
|
211
|
+
* Resolution stays local (session manager + model enrichment); only the write
|
|
212
|
+
* crosses the network, so an idle body costs nothing but the resolve it was
|
|
213
|
+
* already doing. Returns the entry when it published, `null` when it had
|
|
214
|
+
* nothing new to say — callers that must publish unconditionally should use
|
|
215
|
+
* `announceCurrentAgentSession`.
|
|
216
|
+
*
|
|
217
|
+
* `signal` is the caller's run: once it aborts (its runtime's disposal began)
|
|
218
|
+
* the announce publishes nothing and rejects with the signal's reason, and a
|
|
219
|
+
* publish in flight is aborted.
|
|
220
|
+
*
|
|
221
|
+
* A provider refusal (`agent-roster-unauthorized`) rejects once; later calls
|
|
222
|
+
* return `null` without publishing until the runtime presents a different
|
|
223
|
+
* credential.
|
|
224
|
+
*/
|
|
225
|
+
export async function announceCurrentAgentSessionIfDue(runtime, state, now = new Date(), signal) {
|
|
226
|
+
const entry = await resolveCurrentAgentSessionAnnouncement(runtime, now);
|
|
227
|
+
if (!entry)
|
|
228
|
+
return null;
|
|
229
|
+
const fingerprint = agentSessionAnnouncementFingerprint(entry);
|
|
230
|
+
const keepaliveDueAt = (state.announcedAt ?? 0) + AGENT_ROSTER_KEEPALIVE_MS;
|
|
231
|
+
if (state.fingerprint === fingerprint && now.getTime() < keepaliveDueAt)
|
|
232
|
+
return null;
|
|
233
|
+
if (state.refusedCredential !== undefined) {
|
|
234
|
+
if ((await presentedCredential(runtime)) === state.refusedCredential)
|
|
235
|
+
return null;
|
|
236
|
+
state.refusedCredential = undefined;
|
|
237
|
+
}
|
|
238
|
+
signal?.throwIfAborted();
|
|
239
|
+
const provider = await resolveAgentRosterProvider(runtime);
|
|
240
|
+
signal?.throwIfAborted();
|
|
241
|
+
if (provider) {
|
|
242
|
+
try {
|
|
243
|
+
await provider.announce(entry, { signal });
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
// Refused once: reported by the caller, then quiet until the
|
|
247
|
+
// credential changes, never retried against the same refusal.
|
|
248
|
+
if (isRosterRefusal(CaughtFailureSchema.parse(error)))
|
|
249
|
+
state.refusedCredential = await presentedCredential(runtime);
|
|
250
|
+
throw error;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
state.fingerprint = fingerprint;
|
|
254
|
+
state.announcedAt = now.getTime();
|
|
255
|
+
return entry;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=agent-roster-heartbeat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-roster-heartbeat.js","sourceRoot":"","sources":["../../src/ambient/agent-roster-heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "never throw into the tool/event path" wrapper for ambient handlers.
|
|
3
|
+
*
|
|
4
|
+
* Ambient work is a declared-optional path: a failure degrades to silence, but
|
|
5
|
+
* the reason is always logged (never swallowed) and travels on the outcome, so
|
|
6
|
+
* a caller that can say more keeps the failure instead of re-reading absence.
|
|
7
|
+
*/
|
|
8
|
+
import { type RuntimeRef, type Settled } from '@vibesdotdev/kernel';
|
|
9
|
+
/** Ambient work's value or the failure that was logged before it degraded. */
|
|
10
|
+
export type AttemptOutcome<T> = Settled<T>;
|
|
11
|
+
/** Run `fn`; on failure log the reason and resolve the failure as the outcome. */
|
|
12
|
+
export declare function attempt<T>(runtime: RuntimeRef, fn: () => Promise<T> | T, what?: string): Promise<AttemptOutcome<T>>;
|
|
13
|
+
/**
|
|
14
|
+
* Time-box a promise on the runtime's lifecycle. A budget expiry is the
|
|
15
|
+
* declared degrade-to-silence path (no log line: the budget firing is normal);
|
|
16
|
+
* any other failure is logged with its reason. Both resolve as the outcome.
|
|
17
|
+
*/
|
|
18
|
+
export declare function withBudget<T>(runtime: RuntimeRef, promise: Promise<T>, ms: number, reason?: string): Promise<AttemptOutcome<T>>;
|
|
19
|
+
//# sourceMappingURL=attempt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../../src/ambient/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+C,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGjH,8EAA8E;AAC9E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3C,kFAAkF;AAClF,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,SAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CASjI;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,CAAC,EACjC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,SAAmB,GACvB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAY5B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "never throw into the tool/event path" wrapper for ambient handlers.
|
|
3
|
+
*
|
|
4
|
+
* Ambient work is a declared-optional path: a failure degrades to silence, but
|
|
5
|
+
* the reason is always logged (never swallowed) and travels on the outcome, so
|
|
6
|
+
* a caller that can say more keeps the failure instead of re-reading absence.
|
|
7
|
+
*/
|
|
8
|
+
import { isCapabilityError, settle, valueFreeFailure } from '@vibesdotdev/kernel';
|
|
9
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
10
|
+
/** Run `fn`; on failure log the reason and resolve the failure as the outcome. */
|
|
11
|
+
export async function attempt(runtime, fn, what = 'ambient work') {
|
|
12
|
+
const outcome = await settle(fn);
|
|
13
|
+
if (!outcome.ok) {
|
|
14
|
+
const failure = outcome.cause;
|
|
15
|
+
getLogger('external.ambient.attempt', runtime).debug(`${what} failed; degrading to silence`, {
|
|
16
|
+
error: valueFreeFailure(failure)
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return outcome;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Time-box a promise on the runtime's lifecycle. A budget expiry is the
|
|
23
|
+
* declared degrade-to-silence path (no log line: the budget firing is normal);
|
|
24
|
+
* any other failure is logged with its reason. Both resolve as the outcome.
|
|
25
|
+
*/
|
|
26
|
+
export async function withBudget(runtime, promise, ms, reason = 'ambient-budget') {
|
|
27
|
+
const outcome = await settle(() => runtime.lifecycle.wait(() => promise, { timeoutMs: ms, reason }));
|
|
28
|
+
if (!outcome.ok) {
|
|
29
|
+
const failure = outcome.cause;
|
|
30
|
+
if (failure instanceof Error && isCapabilityError(failure) && failure.reason === 'wait-timeout') {
|
|
31
|
+
return outcome;
|
|
32
|
+
}
|
|
33
|
+
getLogger('external.ambient.attempt', runtime).debug(`${reason} failed; degrading to silence`, {
|
|
34
|
+
error: valueFreeFailure(failure)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return outcome;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=attempt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../src/ambient/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAiC,MAAM,qBAAqB,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,OAAmB,EAAE,EAAwB,EAAE,IAAI,GAAG,cAAc;IACpG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,SAAS,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,EAAE;YAC5F,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;SAChC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,OAAmB,EACnB,OAAmB,EACnB,EAAU,EACV,MAAM,GAAG,gBAAgB;IAEzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,YAAY,KAAK,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACjG,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,SAAS,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,+BAA+B,EAAE;YAC9F,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;SAChC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Official account-roster provider; replaceable through the runtime kind. */
|
|
2
|
+
import { type AgentSessionAnnouncement } from '../schemas/agent-roster.ts';
|
|
3
|
+
import { type AgentRosterAnnounceOptions, type AgentRosterProvider } from '../runtime/agent-roster-provider.ts';
|
|
4
|
+
import { type AmbientRuntime } from './cloud-authenticated-json.ts';
|
|
5
|
+
export declare class CloudAgentRosterProvider implements AgentRosterProvider {
|
|
6
|
+
private readonly runtime;
|
|
7
|
+
/** `runtime` is the one whose caller's bearer every request presents. */
|
|
8
|
+
constructor(runtime: AmbientRuntime);
|
|
9
|
+
announce(entry: AgentSessionAnnouncement, options?: AgentRosterAnnounceOptions): Promise<void>;
|
|
10
|
+
list(): Promise<AgentSessionAnnouncement[]>;
|
|
11
|
+
}
|
|
12
|
+
export default CloudAgentRosterProvider;
|
|
13
|
+
//# sourceMappingURL=cloud-agent-roster-provider.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-agent-roster-provider.impl.d.ts","sourceRoot":"","sources":["../../src/ambient/cloud-agent-roster-provider.impl.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,EAGN,KAAK,wBAAwB,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEN,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAsCxF,qBAAa,wBAAyB,YAAW,mBAAmB;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,yEAAyE;gBAC5C,OAAO,EAAE,cAAc;IAE9C,QAAQ,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,GAAE,0BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAelG,IAAI,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAejD;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Official account-roster provider; replaceable through the runtime kind. */
|
|
2
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
3
|
+
import { AccountAgentRosterResponseSchema, AgentSessionAnnouncementSchema } from "../schemas/agent-roster.js";
|
|
4
|
+
import { AGENT_ROSTER_UNAUTHORIZED_REASON } from "../runtime/agent-roster-provider.js";
|
|
5
|
+
import { requestAmbientJson } from "./cloud-authenticated-json.js";
|
|
6
|
+
const ROSTER_PATH = '/api/ambient/roster';
|
|
7
|
+
const READ_TIMEOUT_MS = 2_000;
|
|
8
|
+
// HQ's roster write lands in D1 and routinely takes longer than a read; at 2 s
|
|
9
|
+
// most CLI runs and heartbeats timed out (measured 2026-10-29, 3 of 4 runs).
|
|
10
|
+
const WRITE_TIMEOUT_MS = 6_000;
|
|
11
|
+
function unavailable(operation, status, cause) {
|
|
12
|
+
return new CapabilityError(`Could not ${operation} the account agent roster${status ? ` (HTTP ${status})` : ''}.`, 'UNAVAILABLE', {
|
|
13
|
+
retryable: true,
|
|
14
|
+
cause,
|
|
15
|
+
recoveryHint: 'The account roster provider is configured but unreachable. Restore the linked HQ/provider connection; do not treat a partial local roster as complete.'
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The account refused the bearer it was shown (HTTP 401 or 403). The bearer
|
|
20
|
+
* will be refused again until it changes, so this is not retryable.
|
|
21
|
+
*/
|
|
22
|
+
function unauthorized(status) {
|
|
23
|
+
return new CapabilityError(`The account agent roster refused this runtime's credential (HTTP ${status}).`, status === 401 ? 'AUTH_REQUIRED' : 'PERMISSION_DENIED', {
|
|
24
|
+
reason: AGENT_ROSTER_UNAUTHORIZED_REASON,
|
|
25
|
+
retryable: false,
|
|
26
|
+
details: { status },
|
|
27
|
+
recoveryHint: 'Sign in again (vibes auth login) so the runtime presents a credential the account accepts.'
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export class CloudAgentRosterProvider {
|
|
31
|
+
runtime;
|
|
32
|
+
/** `runtime` is the one whose caller's bearer every request presents. */
|
|
33
|
+
constructor(runtime) {
|
|
34
|
+
this.runtime = runtime;
|
|
35
|
+
}
|
|
36
|
+
async announce(entry, options = {}) {
|
|
37
|
+
const announcement = AgentSessionAnnouncementSchema.parse(entry);
|
|
38
|
+
const result = await requestAmbientJson(this.runtime, ROSTER_PATH, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
body: announcement,
|
|
41
|
+
timeoutMs: WRITE_TIMEOUT_MS,
|
|
42
|
+
signal: options.signal
|
|
43
|
+
});
|
|
44
|
+
// An unlinked/local-only runtime has no account provider by design, and a
|
|
45
|
+
// runtime that ended mid-announce has nobody left to announce.
|
|
46
|
+
if (!result.configured || result.cancelled)
|
|
47
|
+
return;
|
|
48
|
+
if (result.status === 401 || result.status === 403)
|
|
49
|
+
throw unauthorized(result.status);
|
|
50
|
+
if (!result.ok)
|
|
51
|
+
throw unavailable('publish', result.status, result.failure);
|
|
52
|
+
}
|
|
53
|
+
async list() {
|
|
54
|
+
const result = await requestAmbientJson(this.runtime, ROSTER_PATH, {
|
|
55
|
+
method: 'GET',
|
|
56
|
+
timeoutMs: READ_TIMEOUT_MS
|
|
57
|
+
});
|
|
58
|
+
if (!result.configured)
|
|
59
|
+
return [];
|
|
60
|
+
if (result.cancelled) {
|
|
61
|
+
throw new CapabilityError('Reading the account agent roster was cancelled: the runtime ended.', 'CANCELLED', {
|
|
62
|
+
reason: 'wait-aborted'
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (result.status === 401 || result.status === 403)
|
|
66
|
+
throw unauthorized(result.status);
|
|
67
|
+
if (!result.ok)
|
|
68
|
+
throw unavailable('read', result.status, result.failure);
|
|
69
|
+
return AccountAgentRosterResponseSchema.parse(result.body).agents;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export default CloudAgentRosterProvider;
|
|
73
|
+
//# sourceMappingURL=cloud-agent-roster-provider.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-agent-roster-provider.impl.js","sourceRoot":"","sources":["../../src/ambient/cloud-agent-roster-provider.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared authenticated JSON transport for account-scoped ambient providers.
|
|
3
|
+
*
|
|
4
|
+
* The official HQ origin is one provider, not an architectural dependency:
|
|
5
|
+
* the provider is the host's declared `hq` `infra/service`, so self-hosted and
|
|
6
|
+
* white-label runtimes declare another origin with the same contract (rc04
|
|
7
|
+
* §2.4). A host that composes no service catalog, or declares no `hq`
|
|
8
|
+
* service, is local-only. The credential is the caller's bearer, read through
|
|
9
|
+
* the `auth/caller-bearer` runtime context (auth's `resolveCallerBearer`,
|
|
10
|
+
* chosen by the host's declared capability (rc05 §2.2)): nothing is read from
|
|
11
|
+
* ambient auth env vars. External never imports auth — a public package cannot
|
|
12
|
+
* require an internal one — so the context is consumed structurally, and a
|
|
13
|
+
* host that composes no auth fails closed resolving it.
|
|
14
|
+
*/
|
|
15
|
+
import { CapabilityError, type RuntimeRef } from '@vibesdotdev/kernel';
|
|
16
|
+
export declare function ambientProjectionOptedOut(runtime: RuntimeRef): Promise<boolean>;
|
|
17
|
+
/** The runtime an ambient provider is handed: bearer, service, and lifecycle reads. */
|
|
18
|
+
export type AmbientRuntime = RuntimeRef;
|
|
19
|
+
/**
|
|
20
|
+
* The ambient provider's origin: the declared `hq` `infra/service` in the
|
|
21
|
+
* runtime's configured service environment. `null` (local-only) when
|
|
22
|
+
* projection is opted out, or when the host declares no `hq` service. A
|
|
23
|
+
* declared service with no usable origin is a typed failure, never an empty
|
|
24
|
+
* success.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveAmbientOrigin(runtime: RuntimeRef): Promise<string | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Narrow a runtime handle to what an ambient provider reads: the bearer
|
|
29
|
+
* context, the service query, and lifecycle-owned waits. A handle without
|
|
30
|
+
* them is a composition fault.
|
|
31
|
+
*/
|
|
32
|
+
export declare function asCallerBearerRuntime(runtime: RuntimeRef): AmbientRuntime;
|
|
33
|
+
/**
|
|
34
|
+
* The caller's bearer for ambient requests, or `null` when there is none to
|
|
35
|
+
* present: an anonymous request, a signed-out interactive host, a host that
|
|
36
|
+
* declares no environment tier (so no credential can be resolved — the
|
|
37
|
+
* ambient projection is simply unprovisioned there), or a request-principal
|
|
38
|
+
* host outside an invocation (no caller to name). Every other failure is
|
|
39
|
+
* thrown, including a host that composes no auth: it fails closed resolving
|
|
40
|
+
* the context.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveAmbientBearer(runtime: RuntimeRef): Promise<string | null>;
|
|
43
|
+
/**
|
|
44
|
+
* An ambient request's outcome. `configured: false` means no HQ origin or
|
|
45
|
+
* bearer (declared-optional). `cancelled` means the runtime ended mid-request:
|
|
46
|
+
* a confirmed cancellation, not an unreachable HQ.
|
|
47
|
+
*/
|
|
48
|
+
export type AmbientJsonResult = {
|
|
49
|
+
configured: boolean;
|
|
50
|
+
ok: boolean;
|
|
51
|
+
cancelled?: true;
|
|
52
|
+
/** Why a configured request failed to reach HQ (network, timeout), with the original as its cause. */
|
|
53
|
+
failure?: CapabilityError;
|
|
54
|
+
status?: number;
|
|
55
|
+
body?: unknown;
|
|
56
|
+
};
|
|
57
|
+
export declare function requestAmbientJson(runtime: AmbientRuntime, path: string, options: {
|
|
58
|
+
method?: 'GET' | 'POST' | 'DELETE';
|
|
59
|
+
body?: unknown;
|
|
60
|
+
timeoutMs: number;
|
|
61
|
+
/**
|
|
62
|
+
* The caller's run. Once it aborts the request is never sent, or the one
|
|
63
|
+
* in flight is aborted, and the outcome is `cancelled`. A runtime's own
|
|
64
|
+
* disposal does not end a request started while it finalizes, so owned
|
|
65
|
+
* work passes its run's signal here.
|
|
66
|
+
*/
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
}): Promise<AmbientJsonResult>;
|
|
69
|
+
//# sourceMappingURL=cloud-authenticated-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-authenticated-json.d.ts","sourceRoot":"","sources":["../../src/ambient/cloud-authenticated-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAyC,KAAK,UAAU,EAAuB,MAAM,qBAAqB,CAAC;AASnI,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKtF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAOzE;AAaD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAatF;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,sGAAsG;IACtG,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACR,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,GACC,OAAO,CAAC,iBAAiB,CAAC,CAwB5B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared authenticated JSON transport for account-scoped ambient providers.
|
|
3
|
+
*
|
|
4
|
+
* The official HQ origin is one provider, not an architectural dependency:
|
|
5
|
+
* the provider is the host's declared `hq` `infra/service`, so self-hosted and
|
|
6
|
+
* white-label runtimes declare another origin with the same contract (rc04
|
|
7
|
+
* §2.4). A host that composes no service catalog, or declares no `hq`
|
|
8
|
+
* service, is local-only. The credential is the caller's bearer, read through
|
|
9
|
+
* the `auth/caller-bearer` runtime context (auth's `resolveCallerBearer`,
|
|
10
|
+
* chosen by the host's declared capability (rc05 §2.2)): nothing is read from
|
|
11
|
+
* ambient auth env vars. External never imports auth — a public package cannot
|
|
12
|
+
* require an internal one — so the context is consumed structurally, and a
|
|
13
|
+
* host that composes no auth fails closed resolving it.
|
|
14
|
+
*/
|
|
15
|
+
import { CapabilityError, isCapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
|
|
16
|
+
import { serviceOrigin } from '@vibesdotdev/infra-core/service';
|
|
17
|
+
import { ambientProjectionIsOff } from "../config/read.js";
|
|
18
|
+
export async function ambientProjectionOptedOut(runtime) {
|
|
19
|
+
return ambientProjectionIsOff(runtime);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The ambient provider's origin: the declared `hq` `infra/service` in the
|
|
23
|
+
* runtime's configured service environment. `null` (local-only) when
|
|
24
|
+
* projection is opted out, or when the host declares no `hq` service. A
|
|
25
|
+
* declared service with no usable origin is a typed failure, never an empty
|
|
26
|
+
* success.
|
|
27
|
+
*/
|
|
28
|
+
export async function resolveAmbientOrigin(runtime) {
|
|
29
|
+
if (await ambientProjectionIsOff(runtime))
|
|
30
|
+
return null;
|
|
31
|
+
if (!runtime.hasKind('infra/service'))
|
|
32
|
+
return null;
|
|
33
|
+
if (runtime.query('infra/service').withId('hq').descriptors().length === 0)
|
|
34
|
+
return null;
|
|
35
|
+
return (await serviceOrigin(runtime, 'hq')).replace(/\/$/, '');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Narrow a runtime handle to what an ambient provider reads: the bearer
|
|
39
|
+
* context, the service query, and lifecycle-owned waits. A handle without
|
|
40
|
+
* them is a composition fault.
|
|
41
|
+
*/
|
|
42
|
+
export function asCallerBearerRuntime(runtime) {
|
|
43
|
+
if (!runtime.context || !runtime.query || !runtime.hasKind || !runtime.lifecycle?.wait) {
|
|
44
|
+
throw new CapabilityError('The ambient provider was handed a runtime without a declared bearer dispatch and service query.', 'INTERNAL', {
|
|
45
|
+
reason: 'runtime-missing'
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return runtime;
|
|
49
|
+
}
|
|
50
|
+
async function attemptAmbientBearer(runtime) {
|
|
51
|
+
try {
|
|
52
|
+
const bearerContext = await runtime.context('auth/caller-bearer');
|
|
53
|
+
return { bearer: await bearerContext.resolve() };
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return { failure: CaughtFailureSchema.parse(error) };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The caller's bearer for ambient requests, or `null` when there is none to
|
|
61
|
+
* present: an anonymous request, a signed-out interactive host, a host that
|
|
62
|
+
* declares no environment tier (so no credential can be resolved — the
|
|
63
|
+
* ambient projection is simply unprovisioned there), or a request-principal
|
|
64
|
+
* host outside an invocation (no caller to name). Every other failure is
|
|
65
|
+
* thrown, including a host that composes no auth: it fails closed resolving
|
|
66
|
+
* the context.
|
|
67
|
+
*/
|
|
68
|
+
export async function resolveAmbientBearer(runtime) {
|
|
69
|
+
const attempt = await attemptAmbientBearer(runtime);
|
|
70
|
+
if ('bearer' in attempt)
|
|
71
|
+
return attempt.bearer;
|
|
72
|
+
const failure = attempt.failure;
|
|
73
|
+
if (isCapabilityError(failure) &&
|
|
74
|
+
(failure.reason === 'not-signed-in' ||
|
|
75
|
+
failure.reason === 'tier-undeclared' ||
|
|
76
|
+
failure.reason === 'invocation-inactive')) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
throw failure;
|
|
80
|
+
}
|
|
81
|
+
export async function requestAmbientJson(runtime, path, options) {
|
|
82
|
+
const [origin, token] = await Promise.all([resolveAmbientOrigin(runtime), resolveAmbientBearer(runtime)]);
|
|
83
|
+
if (!origin || !token)
|
|
84
|
+
return { configured: false, ok: false };
|
|
85
|
+
const method = options.method ?? 'GET';
|
|
86
|
+
const headers = { accept: 'application/json', authorization: `Bearer ${token}` };
|
|
87
|
+
const init = options.body === undefined
|
|
88
|
+
? { method, headers }
|
|
89
|
+
: { method, headers: { ...headers, 'content-type': 'application/json' }, body: JSON.stringify(options.body) };
|
|
90
|
+
try {
|
|
91
|
+
const response = await runtime.lifecycle.wait((signal) => fetch(`${origin}${path}`, { ...init, signal }), {
|
|
92
|
+
timeoutMs: options.timeoutMs,
|
|
93
|
+
reason: `ambient-request:${path}`,
|
|
94
|
+
signal: options.signal
|
|
95
|
+
});
|
|
96
|
+
if (!response.ok)
|
|
97
|
+
return { configured: true, ok: false, status: response.status };
|
|
98
|
+
return { configured: true, ok: true, status: response.status, body: await response.json() };
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (error instanceof Error && isCapabilityError(error) && error.code === 'CANCELLED')
|
|
102
|
+
return { configured: true, ok: false, cancelled: true };
|
|
103
|
+
// Declared-optional ambient provider: an unreachable HQ degrades to "not ok",
|
|
104
|
+
// and the failure travels with the outcome for the caller to report.
|
|
105
|
+
return { configured: true, ok: false, failure: CapabilityError.from(CaughtFailureSchema.parse(error)) };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=cloud-authenticated-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-authenticated-json.js","sourceRoot":"","sources":["../../src/ambient/cloud-authenticated-json.ts"],"names":[],"mappings":"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"}
|