@cavi-ai/api-client 0.1.0
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/ARCHITECTURE.md +12 -0
- package/CHANGELOG.md +80 -0
- package/CONTRIBUTING.md +158 -0
- package/LICENSE +21 -0
- package/README.md +618 -0
- package/SECURITY.md +48 -0
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +4 -0
- package/dist/contracts/paths.d.ts +154 -0
- package/dist/contracts/paths.d.ts.map +1 -0
- package/dist/contracts/paths.js +89 -0
- package/dist/contracts/resolve.d.ts +7 -0
- package/dist/contracts/resolve.d.ts.map +1 -0
- package/dist/contracts/resolve.js +22 -0
- package/dist/contracts/surfaces.d.ts +13 -0
- package/dist/contracts/surfaces.d.ts.map +1 -0
- package/dist/contracts/surfaces.js +332 -0
- package/dist/contracts/team-manifest.d.ts +200 -0
- package/dist/contracts/team-manifest.d.ts.map +1 -0
- package/dist/contracts/team-manifest.js +951 -0
- package/dist/core/data/guards.d.ts +6 -0
- package/dist/core/data/guards.d.ts.map +1 -0
- package/dist/core/data/guards.js +22 -0
- package/dist/core/data/index.d.ts +2 -0
- package/dist/core/data/index.d.ts.map +1 -0
- package/dist/core/data/index.js +1 -0
- package/dist/core/env/config.d.ts +40 -0
- package/dist/core/env/config.d.ts.map +1 -0
- package/dist/core/env/config.js +44 -0
- package/dist/core/env/index.d.ts +3 -0
- package/dist/core/env/index.d.ts.map +1 -0
- package/dist/core/env/index.js +2 -0
- package/dist/core/env/repo-root.d.ts +11 -0
- package/dist/core/env/repo-root.d.ts.map +1 -0
- package/dist/core/env/repo-root.js +36 -0
- package/dist/core/gateway/agent/commands.d.ts +93 -0
- package/dist/core/gateway/agent/commands.d.ts.map +1 -0
- package/dist/core/gateway/agent/commands.js +351 -0
- package/dist/core/gateway/agent/config.d.ts +158 -0
- package/dist/core/gateway/agent/config.d.ts.map +1 -0
- package/dist/core/gateway/agent/config.js +536 -0
- package/dist/core/gateway/agent/index.d.ts +4 -0
- package/dist/core/gateway/agent/index.d.ts.map +1 -0
- package/dist/core/gateway/agent/index.js +3 -0
- package/dist/core/gateway/agent/voice-config.d.ts +20 -0
- package/dist/core/gateway/agent/voice-config.d.ts.map +1 -0
- package/dist/core/gateway/agent/voice-config.js +65 -0
- package/dist/core/gateway/client/capabilities.d.ts +28 -0
- package/dist/core/gateway/client/capabilities.d.ts.map +1 -0
- package/dist/core/gateway/client/capabilities.js +288 -0
- package/dist/core/gateway/client/client.d.ts +106 -0
- package/dist/core/gateway/client/client.d.ts.map +1 -0
- package/dist/core/gateway/client/client.js +41 -0
- package/dist/core/gateway/client/error-details.d.ts +17 -0
- package/dist/core/gateway/client/error-details.d.ts.map +1 -0
- package/dist/core/gateway/client/error-details.js +50 -0
- package/dist/core/gateway/client/fetch.d.ts +24 -0
- package/dist/core/gateway/client/fetch.d.ts.map +1 -0
- package/dist/core/gateway/client/fetch.js +98 -0
- package/dist/core/gateway/client/index.d.ts +6 -0
- package/dist/core/gateway/client/index.d.ts.map +1 -0
- package/dist/core/gateway/client/index.js +5 -0
- package/dist/core/gateway/client/runtime-targets.d.ts +11 -0
- package/dist/core/gateway/client/runtime-targets.d.ts.map +1 -0
- package/dist/core/gateway/client/runtime-targets.js +86 -0
- package/dist/core/gateway/envelope/envelope.d.ts +25 -0
- package/dist/core/gateway/envelope/envelope.d.ts.map +1 -0
- package/dist/core/gateway/envelope/envelope.js +141 -0
- package/dist/core/gateway/envelope/index.d.ts +3 -0
- package/dist/core/gateway/envelope/index.d.ts.map +1 -0
- package/dist/core/gateway/envelope/index.js +1 -0
- package/dist/core/gateway/envelope/types.d.ts +32 -0
- package/dist/core/gateway/envelope/types.d.ts.map +1 -0
- package/dist/core/gateway/envelope/types.js +1 -0
- package/dist/core/gateway/index.d.ts +11 -0
- package/dist/core/gateway/index.d.ts.map +1 -0
- package/dist/core/gateway/index.js +10 -0
- package/dist/core/gateway/jobs.d.ts +44 -0
- package/dist/core/gateway/jobs.d.ts.map +1 -0
- package/dist/core/gateway/jobs.js +104 -0
- package/dist/core/gateway/portal/config-patch.d.ts +42 -0
- package/dist/core/gateway/portal/config-patch.d.ts.map +1 -0
- package/dist/core/gateway/portal/config-patch.js +99 -0
- package/dist/core/gateway/portal/index.d.ts +2 -0
- package/dist/core/gateway/portal/index.d.ts.map +1 -0
- package/dist/core/gateway/portal/index.js +1 -0
- package/dist/core/gateway/providers/factory.d.ts +18 -0
- package/dist/core/gateway/providers/factory.d.ts.map +1 -0
- package/dist/core/gateway/providers/factory.js +40 -0
- package/dist/core/gateway/providers/index.d.ts +5 -0
- package/dist/core/gateway/providers/index.d.ts.map +1 -0
- package/dist/core/gateway/providers/index.js +4 -0
- package/dist/core/gateway/providers/normalize.d.ts +2 -0
- package/dist/core/gateway/providers/normalize.d.ts.map +1 -0
- package/dist/core/gateway/providers/normalize.js +6 -0
- package/dist/core/gateway/providers/registry.d.ts +5 -0
- package/dist/core/gateway/providers/registry.d.ts.map +1 -0
- package/dist/core/gateway/providers/registry.js +76 -0
- package/dist/core/gateway/providers/types.d.ts +42 -0
- package/dist/core/gateway/providers/types.d.ts.map +1 -0
- package/dist/core/gateway/providers/types.js +4 -0
- package/dist/core/gateway/resources/index.d.ts +3 -0
- package/dist/core/gateway/resources/index.d.ts.map +1 -0
- package/dist/core/gateway/resources/index.js +2 -0
- package/dist/core/gateway/resources/media.d.ts +165 -0
- package/dist/core/gateway/resources/media.d.ts.map +1 -0
- package/dist/core/gateway/resources/media.js +170 -0
- package/dist/core/gateway/resources/wiki.d.ts +136 -0
- package/dist/core/gateway/resources/wiki.d.ts.map +1 -0
- package/dist/core/gateway/resources/wiki.js +72 -0
- package/dist/core/gateway/rpc/client.d.ts +150 -0
- package/dist/core/gateway/rpc/client.d.ts.map +1 -0
- package/dist/core/gateway/rpc/client.js +675 -0
- package/dist/core/gateway/rpc/device-crypto.d.ts +19 -0
- package/dist/core/gateway/rpc/device-crypto.d.ts.map +1 -0
- package/dist/core/gateway/rpc/device-crypto.js +75 -0
- package/dist/core/gateway/rpc/device-store.d.ts +8 -0
- package/dist/core/gateway/rpc/device-store.d.ts.map +1 -0
- package/dist/core/gateway/rpc/device-store.js +113 -0
- package/dist/core/gateway/rpc/error.d.ts +5 -0
- package/dist/core/gateway/rpc/error.d.ts.map +1 -0
- package/dist/core/gateway/rpc/error.js +9 -0
- package/dist/core/gateway/rpc/index.d.ts +6 -0
- package/dist/core/gateway/rpc/index.d.ts.map +1 -0
- package/dist/core/gateway/rpc/index.js +5 -0
- package/dist/core/gateway/rpc/preauth-handshake.d.ts +39 -0
- package/dist/core/gateway/rpc/preauth-handshake.d.ts.map +1 -0
- package/dist/core/gateway/rpc/preauth-handshake.js +58 -0
- package/dist/core/gateway/run/contracts.d.ts +126 -0
- package/dist/core/gateway/run/contracts.d.ts.map +1 -0
- package/dist/core/gateway/run/contracts.js +23 -0
- package/dist/core/gateway/run/event-stream.d.ts +106 -0
- package/dist/core/gateway/run/event-stream.d.ts.map +1 -0
- package/dist/core/gateway/run/event-stream.js +264 -0
- package/dist/core/gateway/run/index.d.ts +5 -0
- package/dist/core/gateway/run/index.d.ts.map +1 -0
- package/dist/core/gateway/run/index.js +4 -0
- package/dist/core/gateway/run/sse-run-event-provider.d.ts +55 -0
- package/dist/core/gateway/run/sse-run-event-provider.d.ts.map +1 -0
- package/dist/core/gateway/run/sse-run-event-provider.js +394 -0
- package/dist/core/gateway/run/stream-failure.d.ts +11 -0
- package/dist/core/gateway/run/stream-failure.d.ts.map +1 -0
- package/dist/core/gateway/run/stream-failure.js +101 -0
- package/dist/core/gateway/snapshots/cache.d.ts +7 -0
- package/dist/core/gateway/snapshots/cache.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/cache.js +13 -0
- package/dist/core/gateway/snapshots/contracts.d.ts +279 -0
- package/dist/core/gateway/snapshots/contracts.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/contracts.js +1 -0
- package/dist/core/gateway/snapshots/index.d.ts +7 -0
- package/dist/core/gateway/snapshots/index.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/index.js +6 -0
- package/dist/core/gateway/snapshots/loaders.d.ts +76 -0
- package/dist/core/gateway/snapshots/loaders.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/loaders.js +515 -0
- package/dist/core/gateway/snapshots/session-loaders.d.ts +116 -0
- package/dist/core/gateway/snapshots/session-loaders.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/session-loaders.js +310 -0
- package/dist/core/gateway/snapshots/system-loaders.d.ts +16 -0
- package/dist/core/gateway/snapshots/system-loaders.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/system-loaders.js +61 -0
- package/dist/core/gateway/snapshots/transforms.d.ts +38 -0
- package/dist/core/gateway/snapshots/transforms.d.ts.map +1 -0
- package/dist/core/gateway/snapshots/transforms.js +328 -0
- package/dist/core/http/client-id.d.ts +6 -0
- package/dist/core/http/client-id.d.ts.map +1 -0
- package/dist/core/http/client-id.js +29 -0
- package/dist/core/http/client.d.ts +25 -0
- package/dist/core/http/client.d.ts.map +1 -0
- package/dist/core/http/client.js +234 -0
- package/dist/core/http/contracts.d.ts +3 -0
- package/dist/core/http/contracts.d.ts.map +1 -0
- package/dist/core/http/contracts.js +5 -0
- package/dist/core/http/errors.d.ts +17 -0
- package/dist/core/http/errors.d.ts.map +1 -0
- package/dist/core/http/errors.js +16 -0
- package/dist/core/http/gateway-error.d.ts +15 -0
- package/dist/core/http/gateway-error.d.ts.map +1 -0
- package/dist/core/http/gateway-error.js +15 -0
- package/dist/core/http/index.d.ts +10 -0
- package/dist/core/http/index.d.ts.map +1 -0
- package/dist/core/http/index.js +9 -0
- package/dist/core/http/json-client.d.ts +17 -0
- package/dist/core/http/json-client.d.ts.map +1 -0
- package/dist/core/http/json-client.js +62 -0
- package/dist/core/http/raw-client.d.ts +16 -0
- package/dist/core/http/raw-client.d.ts.map +1 -0
- package/dist/core/http/raw-client.js +36 -0
- package/dist/core/http/redaction.d.ts +20 -0
- package/dist/core/http/redaction.d.ts.map +1 -0
- package/dist/core/http/redaction.js +58 -0
- package/dist/core/http/types.d.ts +44 -0
- package/dist/core/http/types.d.ts.map +1 -0
- package/dist/core/http/types.js +3 -0
- package/dist/core/runtime/index.d.ts +2 -0
- package/dist/core/runtime/index.d.ts.map +1 -0
- package/dist/core/runtime/index.js +1 -0
- package/dist/core/runtime/paths.d.ts +5 -0
- package/dist/core/runtime/paths.d.ts.map +1 -0
- package/dist/core/runtime/paths.js +29 -0
- package/dist/core/sse/index.d.ts +2 -0
- package/dist/core/sse/index.d.ts.map +1 -0
- package/dist/core/sse/index.js +1 -0
- package/dist/core/sse/stream.d.ts +17 -0
- package/dist/core/sse/stream.d.ts.map +1 -0
- package/dist/core/sse/stream.js +106 -0
- package/dist/core/ws/close.d.ts +11 -0
- package/dist/core/ws/close.d.ts.map +1 -0
- package/dist/core/ws/close.js +34 -0
- package/dist/core/ws/gateway-websocket.d.ts +2 -0
- package/dist/core/ws/gateway-websocket.d.ts.map +1 -0
- package/dist/core/ws/gateway-websocket.js +1 -0
- package/dist/core/ws/index.d.ts +4 -0
- package/dist/core/ws/index.d.ts.map +1 -0
- package/dist/core/ws/index.js +3 -0
- package/dist/core/ws/targets.d.ts +21 -0
- package/dist/core/ws/targets.d.ts.map +1 -0
- package/dist/core/ws/targets.js +61 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-loaders.d.ts +21 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-loaders.d.ts.map +1 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-loaders.js +22 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-snapshot-loaders.d.ts +30 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-snapshot-loaders.d.ts.map +1 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-snapshot-loaders.js +72 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/library-live.d.ts +4 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/library-live.d.ts.map +1 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/library-live.js +66 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/operator-control-live.d.ts +7 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/operator-control-live.d.ts.map +1 -0
- package/dist/extensions/cavi/adapters/cavi-control-adapters/operator-control-live.js +318 -0
- package/dist/extensions/cavi/adapters/create-cavi-control-adapters.d.ts +88 -0
- package/dist/extensions/cavi/adapters/create-cavi-control-adapters.d.ts.map +1 -0
- package/dist/extensions/cavi/adapters/create-cavi-control-adapters.js +172 -0
- package/dist/extensions/cavi/client.d.ts +72 -0
- package/dist/extensions/cavi/client.d.ts.map +1 -0
- package/dist/extensions/cavi/client.js +19 -0
- package/dist/extensions/cavi/contracts/index.d.ts +6 -0
- package/dist/extensions/cavi/contracts/index.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/index.js +5 -0
- package/dist/extensions/cavi/contracts/mobile.d.ts +441 -0
- package/dist/extensions/cavi/contracts/mobile.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/mobile.js +467 -0
- package/dist/extensions/cavi/contracts/paths.d.ts +121 -0
- package/dist/extensions/cavi/contracts/paths.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/paths.js +197 -0
- package/dist/extensions/cavi/contracts/portals.d.ts +78 -0
- package/dist/extensions/cavi/contracts/portals.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/portals.js +70 -0
- package/dist/extensions/cavi/contracts/resolve.d.ts +3 -0
- package/dist/extensions/cavi/contracts/resolve.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/resolve.js +4 -0
- package/dist/extensions/cavi/contracts/surfaces.d.ts +5 -0
- package/dist/extensions/cavi/contracts/surfaces.d.ts.map +1 -0
- package/dist/extensions/cavi/contracts/surfaces.js +551 -0
- package/dist/extensions/cavi/discourse/contracts.d.ts +5 -0
- package/dist/extensions/cavi/discourse/contracts.d.ts.map +1 -0
- package/dist/extensions/cavi/discourse/contracts.js +7 -0
- package/dist/extensions/cavi/discourse/fallback.d.ts +3 -0
- package/dist/extensions/cavi/discourse/fallback.d.ts.map +1 -0
- package/dist/extensions/cavi/discourse/fallback.js +364 -0
- package/dist/extensions/cavi/discourse/live.d.ts +5 -0
- package/dist/extensions/cavi/discourse/live.d.ts.map +1 -0
- package/dist/extensions/cavi/discourse/live.js +22 -0
- package/dist/extensions/cavi/discourse/normalize-helpers.d.ts +11 -0
- package/dist/extensions/cavi/discourse/normalize-helpers.d.ts.map +1 -0
- package/dist/extensions/cavi/discourse/normalize-helpers.js +155 -0
- package/dist/extensions/cavi/discourse/normalize.d.ts +4 -0
- package/dist/extensions/cavi/discourse/normalize.d.ts.map +1 -0
- package/dist/extensions/cavi/discourse/normalize.js +287 -0
- package/dist/extensions/cavi/domain/discourse.d.ts +161 -0
- package/dist/extensions/cavi/domain/discourse.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/discourse.js +1 -0
- package/dist/extensions/cavi/domain/index.d.ts +6 -0
- package/dist/extensions/cavi/domain/index.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/index.js +5 -0
- package/dist/extensions/cavi/domain/library.d.ts +80 -0
- package/dist/extensions/cavi/domain/library.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/library.js +2 -0
- package/dist/extensions/cavi/domain/observability.d.ts +34 -0
- package/dist/extensions/cavi/domain/observability.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/observability.js +1 -0
- package/dist/extensions/cavi/domain/operator.d.ts +420 -0
- package/dist/extensions/cavi/domain/operator.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/operator.js +1 -0
- package/dist/extensions/cavi/domain/project-board.d.ts +96 -0
- package/dist/extensions/cavi/domain/project-board.d.ts.map +1 -0
- package/dist/extensions/cavi/domain/project-board.js +1 -0
- package/dist/extensions/cavi/fallbacks/provider.d.ts +13 -0
- package/dist/extensions/cavi/fallbacks/provider.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/provider.js +23 -0
- package/dist/extensions/cavi/fallbacks/snapshots/agent-memory.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/agent-memory.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/agent-memory.js +6 -0
- package/dist/extensions/cavi/fallbacks/snapshots/cost-history.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/cost-history.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/cost-history.js +73 -0
- package/dist/extensions/cavi/fallbacks/snapshots/incidents.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/incidents.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/incidents.js +50 -0
- package/dist/extensions/cavi/fallbacks/snapshots/index.d.ts +10 -0
- package/dist/extensions/cavi/fallbacks/snapshots/index.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/index.js +9 -0
- package/dist/extensions/cavi/fallbacks/snapshots/library.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/library.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/library.js +110 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/defaults.d.ts +8 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/defaults.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/defaults.js +29 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/index.d.ts +4 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/index.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/index.js +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-memory.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-memory.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-memory.js +63 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-registry-detail.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-registry-detail.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-registry-detail.js +716 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-section-status.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-section-status.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-section-status.js +38 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-status.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-status.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-status.js +84 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-tasks.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-tasks.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-tasks.js +111 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-ready.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-ready.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-ready.js +16 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-tasks.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-tasks.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-tasks.js +43 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/snapshot.js +16 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/transports.d.ts +4 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/transports.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/operator-control/transports.js +65 -0
- package/dist/extensions/cavi/fallbacks/snapshots/overview.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/overview.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/overview.js +40 -0
- package/dist/extensions/cavi/fallbacks/snapshots/routing.d.ts +3 -0
- package/dist/extensions/cavi/fallbacks/snapshots/routing.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/routing.js +36 -0
- package/dist/extensions/cavi/fallbacks/snapshots/runs.d.ts +4 -0
- package/dist/extensions/cavi/fallbacks/snapshots/runs.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/runs.js +133 -0
- package/dist/extensions/cavi/fallbacks/snapshots/shared.d.ts +2 -0
- package/dist/extensions/cavi/fallbacks/snapshots/shared.d.ts.map +1 -0
- package/dist/extensions/cavi/fallbacks/snapshots/shared.js +1 -0
- package/dist/extensions/cavi/index.d.ts +27 -0
- package/dist/extensions/cavi/index.d.ts.map +1 -0
- package/dist/extensions/cavi/index.js +26 -0
- package/dist/extensions/cavi/library/api.d.ts +18 -0
- package/dist/extensions/cavi/library/api.d.ts.map +1 -0
- package/dist/extensions/cavi/library/api.js +67 -0
- package/dist/extensions/cavi/library/client.d.ts +51 -0
- package/dist/extensions/cavi/library/client.d.ts.map +1 -0
- package/dist/extensions/cavi/library/client.js +23 -0
- package/dist/extensions/cavi/library/clip.d.ts +93 -0
- package/dist/extensions/cavi/library/clip.d.ts.map +1 -0
- package/dist/extensions/cavi/library/clip.js +272 -0
- package/dist/extensions/cavi/operator-control/constants.d.ts +4 -0
- package/dist/extensions/cavi/operator-control/constants.d.ts.map +1 -0
- package/dist/extensions/cavi/operator-control/constants.js +3 -0
- package/dist/extensions/cavi/operator-control/defaults.d.ts +11 -0
- package/dist/extensions/cavi/operator-control/defaults.d.ts.map +1 -0
- package/dist/extensions/cavi/operator-control/defaults.js +243 -0
- package/dist/extensions/cavi/operator-control/load-section.d.ts +24 -0
- package/dist/extensions/cavi/operator-control/load-section.d.ts.map +1 -0
- package/dist/extensions/cavi/operator-control/load-section.js +46 -0
- package/dist/extensions/cavi/portal/client.d.ts +16 -0
- package/dist/extensions/cavi/portal/client.d.ts.map +1 -0
- package/dist/extensions/cavi/portal/client.js +38 -0
- package/dist/extensions/cavi/portal/tts.d.ts +69 -0
- package/dist/extensions/cavi/portal/tts.d.ts.map +1 -0
- package/dist/extensions/cavi/portal/tts.js +116 -0
- package/dist/extensions/cavi/project-board/constants.d.ts +68 -0
- package/dist/extensions/cavi/project-board/constants.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/constants.js +9 -0
- package/dist/extensions/cavi/project-board/fallback.d.ts +3 -0
- package/dist/extensions/cavi/project-board/fallback.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/fallback.js +127 -0
- package/dist/extensions/cavi/project-board/live.d.ts +16 -0
- package/dist/extensions/cavi/project-board/live.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/live.js +86 -0
- package/dist/extensions/cavi/project-board/mutations.d.ts +43 -0
- package/dist/extensions/cavi/project-board/mutations.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/mutations.js +210 -0
- package/dist/extensions/cavi/project-board/normalize.d.ts +23 -0
- package/dist/extensions/cavi/project-board/normalize.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/normalize.js +410 -0
- package/dist/extensions/cavi/project-board/trace-id.d.ts +2 -0
- package/dist/extensions/cavi/project-board/trace-id.d.ts.map +1 -0
- package/dist/extensions/cavi/project-board/trace-id.js +7 -0
- package/dist/extensions/cavi/registry/canonical-team-registry.d.ts +41 -0
- package/dist/extensions/cavi/registry/canonical-team-registry.d.ts.map +1 -0
- package/dist/extensions/cavi/registry/canonical-team-registry.js +102 -0
- package/dist/extensions/cavi/registry/portal-library-registry.d.ts +6 -0
- package/dist/extensions/cavi/registry/portal-library-registry.d.ts.map +1 -0
- package/dist/extensions/cavi/registry/portal-library-registry.js +17 -0
- package/dist/extensions/cavi/registry/session-keys.d.ts +16 -0
- package/dist/extensions/cavi/registry/session-keys.d.ts.map +1 -0
- package/dist/extensions/cavi/registry/session-keys.js +68 -0
- package/dist/extensions/cavi/registry/team-registry-config.d.ts +6 -0
- package/dist/extensions/cavi/registry/team-registry-config.d.ts.map +1 -0
- package/dist/extensions/cavi/registry/team-registry-config.js +23 -0
- package/dist/extensions/cavi/registry/team-registry.d.ts +49 -0
- package/dist/extensions/cavi/registry/team-registry.d.ts.map +1 -0
- package/dist/extensions/cavi/registry/team-registry.js +290 -0
- package/dist/extensions/cavi/runtime/env-config.d.ts +35 -0
- package/dist/extensions/cavi/runtime/env-config.d.ts.map +1 -0
- package/dist/extensions/cavi/runtime/env-config.js +74 -0
- package/dist/extensions/cavi/runtime/paths.d.ts +11 -0
- package/dist/extensions/cavi/runtime/paths.d.ts.map +1 -0
- package/dist/extensions/cavi/runtime/paths.js +43 -0
- package/dist/extensions/cavi/runtime/standalone-mode.d.ts +3 -0
- package/dist/extensions/cavi/runtime/standalone-mode.d.ts.map +1 -0
- package/dist/extensions/cavi/runtime/standalone-mode.js +15 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +75 -0
- package/dist/providers/hermes/agent-config.d.ts +36 -0
- package/dist/providers/hermes/agent-config.d.ts.map +1 -0
- package/dist/providers/hermes/agent-config.js +242 -0
- package/dist/providers/hermes/chat-run.d.ts +106 -0
- package/dist/providers/hermes/chat-run.d.ts.map +1 -0
- package/dist/providers/hermes/chat-run.js +221 -0
- package/dist/providers/hermes/client.d.ts +13 -0
- package/dist/providers/hermes/client.d.ts.map +1 -0
- package/dist/providers/hermes/client.js +6 -0
- package/dist/providers/hermes/env-config.d.ts +18 -0
- package/dist/providers/hermes/env-config.d.ts.map +1 -0
- package/dist/providers/hermes/env-config.js +38 -0
- package/dist/providers/hermes/index.d.ts +12 -0
- package/dist/providers/hermes/index.d.ts.map +1 -0
- package/dist/providers/hermes/index.js +11 -0
- package/dist/providers/hermes/media.d.ts +6 -0
- package/dist/providers/hermes/media.d.ts.map +1 -0
- package/dist/providers/hermes/media.js +10 -0
- package/dist/providers/hermes/provider-module.d.ts +3 -0
- package/dist/providers/hermes/provider-module.d.ts.map +1 -0
- package/dist/providers/hermes/provider-module.js +22 -0
- package/dist/providers/hermes/sse-run-event-provider.d.ts +24 -0
- package/dist/providers/hermes/sse-run-event-provider.d.ts.map +1 -0
- package/dist/providers/hermes/sse-run-event-provider.js +32 -0
- package/dist/providers/hermes/team-registry-config.d.ts +3 -0
- package/dist/providers/hermes/team-registry-config.d.ts.map +1 -0
- package/dist/providers/hermes/team-registry-config.js +1 -0
- package/dist/providers/hermes/team-registry.d.ts +3 -0
- package/dist/providers/hermes/team-registry.d.ts.map +1 -0
- package/dist/providers/hermes/team-registry.js +5 -0
- package/dist/providers/hermes/websocket.d.ts +6 -0
- package/dist/providers/hermes/websocket.d.ts.map +1 -0
- package/dist/providers/hermes/websocket.js +6 -0
- package/dist/providers/hermes/wiki.d.ts +6 -0
- package/dist/providers/hermes/wiki.d.ts.map +1 -0
- package/dist/providers/hermes/wiki.js +10 -0
- package/dist/providers/openclaw/agent-config.d.ts +6 -0
- package/dist/providers/openclaw/agent-config.d.ts.map +1 -0
- package/dist/providers/openclaw/agent-config.js +10 -0
- package/dist/providers/openclaw/client.d.ts +13 -0
- package/dist/providers/openclaw/client.d.ts.map +1 -0
- package/dist/providers/openclaw/client.js +6 -0
- package/dist/providers/openclaw/index.d.ts +10 -0
- package/dist/providers/openclaw/index.d.ts.map +1 -0
- package/dist/providers/openclaw/index.js +9 -0
- package/dist/providers/openclaw/media.d.ts +6 -0
- package/dist/providers/openclaw/media.d.ts.map +1 -0
- package/dist/providers/openclaw/media.js +10 -0
- package/dist/providers/openclaw/provider-module.d.ts +3 -0
- package/dist/providers/openclaw/provider-module.d.ts.map +1 -0
- package/dist/providers/openclaw/provider-module.js +16 -0
- package/dist/providers/openclaw/sse-run-event-provider.d.ts +6 -0
- package/dist/providers/openclaw/sse-run-event-provider.d.ts.map +1 -0
- package/dist/providers/openclaw/sse-run-event-provider.js +10 -0
- package/dist/providers/openclaw/team-registry-config.d.ts +3 -0
- package/dist/providers/openclaw/team-registry-config.d.ts.map +1 -0
- package/dist/providers/openclaw/team-registry-config.js +1 -0
- package/dist/providers/openclaw/team-registry.d.ts +3 -0
- package/dist/providers/openclaw/team-registry.d.ts.map +1 -0
- package/dist/providers/openclaw/team-registry.js +5 -0
- package/dist/providers/openclaw/websocket.d.ts +6 -0
- package/dist/providers/openclaw/websocket.d.ts.map +1 -0
- package/dist/providers/openclaw/websocket.js +28 -0
- package/dist/providers/openclaw/wiki.d.ts +6 -0
- package/dist/providers/openclaw/wiki.d.ts.map +1 -0
- package/dist/providers/openclaw/wiki.js +10 -0
- package/dist/react/gateway-provider.d.ts +142 -0
- package/dist/react/gateway-provider.d.ts.map +1 -0
- package/dist/react/gateway-provider.js +569 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +1 -0
- package/docs/assets/api-client-hero.svg +73 -0
- package/docs/cavi-team-manifest.example.ts +219 -0
- package/docs/team-manifest.consumer.template.ts +248 -0
- package/docs/team-manifest.md +252 -0
- package/package.json +152 -0
- package/src/contracts/index.ts +4 -0
- package/src/contracts/paths.ts +126 -0
- package/src/contracts/resolve.ts +42 -0
- package/src/contracts/surfaces.ts +366 -0
- package/src/contracts/team-manifest.ts +1402 -0
- package/src/core/data/guards.ts +26 -0
- package/src/core/data/index.ts +1 -0
- package/src/core/env/config.ts +97 -0
- package/src/core/env/index.ts +2 -0
- package/src/core/env/repo-root.ts +59 -0
- package/src/core/gateway/README.md +35 -0
- package/src/core/gateway/agent/commands.ts +482 -0
- package/src/core/gateway/agent/config.ts +786 -0
- package/src/core/gateway/agent/index.ts +3 -0
- package/src/core/gateway/agent/voice-config.ts +91 -0
- package/src/core/gateway/client/capabilities.ts +385 -0
- package/src/core/gateway/client/client.ts +137 -0
- package/src/core/gateway/client/error-details.ts +74 -0
- package/src/core/gateway/client/fetch.ts +180 -0
- package/src/core/gateway/client/index.ts +5 -0
- package/src/core/gateway/client/runtime-targets.ts +132 -0
- package/src/core/gateway/envelope/envelope.ts +204 -0
- package/src/core/gateway/envelope/index.ts +2 -0
- package/src/core/gateway/envelope/types.ts +48 -0
- package/src/core/gateway/index.ts +10 -0
- package/src/core/gateway/jobs.ts +178 -0
- package/src/core/gateway/portal/config-patch.ts +136 -0
- package/src/core/gateway/portal/index.ts +1 -0
- package/src/core/gateway/providers/factory.ts +77 -0
- package/src/core/gateway/providers/index.ts +4 -0
- package/src/core/gateway/providers/normalize.ts +7 -0
- package/src/core/gateway/providers/registry.ts +96 -0
- package/src/core/gateway/providers/types.ts +73 -0
- package/src/core/gateway/resources/index.ts +2 -0
- package/src/core/gateway/resources/media.ts +474 -0
- package/src/core/gateway/resources/wiki.ts +301 -0
- package/src/core/gateway/rpc/client.ts +1067 -0
- package/src/core/gateway/rpc/device-crypto.ts +101 -0
- package/src/core/gateway/rpc/device-store.ts +147 -0
- package/src/core/gateway/rpc/error.ts +11 -0
- package/src/core/gateway/rpc/index.ts +5 -0
- package/src/core/gateway/rpc/preauth-handshake.ts +99 -0
- package/src/core/gateway/run/contracts.ts +155 -0
- package/src/core/gateway/run/event-stream.ts +373 -0
- package/src/core/gateway/run/index.ts +4 -0
- package/src/core/gateway/run/sse-run-event-provider.ts +513 -0
- package/src/core/gateway/run/stream-failure.ts +135 -0
- package/src/core/gateway/snapshots/cache.ts +22 -0
- package/src/core/gateway/snapshots/contracts.ts +293 -0
- package/src/core/gateway/snapshots/index.ts +6 -0
- package/src/core/gateway/snapshots/loaders.ts +738 -0
- package/src/core/gateway/snapshots/session-loaders.ts +534 -0
- package/src/core/gateway/snapshots/system-loaders.ts +93 -0
- package/src/core/gateway/snapshots/transforms.ts +508 -0
- package/src/core/http/client-id.ts +40 -0
- package/src/core/http/client.ts +271 -0
- package/src/core/http/contracts.ts +9 -0
- package/src/core/http/errors.ts +26 -0
- package/src/core/http/gateway-error.ts +38 -0
- package/src/core/http/index.ts +9 -0
- package/src/core/http/json-client.ts +90 -0
- package/src/core/http/raw-client.ts +57 -0
- package/src/core/http/redaction.ts +78 -0
- package/src/core/http/types.ts +59 -0
- package/src/core/runtime/index.ts +1 -0
- package/src/core/runtime/paths.ts +44 -0
- package/src/core/sse/index.ts +1 -0
- package/src/core/sse/stream.ts +118 -0
- package/src/core/ws/close.ts +51 -0
- package/src/core/ws/gateway-websocket.ts +8 -0
- package/src/core/ws/index.ts +3 -0
- package/src/core/ws/targets.ts +74 -0
- package/src/extensions/README.md +16 -0
- package/src/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-loaders.ts +33 -0
- package/src/extensions/cavi/adapters/cavi-control-adapters/gateway-ws-snapshot-loaders.ts +152 -0
- package/src/extensions/cavi/adapters/cavi-control-adapters/library-live.ts +120 -0
- package/src/extensions/cavi/adapters/cavi-control-adapters/operator-control-live.ts +422 -0
- package/src/extensions/cavi/adapters/create-cavi-control-adapters.ts +350 -0
- package/src/extensions/cavi/client.ts +25 -0
- package/src/extensions/cavi/contracts/index.ts +5 -0
- package/src/extensions/cavi/contracts/mobile.ts +528 -0
- package/src/extensions/cavi/contracts/paths.ts +242 -0
- package/src/extensions/cavi/contracts/portals.ts +165 -0
- package/src/extensions/cavi/contracts/resolve.ts +6 -0
- package/src/extensions/cavi/contracts/surfaces.ts +567 -0
- package/src/extensions/cavi/discourse/contracts.ts +9 -0
- package/src/extensions/cavi/discourse/fallback.ts +387 -0
- package/src/extensions/cavi/discourse/live.ts +36 -0
- package/src/extensions/cavi/discourse/normalize-helpers.ts +202 -0
- package/src/extensions/cavi/discourse/normalize.ts +415 -0
- package/src/extensions/cavi/domain/discourse.ts +209 -0
- package/src/extensions/cavi/domain/index.ts +5 -0
- package/src/extensions/cavi/domain/library.ts +96 -0
- package/src/extensions/cavi/domain/observability.ts +36 -0
- package/src/extensions/cavi/domain/operator.ts +486 -0
- package/src/extensions/cavi/domain/project-board.ts +107 -0
- package/src/extensions/cavi/fallbacks/provider.ts +57 -0
- package/src/extensions/cavi/fallbacks/snapshots/agent-memory.ts +8 -0
- package/src/extensions/cavi/fallbacks/snapshots/cost-history.ts +101 -0
- package/src/extensions/cavi/fallbacks/snapshots/incidents.ts +56 -0
- package/src/extensions/cavi/fallbacks/snapshots/index.ts +9 -0
- package/src/extensions/cavi/fallbacks/snapshots/library.ts +112 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/defaults.ts +57 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/index.ts +3 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-memory.ts +65 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-registry-detail.ts +735 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-section-status.ts +41 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-status.ts +87 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-tasks.ts +113 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-ready.ts +19 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot-worker-tasks.ts +46 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/snapshot.ts +18 -0
- package/src/extensions/cavi/fallbacks/snapshots/operator-control/transports.ts +81 -0
- package/src/extensions/cavi/fallbacks/snapshots/overview.ts +42 -0
- package/src/extensions/cavi/fallbacks/snapshots/routing.ts +38 -0
- package/src/extensions/cavi/fallbacks/snapshots/runs.ts +141 -0
- package/src/extensions/cavi/fallbacks/snapshots/shared.ts +1 -0
- package/src/extensions/cavi/index.ts +52 -0
- package/src/extensions/cavi/library/api.ts +120 -0
- package/src/extensions/cavi/library/client.ts +54 -0
- package/src/extensions/cavi/library/clip.ts +389 -0
- package/src/extensions/cavi/operator-control/constants.ts +3 -0
- package/src/extensions/cavi/operator-control/defaults.ts +254 -0
- package/src/extensions/cavi/operator-control/load-section.ts +92 -0
- package/src/extensions/cavi/portal/client.ts +63 -0
- package/src/extensions/cavi/portal/tts.ts +213 -0
- package/src/extensions/cavi/project-board/constants.ts +84 -0
- package/src/extensions/cavi/project-board/fallback.ts +129 -0
- package/src/extensions/cavi/project-board/live.ts +121 -0
- package/src/extensions/cavi/project-board/mutations.ts +306 -0
- package/src/extensions/cavi/project-board/normalize.ts +552 -0
- package/src/extensions/cavi/project-board/trace-id.ts +9 -0
- package/src/extensions/cavi/registry/canonical-team-registry.ts +193 -0
- package/src/extensions/cavi/registry/portal-library-registry.ts +24 -0
- package/src/extensions/cavi/registry/session-keys.ts +92 -0
- package/src/extensions/cavi/registry/team-registry-config.ts +36 -0
- package/src/extensions/cavi/registry/team-registry.ts +414 -0
- package/src/extensions/cavi/runtime/env-config.ts +114 -0
- package/src/extensions/cavi/runtime/paths.ts +82 -0
- package/src/extensions/cavi/runtime/standalone-mode.ts +28 -0
- package/src/index.ts +576 -0
- package/src/providers/hermes/agent-config.ts +322 -0
- package/src/providers/hermes/chat-run.ts +340 -0
- package/src/providers/hermes/client.ts +21 -0
- package/src/providers/hermes/env-config.ts +58 -0
- package/src/providers/hermes/index.ts +11 -0
- package/src/providers/hermes/media.ts +12 -0
- package/src/providers/hermes/provider-module.ts +26 -0
- package/src/providers/hermes/sse-run-event-provider.ts +47 -0
- package/src/providers/hermes/team-registry-config.ts +2 -0
- package/src/providers/hermes/team-registry.ts +12 -0
- package/src/providers/hermes/websocket.ts +16 -0
- package/src/providers/hermes/wiki.ts +12 -0
- package/src/providers/openclaw/agent-config.ts +12 -0
- package/src/providers/openclaw/client.ts +21 -0
- package/src/providers/openclaw/index.ts +9 -0
- package/src/providers/openclaw/media.ts +12 -0
- package/src/providers/openclaw/provider-module.ts +20 -0
- package/src/providers/openclaw/sse-run-event-provider.ts +16 -0
- package/src/providers/openclaw/team-registry-config.ts +2 -0
- package/src/providers/openclaw/team-registry.ts +12 -0
- package/src/providers/openclaw/websocket.ts +56 -0
- package/src/providers/openclaw/wiki.ts +12 -0
- package/src/react/gateway-provider.tsx +835 -0
- package/src/react/index.ts +1 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// CANONICAL — single source of truth lives here. Do not duplicate. See packages/README.md.
|
|
2
|
+
|
|
3
|
+
// Device identity crypto utilities for the gateway client.
|
|
4
|
+
// Uses Web Crypto API (SubtleCrypto) for Ed25519 key generation, signing, and ID derivation.
|
|
5
|
+
// Pure functions — no side effects, no storage.
|
|
6
|
+
|
|
7
|
+
// --- Base64url ---
|
|
8
|
+
|
|
9
|
+
export function base64UrlEncode(buf: Uint8Array): string {
|
|
10
|
+
let binary = "";
|
|
11
|
+
for (const byte of buf) {
|
|
12
|
+
binary += String.fromCharCode(byte);
|
|
13
|
+
}
|
|
14
|
+
return btoa(binary).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, "");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function base64UrlDecode(input: string): Uint8Array {
|
|
18
|
+
const normalized = input.replaceAll("-", "+").replaceAll("_", "/");
|
|
19
|
+
const padded = normalized + "=".repeat((4 - (normalized.length % 4)) % 4);
|
|
20
|
+
const binary = atob(padded);
|
|
21
|
+
const bytes = new Uint8Array(binary.length);
|
|
22
|
+
for (let i = 0; i < binary.length; i++) {
|
|
23
|
+
bytes[i] = binary.charCodeAt(i);
|
|
24
|
+
}
|
|
25
|
+
return bytes;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// --- Key Generation ---
|
|
29
|
+
|
|
30
|
+
export async function generateDeviceKeypair(): Promise<CryptoKeyPair> {
|
|
31
|
+
return await crypto.subtle.generateKey("Ed25519", false, ["sign", "verify"]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// --- Key Export ---
|
|
35
|
+
|
|
36
|
+
export async function exportPublicKeyRaw(key: CryptoKey): Promise<Uint8Array> {
|
|
37
|
+
const raw = await crypto.subtle.exportKey("raw", key);
|
|
38
|
+
return new Uint8Array(raw);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// --- Device ID ---
|
|
42
|
+
|
|
43
|
+
export async function deriveDeviceId(publicKeyRaw: Uint8Array): Promise<string> {
|
|
44
|
+
const hash = await crypto.subtle.digest("SHA-256", publicKeyRaw as ArrayBufferView<ArrayBuffer>);
|
|
45
|
+
const bytes = new Uint8Array(hash);
|
|
46
|
+
return Array.from(bytes)
|
|
47
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
48
|
+
.join("");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// --- Payload ---
|
|
52
|
+
|
|
53
|
+
function normalizeMetadata(value: string | undefined | null): string {
|
|
54
|
+
if (typeof value !== "string") {
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
const trimmed = value.trim();
|
|
58
|
+
if (!trimmed) {
|
|
59
|
+
return "";
|
|
60
|
+
}
|
|
61
|
+
// Must match server's normalizeDeviceMetadataForAuth: ASCII lowercase only.
|
|
62
|
+
return trimmed.replace(/[A-Z]/g, (c) => String.fromCharCode(c.charCodeAt(0) + 32));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function buildDeviceAuthPayloadV3(params: {
|
|
66
|
+
deviceId: string;
|
|
67
|
+
clientId: string;
|
|
68
|
+
clientMode: string;
|
|
69
|
+
role: string;
|
|
70
|
+
scopes: string[];
|
|
71
|
+
signedAtMs: number;
|
|
72
|
+
token: string;
|
|
73
|
+
nonce: string;
|
|
74
|
+
platform?: string | null;
|
|
75
|
+
deviceFamily?: string | null;
|
|
76
|
+
}): string {
|
|
77
|
+
const scopes = params.scopes.join(",");
|
|
78
|
+
const platform = normalizeMetadata(params.platform);
|
|
79
|
+
const deviceFamily = normalizeMetadata(params.deviceFamily);
|
|
80
|
+
return [
|
|
81
|
+
"v3",
|
|
82
|
+
params.deviceId,
|
|
83
|
+
params.clientId,
|
|
84
|
+
params.clientMode,
|
|
85
|
+
params.role,
|
|
86
|
+
scopes,
|
|
87
|
+
String(params.signedAtMs),
|
|
88
|
+
params.token,
|
|
89
|
+
params.nonce,
|
|
90
|
+
platform,
|
|
91
|
+
deviceFamily,
|
|
92
|
+
].join("|");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// --- Signing ---
|
|
96
|
+
|
|
97
|
+
export async function signPayload(privateKey: CryptoKey, payload: string): Promise<string> {
|
|
98
|
+
const encoded = new TextEncoder().encode(payload);
|
|
99
|
+
const signature = await crypto.subtle.sign("Ed25519", privateKey, encoded);
|
|
100
|
+
return base64UrlEncode(new Uint8Array(signature));
|
|
101
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// CANONICAL — single source of truth lives here. Do not duplicate. See packages/README.md.
|
|
2
|
+
|
|
3
|
+
// Device identity persistent store.
|
|
4
|
+
// Private key: non-extractable CryptoKey in IndexedDB (never leaves crypto subsystem).
|
|
5
|
+
// Device ID: SHA-256 hex in localStorage (public, fast lookup).
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
generateDeviceKeypair,
|
|
9
|
+
exportPublicKeyRaw,
|
|
10
|
+
deriveDeviceId,
|
|
11
|
+
base64UrlEncode,
|
|
12
|
+
} from "./device-crypto.js";
|
|
13
|
+
|
|
14
|
+
const IDB_NAME = "openclaw-device-identity";
|
|
15
|
+
const IDB_STORE = "keys";
|
|
16
|
+
const IDB_KEY = "current";
|
|
17
|
+
const LS_KEY = "openclaw-device-id";
|
|
18
|
+
|
|
19
|
+
export type DeviceIdentity = {
|
|
20
|
+
deviceId: string;
|
|
21
|
+
privateKey: CryptoKey;
|
|
22
|
+
publicKeyBase64Url: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
type StoredEntry = {
|
|
26
|
+
deviceId: string;
|
|
27
|
+
publicKeyRaw: string;
|
|
28
|
+
keyPair: CryptoKeyPair;
|
|
29
|
+
createdAtMs: number;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// --- SubtleCrypto + IndexedDB availability ---
|
|
33
|
+
|
|
34
|
+
export function isDeviceIdentitySupported(): boolean {
|
|
35
|
+
try {
|
|
36
|
+
return (
|
|
37
|
+
typeof globalThis.crypto?.subtle?.generateKey === "function" &&
|
|
38
|
+
typeof globalThis.indexedDB?.open === "function"
|
|
39
|
+
);
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// --- IndexedDB helpers ---
|
|
46
|
+
|
|
47
|
+
function openDb(): Promise<IDBDatabase> {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const request = indexedDB.open(IDB_NAME, 1);
|
|
50
|
+
request.addEventListener("upgradeneeded", () => {
|
|
51
|
+
const db = request.result;
|
|
52
|
+
if (!db.objectStoreNames.contains(IDB_STORE)) {
|
|
53
|
+
db.createObjectStore(IDB_STORE);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
request.addEventListener("success", () => resolve(request.result));
|
|
57
|
+
request.addEventListener("error", () => reject(request.error));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function idbGet(db: IDBDatabase, key: string): Promise<StoredEntry | undefined> {
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
const tx = db.transaction(IDB_STORE, "readonly");
|
|
64
|
+
const store = tx.objectStore(IDB_STORE);
|
|
65
|
+
const request = store.get(key);
|
|
66
|
+
request.addEventListener("success", () => resolve(request.result as StoredEntry | undefined));
|
|
67
|
+
request.addEventListener("error", () => reject(request.error));
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function idbPut(db: IDBDatabase, key: string, value: StoredEntry): Promise<void> {
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
const tx = db.transaction(IDB_STORE, "readwrite");
|
|
74
|
+
const store = tx.objectStore(IDB_STORE);
|
|
75
|
+
const request = store.put(value, key);
|
|
76
|
+
request.addEventListener("success", () => resolve());
|
|
77
|
+
request.addEventListener("error", () => reject(request.error));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// --- Load or Create ---
|
|
82
|
+
|
|
83
|
+
export async function loadOrCreateDeviceIdentity(): Promise<DeviceIdentity | null> {
|
|
84
|
+
if (!isDeviceIdentitySupported()) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
let db: IDBDatabase;
|
|
89
|
+
try {
|
|
90
|
+
db = await openDb();
|
|
91
|
+
} catch {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
try {
|
|
96
|
+
// Try loading existing identity
|
|
97
|
+
const existing = await idbGet(db, IDB_KEY);
|
|
98
|
+
if (
|
|
99
|
+
existing &&
|
|
100
|
+
typeof existing.deviceId === "string" &&
|
|
101
|
+
typeof existing.publicKeyRaw === "string" &&
|
|
102
|
+
existing.keyPair?.privateKey instanceof CryptoKey
|
|
103
|
+
) {
|
|
104
|
+
return {
|
|
105
|
+
deviceId: existing.deviceId,
|
|
106
|
+
privateKey: existing.keyPair.privateKey,
|
|
107
|
+
publicKeyBase64Url: existing.publicKeyRaw,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
} catch {
|
|
111
|
+
// Corrupt entry — fall through to regenerate
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Generate new identity
|
|
115
|
+
try {
|
|
116
|
+
const keyPair = await generateDeviceKeypair();
|
|
117
|
+
const publicKeyRaw = await exportPublicKeyRaw(keyPair.publicKey);
|
|
118
|
+
const deviceId = await deriveDeviceId(publicKeyRaw);
|
|
119
|
+
const publicKeyBase64Url = base64UrlEncode(publicKeyRaw);
|
|
120
|
+
|
|
121
|
+
const entry: StoredEntry = {
|
|
122
|
+
deviceId,
|
|
123
|
+
publicKeyRaw: publicKeyBase64Url,
|
|
124
|
+
keyPair,
|
|
125
|
+
createdAtMs: Date.now(),
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
await idbPut(db, IDB_KEY, entry);
|
|
129
|
+
|
|
130
|
+
// Device ID in localStorage for quick existence check
|
|
131
|
+
try {
|
|
132
|
+
localStorage.setItem(LS_KEY, deviceId);
|
|
133
|
+
} catch {
|
|
134
|
+
// localStorage blocked — non-fatal
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return {
|
|
138
|
+
deviceId,
|
|
139
|
+
privateKey: keyPair.privateKey,
|
|
140
|
+
publicKeyBase64Url,
|
|
141
|
+
};
|
|
142
|
+
} catch {
|
|
143
|
+
return null;
|
|
144
|
+
} finally {
|
|
145
|
+
db.close();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// CANONICAL — single source of truth lives here. Do not duplicate. See packages/README.md.
|
|
2
|
+
|
|
3
|
+
export class GatewayRpcError extends Error {
|
|
4
|
+
readonly code: string;
|
|
5
|
+
|
|
6
|
+
constructor(message: string, code = "gateway_error") {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "GatewayRpcError";
|
|
9
|
+
this.code = code;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// CANONICAL — single source of truth lives here. Do not duplicate. See packages/README.md.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Keep token-only connect fallback strictly before the gateway pre-auth
|
|
5
|
+
* handshake timeout. Core owns the timing math; providers and host apps own
|
|
6
|
+
* gateway-specific env keys or explicit timeout overrides.
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS = 10_000;
|
|
9
|
+
|
|
10
|
+
const HANDSHAKE_SAFETY_MARGIN_MS = 2_000;
|
|
11
|
+
/** Leave at least this much room before the server closes the pre-auth window. */
|
|
12
|
+
const MIN_MS_BEFORE_SERVER_CLOSE = 250;
|
|
13
|
+
|
|
14
|
+
export type GatewayPreauthHandshakeEnv = Readonly<Record<string, string | undefined>>;
|
|
15
|
+
|
|
16
|
+
export type GatewayPreauthHandshakeEnvKeys = Readonly<{
|
|
17
|
+
timeoutMs: string;
|
|
18
|
+
testTimeoutMs?: string;
|
|
19
|
+
testFlag?: string;
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
export const GATEWAY_PREAUTH_HANDSHAKE_ENV_KEYS: GatewayPreauthHandshakeEnvKeys = {
|
|
23
|
+
timeoutMs: "GATEWAY_PREAUTH_HANDSHAKE_TIMEOUT_MS",
|
|
24
|
+
testTimeoutMs: "GATEWAY_TEST_PREAUTH_HANDSHAKE_TIMEOUT_MS",
|
|
25
|
+
testFlag: "VITEST",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type ResolvePreauthHandshakeTimeoutMsParams = {
|
|
29
|
+
env?: GatewayPreauthHandshakeEnv;
|
|
30
|
+
envKeys?: GatewayPreauthHandshakeEnvKeys;
|
|
31
|
+
preauthHandshakeTimeoutMs?: number;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
type LegacyGatewayHandshakeEnv = Readonly<{
|
|
35
|
+
GATEWAY_PREAUTH_HANDSHAKE_TIMEOUT_MS?: string;
|
|
36
|
+
GATEWAY_TEST_PREAUTH_HANDSHAKE_TIMEOUT_MS?: string;
|
|
37
|
+
VITEST?: string;
|
|
38
|
+
}>;
|
|
39
|
+
|
|
40
|
+
function parsePositiveMs(value: string | undefined): number | null {
|
|
41
|
+
if (!value) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const parsed = Number(value);
|
|
45
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function resolvePreauthHandshakeTimeoutMs(
|
|
49
|
+
params: ResolvePreauthHandshakeTimeoutMsParams = {},
|
|
50
|
+
): number {
|
|
51
|
+
if (
|
|
52
|
+
typeof params.preauthHandshakeTimeoutMs === "number" &&
|
|
53
|
+
Number.isFinite(params.preauthHandshakeTimeoutMs) &&
|
|
54
|
+
params.preauthHandshakeTimeoutMs > 0
|
|
55
|
+
) {
|
|
56
|
+
return params.preauthHandshakeTimeoutMs;
|
|
57
|
+
}
|
|
58
|
+
const env = params.env;
|
|
59
|
+
if (!env) {
|
|
60
|
+
return DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS;
|
|
61
|
+
}
|
|
62
|
+
const keys = params.envKeys ?? GATEWAY_PREAUTH_HANDSHAKE_ENV_KEYS;
|
|
63
|
+
const configuredTimeout = parsePositiveMs(env[keys.timeoutMs]);
|
|
64
|
+
if (configuredTimeout) return configuredTimeout;
|
|
65
|
+
const testFlag = keys.testFlag ? env[keys.testFlag] : undefined;
|
|
66
|
+
const testTimeout = keys.testTimeoutMs && testFlag
|
|
67
|
+
? parsePositiveMs(env[keys.testTimeoutMs])
|
|
68
|
+
: null;
|
|
69
|
+
if (testTimeout) return testTimeout;
|
|
70
|
+
return DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated Use resolvePreauthHandshakeTimeoutMs({ env }) with generic
|
|
75
|
+
* gateway env keys, or pass provider-specific env keys explicitly.
|
|
76
|
+
*/
|
|
77
|
+
export function resolvePreauthHandshakeTimeoutMsFromEnv(
|
|
78
|
+
env?: LegacyGatewayHandshakeEnv,
|
|
79
|
+
): number {
|
|
80
|
+
return resolvePreauthHandshakeTimeoutMs({ env });
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type ResolveDeviceTokenOnlyFallbackMsParams = {
|
|
84
|
+
env?: GatewayPreauthHandshakeEnv;
|
|
85
|
+
envKeys?: GatewayPreauthHandshakeEnvKeys;
|
|
86
|
+
/** Explicit gateway handshake budget in milliseconds. */
|
|
87
|
+
preauthHandshakeTimeoutMs?: number;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/** Delay before sending `connect` without a nonce when device identity is enabled. */
|
|
91
|
+
export function resolveDeviceTokenOnlyFallbackMs(
|
|
92
|
+
params?: ResolveDeviceTokenOnlyFallbackMsParams,
|
|
93
|
+
): number {
|
|
94
|
+
const rawTimeout = resolvePreauthHandshakeTimeoutMs(params);
|
|
95
|
+
|
|
96
|
+
const preferred = Math.max(750, rawTimeout - HANDSHAKE_SAFETY_MARGIN_MS);
|
|
97
|
+
const maxAllowed = Math.max(1, rawTimeout - MIN_MS_BEFORE_SERVER_CLOSE);
|
|
98
|
+
return Math.min(preferred, maxAllowed);
|
|
99
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { GatewayResolvedRouteBinding } from "../../../contracts/team-manifest.js";
|
|
2
|
+
|
|
3
|
+
export type AgentRunStatus = "active" | "idle" | "stalled" | "error";
|
|
4
|
+
|
|
5
|
+
export type AgentRun = {
|
|
6
|
+
key: string;
|
|
7
|
+
title: string;
|
|
8
|
+
agentId: string;
|
|
9
|
+
channel: string;
|
|
10
|
+
updatedAt: number | null;
|
|
11
|
+
status: AgentRunStatus;
|
|
12
|
+
totalTokens: number;
|
|
13
|
+
errors: number;
|
|
14
|
+
/** Model used for this run (e.g. claude-sonnet-4, gpt-4). From backend when available. */
|
|
15
|
+
model?: string;
|
|
16
|
+
/** Cost in USD for this run. From backend when available. */
|
|
17
|
+
totalCostUsd?: number;
|
|
18
|
+
/** Optional manifest-derived binding for source/channel/team routing diagnostics. */
|
|
19
|
+
binding?: GatewayResolvedRouteBinding | null;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type AgentRunPreviewItem = {
|
|
23
|
+
role: string;
|
|
24
|
+
text: string;
|
|
25
|
+
at: number | null;
|
|
26
|
+
eventType?: string;
|
|
27
|
+
toolName?: string;
|
|
28
|
+
durationMs?: number | null;
|
|
29
|
+
error?: string | null;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type AgentRunDetailSnapshot = {
|
|
33
|
+
run: AgentRun | null;
|
|
34
|
+
preview: {
|
|
35
|
+
status: string;
|
|
36
|
+
items: AgentRunPreviewItem[];
|
|
37
|
+
};
|
|
38
|
+
usage: {
|
|
39
|
+
totalTokens: number;
|
|
40
|
+
totalCostUsd: number;
|
|
41
|
+
messages: number;
|
|
42
|
+
toolCalls: number;
|
|
43
|
+
errors: number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Canonical wire names for live run-stream events.
|
|
49
|
+
*
|
|
50
|
+
* Producers (Hermes SSE, gateway WebSocket, run-preview poll stopgap, mock)
|
|
51
|
+
* MUST emit these exact strings on the `event` field of every
|
|
52
|
+
* {@link RunStreamEvent}. Consumers MUST switch on these constants — never
|
|
53
|
+
* inline string literals.
|
|
54
|
+
*
|
|
55
|
+
* Tool events are part of the contract even when the upstream transport does
|
|
56
|
+
* not yet emit them: the {@link RunPreviewPollProvider}-style implementation
|
|
57
|
+
* synthesizes them from {@link AgentRunPreviewItem} so the consumer code path
|
|
58
|
+
* is identical regardless of producer.
|
|
59
|
+
*/
|
|
60
|
+
export const RUN_STREAM_EVENT_NAMES = {
|
|
61
|
+
MESSAGE_DELTA: "message.delta",
|
|
62
|
+
RUN_COMPLETED: "run.completed",
|
|
63
|
+
RUN_FAILED: "run.failed",
|
|
64
|
+
RUN_CANCELLED: "run.cancelled",
|
|
65
|
+
APPROVAL_REQUEST: "approval.request",
|
|
66
|
+
TOOL_CALL_STARTED: "tool.call.started",
|
|
67
|
+
TOOL_CALL_COMPLETED: "tool.call.completed",
|
|
68
|
+
TOOL_CALL_FAILED: "tool.call.failed",
|
|
69
|
+
} as const;
|
|
70
|
+
|
|
71
|
+
export type RunStreamEventName =
|
|
72
|
+
(typeof RUN_STREAM_EVENT_NAMES)[keyof typeof RUN_STREAM_EVENT_NAMES];
|
|
73
|
+
|
|
74
|
+
export type RunStreamToolStatus =
|
|
75
|
+
| "pending"
|
|
76
|
+
| "running"
|
|
77
|
+
| "completed"
|
|
78
|
+
| "failed";
|
|
79
|
+
|
|
80
|
+
export type RunStreamToolCall = {
|
|
81
|
+
/** Stable id for this tool invocation within the run; producers should make this best-effort unique. */
|
|
82
|
+
id: string;
|
|
83
|
+
name: string;
|
|
84
|
+
status: RunStreamToolStatus;
|
|
85
|
+
/** Free-form provider-side event tag (e.g. the underlying SSE event name) for diagnostics. */
|
|
86
|
+
event?: string;
|
|
87
|
+
/** JSON-stringified arguments / input payload (size-bounded by producer). */
|
|
88
|
+
input?: string;
|
|
89
|
+
/** JSON-stringified result / output (size-bounded by producer). */
|
|
90
|
+
output?: string;
|
|
91
|
+
error?: string;
|
|
92
|
+
durationMs?: number;
|
|
93
|
+
/** Epoch ms when this snapshot was produced. */
|
|
94
|
+
at?: number;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export type RunStreamApprovalChoice = "once" | "session" | "always" | "deny";
|
|
98
|
+
|
|
99
|
+
export type RunStreamMessageDeltaEvent = {
|
|
100
|
+
event: typeof RUN_STREAM_EVENT_NAMES.MESSAGE_DELTA;
|
|
101
|
+
runId: string;
|
|
102
|
+
delta: string;
|
|
103
|
+
at?: number;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export type RunStreamRunCompletedEvent = {
|
|
107
|
+
event: typeof RUN_STREAM_EVENT_NAMES.RUN_COMPLETED;
|
|
108
|
+
runId: string;
|
|
109
|
+
output?: string;
|
|
110
|
+
at?: number;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export type RunStreamRunFailedEvent = {
|
|
114
|
+
event: typeof RUN_STREAM_EVENT_NAMES.RUN_FAILED;
|
|
115
|
+
runId: string;
|
|
116
|
+
error: string;
|
|
117
|
+
at?: number;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export type RunStreamRunCancelledEvent = {
|
|
121
|
+
event: typeof RUN_STREAM_EVENT_NAMES.RUN_CANCELLED;
|
|
122
|
+
runId: string;
|
|
123
|
+
reason?: string;
|
|
124
|
+
at?: number;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export type RunStreamApprovalRequestEvent = {
|
|
128
|
+
event: typeof RUN_STREAM_EVENT_NAMES.APPROVAL_REQUEST;
|
|
129
|
+
runId: string;
|
|
130
|
+
choices: RunStreamApprovalChoice[];
|
|
131
|
+
at?: number;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export type RunStreamToolEvent = {
|
|
135
|
+
event:
|
|
136
|
+
| typeof RUN_STREAM_EVENT_NAMES.TOOL_CALL_STARTED
|
|
137
|
+
| typeof RUN_STREAM_EVENT_NAMES.TOOL_CALL_COMPLETED
|
|
138
|
+
| typeof RUN_STREAM_EVENT_NAMES.TOOL_CALL_FAILED;
|
|
139
|
+
runId: string;
|
|
140
|
+
toolCall: RunStreamToolCall;
|
|
141
|
+
at?: number;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Discriminated union of every event a {@link RunEventStreamProvider}-shaped
|
|
146
|
+
* source can emit. Add new variants here when extending the contract — do not
|
|
147
|
+
* add untagged variants.
|
|
148
|
+
*/
|
|
149
|
+
export type RunStreamEvent =
|
|
150
|
+
| RunStreamMessageDeltaEvent
|
|
151
|
+
| RunStreamRunCompletedEvent
|
|
152
|
+
| RunStreamRunFailedEvent
|
|
153
|
+
| RunStreamRunCancelledEvent
|
|
154
|
+
| RunStreamApprovalRequestEvent
|
|
155
|
+
| RunStreamToolEvent;
|