@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,41 @@
|
|
|
1
|
+
import type { OperatorRegistrySnapshot, OperatorRegistryTeam } from "../domain/index.js";
|
|
2
|
+
import { normalizeTeamLookupValue, type TeamRegistryConfig, type TeamRegistryTeamConfig } from "./team-registry.js";
|
|
3
|
+
export { normalizeTeamLookupValue };
|
|
4
|
+
export { buildAgentMainSessionKey, normalizeSessionAgentId, normalizeSessionKey, parseAgentSessionKey, sessionKeysEqual, type ParsedAgentSessionKey, } from "./session-keys.js";
|
|
5
|
+
export type CaviTeamPortalId = string;
|
|
6
|
+
export declare function listCaviTeamPortalIds(): string[];
|
|
7
|
+
export declare function configureCanonicalOperatorRegistry(snapshot: OperatorRegistrySnapshot | null | undefined): void;
|
|
8
|
+
export declare function configureCanonicalTeamRegistry(config: TeamRegistryConfig | null | undefined): void;
|
|
9
|
+
export declare function resetCanonicalOperatorRegistry(): void;
|
|
10
|
+
export declare function getOperatorTeamLookupKeys(team: OperatorRegistryTeam): string[];
|
|
11
|
+
export declare function matchesOperatorTeamIdentifier(team: OperatorRegistryTeam, identifier: string | null | undefined): boolean;
|
|
12
|
+
export declare function resolveCompiledCanonicalTeam(identifier: string | null | undefined): OperatorRegistryTeam | null;
|
|
13
|
+
export declare function resolveTeamFromCollection(teams: OperatorRegistryTeam[], identifier: string | null | undefined): OperatorRegistryTeam | null;
|
|
14
|
+
export declare function backfillCanonicalTeam(team: TeamRegistryTeamConfig): OperatorRegistryTeam;
|
|
15
|
+
export declare function matchesTaskTargetToTeam(target: {
|
|
16
|
+
team_id?: string | null;
|
|
17
|
+
team_slug?: string | null;
|
|
18
|
+
}, team: OperatorRegistryTeam): boolean;
|
|
19
|
+
export declare function getPortalTeamIdentity(portalId: CaviTeamPortalId): OperatorRegistryTeam;
|
|
20
|
+
export declare function getPortalTeamCode(portalId: CaviTeamPortalId): string;
|
|
21
|
+
export declare function resolveTeamSessionAgentId(params: {
|
|
22
|
+
teamId?: string | null;
|
|
23
|
+
operatorTeamId?: string | null;
|
|
24
|
+
operatorTeamSlug?: string | null;
|
|
25
|
+
agentAlias?: string | null;
|
|
26
|
+
}): string | null;
|
|
27
|
+
export declare function resolveTeamSessionKey(params: {
|
|
28
|
+
teamId?: string | null;
|
|
29
|
+
operatorTeamId?: string | null;
|
|
30
|
+
operatorTeamSlug?: string | null;
|
|
31
|
+
agentAlias?: string | null;
|
|
32
|
+
suffix?: string | null;
|
|
33
|
+
}): string | null;
|
|
34
|
+
export declare function resolvePortalPrimarySessionKey(params: {
|
|
35
|
+
portalId: CaviTeamPortalId;
|
|
36
|
+
suffix?: string | null;
|
|
37
|
+
}): string | null;
|
|
38
|
+
export declare function getPortalTeamSlug(portalId: CaviTeamPortalId): string;
|
|
39
|
+
export declare function getPortalTeamSectorSlug(portalId: CaviTeamPortalId): string;
|
|
40
|
+
export declare function listCompiledCanonicalTeams(): OperatorRegistryTeam[];
|
|
41
|
+
//# sourceMappingURL=canonical-team-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-team-registry.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cavi/registry/canonical-team-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { configureTeamRegistryConfig, getConfiguredTeamRegistry, resetTeamRegistryConfig, } from "./team-registry-config.js";
|
|
2
|
+
import { getTeamLookupKeys, matchesTeamIdentifier, normalizeTeamLookupValue, normalizeTeamRegistryTeam, resolveTeamFromCollection as resolveTeamFromConfiguredCollection, } from "./team-registry.js";
|
|
3
|
+
import { DEFAULT_AGENT_SESSION_SUFFIX, normalizeSessionAgentId, normalizeSessionKeyPart, } from "./session-keys.js";
|
|
4
|
+
export { normalizeTeamLookupValue };
|
|
5
|
+
export { buildAgentMainSessionKey, normalizeSessionAgentId, normalizeSessionKey, parseAgentSessionKey, sessionKeysEqual, } from "./session-keys.js";
|
|
6
|
+
export function listCaviTeamPortalIds() {
|
|
7
|
+
return getConfiguredTeamRegistry().listPortalIds();
|
|
8
|
+
}
|
|
9
|
+
export function configureCanonicalOperatorRegistry(snapshot) {
|
|
10
|
+
configureTeamRegistryConfig({
|
|
11
|
+
provider: "gateway",
|
|
12
|
+
snapshot: snapshot ?? null,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function configureCanonicalTeamRegistry(config) {
|
|
16
|
+
configureTeamRegistryConfig(config);
|
|
17
|
+
}
|
|
18
|
+
export function resetCanonicalOperatorRegistry() {
|
|
19
|
+
resetTeamRegistryConfig();
|
|
20
|
+
}
|
|
21
|
+
export function getOperatorTeamLookupKeys(team) {
|
|
22
|
+
return getTeamLookupKeys(team);
|
|
23
|
+
}
|
|
24
|
+
export function matchesOperatorTeamIdentifier(team, identifier) {
|
|
25
|
+
if (!identifier?.trim()) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return matchesTeamIdentifier(team, identifier);
|
|
29
|
+
}
|
|
30
|
+
export function resolveCompiledCanonicalTeam(identifier) {
|
|
31
|
+
return getConfiguredTeamRegistry().resolveTeam(identifier);
|
|
32
|
+
}
|
|
33
|
+
export function resolveTeamFromCollection(teams, identifier) {
|
|
34
|
+
return resolveTeamFromConfiguredCollection(teams, identifier);
|
|
35
|
+
}
|
|
36
|
+
export function backfillCanonicalTeam(team) {
|
|
37
|
+
const runtimeLegacyAliases = Array.isArray(team.legacyAliases)
|
|
38
|
+
? team.legacyAliases
|
|
39
|
+
: [];
|
|
40
|
+
const aliasFallback = runtimeLegacyAliases.find((alias) => resolveCompiledCanonicalTeam(alias) !== null) ?? null;
|
|
41
|
+
const fallback = resolveCompiledCanonicalTeam(team.teamCode) ??
|
|
42
|
+
resolveCompiledCanonicalTeam(team.teamSlug) ??
|
|
43
|
+
resolveCompiledCanonicalTeam(team.portalId) ??
|
|
44
|
+
resolveCompiledCanonicalTeam(team.id) ??
|
|
45
|
+
resolveCompiledCanonicalTeam(aliasFallback) ??
|
|
46
|
+
null;
|
|
47
|
+
return normalizeTeamRegistryTeam(team, fallback);
|
|
48
|
+
}
|
|
49
|
+
export function matchesTaskTargetToTeam(target, team) {
|
|
50
|
+
const needles = new Set(getOperatorTeamLookupKeys(team));
|
|
51
|
+
const teamId = target.team_id
|
|
52
|
+
? normalizeTeamLookupValue(target.team_id)
|
|
53
|
+
: null;
|
|
54
|
+
const teamSlug = target.team_slug
|
|
55
|
+
? normalizeTeamLookupValue(target.team_slug)
|
|
56
|
+
: null;
|
|
57
|
+
return Boolean((teamId && needles.has(teamId)) || (teamSlug && needles.has(teamSlug)));
|
|
58
|
+
}
|
|
59
|
+
export function getPortalTeamIdentity(portalId) {
|
|
60
|
+
return getConfiguredTeamRegistry().getPortalTeam(portalId);
|
|
61
|
+
}
|
|
62
|
+
export function getPortalTeamCode(portalId) {
|
|
63
|
+
return getConfiguredTeamRegistry().getPortalTeamCode(portalId);
|
|
64
|
+
}
|
|
65
|
+
export function resolveTeamSessionAgentId(params) {
|
|
66
|
+
const explicitAlias = normalizeSessionAgentId(params.agentAlias);
|
|
67
|
+
if (explicitAlias) {
|
|
68
|
+
return explicitAlias;
|
|
69
|
+
}
|
|
70
|
+
const team = resolveCompiledCanonicalTeam(params.operatorTeamSlug) ??
|
|
71
|
+
resolveCompiledCanonicalTeam(params.operatorTeamId) ??
|
|
72
|
+
resolveCompiledCanonicalTeam(params.teamId);
|
|
73
|
+
if (!team) {
|
|
74
|
+
return normalizeSessionAgentId(params.operatorTeamSlug ?? params.teamId);
|
|
75
|
+
}
|
|
76
|
+
return (normalizeSessionAgentId(team.lead) ??
|
|
77
|
+
normalizeSessionAgentId(team.dispatchDefaultAlias) ??
|
|
78
|
+
normalizeSessionAgentId(team.teamSlug));
|
|
79
|
+
}
|
|
80
|
+
export function resolveTeamSessionKey(params) {
|
|
81
|
+
const agentId = resolveTeamSessionAgentId(params);
|
|
82
|
+
if (!agentId) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const suffix = normalizeSessionKeyPart(params.suffix) || DEFAULT_AGENT_SESSION_SUFFIX;
|
|
86
|
+
return `agent:${agentId}:${suffix}`;
|
|
87
|
+
}
|
|
88
|
+
export function resolvePortalPrimarySessionKey(params) {
|
|
89
|
+
return resolveTeamSessionKey({
|
|
90
|
+
teamId: params.portalId,
|
|
91
|
+
suffix: params.suffix,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export function getPortalTeamSlug(portalId) {
|
|
95
|
+
return getConfiguredTeamRegistry().getPortalTeamSlug(portalId);
|
|
96
|
+
}
|
|
97
|
+
export function getPortalTeamSectorSlug(portalId) {
|
|
98
|
+
return getConfiguredTeamRegistry().getPortalTeamSectorSlug(portalId);
|
|
99
|
+
}
|
|
100
|
+
export function listCompiledCanonicalTeams() {
|
|
101
|
+
return getConfiguredTeamRegistry().listTeams();
|
|
102
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PortalLibraryRef } from "../contracts/portals.js";
|
|
2
|
+
export declare function getFleetLibraryRef(): PortalLibraryRef;
|
|
3
|
+
export declare function resolvePortalLibraryRef(portalId: string): PortalLibraryRef | null;
|
|
4
|
+
export declare function resolveLibraryRefByTeamIdentity(value: string | null | undefined): PortalLibraryRef | null;
|
|
5
|
+
export declare function listPortalLibraryRefs(): PortalLibraryRef[];
|
|
6
|
+
//# sourceMappingURL=portal-library-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-library-registry.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cavi/registry/portal-library-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,wBAAgB,kBAAkB,IAAI,gBAAgB,CAQrD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEjF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAEzG;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getConfiguredTeamRegistry } from "./team-registry-config.js";
|
|
2
|
+
export function getFleetLibraryRef() {
|
|
3
|
+
const ref = getConfiguredTeamRegistry().getFleetLibraryRef();
|
|
4
|
+
if (!ref) {
|
|
5
|
+
throw new Error("Team registry config does not define a fleet library ref. Load TEAM_REGISTRY_CONFIG before using library APIs.");
|
|
6
|
+
}
|
|
7
|
+
return ref;
|
|
8
|
+
}
|
|
9
|
+
export function resolvePortalLibraryRef(portalId) {
|
|
10
|
+
return getConfiguredTeamRegistry().resolvePortalLibraryRef(portalId);
|
|
11
|
+
}
|
|
12
|
+
export function resolveLibraryRefByTeamIdentity(value) {
|
|
13
|
+
return getConfiguredTeamRegistry().resolveLibraryRefByTeamIdentity(value);
|
|
14
|
+
}
|
|
15
|
+
export function listPortalLibraryRefs() {
|
|
16
|
+
return getConfiguredTeamRegistry().listLibraryRefs();
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const DEFAULT_AGENT_SESSION_AGENT_ID = "main";
|
|
2
|
+
export declare const DEFAULT_AGENT_SESSION_SUFFIX = "main";
|
|
3
|
+
export type ParsedAgentSessionKey = {
|
|
4
|
+
agentId: string;
|
|
5
|
+
rest: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function normalizeSessionKeyPart(value: string | null | undefined): string;
|
|
8
|
+
export declare function normalizeSessionAgentId(value: string | null | undefined): string | null;
|
|
9
|
+
export declare function parseAgentSessionKey(sessionKey: string | null | undefined): ParsedAgentSessionKey | null;
|
|
10
|
+
export declare function buildAgentMainSessionKey(params: {
|
|
11
|
+
agentId: string | null | undefined;
|
|
12
|
+
mainKey?: string | null | undefined;
|
|
13
|
+
}): string;
|
|
14
|
+
export declare function normalizeSessionKey(value: string | null | undefined): string | null;
|
|
15
|
+
export declare function sessionKeysEqual(left: string | null | undefined, right: string | null | undefined): boolean;
|
|
16
|
+
//# sourceMappingURL=session-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-keys.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cavi/registry/session-keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,SAAS,CAAC;AACrD,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAOnD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEhF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAgBvF;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,qBAAqB,GAAG,IAAI,CAe9B;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACrC,GAAG,MAAM,CAMT;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiBnF;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAIT"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export const DEFAULT_AGENT_SESSION_AGENT_ID = "main";
|
|
2
|
+
export const DEFAULT_AGENT_SESSION_SUFFIX = "main";
|
|
3
|
+
const VALID_AGENT_ID_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/i;
|
|
4
|
+
const INVALID_AGENT_ID_CHARS_RE = /[^a-z0-9_-]+/g;
|
|
5
|
+
const LEADING_DASH_RE = /^-+/;
|
|
6
|
+
const TRAILING_DASH_RE = /-+$/;
|
|
7
|
+
export function normalizeSessionKeyPart(value) {
|
|
8
|
+
return value?.trim().toLowerCase() ?? "";
|
|
9
|
+
}
|
|
10
|
+
export function normalizeSessionAgentId(value) {
|
|
11
|
+
const trimmed = value?.trim() ?? "";
|
|
12
|
+
if (!trimmed) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const normalized = normalizeSessionKeyPart(trimmed);
|
|
16
|
+
if (VALID_AGENT_ID_RE.test(trimmed)) {
|
|
17
|
+
return normalized;
|
|
18
|
+
}
|
|
19
|
+
return (normalized
|
|
20
|
+
.replace(INVALID_AGENT_ID_CHARS_RE, "-")
|
|
21
|
+
.replace(LEADING_DASH_RE, "")
|
|
22
|
+
.replace(TRAILING_DASH_RE, "")
|
|
23
|
+
.slice(0, 64) || DEFAULT_AGENT_SESSION_AGENT_ID);
|
|
24
|
+
}
|
|
25
|
+
export function parseAgentSessionKey(sessionKey) {
|
|
26
|
+
const raw = normalizeSessionKeyPart(sessionKey);
|
|
27
|
+
if (!raw) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const parts = raw.split(":").filter(Boolean);
|
|
31
|
+
if (parts.length < 3 || parts[0] !== "agent") {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const agentId = normalizeSessionAgentId(parts[1]);
|
|
35
|
+
const rest = parts.slice(2).join(":");
|
|
36
|
+
if (!agentId || !rest) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return { agentId, rest };
|
|
40
|
+
}
|
|
41
|
+
export function buildAgentMainSessionKey(params) {
|
|
42
|
+
const agentId = normalizeSessionAgentId(params.agentId) ?? DEFAULT_AGENT_SESSION_AGENT_ID;
|
|
43
|
+
const mainKey = normalizeSessionKeyPart(params.mainKey) || DEFAULT_AGENT_SESSION_SUFFIX;
|
|
44
|
+
return `agent:${agentId}:${mainKey}`;
|
|
45
|
+
}
|
|
46
|
+
export function normalizeSessionKey(value) {
|
|
47
|
+
const raw = value?.trim();
|
|
48
|
+
if (!raw) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const lowered = normalizeSessionKeyPart(raw);
|
|
52
|
+
if (lowered === DEFAULT_AGENT_SESSION_SUFFIX) {
|
|
53
|
+
return buildAgentMainSessionKey({ agentId: DEFAULT_AGENT_SESSION_AGENT_ID });
|
|
54
|
+
}
|
|
55
|
+
const parsed = parseAgentSessionKey(raw);
|
|
56
|
+
if (parsed) {
|
|
57
|
+
return `agent:${parsed.agentId}:${parsed.rest}`;
|
|
58
|
+
}
|
|
59
|
+
if (lowered.startsWith("agent:")) {
|
|
60
|
+
return lowered;
|
|
61
|
+
}
|
|
62
|
+
return lowered;
|
|
63
|
+
}
|
|
64
|
+
export function sessionKeysEqual(left, right) {
|
|
65
|
+
const normalizedLeft = normalizeSessionKey(left);
|
|
66
|
+
const normalizedRight = normalizeSessionKey(right);
|
|
67
|
+
return Boolean(normalizedLeft && normalizedRight && normalizedLeft === normalizedRight);
|
|
68
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CreateTeamRegistryOptions, type TeamRegistry, type TeamRegistryConfig } from "./team-registry.js";
|
|
2
|
+
export declare const TEAM_REGISTRY_CONFIG: TeamRegistryConfig;
|
|
3
|
+
export declare function configureTeamRegistryConfig(config: TeamRegistryConfig | null | undefined): void;
|
|
4
|
+
export declare function resetTeamRegistryConfig(): void;
|
|
5
|
+
export declare function getConfiguredTeamRegistry(options?: CreateTeamRegistryOptions): TeamRegistry;
|
|
6
|
+
//# sourceMappingURL=team-registry-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-registry-config.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cavi/registry/team-registry-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,oBAAoB,EAAE,kBAMlC,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAC5C,IAAI,CAQN;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,yBAA8B,GACtC,YAAY,CAEd"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createTeamRegistry, } from "./team-registry.js";
|
|
2
|
+
export const TEAM_REGISTRY_CONFIG = {
|
|
3
|
+
manifest: null,
|
|
4
|
+
teams: [],
|
|
5
|
+
libraries: {
|
|
6
|
+
teams: [],
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
export function configureTeamRegistryConfig(config) {
|
|
10
|
+
Object.assign(TEAM_REGISTRY_CONFIG, {
|
|
11
|
+
provider: config?.provider ?? null,
|
|
12
|
+
manifest: config?.manifest ?? null,
|
|
13
|
+
teams: config?.teams ?? [],
|
|
14
|
+
libraries: config?.libraries ?? { teams: [] },
|
|
15
|
+
snapshot: config?.snapshot ?? null,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function resetTeamRegistryConfig() {
|
|
19
|
+
configureTeamRegistryConfig(null);
|
|
20
|
+
}
|
|
21
|
+
export function getConfiguredTeamRegistry(options = {}) {
|
|
22
|
+
return createTeamRegistry(TEAM_REGISTRY_CONFIG, options);
|
|
23
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { OperatorRegistrySnapshot, OperatorRegistryTeam } from "../domain/index.js";
|
|
2
|
+
import type { PortalLibraryRef } from "../contracts/portals.js";
|
|
3
|
+
import { type TeamManifest } from "../../../contracts/team-manifest.js";
|
|
4
|
+
export type TeamRegistryProviderKind = "gateway" | "hermes" | "openclaw" | (string & {});
|
|
5
|
+
export type TeamRegistryTeamConfig = Partial<OperatorRegistryTeam> & {
|
|
6
|
+
id: string;
|
|
7
|
+
name?: string | null;
|
|
8
|
+
};
|
|
9
|
+
export type TeamRegistryLibraryRefConfig = PortalLibraryRef & {
|
|
10
|
+
lookupKeys?: readonly string[];
|
|
11
|
+
};
|
|
12
|
+
export type TeamRegistryLibraryConfig = {
|
|
13
|
+
fleet?: TeamRegistryLibraryRefConfig | null;
|
|
14
|
+
teams?: readonly TeamRegistryLibraryRefConfig[] | null;
|
|
15
|
+
};
|
|
16
|
+
export type TeamRegistryConfig = {
|
|
17
|
+
provider?: TeamRegistryProviderKind | null;
|
|
18
|
+
manifest?: Partial<TeamManifest> | null;
|
|
19
|
+
teams?: readonly TeamRegistryTeamConfig[] | null;
|
|
20
|
+
libraries?: TeamRegistryLibraryConfig | null;
|
|
21
|
+
snapshot?: Pick<OperatorRegistrySnapshot, "teams"> | null;
|
|
22
|
+
};
|
|
23
|
+
export type CreateTeamRegistryOptions = {
|
|
24
|
+
provider?: TeamRegistryProviderKind | null;
|
|
25
|
+
};
|
|
26
|
+
export interface TeamRegistry {
|
|
27
|
+
readonly provider: TeamRegistryProviderKind;
|
|
28
|
+
listTeams(): OperatorRegistryTeam[];
|
|
29
|
+
listPortalIds(): string[];
|
|
30
|
+
getTeamLookupKeys(team: OperatorRegistryTeam): string[];
|
|
31
|
+
resolveTeam(identifier: string | null | undefined): OperatorRegistryTeam | null;
|
|
32
|
+
requireTeam(identifier: string | null | undefined): OperatorRegistryTeam;
|
|
33
|
+
getPortalTeam(portalId: string | null | undefined): OperatorRegistryTeam;
|
|
34
|
+
getPortalTeamCode(portalId: string | null | undefined): string;
|
|
35
|
+
getPortalTeamSlug(portalId: string | null | undefined): string;
|
|
36
|
+
getPortalTeamSectorSlug(portalId: string | null | undefined): string;
|
|
37
|
+
getFleetLibraryRef(): PortalLibraryRef | null;
|
|
38
|
+
resolvePortalLibraryRef(portalId: string | null | undefined): PortalLibraryRef | null;
|
|
39
|
+
resolveLibraryRefByTeamIdentity(value: string | null | undefined): PortalLibraryRef | null;
|
|
40
|
+
listLibraryRefs(): PortalLibraryRef[];
|
|
41
|
+
}
|
|
42
|
+
export declare function normalizeTeamLookupValue(value: string): string;
|
|
43
|
+
export declare function getTeamLookupKeys(team: OperatorRegistryTeam): string[];
|
|
44
|
+
export declare function matchesTeamIdentifier(team: OperatorRegistryTeam, identifier: string | null | undefined): boolean;
|
|
45
|
+
export declare function normalizeTeamRegistryTeam(team: TeamRegistryTeamConfig, fallback?: OperatorRegistryTeam | null): OperatorRegistryTeam;
|
|
46
|
+
export declare function resolveTeamFromCollection(teams: readonly OperatorRegistryTeam[], identifier: string | null | undefined): OperatorRegistryTeam | null;
|
|
47
|
+
export declare function createTeamRegistry(config?: TeamRegistryConfig, options?: CreateTeamRegistryOptions): TeamRegistry;
|
|
48
|
+
export declare function createTeamRegistryFromSnapshot(snapshot: OperatorRegistrySnapshot | null | undefined, options?: CreateTeamRegistryOptions): TeamRegistry;
|
|
49
|
+
//# sourceMappingURL=team-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-registry.d.ts","sourceRoot":"","sources":["../../../../src/extensions/cavi/registry/team-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { normalizeTeamManifest, } from "../../../contracts/team-manifest.js";
|
|
2
|
+
function uniqStrings(values) {
|
|
3
|
+
const seen = new Set();
|
|
4
|
+
const unique = [];
|
|
5
|
+
for (const value of values) {
|
|
6
|
+
if (!value) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
const trimmed = value.trim();
|
|
10
|
+
if (!trimmed) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const key = normalizeTeamLookupValue(trimmed);
|
|
14
|
+
if (seen.has(key)) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
seen.add(key);
|
|
18
|
+
unique.push(trimmed);
|
|
19
|
+
}
|
|
20
|
+
return unique;
|
|
21
|
+
}
|
|
22
|
+
function coerceStringArray(value) {
|
|
23
|
+
if (Array.isArray(value)) {
|
|
24
|
+
return value.filter((entry) => typeof entry === "string");
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === "string") {
|
|
27
|
+
return [value];
|
|
28
|
+
}
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
function toPortalLibraryRef(record) {
|
|
32
|
+
return {
|
|
33
|
+
scope: record.scope,
|
|
34
|
+
libraryTeamId: record.libraryTeamId,
|
|
35
|
+
...(record.ownerPortalId ? { ownerPortalId: record.ownerPortalId } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function teamFromManifest(team) {
|
|
39
|
+
const identity = team.identity ?? {};
|
|
40
|
+
const name = identity.name ?? identity.displayName ?? team.id;
|
|
41
|
+
const teamSlug = identity.slug ?? team.id;
|
|
42
|
+
const teamCode = identity.code ?? teamSlug;
|
|
43
|
+
const sectorSlug = identity.sectorSlug ?? teamSlug;
|
|
44
|
+
const sectorCode = identity.sectorCode ?? teamCode;
|
|
45
|
+
const members = team.members?.map((member) => member.id) ?? [];
|
|
46
|
+
return {
|
|
47
|
+
id: team.id,
|
|
48
|
+
name,
|
|
49
|
+
displayName: identity.displayName ?? name,
|
|
50
|
+
teamSlug,
|
|
51
|
+
teamCode,
|
|
52
|
+
sectorSlug,
|
|
53
|
+
sectorCode,
|
|
54
|
+
portalId: identity.portalId ?? null,
|
|
55
|
+
legacyAliases: [...(identity.aliases ?? [])],
|
|
56
|
+
members,
|
|
57
|
+
memberIdentityIds: members,
|
|
58
|
+
ownsCapabilities: [...(team.capabilities ?? [])],
|
|
59
|
+
teamManifest: null,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function configuredTeams(config) {
|
|
63
|
+
if (config.snapshot?.teams?.length) {
|
|
64
|
+
return config.snapshot.teams;
|
|
65
|
+
}
|
|
66
|
+
if (config.manifest) {
|
|
67
|
+
return normalizeTeamManifest(config.manifest).teams.map(teamFromManifest);
|
|
68
|
+
}
|
|
69
|
+
return config.teams ?? [];
|
|
70
|
+
}
|
|
71
|
+
function missingRegistryMessage(identifier) {
|
|
72
|
+
const suffix = identifier?.trim() ? ` for "${identifier.trim()}"` : "";
|
|
73
|
+
return `Team registry is not configured${suffix}. Load TEAM_REGISTRY_CONFIG from the selected gateway/plugin before using registry-dependent APIs.`;
|
|
74
|
+
}
|
|
75
|
+
export function normalizeTeamLookupValue(value) {
|
|
76
|
+
return value.trim().toLowerCase().replace(/_/g, "-").replace(/\s+/g, "-");
|
|
77
|
+
}
|
|
78
|
+
export function getTeamLookupKeys(team) {
|
|
79
|
+
return uniqStrings([
|
|
80
|
+
team.teamCode,
|
|
81
|
+
team.teamSlug,
|
|
82
|
+
team.id,
|
|
83
|
+
team.portalId,
|
|
84
|
+
...coerceStringArray(team.legacyAliases),
|
|
85
|
+
]).map(normalizeTeamLookupValue);
|
|
86
|
+
}
|
|
87
|
+
export function matchesTeamIdentifier(team, identifier) {
|
|
88
|
+
if (!identifier?.trim()) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return getTeamLookupKeys(team).includes(normalizeTeamLookupValue(identifier));
|
|
92
|
+
}
|
|
93
|
+
export function normalizeTeamRegistryTeam(team, fallback) {
|
|
94
|
+
const name = team.name?.trim() || fallback?.name || team.id;
|
|
95
|
+
const displayName = team.displayName?.trim() || fallback?.displayName || name;
|
|
96
|
+
const teamSlug = team.teamSlug?.trim() || fallback?.teamSlug || team.id;
|
|
97
|
+
const teamCode = team.teamCode?.trim() || fallback?.teamCode || team.id;
|
|
98
|
+
const sectorSlug = team.sectorSlug?.trim() ||
|
|
99
|
+
fallback?.sectorSlug ||
|
|
100
|
+
team.department?.trim() ||
|
|
101
|
+
team.kind?.trim() ||
|
|
102
|
+
teamSlug;
|
|
103
|
+
const sectorCode = team.sectorCode?.trim() || fallback?.sectorCode || teamCode;
|
|
104
|
+
return {
|
|
105
|
+
id: team.id,
|
|
106
|
+
name,
|
|
107
|
+
teamSlug,
|
|
108
|
+
teamCode,
|
|
109
|
+
sectorSlug,
|
|
110
|
+
sectorCode,
|
|
111
|
+
portalId: team.portalId ?? fallback?.portalId ?? null,
|
|
112
|
+
displayName,
|
|
113
|
+
legacyAliases: uniqStrings([
|
|
114
|
+
...coerceStringArray(team.legacyAliases),
|
|
115
|
+
...coerceStringArray(fallback?.legacyAliases),
|
|
116
|
+
]),
|
|
117
|
+
department: team.department ?? fallback?.department ?? sectorSlug,
|
|
118
|
+
kind: team.kind ?? fallback?.kind ?? null,
|
|
119
|
+
parentTeamId: team.parentTeamId ?? fallback?.parentTeamId ?? null,
|
|
120
|
+
lead: team.lead ?? fallback?.lead ?? null,
|
|
121
|
+
leadKind: team.leadKind ?? fallback?.leadKind ?? null,
|
|
122
|
+
routeViaLead: team.routeViaLead ?? fallback?.routeViaLead ?? false,
|
|
123
|
+
mission: team.mission ?? fallback?.mission ?? null,
|
|
124
|
+
members: team.members ?? fallback?.members ?? [],
|
|
125
|
+
runtimeIds: team.runtimeIds ?? fallback?.runtimeIds ?? [],
|
|
126
|
+
memberIdentityIds: team.memberIdentityIds ?? fallback?.memberIdentityIds ?? [],
|
|
127
|
+
ownsCapabilities: team.ownsCapabilities ?? fallback?.ownsCapabilities ?? [],
|
|
128
|
+
maxParallel: team.maxParallel ?? fallback?.maxParallel ?? null,
|
|
129
|
+
dispatchTransport: team.dispatchTransport ?? fallback?.dispatchTransport ?? null,
|
|
130
|
+
dispatchEndpointEnv: team.dispatchEndpointEnv ?? fallback?.dispatchEndpointEnv ?? null,
|
|
131
|
+
dispatchPath: team.dispatchPath ?? fallback?.dispatchPath ?? null,
|
|
132
|
+
dispatchAuthScheme: team.dispatchAuthScheme ?? fallback?.dispatchAuthScheme ?? null,
|
|
133
|
+
dispatchAuthEnv: team.dispatchAuthEnv ?? fallback?.dispatchAuthEnv ?? null,
|
|
134
|
+
dispatchDefaultAlias: team.dispatchDefaultAlias ?? fallback?.dispatchDefaultAlias ?? null,
|
|
135
|
+
routingPolicy: team.routingPolicy ?? fallback?.routingPolicy ?? null,
|
|
136
|
+
notes: team.notes ?? fallback?.notes ?? null,
|
|
137
|
+
ancestorTeamIds: team.ancestorTeamIds ?? fallback?.ancestorTeamIds ?? [],
|
|
138
|
+
descendantTeamIds: team.descendantTeamIds ?? fallback?.descendantTeamIds ?? [],
|
|
139
|
+
teamManifest: team.teamManifest ?? fallback?.teamManifest ?? null,
|
|
140
|
+
headOwnedAliases: team.headOwnedAliases ?? fallback?.headOwnedAliases ?? [],
|
|
141
|
+
runtimeMembers: team.runtimeMembers ?? fallback?.runtimeMembers ?? [],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export function resolveTeamFromCollection(teams, identifier) {
|
|
145
|
+
if (!identifier?.trim()) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return (teams.find((team) => matchesTeamIdentifier(team, identifier)) ?? null);
|
|
149
|
+
}
|
|
150
|
+
function assertUniqueTeamRegistryLookups(teams) {
|
|
151
|
+
const lookupOwners = new Map();
|
|
152
|
+
const portalOwners = new Map();
|
|
153
|
+
for (const team of teams) {
|
|
154
|
+
if (team.portalId?.trim()) {
|
|
155
|
+
const portalId = normalizeTeamLookupValue(team.portalId);
|
|
156
|
+
const owner = portalOwners.get(portalId);
|
|
157
|
+
if (owner && owner !== team.id) {
|
|
158
|
+
throw new Error(`Team registry has duplicate portal id "${portalId}" for teams "${owner}" and "${team.id}".`);
|
|
159
|
+
}
|
|
160
|
+
portalOwners.set(portalId, team.id);
|
|
161
|
+
}
|
|
162
|
+
for (const key of getTeamLookupKeys(team)) {
|
|
163
|
+
const owner = lookupOwners.get(key);
|
|
164
|
+
if (owner && owner !== team.id) {
|
|
165
|
+
throw new Error(`Team registry has ambiguous lookup key "${key}" for teams "${owner}" and "${team.id}".`);
|
|
166
|
+
}
|
|
167
|
+
lookupOwners.set(key, team.id);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export function createTeamRegistry(config = {}, options = {}) {
|
|
172
|
+
const provider = options.provider ?? config.provider ?? "gateway";
|
|
173
|
+
const teams = configuredTeams(config).map((team) => normalizeTeamRegistryTeam(team, null));
|
|
174
|
+
assertUniqueTeamRegistryLookups(teams);
|
|
175
|
+
const fleetLibrary = config.libraries?.fleet ?? null;
|
|
176
|
+
const teamLibraries = config.libraries?.teams ?? [];
|
|
177
|
+
function resolveTeam(identifier) {
|
|
178
|
+
return resolveTeamFromCollection(teams, identifier);
|
|
179
|
+
}
|
|
180
|
+
function requireTeam(identifier) {
|
|
181
|
+
const team = resolveTeam(identifier);
|
|
182
|
+
if (!team) {
|
|
183
|
+
throw new Error(missingRegistryMessage(identifier));
|
|
184
|
+
}
|
|
185
|
+
return team;
|
|
186
|
+
}
|
|
187
|
+
function getPortalTeam(portalId) {
|
|
188
|
+
if (!portalId?.trim()) {
|
|
189
|
+
throw new Error(missingRegistryMessage(portalId));
|
|
190
|
+
}
|
|
191
|
+
const team = teams.find((entry) => entry.portalId === portalId) ??
|
|
192
|
+
resolveTeam(portalId);
|
|
193
|
+
if (!team) {
|
|
194
|
+
throw new Error(missingRegistryMessage(portalId));
|
|
195
|
+
}
|
|
196
|
+
return team;
|
|
197
|
+
}
|
|
198
|
+
function buildLookupSet(portalId, record) {
|
|
199
|
+
const team = portalId ? resolveTeam(portalId) : null;
|
|
200
|
+
return new Set([
|
|
201
|
+
portalId,
|
|
202
|
+
team?.id,
|
|
203
|
+
team?.name,
|
|
204
|
+
team?.displayName,
|
|
205
|
+
team?.teamSlug,
|
|
206
|
+
team?.teamCode,
|
|
207
|
+
team?.sectorSlug,
|
|
208
|
+
team?.department,
|
|
209
|
+
...(team?.legacyAliases ?? []),
|
|
210
|
+
...(record.lookupKeys ?? []),
|
|
211
|
+
record.libraryTeamId,
|
|
212
|
+
]
|
|
213
|
+
.flatMap((value) => {
|
|
214
|
+
if (!value) {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
const normalized = normalizeTeamLookupValue(value);
|
|
218
|
+
return normalized ? [normalized] : [];
|
|
219
|
+
})
|
|
220
|
+
.filter(Boolean));
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
provider,
|
|
224
|
+
listTeams() {
|
|
225
|
+
return teams.slice();
|
|
226
|
+
},
|
|
227
|
+
listPortalIds() {
|
|
228
|
+
return teams
|
|
229
|
+
.map((team) => team.portalId)
|
|
230
|
+
.filter((portalId) => Boolean(portalId));
|
|
231
|
+
},
|
|
232
|
+
getTeamLookupKeys,
|
|
233
|
+
resolveTeam,
|
|
234
|
+
requireTeam,
|
|
235
|
+
getPortalTeam,
|
|
236
|
+
getPortalTeamCode(portalId) {
|
|
237
|
+
return getPortalTeam(portalId).teamCode;
|
|
238
|
+
},
|
|
239
|
+
getPortalTeamSlug(portalId) {
|
|
240
|
+
return getPortalTeam(portalId).teamSlug;
|
|
241
|
+
},
|
|
242
|
+
getPortalTeamSectorSlug(portalId) {
|
|
243
|
+
return getPortalTeam(portalId).sectorSlug;
|
|
244
|
+
},
|
|
245
|
+
getFleetLibraryRef() {
|
|
246
|
+
return fleetLibrary ? toPortalLibraryRef(fleetLibrary) : null;
|
|
247
|
+
},
|
|
248
|
+
resolvePortalLibraryRef(portalId) {
|
|
249
|
+
if (!portalId?.trim()) {
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
const normalizedPortalId = normalizeTeamLookupValue(portalId);
|
|
253
|
+
if (fleetLibrary?.ownerPortalId &&
|
|
254
|
+
normalizeTeamLookupValue(fleetLibrary.ownerPortalId) === normalizedPortalId) {
|
|
255
|
+
return toPortalLibraryRef(fleetLibrary);
|
|
256
|
+
}
|
|
257
|
+
const record = teamLibraries.find((entry) => (entry.ownerPortalId &&
|
|
258
|
+
normalizeTeamLookupValue(entry.ownerPortalId) === normalizedPortalId) ||
|
|
259
|
+
buildLookupSet(entry.ownerPortalId, entry).has(normalizedPortalId));
|
|
260
|
+
return record ? toPortalLibraryRef(record) : null;
|
|
261
|
+
},
|
|
262
|
+
resolveLibraryRefByTeamIdentity(value) {
|
|
263
|
+
const normalized = normalizeTeamLookupValue(value ?? "");
|
|
264
|
+
if (!normalized) {
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
if (fleetLibrary && buildLookupSet(fleetLibrary.ownerPortalId, fleetLibrary).has(normalized)) {
|
|
268
|
+
return toPortalLibraryRef(fleetLibrary);
|
|
269
|
+
}
|
|
270
|
+
for (const record of teamLibraries) {
|
|
271
|
+
if (buildLookupSet(record.ownerPortalId, record).has(normalized)) {
|
|
272
|
+
return toPortalLibraryRef(record);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return null;
|
|
276
|
+
},
|
|
277
|
+
listLibraryRefs() {
|
|
278
|
+
return [
|
|
279
|
+
...(fleetLibrary ? [toPortalLibraryRef(fleetLibrary)] : []),
|
|
280
|
+
...teamLibraries.map(toPortalLibraryRef),
|
|
281
|
+
];
|
|
282
|
+
},
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
export function createTeamRegistryFromSnapshot(snapshot, options = {}) {
|
|
286
|
+
return createTeamRegistry({
|
|
287
|
+
provider: options.provider,
|
|
288
|
+
snapshot: snapshot ?? null,
|
|
289
|
+
}, options);
|
|
290
|
+
}
|