@undefineds.co/xpod 0.4.10 → 0.4.12
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/config/components-ignore.json +5 -1
- package/config/notifications.json +68 -0
- package/config/xpod.base.json +9 -11
- package/dist/ai/service/AiCredentialSecret.d.ts +30 -0
- package/dist/ai/service/AiCredentialSecret.js +120 -0
- package/dist/ai/service/CredentialReaderImpl.d.ts +18 -0
- package/dist/ai/service/CredentialReaderImpl.js +81 -5
- package/dist/ai/service/CredentialReaderImpl.jsonld +42 -2
- package/dist/ai/service/EmbeddingModelPolicy.d.ts +79 -0
- package/dist/ai/service/EmbeddingModelPolicy.js +134 -0
- package/dist/ai/service/EmbeddingProviderError.js +6 -0
- package/dist/ai/service/EmbeddingServiceImpl.d.ts +13 -1
- package/dist/ai/service/EmbeddingServiceImpl.js +18 -5
- package/dist/ai/service/EmbeddingServiceImpl.jsonld +35 -0
- package/dist/ai/service/index.d.ts +2 -0
- package/dist/ai/service/index.js +2 -0
- package/dist/api/ai-gateway/connect/index.d.ts +20 -2
- package/dist/api/ai-gateway/connect/index.js +162 -16
- package/dist/api/ai-gateway/credentials/AiCredentialSecretDecoder.d.ts +12 -0
- package/dist/api/ai-gateway/credentials/AiCredentialSecretDecoder.js +30 -0
- package/dist/api/ai-gateway/errors.d.ts +1 -1
- package/dist/api/ai-gateway/models/GatewayEmbeddingModelCatalog.d.ts +11 -0
- package/dist/api/ai-gateway/models/GatewayEmbeddingModelCatalog.js +31 -0
- package/dist/api/ai-gateway/models/PodModelSelectionRepository.js +7 -3
- package/dist/api/ai-gateway/models/ProviderCustomModelsService.d.ts +18 -0
- package/dist/api/ai-gateway/models/ProviderCustomModelsService.js +23 -0
- package/dist/api/ai-gateway/models/ProviderModelDiscoveryAdapters.d.ts +3 -1
- package/dist/api/ai-gateway/models/ProviderModelDiscoveryAdapters.js +2 -45
- package/dist/api/ai-gateway/models/ProviderModelSelectionService.d.ts +10 -0
- package/dist/api/ai-gateway/models/ProviderModelSelectionService.js +57 -20
- package/dist/api/ai-gateway/models/ProviderModelType.d.ts +28 -0
- package/dist/api/ai-gateway/models/ProviderModelType.js +34 -0
- package/dist/api/ai-gateway/models/ProviderModelsAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/models/ProviderModelsAdapter.js +3 -4
- package/dist/api/ai-gateway/models/index.d.ts +1 -0
- package/dist/api/ai-gateway/models/index.js +3 -1
- package/dist/api/ai-gateway/providers/CustomRuntimeAdapter.d.ts +7 -0
- package/dist/api/ai-gateway/providers/CustomRuntimeAdapter.js +9 -2
- package/dist/api/ai-gateway/providers/ModelsDevCatalog.d.ts +7 -1
- package/dist/api/ai-gateway/providers/ModelsDevCatalog.js +4 -10
- package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +107 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js +244 -21
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +5 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +5 -1
- package/dist/api/ai-gateway/quota/SubscriptionQuotaAdapters.d.ts +12 -4
- package/dist/api/ai-gateway/quota/SubscriptionQuotaAdapters.js +11 -11
- package/dist/api/ai-gateway/routing/ModelRouter.d.ts +14 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js +43 -4
- package/dist/api/ai-gateway/service-access/AiConnectionsServiceAccess.d.ts +9 -1
- package/dist/api/ai-gateway/service-access/AiConnectionsServiceAccess.js +3 -27
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +0 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.js +0 -3
- package/dist/api/auth/index.d.ts +1 -0
- package/dist/api/auth/index.js +1 -1
- package/dist/api/chatkit/pod-store.d.ts +31 -0
- package/dist/api/chatkit/pod-store.js +132 -8
- package/dist/api/container/common.js +24 -4
- package/dist/api/container/routes.js +17 -2
- package/dist/api/container/types.d.ts +3 -1
- package/dist/api/handlers/AdminHandler.d.ts +13 -0
- package/dist/api/handlers/AdminHandler.js +47 -18
- package/dist/api/handlers/AiConfigHandler.d.ts +6 -0
- package/dist/api/handlers/AiConfigHandler.js +28 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js +36 -0
- package/dist/api/runs/RdfRunContextRetriever.d.ts +14 -0
- package/dist/api/runs/RdfRunContextRetriever.js +41 -5
- package/dist/api/runtime.js +2 -1
- package/dist/cli/commands/secret.d.ts +1 -0
- package/dist/cli/commands/secret.js +25 -7
- package/dist/components/components.jsonld +3 -1
- package/dist/components/context.jsonld +53 -1
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +59 -2
- package/dist/http/SubgraphSparqlHttpHandler.js +145 -13
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +37 -0
- package/dist/identity/drizzle/AccountRoleRepository.d.ts +30 -2
- package/dist/identity/drizzle/AccountRoleRepository.js +163 -15
- package/dist/identity/drizzle/EdgeNodeRepository.d.ts +0 -12
- package/dist/identity/drizzle/EdgeNodeRepository.js +5 -13
- package/dist/identity/drizzle/PodLookupRepository.d.ts +58 -4
- package/dist/identity/drizzle/PodLookupRepository.js +248 -105
- package/dist/identity/drizzle/db.d.ts +19 -0
- package/dist/identity/drizzle/db.js +39 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +7 -3
- package/dist/logging/log-file.d.ts +17 -0
- package/dist/logging/log-file.js +69 -0
- package/dist/main.js +2 -1
- package/dist/notifications/NotificationChannelSweeper.d.ts +50 -0
- package/dist/notifications/NotificationChannelSweeper.js +131 -0
- package/dist/notifications/NotificationChannelSweeper.jsonld +136 -0
- package/dist/notifications/ReclaimingWebSocket2023Storer.d.ts +25 -0
- package/dist/notifications/ReclaimingWebSocket2023Storer.js +56 -0
- package/dist/notifications/ReclaimingWebSocket2023Storer.jsonld +77 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.js +2 -0
- package/dist/runtime/Proxy.d.ts +37 -0
- package/dist/runtime/Proxy.js +88 -16
- package/dist/runtime/bootstrap.js +2 -1
- package/dist/runtime/upgrade/BunNativeUpgradeRelay.d.ts +116 -0
- package/dist/runtime/upgrade/BunNativeUpgradeRelay.js +423 -0
- package/dist/runtime/upgrade/UpgradeHandshake.d.ts +63 -0
- package/dist/runtime/upgrade/UpgradeHandshake.js +199 -0
- package/dist/runtime/upgrade/WebSocketFrames.d.ts +67 -0
- package/dist/runtime/upgrade/WebSocketFrames.js +224 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiApiKeyPool.js +8 -1
- package/node_modules/@undefineds.co/ai-connections/dist/AiAuthorizationActions.d.ts +11 -2
- package/node_modules/@undefineds.co/ai-connections/dist/AiAuthorizationActions.js +27 -10
- package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.d.ts +7 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.js +13 -11
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectDialog.js +1 -1
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsList.js +10 -6
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMain.d.ts +15 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMain.js +29 -3
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsMainHeader.js +18 -3
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.d.ts +16 -1
- package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.js +92 -20
- package/node_modules/@undefineds.co/ai-connections/dist/AiCopyButton.d.ts +35 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiCopyButton.js +45 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialPoolSection.js +71 -11
- package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialRow.js +9 -7
- package/node_modules/@undefineds.co/ai-connections/dist/AiEndpointList.d.ts +23 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiEndpointList.js +24 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.d.ts +13 -4
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.js +35 -38
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayModelsSection.d.ts +21 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayModelsSection.js +51 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiInfoTooltip.d.ts +15 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiInfoTooltip.js +16 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiModelCatalog.d.ts +175 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiModelCatalog.js +133 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiOfferingDetails.js +2 -2
- package/node_modules/@undefineds.co/ai-connections/dist/AiProviderCard.js +13 -64
- package/node_modules/@undefineds.co/ai-connections/dist/AiProviderHeader.d.ts +21 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiProviderHeader.js +12 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiRowAction.d.ts +15 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiRowAction.js +12 -0
- package/node_modules/@undefineds.co/ai-connections/dist/AiSortableCredentialList.js +2 -1
- package/node_modules/@undefineds.co/ai-connections/dist/ai-connections-client.d.ts +7 -0
- package/node_modules/@undefineds.co/ai-connections/dist/ai-connections-client.js +6 -0
- package/node_modules/@undefineds.co/ai-connections/dist/authorization-methods.d.ts +36 -5
- package/node_modules/@undefineds.co/ai-connections/dist/authorization-methods.js +52 -9
- package/node_modules/@undefineds.co/ai-connections/dist/client/normalize.js +30 -3
- package/node_modules/@undefineds.co/ai-connections/dist/client/types.d.ts +21 -1
- package/node_modules/@undefineds.co/ai-connections/dist/client-config/base-adapter.d.ts +1 -3
- package/node_modules/@undefineds.co/ai-connections/dist/client-config/base-adapter.js +3 -7
- package/node_modules/@undefineds.co/ai-connections/dist/client-config/index.cjs +9 -7
- package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.d.ts +46 -0
- package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.js +231 -0
- package/node_modules/@undefineds.co/ai-connections/dist/collections.d.ts +119 -0
- package/node_modules/@undefineds.co/ai-connections/dist/collections.js +173 -0
- package/node_modules/@undefineds.co/ai-connections/dist/controller.d.ts +71 -5
- package/node_modules/@undefineds.co/ai-connections/dist/controller.js +285 -16
- package/node_modules/@undefineds.co/ai-connections/dist/credential-labels.d.ts +5 -0
- package/node_modules/@undefineds.co/ai-connections/dist/credential-labels.js +8 -3
- package/node_modules/@undefineds.co/ai-connections/dist/credential-storage.d.ts +59 -0
- package/node_modules/@undefineds.co/ai-connections/dist/credential-storage.js +131 -0
- package/node_modules/@undefineds.co/ai-connections/dist/endpoint-urls.d.ts +15 -0
- package/node_modules/@undefineds.co/ai-connections/dist/endpoint-urls.js +20 -0
- package/node_modules/@undefineds.co/ai-connections/dist/gateway-endpoints.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connections/dist/gateway-endpoints.js +20 -0
- package/node_modules/@undefineds.co/ai-connections/dist/index.d.ts +8 -0
- package/node_modules/@undefineds.co/ai-connections/dist/index.js +8 -0
- package/node_modules/@undefineds.co/ai-connections/dist/manifest.js +1 -1
- package/node_modules/@undefineds.co/ai-connections/dist/offering-endpoints.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connections/dist/offering-endpoints.js +17 -0
- package/node_modules/@undefineds.co/ai-connections/dist/provider-catalog.cjs +68 -1
- package/node_modules/@undefineds.co/ai-connections/dist/provider-catalog.d.ts +75 -1
- package/node_modules/@undefineds.co/ai-connections/dist/provider-catalog.js +119 -0
- package/node_modules/@undefineds.co/ai-connections/dist/provider-visuals.d.ts +5 -0
- package/node_modules/@undefineds.co/ai-connections/dist/provider-visuals.js +5 -0
- package/node_modules/@undefineds.co/ai-connections/dist/service-access.js +2 -27
- package/node_modules/@undefineds.co/ai-connections/package.json +1 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +1 -1
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +2 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +150 -0
- package/node_modules/@undefineds.co/extension-sdk/package.json +2 -1
- package/node_modules/@undefineds.co/models/README.md +1 -1
- package/node_modules/@undefineds.co/models/dist/ai-config/index.d.ts +3 -3
- package/node_modules/@undefineds.co/models/dist/ai-gateway.schema.d.ts +5 -0
- package/node_modules/@undefineds.co/models/dist/ai-gateway.schema.js +9 -0
- package/node_modules/@undefineds.co/models/dist/ai-runtime.repository.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/approval.repository.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/audit.presentation.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/capture.repository.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/chat-project.repository.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/chat.repository.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/control-request.repository.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/conversation-share.repository.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/credential.schema.d.ts +12 -0
- package/node_modules/@undefineds.co/models/dist/credential.schema.js +15 -1
- package/node_modules/@undefineds.co/models/dist/discovery/index.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/discovery/providers.json +248 -7
- package/node_modules/@undefineds.co/models/dist/discovery/types.d.ts +31 -0
- package/node_modules/@undefineds.co/models/dist/extension/index.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/favorite/index.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/fixtures/contracts-chat-contact.d.ts +5 -5
- package/node_modules/@undefineds.co/models/dist/import/index.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/index.d.ts +73 -73
- package/node_modules/@undefineds.co/models/dist/index.js +1 -1
- package/node_modules/@undefineds.co/models/dist/input-request.repository.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/knowledge/index.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/message.repository.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/namespaces.js +5 -0
- package/node_modules/@undefineds.co/models/dist/pod-storage-descriptor.d.ts +4815 -26
- package/node_modules/@undefineds.co/models/dist/pod-storage-descriptor.js +482 -132
- package/node_modules/@undefineds.co/models/dist/schema.d.ts +4 -0
- package/node_modules/@undefineds.co/models/dist/session/index.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/settings/index.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/sidecar/persistence-mapping.d.ts +5 -5
- package/node_modules/@undefineds.co/models/dist/thread.repository.d.ts +2 -2
- package/node_modules/@undefineds.co/models/dist/types/message-block.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/vocab/_namespaces.d.ts +1 -1
- package/node_modules/@undefineds.co/models/dist/vocab/index.d.ts +10 -10
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.d.ts +1 -0
- package/node_modules/@undefineds.co/models/dist/vocab/sidecar.vocab.js +1 -0
- package/node_modules/@undefineds.co/models/package.json +4 -2
- package/node_modules/@undefineds.co/pod-collections/README.md +71 -0
- package/node_modules/@undefineds.co/pod-collections/dist/diff.d.ts +85 -0
- package/node_modules/@undefineds.co/pod-collections/dist/diff.js +166 -0
- package/node_modules/@undefineds.co/pod-collections/dist/feed.d.ts +17 -0
- package/node_modules/@undefineds.co/pod-collections/dist/feed.js +27 -0
- package/node_modules/@undefineds.co/pod-collections/dist/index.cjs +1042 -0
- package/node_modules/@undefineds.co/pod-collections/dist/index.d.ts +37 -0
- package/node_modules/@undefineds.co/pod-collections/dist/index.js +89 -0
- package/node_modules/@undefineds.co/pod-collections/dist/layout.d.ts +75 -0
- package/node_modules/@undefineds.co/pod-collections/dist/layout.js +173 -0
- package/node_modules/@undefineds.co/pod-collections/dist/mapping.d.ts +78 -0
- package/node_modules/@undefineds.co/pod-collections/dist/mapping.js +287 -0
- package/node_modules/@undefineds.co/pod-collections/dist/mutations.d.ts +83 -0
- package/node_modules/@undefineds.co/pod-collections/dist/mutations.js +273 -0
- package/node_modules/@undefineds.co/pod-collections/dist/react.d.ts +21 -0
- package/node_modules/@undefineds.co/pod-collections/dist/react.js +22 -0
- package/node_modules/@undefineds.co/pod-collections/dist/read.d.ts +65 -0
- package/node_modules/@undefineds.co/pod-collections/dist/read.js +31 -0
- package/node_modules/@undefineds.co/pod-collections/dist/sync.d.ts +66 -0
- package/node_modules/@undefineds.co/pod-collections/dist/sync.js +260 -0
- package/node_modules/@undefineds.co/pod-collections/dist/types.d.ts +155 -0
- package/node_modules/@undefineds.co/pod-collections/dist/types.js +9 -0
- package/node_modules/@undefineds.co/pod-collections/package.json +42 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +0 -1
- package/node_modules/@undefineds.co/shared-ui/dist/index.js +0 -1
- package/package.json +15 -7
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +12 -13
- package/static/auth-callback/assets/AiConfigContext-DnQs1ZpW.js +1 -0
- package/static/auth-callback/assets/AiConfigPage-DOtvlxH0.js +1 -0
- package/static/auth-callback/assets/DocumentProcessingPanel-BS2voQgL.js +1 -0
- package/static/auth-callback/assets/IndexLifecyclePanel-Cvt0cJtN.js +1 -0
- package/static/auth-callback/assets/{IndexSubjectPanel-C4YG0whI.js → IndexSubjectPanel-Dhf01GqF.js} +1 -1
- package/static/auth-callback/assets/ModelAssignmentsPanel-BJutWaAF.js +1 -0
- package/static/auth-callback/assets/ModelsPage-BRS0sje3.js +11 -0
- package/static/auth-callback/assets/{NetworkPage-Cbdn_P1e.js → NetworkPage-B3qBfANA.js} +2 -2
- package/static/auth-callback/assets/{PaneListHeader-jy70Q00L.js → PaneListHeader-QQeJGTp4.js} +1 -1
- package/static/auth-callback/assets/SearchIndexingPanel-MyNUSEwT.js +1 -0
- package/static/auth-callback/assets/{StatusSubjectPanel-hfjoB5aS.js → StatusSubjectPanel-DQkEVsFs.js} +1 -1
- package/static/{settings/assets/StatusWorkspace-CKD_Rzdr.js → auth-callback/assets/StatusWorkspace-Dkv63Uwk.js} +1 -1
- package/static/auth-callback/assets/SystemSettingsPage-TIsUfX5d.js +1 -0
- package/static/auth-callback/assets/SystemSettingsSubjectPanel-BJWEt2-7.js +33 -0
- package/static/auth-callback/assets/XpodAiConnectionsPodStore-BJiXm-PF.js +3 -0
- package/static/auth-callback/assets/{activity-BcsZZxxw.js → activity-5hNeNKnL.js} +1 -1
- package/static/auth-callback/assets/admin-C6qCRFiY.js +1 -0
- package/static/auth-callback/assets/ai-connections-CryuHGKW.js +1 -0
- package/static/auth-callback/assets/{auth-callback-atKg_oig.js → auth-callback-CAFZ3R0B.js} +80 -84
- package/static/auth-callback/assets/auth-callback-rk080mvG.css +1 -0
- package/static/auth-callback/assets/{badge-BWbRHThQ.js → badge-CAIPI0CB.js} +1 -1
- package/static/auth-callback/assets/collection-runtime-D9s7h9YA.js +1 -0
- package/static/auth-callback/assets/dialog-BjA109aX.js +1 -0
- package/static/auth-callback/assets/{download-BmvG1Vya.js → download-B3Up5W2G.js} +1 -1
- package/static/auth-callback/assets/{external-link-DZ34d3g3.js → external-link-BTXgSPzB.js} +1 -1
- package/static/auth-callback/assets/index-BppXlxcp.js +41 -0
- package/static/auth-callback/assets/index-CirW4CJf.js +1 -0
- package/static/auth-callback/assets/index-DlLYWOhw.js +4 -0
- package/static/auth-callback/assets/{index-browser-B9Z7GU-T.js → index-browser-DtU38ni3.js} +1 -1
- package/static/auth-callback/assets/{key-round-tjP76Se-.js → key-round-CQCOrZ7x.js} +1 -1
- package/static/auth-callback/assets/layout-DB3pMyTl.js +1 -0
- package/static/auth-callback/assets/pod-collections-host-KnnGFZHL.js +8 -0
- package/static/auth-callback/assets/{rotate-ccw-C_L5ZLx1.js → rotate-ccw-C1zM2KtS.js} +1 -1
- package/static/auth-callback/assets/settings-projection-CUkyprDQ.js +1 -0
- package/static/auth-callback/assets/{skeleton-C7tGDQIs.js → skeleton-Cqp7_M9-.js} +1 -1
- package/static/auth-callback/assets/{waypoints-VMNQlWdU.js → waypoints-Bj6gAUSQ.js} +1 -1
- package/static/auth-callback/assets/{workspace-layout-SAp6BtYK.js → workspace-layout-DK8mDzrY.js} +1 -1
- package/static/auth-callback/auth-callback.html +2 -2
- package/static/dashboard/assets/AiConfigContext-BsE7MqX8.js +1 -0
- package/static/dashboard/assets/AiConfigPage-DvM-lRXa.js +1 -0
- package/static/dashboard/assets/DocumentProcessingPanel-BPfdlfuf.js +1 -0
- package/static/dashboard/assets/IndexLifecyclePanel--m0AGxvh.js +1 -0
- package/static/dashboard/assets/{IndexSubjectPanel-DQFPP6-p.js → IndexSubjectPanel-Bb7m1k3d.js} +1 -1
- package/static/dashboard/assets/ModelAssignmentsPanel-BLi_zbMa.js +1 -0
- package/static/dashboard/assets/ModelsPage-CxdpgnfR.js +11 -0
- package/static/dashboard/assets/{NetworkPage-CHQ3YxIB.js → NetworkPage-BAIPw-D_.js} +2 -2
- package/static/dashboard/assets/{PaneListHeader-DsXemAdR.js → PaneListHeader-BBCMei0r.js} +1 -1
- package/static/dashboard/assets/SearchIndexingPanel-Ck4Y-xjR.js +1 -0
- package/static/dashboard/assets/{StatusSubjectPanel-D3PGEYT4.js → StatusSubjectPanel-D1KWfAXE.js} +1 -1
- package/static/dashboard/assets/{StatusWorkspace-BcpePYUW.js → StatusWorkspace-JbA5gzXx.js} +1 -1
- package/static/dashboard/assets/SystemSettingsPage-BbwQWsSR.js +1 -0
- package/static/dashboard/assets/SystemSettingsSubjectPanel-N117nMt5.js +33 -0
- package/static/dashboard/assets/XpodAiConnectionsPodStore-CdDOb4SV.js +18 -0
- package/static/dashboard/assets/{activity-j5zrznu-.js → activity-DX1I96o_.js} +1 -1
- package/static/dashboard/assets/admin-C6qCRFiY.js +1 -0
- package/static/dashboard/assets/ai-connections-DwCRqOQa.js +1 -0
- package/static/dashboard/assets/{badge-CzeBdG7h.js → badge-k2vhtDqH.js} +1 -1
- package/static/dashboard/assets/collection-runtime-BFQ8teQJ.js +1 -0
- package/static/dashboard/assets/{dashboard-D-xANHk1.js → dashboard-DWZ-fmCT.js} +105 -109
- package/static/dashboard/assets/dashboard-rk080mvG.css +1 -0
- package/static/dashboard/assets/dialog-1CCw-iHT.js +1 -0
- package/static/dashboard/assets/{download-IcNdEZWi.js → download-C6-SNY1q.js} +1 -1
- package/static/dashboard/assets/{external-link-DxBxK8Vu.js → external-link-BgPcZ_j2.js} +1 -1
- package/static/dashboard/assets/index-6LcIUIYO.js +1 -0
- package/static/dashboard/assets/index-D7A8U6Pt.js +41 -0
- package/static/dashboard/assets/index-UD6QOE7H.js +4 -0
- package/static/dashboard/assets/{key-round-D1K7warM.js → key-round-BOd7Jo0Q.js} +1 -1
- package/static/dashboard/assets/layout-DB3pMyTl.js +1 -0
- package/static/dashboard/assets/pod-collections-host-KnnGFZHL.js +8 -0
- package/static/dashboard/assets/{rotate-ccw-CcN1N6p9.js → rotate-ccw-CCgJqsvx.js} +1 -1
- package/static/dashboard/assets/settings-projection-CUkyprDQ.js +1 -0
- package/static/dashboard/assets/{skeleton-CKnmJMUH.js → skeleton-Bc7abAn5.js} +1 -1
- package/static/dashboard/assets/{waypoints-DuZPO_wu.js → waypoints-s-opmJxx.js} +1 -1
- package/static/dashboard/assets/{workspace-layout-BUj3wZ_m.js → workspace-layout-DqIQeTBV.js} +1 -1
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/AiConfigContext-BB9KZySa.js +1 -0
- package/static/settings/assets/AiConfigPage-DGSXUkLs.js +1 -0
- package/static/settings/assets/DocumentProcessingPanel-Da2Re6Rg.js +1 -0
- package/static/settings/assets/IndexLifecyclePanel-BSZuIzgr.js +1 -0
- package/static/settings/assets/{IndexSubjectPanel-73sM16Ma.js → IndexSubjectPanel-CFd0ay-r.js} +1 -1
- package/static/settings/assets/ModelAssignmentsPanel-CSAryvWJ.js +1 -0
- package/static/settings/assets/ModelsPage-BQwCwLHU.js +11 -0
- package/static/settings/assets/{NetworkPage-i6j-M2RY.js → NetworkPage-BKymvsQc.js} +2 -2
- package/static/settings/assets/{PaneListHeader-DpqC0jd5.js → PaneListHeader-Bjh3hRdQ.js} +1 -1
- package/static/settings/assets/SearchIndexingPanel-MjKL5QLU.js +1 -0
- package/static/settings/assets/{StatusSubjectPanel-Dv4q3PGh.js → StatusSubjectPanel-Bvl6K4mx.js} +1 -1
- package/static/settings/assets/StatusWorkspace-B0NzrP--.js +1 -0
- package/static/settings/assets/SystemSettingsPage-D2z6Z4FE.js +1 -0
- package/static/settings/assets/SystemSettingsSubjectPanel-4sxma4X4.js +33 -0
- package/static/settings/assets/XpodAiConnectionsPodStore-BkNQ8fZx.js +3 -0
- package/static/settings/assets/{activity-DaFkk8f3.js → activity-CgJJGpjx.js} +1 -1
- package/static/settings/assets/admin-C6qCRFiY.js +1 -0
- package/static/settings/assets/ai-connections-CryuHGKW.js +1 -0
- package/static/settings/assets/{badge-d5SHdc-x.js → badge-C4NypVyT.js} +1 -1
- package/static/settings/assets/collection-runtime-CTLCDxAi.js +1 -0
- package/static/settings/assets/dialog-Csq0vWUi.js +1 -0
- package/static/settings/assets/{download-CpkwomDr.js → download-DaLJJ-Wp.js} +1 -1
- package/static/settings/assets/{external-link-_4YT42Mf.js → external-link--w_iW5Au.js} +1 -1
- package/static/settings/assets/index-B0mQa59b.js +4 -0
- package/static/settings/assets/index-BukHiu4y.js +1 -0
- package/static/settings/assets/index-COmVnZi2.js +41 -0
- package/static/settings/assets/{index-browser-B06xjBdZ.js → index-browser-BGpvHwD0.js} +1 -1
- package/static/settings/assets/{key-round-Dlqmp1Kq.js → key-round-Bk4YRjBu.js} +1 -1
- package/static/settings/assets/layout-DB3pMyTl.js +1 -0
- package/static/settings/assets/pod-collections-host-KnnGFZHL.js +8 -0
- package/static/settings/assets/{rotate-ccw-TAY65xWT.js → rotate-ccw-TCabbqsr.js} +1 -1
- package/static/settings/assets/{settings-ExBXGgbj.js → settings-CJWpdbNC.js} +105 -109
- package/static/settings/assets/settings-projection-CUkyprDQ.js +1 -0
- package/static/settings/assets/settings-rk080mvG.css +1 -0
- package/static/settings/assets/{skeleton-DKIWjNr9.js → skeleton-JDHYVe7t.js} +1 -1
- package/static/settings/assets/{waypoints-9erLIxyR.js → waypoints-DDvEl-MU.js} +1 -1
- package/static/settings/assets/{workspace-layout-CYXfYIa3.js → workspace-layout-DV5QU30U.js} +1 -1
- package/static/settings/settings.html +2 -2
- package/node_modules/@undefineds.co/shared-ui/dist/oidc-consent.d.ts +0 -54
- package/node_modules/@undefineds.co/shared-ui/dist/oidc-consent.js +0 -21
- package/static/auth-callback/assets/AiConfigContext-C81deMM9.js +0 -1
- package/static/auth-callback/assets/AiConfigPage-evWI8T56.js +0 -1
- package/static/auth-callback/assets/DocumentProcessingPanel-B9GrDEMe.js +0 -1
- package/static/auth-callback/assets/IndexLifecyclePanel-qCo8ABQZ.js +0 -1
- package/static/auth-callback/assets/ModelAssignmentsPanel-DG7Lxh3t.js +0 -1
- package/static/auth-callback/assets/ModelsPage-CgEuqE6p.js +0 -10
- package/static/auth-callback/assets/SearchIndexingPanel-ByU3u7kp.js +0 -1
- package/static/auth-callback/assets/StatusWorkspace-BZd617sV.js +0 -1
- package/static/auth-callback/assets/SystemSettingsPage-BirzWAQM.js +0 -1
- package/static/auth-callback/assets/SystemSettingsSubjectPanel-CmsVWNCx.js +0 -31
- package/static/auth-callback/assets/admin-BU4m6Ko2.js +0 -1
- package/static/auth-callback/assets/ai-connections-CHNTKemd.js +0 -1
- package/static/auth-callback/assets/auth-callback-C_7MUXJb.css +0 -1
- package/static/auth-callback/assets/index-BpV1hsqs.js +0 -4
- package/static/auth-callback/assets/index-D9oE6FXK.js +0 -41
- package/static/dashboard/assets/AiConfigContext-De-OtAWo.js +0 -1
- package/static/dashboard/assets/AiConfigPage-macP4Mop.js +0 -1
- package/static/dashboard/assets/DocumentProcessingPanel-C5ObvCCl.js +0 -1
- package/static/dashboard/assets/IndexLifecyclePanel-xVNa2l40.js +0 -1
- package/static/dashboard/assets/ModelAssignmentsPanel-DMOATFpQ.js +0 -1
- package/static/dashboard/assets/ModelsPage-91UbnETA.js +0 -25
- package/static/dashboard/assets/SearchIndexingPanel-Dh70PNFZ.js +0 -1
- package/static/dashboard/assets/SystemSettingsPage-BiN5GcKx.js +0 -1
- package/static/dashboard/assets/SystemSettingsSubjectPanel-B9QrSiFp.js +0 -31
- package/static/dashboard/assets/admin-BU4m6Ko2.js +0 -1
- package/static/dashboard/assets/ai-connections-CHNTKemd.js +0 -1
- package/static/dashboard/assets/dashboard-C_7MUXJb.css +0 -1
- package/static/dashboard/assets/index-FWZ-s52O.js +0 -41
- package/static/dashboard/assets/index-ZiQZ96oC.js +0 -4
- package/static/settings/assets/AiConfigContext-C0cQMPfG.js +0 -1
- package/static/settings/assets/AiConfigPage-CPhB4iFb.js +0 -1
- package/static/settings/assets/DocumentProcessingPanel-sYI7OpuH.js +0 -1
- package/static/settings/assets/IndexLifecyclePanel-yj8iyiT8.js +0 -1
- package/static/settings/assets/ModelAssignmentsPanel-BFIgUX5v.js +0 -1
- package/static/settings/assets/ModelsPage-BdppXl7E.js +0 -10
- package/static/settings/assets/SearchIndexingPanel-BlPnrkT3.js +0 -1
- package/static/settings/assets/SystemSettingsPage-CiOm2NzV.js +0 -1
- package/static/settings/assets/SystemSettingsSubjectPanel-Cd-GECon.js +0 -31
- package/static/settings/assets/admin-BU4m6Ko2.js +0 -1
- package/static/settings/assets/ai-connections-CHNTKemd.js +0 -1
- package/static/settings/assets/index-BFi9yn7_.js +0 -41
- package/static/settings/assets/index-BGgEhIUy.js +0 -4
- package/static/settings/assets/settings-C_7MUXJb.css +0 -1
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import { AS, DCTerms, FOAF, MEETING, ODRL, RDF, SCHEMA, SIOC, UDFS, VCARD, WF } from './namespaces.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Declares a descriptor while keeping the literal field map.
|
|
4
|
+
*
|
|
5
|
+
* Annotating a descriptor with `PodModelDescriptor` erases `fields` into
|
|
6
|
+
* `Record<string, PodModelFieldDescriptor>`: `keyof fields` collapses to
|
|
7
|
+
* `string | number` and every `type`/`array`/`secret` literal widens to its
|
|
8
|
+
* union. Consumers that derive row types from descriptors (a mapped type over
|
|
9
|
+
* `D['fields']`) then get an index signature, so a stale field name compiles and
|
|
10
|
+
* reads `undefined` at runtime. The `const F` type parameter is the whole
|
|
11
|
+
* point: declare with `definePodModelDescriptor({...})` and the literal keys,
|
|
12
|
+
* field types, and flags survive into the published `.d.ts`.
|
|
13
|
+
*
|
|
14
|
+
* Runtime behaviour is the identity function: the returned value is the same
|
|
15
|
+
* object the caller passed.
|
|
16
|
+
*/
|
|
17
|
+
export function definePodModelDescriptor(descriptor) {
|
|
18
|
+
return descriptor;
|
|
19
|
+
}
|
|
20
|
+
export const credentialDescriptor = definePodModelDescriptor({
|
|
3
21
|
uri: UDFS.Credential,
|
|
4
22
|
version: '1.0.0',
|
|
5
23
|
source: 'official',
|
|
@@ -17,30 +35,34 @@ export const credentialDescriptor = {
|
|
|
17
35
|
type: 'string',
|
|
18
36
|
predicate: UDFS.term('id'),
|
|
19
37
|
required: true,
|
|
20
|
-
description: '
|
|
38
|
+
description: 'Base-relative credential row id. Every credential in a provider pool keeps its own id.',
|
|
21
39
|
},
|
|
22
|
-
|
|
40
|
+
provider: {
|
|
41
|
+
type: 'uri',
|
|
42
|
+
predicate: UDFS.provider,
|
|
43
|
+
references: { resource: 'provider', key: 'id' },
|
|
44
|
+
description: 'Provider resource URI this credential connects through, as a URI relation to the provider row.',
|
|
45
|
+
},
|
|
46
|
+
authMode: {
|
|
23
47
|
type: 'string',
|
|
24
|
-
predicate: UDFS.
|
|
25
|
-
|
|
26
|
-
description: 'Credential service grouping, for example ai or infra.',
|
|
48
|
+
predicate: UDFS.authMode,
|
|
49
|
+
description: 'Authentication mode such as apiKey, oauth, deviceCode, or console.',
|
|
27
50
|
},
|
|
28
|
-
|
|
51
|
+
offeringId: {
|
|
29
52
|
type: 'string',
|
|
30
|
-
predicate: UDFS.
|
|
31
|
-
|
|
32
|
-
description: 'Provider identifier such as openai or cloudflare.',
|
|
53
|
+
predicate: UDFS.offeringId,
|
|
54
|
+
description: 'Offering id this credential connects through. Offerings are catalog content, so this stays a plain attribute, not a relation.',
|
|
33
55
|
},
|
|
34
|
-
|
|
56
|
+
service: {
|
|
35
57
|
type: 'string',
|
|
36
|
-
predicate: UDFS.
|
|
58
|
+
predicate: UDFS.service,
|
|
37
59
|
required: true,
|
|
38
|
-
description: '
|
|
60
|
+
description: 'Credential service grouping, for example ai or infra.',
|
|
39
61
|
},
|
|
40
|
-
|
|
62
|
+
status: {
|
|
41
63
|
type: 'string',
|
|
42
|
-
predicate: UDFS.
|
|
43
|
-
description: '
|
|
64
|
+
predicate: UDFS.status,
|
|
65
|
+
description: 'Credential health status.',
|
|
44
66
|
},
|
|
45
67
|
apiKey: {
|
|
46
68
|
type: 'string',
|
|
@@ -48,11 +70,6 @@ export const credentialDescriptor = {
|
|
|
48
70
|
secret: true,
|
|
49
71
|
description: 'Secret token or API key material.',
|
|
50
72
|
},
|
|
51
|
-
authMode: {
|
|
52
|
-
type: 'string',
|
|
53
|
-
predicate: UDFS.authMode,
|
|
54
|
-
description: 'Authentication mode such as apiKey, oauth, deviceCode, or console.',
|
|
55
|
-
},
|
|
56
73
|
storageMode: {
|
|
57
74
|
type: 'string',
|
|
58
75
|
predicate: UDFS.storageMode,
|
|
@@ -112,17 +129,112 @@ export const credentialDescriptor = {
|
|
|
112
129
|
predicate: UDFS.reauthRequired,
|
|
113
130
|
description: 'Whether this credential requires user reauthentication.',
|
|
114
131
|
},
|
|
115
|
-
|
|
132
|
+
baseUrl: {
|
|
116
133
|
type: 'string',
|
|
117
|
-
predicate: UDFS.
|
|
118
|
-
description: '
|
|
134
|
+
predicate: UDFS.baseUrl,
|
|
135
|
+
description: 'Provider API base URL recorded on the credential.',
|
|
136
|
+
},
|
|
137
|
+
proxyUrl: {
|
|
138
|
+
type: 'string',
|
|
139
|
+
predicate: UDFS.proxyUrl,
|
|
140
|
+
description: 'Proxy URL used for requests made with this credential.',
|
|
141
|
+
},
|
|
142
|
+
label: {
|
|
143
|
+
type: 'string',
|
|
144
|
+
predicate: UDFS.label,
|
|
145
|
+
description: 'User-facing credential label.',
|
|
146
|
+
},
|
|
147
|
+
isDefault: {
|
|
148
|
+
type: 'boolean',
|
|
149
|
+
predicate: UDFS.isDefault,
|
|
150
|
+
description: 'Whether this credential is the default credential for its provider.',
|
|
151
|
+
},
|
|
152
|
+
createdAt: {
|
|
153
|
+
type: 'timestamp',
|
|
154
|
+
predicate: DCTerms.created,
|
|
155
|
+
description: 'Creation timestamp, set by the store.',
|
|
156
|
+
},
|
|
157
|
+
lastUsedAt: {
|
|
158
|
+
type: 'timestamp',
|
|
159
|
+
predicate: UDFS.lastUsedAt,
|
|
160
|
+
description: 'Last successful use timestamp.',
|
|
161
|
+
},
|
|
162
|
+
clientCredentialId: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
predicate: UDFS.clientCredentialId,
|
|
165
|
+
description: 'Client the issued credential belongs to. An external runtime identifier, not an RDF link.',
|
|
166
|
+
},
|
|
167
|
+
appliedTo: {
|
|
168
|
+
type: 'string',
|
|
169
|
+
predicate: UDFS.appliedTo,
|
|
170
|
+
description: 'Client application id the credential is in effect for. A runtime identifier, not an RDF link.',
|
|
171
|
+
},
|
|
172
|
+
appliedOn: {
|
|
173
|
+
type: 'string',
|
|
174
|
+
predicate: UDFS.appliedOn,
|
|
175
|
+
description: 'Device id that wrote the applied configuration. A runtime identifier, not an RDF link.',
|
|
176
|
+
},
|
|
177
|
+
appliedAt: {
|
|
178
|
+
type: 'timestamp',
|
|
179
|
+
predicate: UDFS.appliedAt,
|
|
180
|
+
description: 'Timestamp when the credential was applied.',
|
|
181
|
+
},
|
|
182
|
+
failCount: {
|
|
183
|
+
type: 'number',
|
|
184
|
+
predicate: UDFS.failCount,
|
|
185
|
+
description: 'Failed use count recorded for the credential.',
|
|
186
|
+
},
|
|
187
|
+
rateLimitResetAt: {
|
|
188
|
+
type: 'timestamp',
|
|
189
|
+
predicate: UDFS.rateLimitResetAt,
|
|
190
|
+
description: 'Timestamp when the provider rate limit is expected to reset.',
|
|
191
|
+
},
|
|
192
|
+
oauthRefreshToken: {
|
|
193
|
+
type: 'string',
|
|
194
|
+
predicate: UDFS.oauthRefreshToken,
|
|
195
|
+
secret: true,
|
|
196
|
+
description: 'OAuth refresh token.',
|
|
197
|
+
},
|
|
198
|
+
oauthAccessToken: {
|
|
199
|
+
type: 'string',
|
|
200
|
+
predicate: UDFS.oauthAccessToken,
|
|
201
|
+
secret: true,
|
|
202
|
+
description: 'OAuth access token.',
|
|
203
|
+
},
|
|
204
|
+
oauthExpiresAt: {
|
|
205
|
+
type: 'timestamp',
|
|
206
|
+
predicate: UDFS.oauthExpiresAt,
|
|
207
|
+
description: 'OAuth access token expiry timestamp.',
|
|
208
|
+
},
|
|
209
|
+
projectId: {
|
|
210
|
+
type: 'string',
|
|
211
|
+
predicate: UDFS.projectId,
|
|
212
|
+
description: 'Provider project identifier recorded for the credential.',
|
|
213
|
+
},
|
|
214
|
+
organizationId: {
|
|
215
|
+
type: 'string',
|
|
216
|
+
predicate: UDFS.organizationId,
|
|
217
|
+
description: 'Provider organization identifier recorded for the credential.',
|
|
218
|
+
},
|
|
219
|
+
metadata: {
|
|
220
|
+
type: 'json',
|
|
221
|
+
predicate: UDFS.metadata,
|
|
222
|
+
description: 'Opaque adapter-local metadata bag; shared relations must be explicit fields.',
|
|
119
223
|
},
|
|
120
224
|
},
|
|
121
|
-
|
|
225
|
+
// A credential pool holds several credentials per provider and offering (one
|
|
226
|
+
// per account or key), so `service`, `provider`, and `offeringId` are not
|
|
227
|
+
// unique together, and `secretType` is a resolution hint rather than a column.
|
|
228
|
+
// The row id is the only column that identifies a credential, so it is the
|
|
229
|
+
// whole key here; provider and offering stay attributes of the credential.
|
|
230
|
+
uniqueBy: ['id'],
|
|
122
231
|
writableFields: [
|
|
123
|
-
'
|
|
124
|
-
'apiKey',
|
|
232
|
+
'provider',
|
|
125
233
|
'authMode',
|
|
234
|
+
'offeringId',
|
|
235
|
+
'service',
|
|
236
|
+
'status',
|
|
237
|
+
'apiKey',
|
|
126
238
|
'storageMode',
|
|
127
239
|
'secretPayload',
|
|
128
240
|
'encryptedSecret',
|
|
@@ -134,29 +246,41 @@ export const credentialDescriptor = {
|
|
|
134
246
|
'accountLabel',
|
|
135
247
|
'lastRefreshAt',
|
|
136
248
|
'reauthRequired',
|
|
137
|
-
'
|
|
249
|
+
'baseUrl',
|
|
250
|
+
'proxyUrl',
|
|
251
|
+
'label',
|
|
252
|
+
'isDefault',
|
|
253
|
+
'lastUsedAt',
|
|
254
|
+
'clientCredentialId',
|
|
255
|
+
'appliedTo',
|
|
256
|
+
'appliedOn',
|
|
257
|
+
'appliedAt',
|
|
258
|
+
'failCount',
|
|
259
|
+
'rateLimitResetAt',
|
|
260
|
+
'oauthRefreshToken',
|
|
261
|
+
'oauthAccessToken',
|
|
262
|
+
'oauthExpiresAt',
|
|
263
|
+
'projectId',
|
|
264
|
+
'organizationId',
|
|
265
|
+
'metadata',
|
|
138
266
|
],
|
|
139
267
|
mergePolicy: 'upsert',
|
|
140
268
|
examples: [
|
|
141
269
|
{
|
|
142
270
|
request: '保存 Cloudflare tunnel token',
|
|
143
271
|
match: {
|
|
144
|
-
|
|
145
|
-
providerId: 'cloudflare',
|
|
146
|
-
secretType: 'tunnel-token',
|
|
272
|
+
id: 'cloudflare-5f2c9a1e',
|
|
147
273
|
},
|
|
148
274
|
},
|
|
149
275
|
{
|
|
150
276
|
request: '保存 OpenAI API key',
|
|
151
277
|
match: {
|
|
152
|
-
|
|
153
|
-
providerId: 'openai',
|
|
154
|
-
secretType: 'api-key',
|
|
278
|
+
id: 'openai-2b7d4e10',
|
|
155
279
|
},
|
|
156
280
|
},
|
|
157
281
|
],
|
|
158
|
-
};
|
|
159
|
-
export const gatewayAccessKeyDescriptor = {
|
|
282
|
+
});
|
|
283
|
+
export const gatewayAccessKeyDescriptor = definePodModelDescriptor({
|
|
160
284
|
uri: UDFS.GatewayAccessKey,
|
|
161
285
|
version: '1.0.0',
|
|
162
286
|
source: 'official',
|
|
@@ -218,16 +342,16 @@ export const gatewayAccessKeyDescriptor = {
|
|
|
218
342
|
predicate: UDFS.lastUsedAt,
|
|
219
343
|
description: 'Last successful Gateway use timestamp.',
|
|
220
344
|
},
|
|
221
|
-
disabledAt: {
|
|
222
|
-
type: 'timestamp',
|
|
223
|
-
predicate: UDFS.disabledAt,
|
|
224
|
-
description: 'Temporary disable timestamp. Clear it to enable the key again.',
|
|
225
|
-
},
|
|
226
345
|
revokedAt: {
|
|
227
346
|
type: 'timestamp',
|
|
228
347
|
predicate: UDFS.revokedAt,
|
|
229
348
|
description: 'Revocation timestamp. Presence means the key is no longer valid.',
|
|
230
349
|
},
|
|
350
|
+
disabledAt: {
|
|
351
|
+
type: 'timestamp',
|
|
352
|
+
predicate: UDFS.disabledAt,
|
|
353
|
+
description: 'Temporary disable timestamp. Clear it to enable the key again.',
|
|
354
|
+
},
|
|
231
355
|
},
|
|
232
356
|
uniqueBy: ['id'],
|
|
233
357
|
writableFields: [
|
|
@@ -249,8 +373,8 @@ export const gatewayAccessKeyDescriptor = {
|
|
|
249
373
|
match: { id: 'ai/gateway/access-keys.ttl#key_1' },
|
|
250
374
|
},
|
|
251
375
|
],
|
|
252
|
-
};
|
|
253
|
-
export const quotaSnapshotDescriptor = {
|
|
376
|
+
});
|
|
377
|
+
export const quotaSnapshotDescriptor = definePodModelDescriptor({
|
|
254
378
|
uri: UDFS.QuotaSnapshot,
|
|
255
379
|
version: '1.0.0',
|
|
256
380
|
source: 'official',
|
|
@@ -270,6 +394,7 @@ export const quotaSnapshotDescriptor = {
|
|
|
270
394
|
credential: {
|
|
271
395
|
type: 'uri',
|
|
272
396
|
predicate: UDFS.credential,
|
|
397
|
+
references: { resource: 'credential', key: 'id' },
|
|
273
398
|
required: true,
|
|
274
399
|
description: 'Credential resource URI this quota snapshot describes.',
|
|
275
400
|
},
|
|
@@ -340,8 +465,225 @@ export const quotaSnapshotDescriptor = {
|
|
|
340
465
|
match: { id: 'ai/gateway/quota.ttl#quota_1' },
|
|
341
466
|
},
|
|
342
467
|
],
|
|
343
|
-
};
|
|
344
|
-
export const
|
|
468
|
+
});
|
|
469
|
+
export const aiProviderDescriptor = definePodModelDescriptor({
|
|
470
|
+
uri: UDFS.Provider,
|
|
471
|
+
version: '1.0.0',
|
|
472
|
+
source: 'official',
|
|
473
|
+
trustLevel: 'high',
|
|
474
|
+
namespace: UDFS.NAMESPACE,
|
|
475
|
+
class: UDFS.Provider,
|
|
476
|
+
resourceKind: 'provider',
|
|
477
|
+
description: 'AI provider endpoint configured in the Pod: endpoint, proxy, console entry, backend support, and the models it exposes. Its model rows live in the same provider document and are linked from here through hasModel.',
|
|
478
|
+
// One document per provider: the table id default is `{key}.ttl` against the
|
|
479
|
+
// `/settings/providers/` base, so `buildId({ id: provider })` resolves to
|
|
480
|
+
// `<provider>.ttl` and its model rows are subjects inside that document.
|
|
481
|
+
storage: {
|
|
482
|
+
base: '/settings/providers/',
|
|
483
|
+
resourceIdPattern: '{key}.ttl',
|
|
484
|
+
},
|
|
485
|
+
fields: {
|
|
486
|
+
id: {
|
|
487
|
+
type: 'string',
|
|
488
|
+
predicate: UDFS.term('id'),
|
|
489
|
+
required: true,
|
|
490
|
+
description: 'Base-relative provider row id, for example openai.ttl.',
|
|
491
|
+
},
|
|
492
|
+
displayName: {
|
|
493
|
+
type: 'string',
|
|
494
|
+
predicate: UDFS.displayName,
|
|
495
|
+
description: 'Provider display name stored on the provider row.',
|
|
496
|
+
},
|
|
497
|
+
baseUrl: {
|
|
498
|
+
type: 'string',
|
|
499
|
+
predicate: UDFS.baseUrl,
|
|
500
|
+
description: 'Provider API base URL.',
|
|
501
|
+
},
|
|
502
|
+
proxyUrl: {
|
|
503
|
+
type: 'string',
|
|
504
|
+
predicate: UDFS.proxyUrl,
|
|
505
|
+
description: 'Proxy URL used for provider requests.',
|
|
506
|
+
},
|
|
507
|
+
homepage: {
|
|
508
|
+
type: 'string',
|
|
509
|
+
predicate: UDFS.homepage,
|
|
510
|
+
description: 'Provider homepage URL.',
|
|
511
|
+
},
|
|
512
|
+
apiKeyUrl: {
|
|
513
|
+
type: 'string',
|
|
514
|
+
predicate: UDFS.apiKeyUrl,
|
|
515
|
+
description: 'URL where a user creates an API key for this provider.',
|
|
516
|
+
},
|
|
517
|
+
connectMode: {
|
|
518
|
+
type: 'string',
|
|
519
|
+
predicate: UDFS.connectMode,
|
|
520
|
+
description: 'Connection mode recorded for the provider authorization method.',
|
|
521
|
+
},
|
|
522
|
+
hasModel: {
|
|
523
|
+
type: 'uri',
|
|
524
|
+
predicate: UDFS.hasModel,
|
|
525
|
+
references: { resource: 'ai-model', key: 'id' },
|
|
526
|
+
array: true,
|
|
527
|
+
description: 'Model rows this provider exposes, as subjects inside the provider document.',
|
|
528
|
+
},
|
|
529
|
+
defaultModel: {
|
|
530
|
+
type: 'uri',
|
|
531
|
+
predicate: UDFS.defaultModel,
|
|
532
|
+
references: { resource: 'ai-model', key: 'id' },
|
|
533
|
+
description: 'Default model for this provider when a request does not select one.',
|
|
534
|
+
},
|
|
535
|
+
supportsBackend: {
|
|
536
|
+
type: 'string',
|
|
537
|
+
predicate: UDFS.supportsBackend,
|
|
538
|
+
description: 'Backends this provider can serve, read as a backend list by the AI config selector.',
|
|
539
|
+
},
|
|
540
|
+
capabilities: {
|
|
541
|
+
type: 'string',
|
|
542
|
+
predicate: UDFS.capability,
|
|
543
|
+
array: true,
|
|
544
|
+
description: 'Provider capability tags.',
|
|
545
|
+
},
|
|
546
|
+
rotationPolicy: {
|
|
547
|
+
type: 'string',
|
|
548
|
+
predicate: UDFS.rotationPolicy,
|
|
549
|
+
description: 'Credential rotation policy recorded for the provider.',
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
uniqueBy: ['id'],
|
|
553
|
+
writableFields: [
|
|
554
|
+
'displayName',
|
|
555
|
+
'baseUrl',
|
|
556
|
+
'proxyUrl',
|
|
557
|
+
'homepage',
|
|
558
|
+
'apiKeyUrl',
|
|
559
|
+
'connectMode',
|
|
560
|
+
'hasModel',
|
|
561
|
+
'defaultModel',
|
|
562
|
+
'supportsBackend',
|
|
563
|
+
'capabilities',
|
|
564
|
+
'rotationPolicy',
|
|
565
|
+
],
|
|
566
|
+
mergePolicy: 'upsert',
|
|
567
|
+
examples: [
|
|
568
|
+
{
|
|
569
|
+
request: 'Describe the provider document a Pod AI connection writes',
|
|
570
|
+
match: { id: 'openai.ttl' },
|
|
571
|
+
},
|
|
572
|
+
],
|
|
573
|
+
});
|
|
574
|
+
export const aiModelDescriptor = definePodModelDescriptor({
|
|
575
|
+
uri: UDFS.AIModel,
|
|
576
|
+
version: '1.0.0',
|
|
577
|
+
source: 'official',
|
|
578
|
+
trustLevel: 'high',
|
|
579
|
+
namespace: UDFS.NAMESPACE,
|
|
580
|
+
class: UDFS.AIModel,
|
|
581
|
+
resourceKind: 'ai-model',
|
|
582
|
+
description: 'AI model exposed by a provider, stored as a subject inside that provider document. The provider relation and model capabilities are URI facts, while pricing and modality facts stay literals.',
|
|
583
|
+
// Model rows are subjects inside the provider document: the table id default
|
|
584
|
+
// is `{isProvidedBy.doc}#{key}` against the `/settings/providers/` base, so
|
|
585
|
+
// `buildId({ id: modelKey, isProvidedBy: providerIri })` resolves to
|
|
586
|
+
// `<provider>.ttl#<modelKey>`.
|
|
587
|
+
storage: {
|
|
588
|
+
base: '/settings/providers/',
|
|
589
|
+
resourceIdPattern: '{isProvidedBy.doc}#{key}',
|
|
590
|
+
},
|
|
591
|
+
fields: {
|
|
592
|
+
id: {
|
|
593
|
+
type: 'string',
|
|
594
|
+
predicate: UDFS.term('id'),
|
|
595
|
+
required: true,
|
|
596
|
+
description: 'Base-relative model row id: provider document plus model key, for example openai.ttl#gpt-4o.',
|
|
597
|
+
},
|
|
598
|
+
rdfType: {
|
|
599
|
+
type: 'uri',
|
|
600
|
+
predicate: RDF.type,
|
|
601
|
+
array: true,
|
|
602
|
+
description: 'RDF class of the model row. The base table defaults to AIModel, and subclass tables narrow it.',
|
|
603
|
+
},
|
|
604
|
+
displayName: {
|
|
605
|
+
type: 'string',
|
|
606
|
+
predicate: UDFS.displayName,
|
|
607
|
+
description: 'Model display name stored on the model row.',
|
|
608
|
+
},
|
|
609
|
+
isProvidedBy: {
|
|
610
|
+
type: 'uri',
|
|
611
|
+
predicate: UDFS.isProvidedBy,
|
|
612
|
+
references: { resource: 'provider', key: 'id' },
|
|
613
|
+
description: 'Provider document this model row belongs to, as a URI relation to the provider row.',
|
|
614
|
+
},
|
|
615
|
+
inputModalities: {
|
|
616
|
+
type: 'text',
|
|
617
|
+
predicate: UDFS.inputModality,
|
|
618
|
+
array: true,
|
|
619
|
+
description: 'Input modalities the model accepts.',
|
|
620
|
+
},
|
|
621
|
+
outputModalities: {
|
|
622
|
+
type: 'text',
|
|
623
|
+
predicate: UDFS.outputModality,
|
|
624
|
+
array: true,
|
|
625
|
+
description: 'Output modalities the model produces.',
|
|
626
|
+
},
|
|
627
|
+
runtimeCapabilities: {
|
|
628
|
+
type: 'string',
|
|
629
|
+
predicate: UDFS.capability,
|
|
630
|
+
array: true,
|
|
631
|
+
description: 'Adapter/runtime endpoint capabilities, kept separate from semantic model capabilities.',
|
|
632
|
+
},
|
|
633
|
+
capabilities: {
|
|
634
|
+
type: 'uri',
|
|
635
|
+
predicate: UDFS.hasCapability,
|
|
636
|
+
array: true,
|
|
637
|
+
description: 'Semantic capabilities of the model, as URIs.',
|
|
638
|
+
},
|
|
639
|
+
pricingInput: {
|
|
640
|
+
type: 'number',
|
|
641
|
+
predicate: UDFS.pricingInput,
|
|
642
|
+
description: 'Input token price recorded for the model.',
|
|
643
|
+
},
|
|
644
|
+
pricingOutput: {
|
|
645
|
+
type: 'number',
|
|
646
|
+
predicate: UDFS.pricingOutput,
|
|
647
|
+
description: 'Output token price recorded for the model.',
|
|
648
|
+
},
|
|
649
|
+
status: {
|
|
650
|
+
type: 'string',
|
|
651
|
+
predicate: UDFS.status,
|
|
652
|
+
description: 'Model availability status.',
|
|
653
|
+
},
|
|
654
|
+
createdAt: {
|
|
655
|
+
type: 'timestamp',
|
|
656
|
+
predicate: UDFS.createdAt,
|
|
657
|
+
description: 'Creation timestamp, set by the store.',
|
|
658
|
+
},
|
|
659
|
+
updatedAt: {
|
|
660
|
+
type: 'timestamp',
|
|
661
|
+
predicate: UDFS.updatedAt,
|
|
662
|
+
description: 'Last update timestamp.',
|
|
663
|
+
},
|
|
664
|
+
},
|
|
665
|
+
uniqueBy: ['id'],
|
|
666
|
+
writableFields: [
|
|
667
|
+
'displayName',
|
|
668
|
+
'isProvidedBy',
|
|
669
|
+
'inputModalities',
|
|
670
|
+
'outputModalities',
|
|
671
|
+
'runtimeCapabilities',
|
|
672
|
+
'capabilities',
|
|
673
|
+
'pricingInput',
|
|
674
|
+
'pricingOutput',
|
|
675
|
+
'status',
|
|
676
|
+
'updatedAt',
|
|
677
|
+
],
|
|
678
|
+
mergePolicy: 'upsert',
|
|
679
|
+
examples: [
|
|
680
|
+
{
|
|
681
|
+
request: 'Describe a model row inside a provider document',
|
|
682
|
+
match: { id: 'openai.ttl#gpt-4o' },
|
|
683
|
+
},
|
|
684
|
+
],
|
|
685
|
+
});
|
|
686
|
+
export const approvalDescriptor = definePodModelDescriptor({
|
|
345
687
|
uri: UDFS.ApprovalRequest,
|
|
346
688
|
version: '1.0.0',
|
|
347
689
|
source: 'official',
|
|
@@ -370,11 +712,13 @@ export const approvalDescriptor = {
|
|
|
370
712
|
chat: {
|
|
371
713
|
type: 'uri',
|
|
372
714
|
predicate: UDFS.conversation,
|
|
715
|
+
references: { resource: 'chat', key: 'id' },
|
|
373
716
|
description: 'Related chat command surface.',
|
|
374
717
|
},
|
|
375
718
|
thread: {
|
|
376
719
|
type: 'uri',
|
|
377
720
|
predicate: UDFS.inThread,
|
|
721
|
+
references: { resource: 'thread', key: 'id' },
|
|
378
722
|
description: 'Related concrete thread/work site.',
|
|
379
723
|
},
|
|
380
724
|
toolCallId: {
|
|
@@ -511,8 +855,8 @@ export const approvalDescriptor = {
|
|
|
511
855
|
},
|
|
512
856
|
},
|
|
513
857
|
],
|
|
514
|
-
};
|
|
515
|
-
export const inputRequestDescriptor = {
|
|
858
|
+
});
|
|
859
|
+
export const inputRequestDescriptor = definePodModelDescriptor({
|
|
516
860
|
uri: UDFS.InputRequest,
|
|
517
861
|
version: '1.0.0',
|
|
518
862
|
source: 'official',
|
|
@@ -541,21 +885,25 @@ export const inputRequestDescriptor = {
|
|
|
541
885
|
chat: {
|
|
542
886
|
type: 'uri',
|
|
543
887
|
predicate: UDFS.conversation,
|
|
888
|
+
references: { resource: 'chat', key: 'id' },
|
|
544
889
|
description: 'Related chat command surface.',
|
|
545
890
|
},
|
|
546
891
|
thread: {
|
|
547
892
|
type: 'uri',
|
|
548
893
|
predicate: UDFS.inThread,
|
|
894
|
+
references: { resource: 'thread', key: 'id' },
|
|
549
895
|
description: 'Related concrete thread/work site.',
|
|
550
896
|
},
|
|
551
897
|
run: {
|
|
552
898
|
type: 'uri',
|
|
553
899
|
predicate: UDFS.run,
|
|
900
|
+
references: { resource: 'run', key: 'id' },
|
|
554
901
|
description: 'Run waiting for input.',
|
|
555
902
|
},
|
|
556
903
|
task: {
|
|
557
904
|
type: 'uri',
|
|
558
905
|
predicate: UDFS.task,
|
|
906
|
+
references: { resource: 'task', key: 'id' },
|
|
559
907
|
description: 'Task whose execution requires input.',
|
|
560
908
|
},
|
|
561
909
|
requester: {
|
|
@@ -679,7 +1027,7 @@ export const inputRequestDescriptor = {
|
|
|
679
1027
|
},
|
|
680
1028
|
},
|
|
681
1029
|
],
|
|
682
|
-
};
|
|
1030
|
+
});
|
|
683
1031
|
function exactIdStorage(base = '/.data/') {
|
|
684
1032
|
return {
|
|
685
1033
|
base,
|
|
@@ -692,7 +1040,7 @@ const idField = {
|
|
|
692
1040
|
required: true,
|
|
693
1041
|
description: 'Base-relative resource id. For exact-id descriptors this includes the full document path and optional fragment.',
|
|
694
1042
|
};
|
|
695
|
-
export const captureCandidateDescriptor = {
|
|
1043
|
+
export const captureCandidateDescriptor = definePodModelDescriptor({
|
|
696
1044
|
uri: UDFS.CaptureCandidate,
|
|
697
1045
|
version: '1.0.0',
|
|
698
1046
|
source: 'official',
|
|
@@ -712,10 +1060,10 @@ export const captureCandidateDescriptor = {
|
|
|
712
1060
|
reason: { type: 'text', predicate: UDFS.reason, description: 'Short rationale for why this source might be worth capturing.' },
|
|
713
1061
|
status: { type: 'string', predicate: UDFS.status, description: 'Candidate lifecycle status such as candidate, promoted, rejected, duplicate, ignored, or superseded.' },
|
|
714
1062
|
sourceHash: { type: 'string', predicate: UDFS.sourceHash, description: 'Optional source digest for duplicate detection.' },
|
|
715
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Related chat command surface.' },
|
|
716
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Related concrete thread/work site.' },
|
|
717
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Related task.' },
|
|
718
|
-
run: { type: 'uri', predicate: UDFS.run, description: 'Related run.' },
|
|
1063
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Related chat command surface.' },
|
|
1064
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Related concrete thread/work site.' },
|
|
1065
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Related task.' },
|
|
1066
|
+
run: { type: 'uri', predicate: UDFS.run, references: { resource: 'run', key: 'id' }, description: 'Related run.' },
|
|
719
1067
|
actor: { type: 'uri', predicate: DCTerms.creator, description: 'Secretary, user, or worker that created the candidate.' },
|
|
720
1068
|
metadata: { type: 'json', predicate: UDFS.metadata, description: 'Opaque adapter-local metadata; shared relations must be explicit fields.' },
|
|
721
1069
|
createdAt: { type: 'timestamp', predicate: DCTerms.created, description: 'Creation timestamp.' },
|
|
@@ -748,8 +1096,8 @@ export const captureCandidateDescriptor = {
|
|
|
748
1096
|
},
|
|
749
1097
|
},
|
|
750
1098
|
],
|
|
751
|
-
};
|
|
752
|
-
export const captureEventDescriptor = {
|
|
1099
|
+
});
|
|
1100
|
+
export const captureEventDescriptor = definePodModelDescriptor({
|
|
753
1101
|
uri: UDFS.CaptureEvent,
|
|
754
1102
|
version: '1.0.0',
|
|
755
1103
|
source: 'official',
|
|
@@ -762,7 +1110,7 @@ export const captureEventDescriptor = {
|
|
|
762
1110
|
fields: {
|
|
763
1111
|
id: idField,
|
|
764
1112
|
source: { type: 'uri', predicate: DCTerms.source, required: true, description: 'Original message, file, URL, fetched document, or resource considered by capture.' },
|
|
765
|
-
captureCandidate: { type: 'uri', predicate: UDFS.captureCandidate, description: 'Candidate resource involved in this event, when applicable.' },
|
|
1113
|
+
captureCandidate: { type: 'uri', predicate: UDFS.captureCandidate, references: { resource: 'capture-candidate', key: 'id' }, description: 'Candidate resource involved in this event, when applicable.' },
|
|
766
1114
|
targetResource: { type: 'uri', predicate: UDFS.targetResource, description: 'Formal resource affected by this capture decision.' },
|
|
767
1115
|
decision: { type: 'string', predicate: UDFS.captureDecision, required: true, description: 'Decision such as direct_commit, optimistic_commit, candidate_created, promoted, rejected, corrected, rollback, duplicate, or ignored.' },
|
|
768
1116
|
suggestedType: { type: 'uri', predicate: UDFS.suggestedType, description: 'Type suggested at decision time.' },
|
|
@@ -770,12 +1118,12 @@ export const captureEventDescriptor = {
|
|
|
770
1118
|
confidence: { type: 'string', predicate: UDFS.confidence, description: 'Classifier confidence at decision time.' },
|
|
771
1119
|
reason: { type: 'text', predicate: UDFS.reason, description: 'Explanation for the capture decision.' },
|
|
772
1120
|
userCorrection: { type: 'text', predicate: UDFS.userCorrection, description: 'User correction to type, target, title, summary, or content.' },
|
|
773
|
-
approval: { type: 'uri', predicate: UDFS.approval, description: 'ApprovalRequest controlling an authority gate, if any.' },
|
|
774
|
-
inputRequest: { type: 'uri', predicate: UDFS.inputRequest, description: 'InputRequest controlling missing information, if any.' },
|
|
775
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Related chat command surface.' },
|
|
776
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Related concrete thread/work site.' },
|
|
777
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Related task.' },
|
|
778
|
-
run: { type: 'uri', predicate: UDFS.run, description: 'Related run.' },
|
|
1121
|
+
approval: { type: 'uri', predicate: UDFS.approval, references: { resource: 'approval', key: 'id' }, description: 'ApprovalRequest controlling an authority gate, if any.' },
|
|
1122
|
+
inputRequest: { type: 'uri', predicate: UDFS.inputRequest, references: { resource: 'input-request', key: 'id' }, description: 'InputRequest controlling missing information, if any.' },
|
|
1123
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Related chat command surface.' },
|
|
1124
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Related concrete thread/work site.' },
|
|
1125
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Related task.' },
|
|
1126
|
+
run: { type: 'uri', predicate: UDFS.run, references: { resource: 'run', key: 'id' }, description: 'Related run.' },
|
|
779
1127
|
actor: { type: 'uri', predicate: DCTerms.creator, description: 'Secretary, user, or worker that made or recorded the decision.' },
|
|
780
1128
|
about: { type: 'uri', predicate: SCHEMA.about, description: 'Control object or semantic subject the event is about.' },
|
|
781
1129
|
metadata: { type: 'json', predicate: UDFS.metadata, description: 'Opaque adapter-local metadata; shared relations must be explicit fields.' },
|
|
@@ -811,8 +1159,8 @@ export const captureEventDescriptor = {
|
|
|
811
1159
|
},
|
|
812
1160
|
},
|
|
813
1161
|
],
|
|
814
|
-
};
|
|
815
|
-
export const contactDescriptor = {
|
|
1162
|
+
});
|
|
1163
|
+
export const contactDescriptor = definePodModelDescriptor({
|
|
816
1164
|
uri: UDFS.Contact,
|
|
817
1165
|
version: '1.0.0',
|
|
818
1166
|
source: 'official',
|
|
@@ -850,8 +1198,8 @@ export const contactDescriptor = {
|
|
|
850
1198
|
],
|
|
851
1199
|
mergePolicy: 'upsert',
|
|
852
1200
|
examples: [{ request: 'Create an AI agent contact projection', match: { id: 'agent-secretary.ttl' } }],
|
|
853
|
-
};
|
|
854
|
-
export const chatDescriptor = {
|
|
1201
|
+
});
|
|
1202
|
+
export const chatDescriptor = definePodModelDescriptor({
|
|
855
1203
|
uri: MEETING.LongChat,
|
|
856
1204
|
version: '1.0.0',
|
|
857
1205
|
source: 'official',
|
|
@@ -871,7 +1219,7 @@ export const chatDescriptor = {
|
|
|
871
1219
|
starred: { type: 'boolean', predicate: UDFS.favorite, description: 'Favorite flag.' },
|
|
872
1220
|
muted: { type: 'boolean', predicate: UDFS.muted, description: 'Muted flag.' },
|
|
873
1221
|
unreadCount: { type: 'number', predicate: UDFS.unreadCount, description: 'Unread message count.' },
|
|
874
|
-
contact: { type: 'uri', predicate: UDFS.hasContact, description: 'Optional counterpart/contact represented by this channel.' },
|
|
1222
|
+
contact: { type: 'uri', predicate: UDFS.hasContact, references: { resource: 'contact', key: 'id' }, description: 'Optional counterpart/contact represented by this channel.' },
|
|
875
1223
|
participants: { type: 'uri', predicate: WF.participant, array: true, description: 'Participant resource URIs.' },
|
|
876
1224
|
metadata: { type: 'json', predicate: UDFS.metadata, description: 'Opaque adapter/UI metadata.' },
|
|
877
1225
|
lastActiveAt: { type: 'timestamp', predicate: UDFS.lastActiveAt, description: 'Last activity timestamp.' },
|
|
@@ -886,8 +1234,8 @@ export const chatDescriptor = {
|
|
|
886
1234
|
],
|
|
887
1235
|
mergePolicy: 'upsert',
|
|
888
1236
|
examples: [{ request: 'Create a team chat surface', match: { id: 'team/index.ttl#this' } }],
|
|
889
|
-
};
|
|
890
|
-
export const threadDescriptor = {
|
|
1237
|
+
});
|
|
1238
|
+
export const threadDescriptor = definePodModelDescriptor({
|
|
891
1239
|
uri: SIOC.Thread,
|
|
892
1240
|
version: '1.0.0',
|
|
893
1241
|
source: 'official',
|
|
@@ -910,8 +1258,8 @@ export const threadDescriptor = {
|
|
|
910
1258
|
writableFields: ['parent', 'title', 'status', 'starred', 'workspace', 'metadata'],
|
|
911
1259
|
mergePolicy: 'upsert',
|
|
912
1260
|
examples: [{ request: 'Create a thread under a chat surface', match: { id: 'chat/team/index.ttl#thread' } }],
|
|
913
|
-
};
|
|
914
|
-
export const messageDescriptor = {
|
|
1261
|
+
});
|
|
1262
|
+
export const messageDescriptor = definePodModelDescriptor({
|
|
915
1263
|
uri: MEETING.Message,
|
|
916
1264
|
version: '1.0.0',
|
|
917
1265
|
source: 'official',
|
|
@@ -924,8 +1272,8 @@ export const messageDescriptor = {
|
|
|
924
1272
|
fields: {
|
|
925
1273
|
id: idField,
|
|
926
1274
|
parent: { type: 'uri', predicate: SIOC.has_parent, required: true, description: 'Parent command surface/container URI.' },
|
|
927
|
-
chat: { type: 'uri', predicate: WF.message, description: 'Solid Chat compatibility containment relation.' },
|
|
928
|
-
thread: { type: 'uri', predicate: SIOC.has_member, description: 'Thread containment relation.' },
|
|
1275
|
+
chat: { type: 'uri', predicate: WF.message, references: { resource: 'chat', key: 'id' }, description: 'Solid Chat compatibility containment relation.' },
|
|
1276
|
+
thread: { type: 'uri', predicate: SIOC.has_member, references: { resource: 'thread', key: 'id' }, description: 'Thread containment relation.' },
|
|
929
1277
|
maker: { type: 'uri', predicate: FOAF.maker, description: 'Author resource IRI.' },
|
|
930
1278
|
role: { type: 'string', predicate: UDFS.messageType, description: 'Message role.' },
|
|
931
1279
|
content: { type: 'text', predicate: SIOC.content, required: true, description: 'Plain text content.' },
|
|
@@ -953,8 +1301,8 @@ export const messageDescriptor = {
|
|
|
953
1301
|
],
|
|
954
1302
|
mergePolicy: 'append',
|
|
955
1303
|
examples: [{ request: 'Append a message under a team chat', match: { id: 'chat/team/2026/06/14/messages.ttl#msg_1' } }],
|
|
956
|
-
};
|
|
957
|
-
export const chatProjectContextDescriptor = {
|
|
1304
|
+
});
|
|
1305
|
+
export const chatProjectContextDescriptor = definePodModelDescriptor({
|
|
958
1306
|
uri: UDFS.ChatProjectContext,
|
|
959
1307
|
version: '1.0.0',
|
|
960
1308
|
source: 'official',
|
|
@@ -976,8 +1324,8 @@ export const chatProjectContextDescriptor = {
|
|
|
976
1324
|
writableFields: ['workspace', 'instructions', 'memoryEnabled', 'createdAt', 'updatedAt'],
|
|
977
1325
|
mergePolicy: 'upsert',
|
|
978
1326
|
examples: [{ request: 'Save shared instructions for a workspace', match: { id: 'workspace-key.ttl' } }],
|
|
979
|
-
};
|
|
980
|
-
export const chatProjectMemoryDescriptor = {
|
|
1327
|
+
});
|
|
1328
|
+
export const chatProjectMemoryDescriptor = definePodModelDescriptor({
|
|
981
1329
|
uri: UDFS.ProjectMemory,
|
|
982
1330
|
version: '1.0.0',
|
|
983
1331
|
source: 'official',
|
|
@@ -999,8 +1347,8 @@ export const chatProjectMemoryDescriptor = {
|
|
|
999
1347
|
writableFields: ['workspace', 'text', 'sourceMessage', 'createdAt', 'updatedAt'],
|
|
1000
1348
|
mergePolicy: 'upsert',
|
|
1001
1349
|
examples: [{ request: 'Remember an explicit project fact', match: { id: 'memory-id.ttl' } }],
|
|
1002
|
-
};
|
|
1003
|
-
export const conversationShareDescriptor = {
|
|
1350
|
+
});
|
|
1351
|
+
export const conversationShareDescriptor = definePodModelDescriptor({
|
|
1004
1352
|
uri: UDFS.ConversationShare,
|
|
1005
1353
|
version: '1.0.0',
|
|
1006
1354
|
source: 'official',
|
|
@@ -1023,8 +1371,8 @@ export const conversationShareDescriptor = {
|
|
|
1023
1371
|
writableFields: ['thread', 'resourceUrl', 'includeToolDetails', 'excludedMessageIds', 'createdAt', 'revokedAt'],
|
|
1024
1372
|
mergePolicy: 'upsert',
|
|
1025
1373
|
examples: [{ request: 'Record a read-only conversation share', match: { id: 'share-id.ttl' } }],
|
|
1026
|
-
};
|
|
1027
|
-
export const ideaDescriptor = {
|
|
1374
|
+
});
|
|
1375
|
+
export const ideaDescriptor = definePodModelDescriptor({
|
|
1028
1376
|
uri: UDFS.Idea,
|
|
1029
1377
|
version: '1.0.0',
|
|
1030
1378
|
source: 'official',
|
|
@@ -1048,8 +1396,8 @@ export const ideaDescriptor = {
|
|
|
1048
1396
|
conflicts: { type: 'text', predicate: UDFS.conflicts, array: true, description: 'Potential semantic conflicts.' },
|
|
1049
1397
|
nextStep: { type: 'text', predicate: UDFS.nextStep, description: 'Suggested next action.' },
|
|
1050
1398
|
promotedTo: { type: 'uri', predicate: UDFS.promotedTo, description: 'Committed resource created from the idea.' },
|
|
1051
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Source chat.' },
|
|
1052
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Source thread.' },
|
|
1399
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Source chat.' },
|
|
1400
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Source thread.' },
|
|
1053
1401
|
sourceMessages: { type: 'uri', predicate: DCTerms.source, array: true, description: 'Source messages.' },
|
|
1054
1402
|
createdBy: { type: 'uri', predicate: DCTerms.creator, description: 'Creator WebID or agent URI.' },
|
|
1055
1403
|
metadata: { type: 'json', predicate: UDFS.metadata, description: 'Opaque adapter metadata.' },
|
|
@@ -1067,8 +1415,8 @@ export const ideaDescriptor = {
|
|
|
1067
1415
|
match: { id: '2026/05/28.ttl#idea_symphony_quality_metrics' },
|
|
1068
1416
|
},
|
|
1069
1417
|
],
|
|
1070
|
-
};
|
|
1071
|
-
export const issueDescriptor = {
|
|
1418
|
+
});
|
|
1419
|
+
export const issueDescriptor = definePodModelDescriptor({
|
|
1072
1420
|
uri: UDFS.Issue,
|
|
1073
1421
|
version: '1.0.0',
|
|
1074
1422
|
source: 'official',
|
|
@@ -1089,9 +1437,9 @@ export const issueDescriptor = {
|
|
|
1089
1437
|
status: { type: 'string', predicate: UDFS.status, description: 'Issue lifecycle status.' },
|
|
1090
1438
|
priority: { type: 'string', predicate: UDFS.priority, description: 'Issue priority.' },
|
|
1091
1439
|
labels: { type: 'text', predicate: UDFS.tags, array: true, description: 'Tags or labels.' },
|
|
1092
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Owning or source chat.' },
|
|
1093
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Owning or source thread.' },
|
|
1094
|
-
parentIssue: { type: 'uri', predicate: UDFS.parentIssue, description: 'Parent issue.' },
|
|
1440
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Owning or source chat.' },
|
|
1441
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Owning or source thread.' },
|
|
1442
|
+
parentIssue: { type: 'uri', predicate: UDFS.parentIssue, references: { resource: 'issue', key: 'id' }, description: 'Parent issue.' },
|
|
1095
1443
|
tasks: { type: 'uri', predicate: UDFS.task, array: true, description: 'Executable task slices.' },
|
|
1096
1444
|
createdBy: { type: 'uri', predicate: DCTerms.creator, description: 'Creator WebID or agent URI.' },
|
|
1097
1445
|
assignedTo: { type: 'uri', predicate: UDFS.assignedTo, description: 'Assignee WebID or agent URI.' },
|
|
@@ -1110,8 +1458,8 @@ export const issueDescriptor = {
|
|
|
1110
1458
|
match: { id: 'issue_symphony_runtime_projection.ttl' },
|
|
1111
1459
|
},
|
|
1112
1460
|
],
|
|
1113
|
-
};
|
|
1114
|
-
export const taskDescriptor = {
|
|
1461
|
+
});
|
|
1462
|
+
export const taskDescriptor = definePodModelDescriptor({
|
|
1115
1463
|
uri: UDFS.Task,
|
|
1116
1464
|
version: '1.0.0',
|
|
1117
1465
|
source: 'official',
|
|
@@ -1126,7 +1474,7 @@ export const taskDescriptor = {
|
|
|
1126
1474
|
title: { type: 'string', predicate: DCTerms.title, description: 'Task title.' },
|
|
1127
1475
|
instruction: { type: 'text', predicate: UDFS.instruction, required: true, description: 'Executable instruction.' },
|
|
1128
1476
|
prompt: { type: 'text', predicate: UDFS.prompt, description: 'Runtime prompt projection.' },
|
|
1129
|
-
issue: { type: 'uri', predicate: UDFS.issue, description: 'Originating issue.' },
|
|
1477
|
+
issue: { type: 'uri', predicate: UDFS.issue, references: { resource: 'issue', key: 'id' }, description: 'Originating issue.' },
|
|
1130
1478
|
message: { type: 'uri', predicate: UDFS.message, description: 'Message that produced this task.' },
|
|
1131
1479
|
workspace: { type: 'uri', predicate: UDFS.workspace, required: true, description: 'Workspace URI.' },
|
|
1132
1480
|
status: { type: 'string', predicate: UDFS.status, description: 'Task lifecycle status.' },
|
|
@@ -1147,8 +1495,8 @@ export const taskDescriptor = {
|
|
|
1147
1495
|
match: { id: 'task_symphony_worker_projection' },
|
|
1148
1496
|
},
|
|
1149
1497
|
],
|
|
1150
|
-
};
|
|
1151
|
-
export const scheduleDescriptor = {
|
|
1498
|
+
});
|
|
1499
|
+
export const scheduleDescriptor = definePodModelDescriptor({
|
|
1152
1500
|
uri: UDFS.Schedule,
|
|
1153
1501
|
version: '1.0.0',
|
|
1154
1502
|
source: 'official',
|
|
@@ -1160,7 +1508,7 @@ export const scheduleDescriptor = {
|
|
|
1160
1508
|
storage: exactIdStorage(),
|
|
1161
1509
|
fields: {
|
|
1162
1510
|
id: idField,
|
|
1163
|
-
task: { type: 'uri', predicate: UDFS.task, required: true, description: 'Scheduled task.' },
|
|
1511
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, required: true, description: 'Scheduled task.' },
|
|
1164
1512
|
status: { type: 'string', predicate: UDFS.status, description: 'Schedule lifecycle status.' },
|
|
1165
1513
|
scheduleKind: { type: 'string', predicate: UDFS.scheduleKind, description: 'Schedule kind: once, interval, or cron.' },
|
|
1166
1514
|
cron: { type: 'string', predicate: UDFS.cron, description: 'Cron expression.' },
|
|
@@ -1175,8 +1523,8 @@ export const scheduleDescriptor = {
|
|
|
1175
1523
|
writableFields: ['task', 'status', 'scheduleKind', 'cron', 'intervalSeconds', 'timezone', 'startsAt', 'nextRunAt', 'lastRunAt', 'metadata'],
|
|
1176
1524
|
mergePolicy: 'upsert',
|
|
1177
1525
|
examples: [{ request: 'Create a time trigger for a task', match: { id: 'schedules/schedule_1.ttl' } }],
|
|
1178
|
-
};
|
|
1179
|
-
export const automationRuleDescriptor = {
|
|
1526
|
+
});
|
|
1527
|
+
export const automationRuleDescriptor = definePodModelDescriptor({
|
|
1180
1528
|
uri: UDFS.AutomationRule,
|
|
1181
1529
|
version: '1.0.0',
|
|
1182
1530
|
source: 'official',
|
|
@@ -1192,8 +1540,8 @@ export const automationRuleDescriptor = {
|
|
|
1192
1540
|
description: { type: 'text', predicate: DCTerms.description, description: 'Rule description.' },
|
|
1193
1541
|
status: { type: 'string', predicate: UDFS.status, description: 'Rule lifecycle status.' },
|
|
1194
1542
|
ruleKind: { type: 'string', predicate: UDFS.ruleKind, description: 'Rule kind: event, schedule, or manual.' },
|
|
1195
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Task dispatched by this rule.' },
|
|
1196
|
-
schedule: { type: 'uri', predicate: UDFS.schedule, description: 'Schedule that triggers this rule.' },
|
|
1543
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Task dispatched by this rule.' },
|
|
1544
|
+
schedule: { type: 'uri', predicate: UDFS.schedule, references: { resource: 'schedule', key: 'id' }, description: 'Schedule that triggers this rule.' },
|
|
1197
1545
|
source: { type: 'uri', predicate: DCTerms.source, description: 'Source resource.' },
|
|
1198
1546
|
target: { type: 'uri', predicate: AS.target, description: 'Target resource.' },
|
|
1199
1547
|
condition: { type: 'json', predicate: UDFS.condition, description: 'Structured condition.' },
|
|
@@ -1206,8 +1554,8 @@ export const automationRuleDescriptor = {
|
|
|
1206
1554
|
writableFields: ['title', 'description', 'status', 'ruleKind', 'task', 'schedule', 'source', 'target', 'condition', 'actions', 'metadata', 'lastTriggeredAt', 'lastRunStatus'],
|
|
1207
1555
|
mergePolicy: 'upsert',
|
|
1208
1556
|
examples: [{ request: 'Create an automation rule that dispatches a task', match: { id: 'automation/rule_1.ttl' } }],
|
|
1209
|
-
};
|
|
1210
|
-
export const deliveryDescriptor = {
|
|
1557
|
+
});
|
|
1558
|
+
export const deliveryDescriptor = definePodModelDescriptor({
|
|
1211
1559
|
uri: UDFS.Delivery,
|
|
1212
1560
|
version: '1.0.0',
|
|
1213
1561
|
source: 'official',
|
|
@@ -1221,12 +1569,12 @@ export const deliveryDescriptor = {
|
|
|
1221
1569
|
id: idField,
|
|
1222
1570
|
kind: { type: 'string', predicate: UDFS.deliveryKind, description: 'Delivery kind.' },
|
|
1223
1571
|
status: { type: 'string', predicate: UDFS.status, description: 'Delivery lifecycle status.' },
|
|
1224
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Task being delivered.' },
|
|
1572
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Task being delivered.' },
|
|
1225
1573
|
source: { type: 'uri', predicate: DCTerms.source, description: 'Source resource.' },
|
|
1226
1574
|
target: { type: 'uri', predicate: AS.target, description: 'Target resource.' },
|
|
1227
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Related chat.' },
|
|
1228
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Source thread.' },
|
|
1229
|
-
targetThread: { type: 'uri', predicate: UDFS.targetThread, description: 'Target thread.' },
|
|
1575
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Related chat.' },
|
|
1576
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Source thread.' },
|
|
1577
|
+
targetThread: { type: 'uri', predicate: UDFS.targetThread, references: { resource: 'thread', key: 'id' }, description: 'Target thread.' },
|
|
1230
1578
|
targetSession: { type: 'uri', predicate: UDFS.targetSession, description: 'Target session.' },
|
|
1231
1579
|
actor: { type: 'uri', predicate: AS.actor, description: 'Actor.' },
|
|
1232
1580
|
object: { type: 'uri', predicate: AS.object, description: 'Object resource.' },
|
|
@@ -1248,8 +1596,8 @@ export const deliveryDescriptor = {
|
|
|
1248
1596
|
],
|
|
1249
1597
|
mergePolicy: 'upsert',
|
|
1250
1598
|
examples: [{ request: 'Create a worker delivery package', match: { id: 'task/symphony/2026/05/28/deliveries.ttl#delivery_1' } }],
|
|
1251
|
-
};
|
|
1252
|
-
export const runDescriptor = {
|
|
1599
|
+
});
|
|
1600
|
+
export const runDescriptor = definePodModelDescriptor({
|
|
1253
1601
|
uri: UDFS.Run,
|
|
1254
1602
|
version: '1.0.0',
|
|
1255
1603
|
source: 'official',
|
|
@@ -1261,11 +1609,11 @@ export const runDescriptor = {
|
|
|
1261
1609
|
storage: exactIdStorage(),
|
|
1262
1610
|
fields: {
|
|
1263
1611
|
id: idField,
|
|
1264
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Task being executed.' },
|
|
1265
|
-
delivery: { type: 'uri', predicate: UDFS.delivery, description: 'Delivery that caused or carries this run.' },
|
|
1612
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Task being executed.' },
|
|
1613
|
+
delivery: { type: 'uri', predicate: UDFS.delivery, references: { resource: 'delivery', key: 'id' }, description: 'Delivery that caused or carries this run.' },
|
|
1266
1614
|
trigger: { type: 'uri', predicate: UDFS.trigger, description: 'Resource that triggered the run.' },
|
|
1267
1615
|
input: { type: 'uri', predicate: UDFS.input, description: 'Concrete input/context projection resource.' },
|
|
1268
|
-
thread: { type: 'uri', predicate: UDFS.inThread, required: true, description: 'Runtime thread.' },
|
|
1616
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, required: true, description: 'Runtime thread.' },
|
|
1269
1617
|
workspace: { type: 'uri', predicate: UDFS.workspace, required: true, description: 'Workspace URI.' },
|
|
1270
1618
|
status: { type: 'string', predicate: UDFS.status, description: 'Run lifecycle status.' },
|
|
1271
1619
|
runner: { type: 'string', predicate: UDFS.runner, required: true, description: 'Runtime implementation.' },
|
|
@@ -1288,8 +1636,8 @@ export const runDescriptor = {
|
|
|
1288
1636
|
],
|
|
1289
1637
|
mergePolicy: 'upsert',
|
|
1290
1638
|
examples: [{ request: 'Record a runtime execution attempt', match: { id: 'task/symphony/2026/05/28/runs.ttl#run_1' } }],
|
|
1291
|
-
};
|
|
1292
|
-
export const runStepDescriptor = {
|
|
1639
|
+
});
|
|
1640
|
+
export const runStepDescriptor = definePodModelDescriptor({
|
|
1293
1641
|
uri: UDFS.RunStep,
|
|
1294
1642
|
version: '1.0.0',
|
|
1295
1643
|
source: 'official',
|
|
@@ -1301,7 +1649,7 @@ export const runStepDescriptor = {
|
|
|
1301
1649
|
storage: exactIdStorage(),
|
|
1302
1650
|
fields: {
|
|
1303
1651
|
id: idField,
|
|
1304
|
-
run: { type: 'uri', predicate: UDFS.run, required: true, description: 'Run this step belongs to.' },
|
|
1652
|
+
run: { type: 'uri', predicate: UDFS.run, references: { resource: 'run', key: 'id' }, required: true, description: 'Run this step belongs to.' },
|
|
1305
1653
|
stepType: { type: 'string', predicate: UDFS.stepType, required: true, description: 'RunStep event type.' },
|
|
1306
1654
|
message: { type: 'string', predicate: DCTerms.description, description: 'Human-readable step message.' },
|
|
1307
1655
|
payload: { type: 'json', predicate: UDFS.payload, description: 'Structured step payload.' },
|
|
@@ -1310,8 +1658,8 @@ export const runStepDescriptor = {
|
|
|
1310
1658
|
writableFields: ['run', 'stepType', 'message', 'payload'],
|
|
1311
1659
|
mergePolicy: 'append',
|
|
1312
1660
|
examples: [{ request: 'Append a runtime tool call step', match: { id: 'task/symphony/2026/05/28/runs.ttl#run-step_1' } }],
|
|
1313
|
-
};
|
|
1314
|
-
export const evidenceDescriptor = {
|
|
1661
|
+
});
|
|
1662
|
+
export const evidenceDescriptor = definePodModelDescriptor({
|
|
1315
1663
|
uri: UDFS.Evidence,
|
|
1316
1664
|
version: '1.0.0',
|
|
1317
1665
|
source: 'official',
|
|
@@ -1325,11 +1673,11 @@ export const evidenceDescriptor = {
|
|
|
1325
1673
|
id: idField,
|
|
1326
1674
|
evidenceKind: { type: 'string', predicate: UDFS.evidenceKind, required: true, description: 'Evidence kind.' },
|
|
1327
1675
|
about: { type: 'uri', predicate: SCHEMA.about, required: true, description: 'Control object this evidence supports.' },
|
|
1328
|
-
issue: { type: 'uri', predicate: UDFS.issue, description: 'Related issue.' },
|
|
1329
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Related task.' },
|
|
1330
|
-
delivery: { type: 'uri', predicate: UDFS.delivery, description: 'Related delivery.' },
|
|
1331
|
-
run: { type: 'uri', predicate: UDFS.run, description: 'Related run.' },
|
|
1332
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Related thread.' },
|
|
1676
|
+
issue: { type: 'uri', predicate: UDFS.issue, references: { resource: 'issue', key: 'id' }, description: 'Related issue.' },
|
|
1677
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Related task.' },
|
|
1678
|
+
delivery: { type: 'uri', predicate: UDFS.delivery, references: { resource: 'delivery', key: 'id' }, description: 'Related delivery.' },
|
|
1679
|
+
run: { type: 'uri', predicate: UDFS.run, references: { resource: 'run', key: 'id' }, description: 'Related run.' },
|
|
1680
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Related thread.' },
|
|
1333
1681
|
summary: { type: 'text', predicate: DCTerms.abstract, description: 'Evidence summary.' },
|
|
1334
1682
|
source: { type: 'uri', predicate: DCTerms.source, description: 'Source artifact or document.' },
|
|
1335
1683
|
actor: { type: 'uri', predicate: DCTerms.creator, description: 'Actor that produced the evidence.' },
|
|
@@ -1340,8 +1688,8 @@ export const evidenceDescriptor = {
|
|
|
1340
1688
|
writableFields: ['evidenceKind', 'about', 'issue', 'task', 'delivery', 'run', 'thread', 'summary', 'source', 'actor', 'outcome', 'metadata'],
|
|
1341
1689
|
mergePolicy: 'append',
|
|
1342
1690
|
examples: [{ request: 'Record test evidence for a task', match: { id: 'task/symphony/2026/05/28/evidence.ttl#evidence_1' } }],
|
|
1343
|
-
};
|
|
1344
|
-
export const reportDescriptor = {
|
|
1691
|
+
});
|
|
1692
|
+
export const reportDescriptor = definePodModelDescriptor({
|
|
1345
1693
|
uri: UDFS.Report,
|
|
1346
1694
|
version: '1.0.0',
|
|
1347
1695
|
source: 'official',
|
|
@@ -1357,12 +1705,12 @@ export const reportDescriptor = {
|
|
|
1357
1705
|
status: { type: 'string', predicate: UDFS.status, description: 'Report lifecycle status.' },
|
|
1358
1706
|
outcome: { type: 'string', predicate: UDFS.outcome, description: 'Reported outcome.' },
|
|
1359
1707
|
about: { type: 'uri', predicate: SCHEMA.about, required: true, description: 'Control object being summarized.' },
|
|
1360
|
-
issue: { type: 'uri', predicate: UDFS.issue, description: 'Related issue.' },
|
|
1361
|
-
task: { type: 'uri', predicate: UDFS.task, description: 'Related task.' },
|
|
1362
|
-
delivery: { type: 'uri', predicate: UDFS.delivery, description: 'Related delivery.' },
|
|
1363
|
-
run: { type: 'uri', predicate: UDFS.run, description: 'Related run.' },
|
|
1364
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Related thread.' },
|
|
1365
|
-
evidence: { type: 'uri', predicate: UDFS.evidence, array: true, description: 'Evidence summarized by this report.' },
|
|
1708
|
+
issue: { type: 'uri', predicate: UDFS.issue, references: { resource: 'issue', key: 'id' }, description: 'Related issue.' },
|
|
1709
|
+
task: { type: 'uri', predicate: UDFS.task, references: { resource: 'task', key: 'id' }, description: 'Related task.' },
|
|
1710
|
+
delivery: { type: 'uri', predicate: UDFS.delivery, references: { resource: 'delivery', key: 'id' }, description: 'Related delivery.' },
|
|
1711
|
+
run: { type: 'uri', predicate: UDFS.run, references: { resource: 'run', key: 'id' }, description: 'Related run.' },
|
|
1712
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Related thread.' },
|
|
1713
|
+
evidence: { type: 'uri', predicate: UDFS.evidence, references: { resource: 'evidence', key: 'id' }, array: true, description: 'Evidence summarized by this report.' },
|
|
1366
1714
|
summary: { type: 'text', predicate: DCTerms.abstract, required: true, description: 'Report summary.' },
|
|
1367
1715
|
reviewer: { type: 'uri', predicate: SCHEMA.reviewedBy, description: 'Reviewer.' },
|
|
1368
1716
|
actor: { type: 'uri', predicate: DCTerms.creator, description: 'Actor that produced the report.' },
|
|
@@ -1379,8 +1727,8 @@ export const reportDescriptor = {
|
|
|
1379
1727
|
],
|
|
1380
1728
|
mergePolicy: 'upsert',
|
|
1381
1729
|
examples: [{ request: 'Publish a worker handoff report', match: { id: 'task/symphony/2026/05/28/reports.ttl#report_1' } }],
|
|
1382
|
-
};
|
|
1383
|
-
export const sessionDescriptor = {
|
|
1730
|
+
});
|
|
1731
|
+
export const sessionDescriptor = definePodModelDescriptor({
|
|
1384
1732
|
uri: UDFS.term('Session'),
|
|
1385
1733
|
version: '1.0.0',
|
|
1386
1734
|
source: 'official',
|
|
@@ -1393,8 +1741,8 @@ export const sessionDescriptor = {
|
|
|
1393
1741
|
fields: {
|
|
1394
1742
|
id: idField,
|
|
1395
1743
|
owner: { type: 'uri', predicate: UDFS.actor, required: true, description: 'Session owner.' },
|
|
1396
|
-
chat: { type: 'uri', predicate: UDFS.conversation, description: 'Related chat.' },
|
|
1397
|
-
thread: { type: 'uri', predicate: UDFS.inThread, description: 'Related thread.' },
|
|
1744
|
+
chat: { type: 'uri', predicate: UDFS.conversation, references: { resource: 'chat', key: 'id' }, description: 'Related chat.' },
|
|
1745
|
+
thread: { type: 'uri', predicate: UDFS.inThread, references: { resource: 'thread', key: 'id' }, description: 'Related thread.' },
|
|
1398
1746
|
status: { type: 'string', predicate: UDFS.sessionStatus, description: 'Session lifecycle status.' },
|
|
1399
1747
|
tool: { type: 'string', predicate: UDFS.sessionTool, description: 'Runtime tool or backend.' },
|
|
1400
1748
|
tokenUsage: { type: 'number', predicate: UDFS.tokenUsage, description: 'Token usage.' },
|
|
@@ -1408,11 +1756,13 @@ export const sessionDescriptor = {
|
|
|
1408
1756
|
writableFields: ['owner', 'chat', 'thread', 'status', 'tool', 'tokenUsage', 'messages', 'policy', 'policyVersion', 'metadata', 'archivedAt'],
|
|
1409
1757
|
mergePolicy: 'upsert',
|
|
1410
1758
|
examples: [{ request: 'Record a worker runtime session', match: { id: '2026/05/28/sess_1.ttl' } }],
|
|
1411
|
-
};
|
|
1759
|
+
});
|
|
1412
1760
|
export const officialPodModelDescriptors = [
|
|
1413
1761
|
credentialDescriptor,
|
|
1414
1762
|
gatewayAccessKeyDescriptor,
|
|
1415
1763
|
quotaSnapshotDescriptor,
|
|
1764
|
+
aiProviderDescriptor,
|
|
1765
|
+
aiModelDescriptor,
|
|
1416
1766
|
contactDescriptor,
|
|
1417
1767
|
chatDescriptor,
|
|
1418
1768
|
threadDescriptor,
|