@opengeni/contracts 3.1.0-canary.2 → 3.1.2
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/dist/agent-authored-durable-text.d.ts +9 -9
- package/dist/agent-config.d.ts +971 -0
- package/dist/agent-instruction-changes.d.ts +0 -2
- package/dist/allowance-refusal.d.ts +9 -0
- package/dist/allowance-refusal.js +50 -0
- package/dist/allowance-refusal.js.map +1 -0
- package/dist/analytics-consent-report.d.ts +19 -0
- package/dist/analytics-consent-report.js +10 -0
- package/dist/analytics-consent-report.js.map +1 -0
- package/dist/api-key-presets.d.ts +19 -0
- package/dist/artifact-catalog.d.ts +188 -0
- package/dist/artifacts.d.ts +86 -0
- package/dist/atlassian-native-retirement.d.ts +16 -0
- package/dist/atlassian-native-retirement.js +30 -0
- package/dist/atlassian-native-retirement.js.map +1 -0
- package/dist/atlassian.d.ts +1 -0
- package/dist/atlassian.js +34 -19
- package/dist/browser-storage.d.ts +5 -0
- package/dist/browser-storage.js +9 -0
- package/dist/browser-storage.js.map +1 -0
- package/dist/bundled-skills.d.ts +24 -1
- package/dist/canonical-human-identities.js +2 -1
- package/dist/chunk-2ZIHHL72.js +153 -0
- package/dist/chunk-2ZIHHL72.js.map +1 -0
- package/dist/{chunk-5LYFSZ7O.js → chunk-352X6ENP.js} +31 -31
- package/dist/chunk-4JGHSSB7.js +11 -0
- package/dist/chunk-4JGHSSB7.js.map +1 -0
- package/dist/chunk-4QO6GJUX.js +85 -0
- package/dist/chunk-4QO6GJUX.js.map +1 -0
- package/dist/chunk-4VDMHLLL.js +49 -0
- package/dist/chunk-4VDMHLLL.js.map +1 -0
- package/dist/chunk-56SNIMDO.js +9 -0
- package/dist/chunk-56SNIMDO.js.map +1 -0
- package/dist/chunk-6C2HKFTU.js +207 -0
- package/dist/chunk-6C2HKFTU.js.map +1 -0
- package/dist/chunk-6IXO76Z6.js +72 -0
- package/dist/chunk-6IXO76Z6.js.map +1 -0
- package/dist/chunk-7272KVWZ.js +60 -0
- package/dist/chunk-7272KVWZ.js.map +1 -0
- package/dist/{chunk-7ABONTXE.js → chunk-E3GGUBHS.js} +49 -5
- package/dist/chunk-E3GGUBHS.js.map +1 -0
- package/dist/chunk-EFZYKUE2.js +767 -0
- package/dist/chunk-EFZYKUE2.js.map +1 -0
- package/dist/chunk-EKWNTOG3.js +154 -0
- package/dist/chunk-EKWNTOG3.js.map +1 -0
- package/dist/chunk-HABQ7ADB.js +234 -0
- package/dist/chunk-HABQ7ADB.js.map +1 -0
- package/dist/chunk-HRRU4QPI.js +91 -0
- package/dist/chunk-HRRU4QPI.js.map +1 -0
- package/dist/{chunk-3SIZGL3O.js → chunk-IK36LXKC.js} +18 -2
- package/dist/chunk-IK36LXKC.js.map +1 -0
- package/dist/{chunk-TXTQIYCV.js → chunk-ILJ72KPO.js} +56 -3
- package/dist/chunk-ILJ72KPO.js.map +1 -0
- package/dist/chunk-J4HQ3UKY.js +93 -0
- package/dist/chunk-J4HQ3UKY.js.map +1 -0
- package/dist/chunk-KHHZTBP7.js +11 -0
- package/dist/chunk-KHHZTBP7.js.map +1 -0
- package/dist/{chunk-WYBDERIY.js → chunk-LZ2LAHIX.js} +47 -41
- package/dist/chunk-LZ2LAHIX.js.map +1 -0
- package/dist/chunk-NDZHPTCL.js +400 -0
- package/dist/chunk-NDZHPTCL.js.map +1 -0
- package/dist/chunk-OF6OKOBF.js +54793 -0
- package/dist/chunk-OF6OKOBF.js.map +1 -0
- package/dist/chunk-OL23ARTF.js +94 -0
- package/dist/chunk-OL23ARTF.js.map +1 -0
- package/dist/chunk-PUIUXIOL.js +189 -0
- package/dist/chunk-PUIUXIOL.js.map +1 -0
- package/dist/{chunk-Y3KNXVTD.js → chunk-RMWXDZEO.js} +128 -21
- package/dist/chunk-RMWXDZEO.js.map +1 -0
- package/dist/{chunk-MRWYRAS5.js → chunk-SHO4YO4B.js} +27 -35
- package/dist/chunk-SHO4YO4B.js.map +1 -0
- package/dist/chunk-SWRN2DJ3.js +153 -0
- package/dist/chunk-SWRN2DJ3.js.map +1 -0
- package/dist/chunk-TCXCRBPF.js +267 -0
- package/dist/chunk-TCXCRBPF.js.map +1 -0
- package/dist/chunk-TLU3UEMD.js +324 -0
- package/dist/chunk-TLU3UEMD.js.map +1 -0
- package/dist/chunk-TSWWZMUS.js +186 -0
- package/dist/chunk-TSWWZMUS.js.map +1 -0
- package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
- package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
- package/dist/chunk-XDLAGX66.js +127 -0
- package/dist/chunk-XDLAGX66.js.map +1 -0
- package/dist/chunk-YKZ4WU4P.js +33 -0
- package/dist/chunk-YKZ4WU4P.js.map +1 -0
- package/dist/{chunk-O5LEQHDM.js → chunk-Z7WEVGCL.js} +3 -3
- package/dist/{chunk-YBW5JSA3.js → chunk-ZDCRWCGZ.js} +119 -101
- package/dist/chunk-ZDCRWCGZ.js.map +1 -0
- package/dist/claude-provider-account-authority.d.ts +18 -0
- package/dist/claude-subscription-oauth.d.ts +42 -0
- package/dist/claude-subscription-usage.d.ts +159 -0
- package/dist/client-error-report.d.ts +158 -0
- package/dist/client-error-report.js +164 -0
- package/dist/client-error-report.js.map +1 -0
- package/dist/code-search.d.ts +52 -0
- package/dist/code-search.js +40 -0
- package/dist/code-search.js.map +1 -0
- package/dist/codex-provider-account-authority.js +20 -12
- package/dist/codex-provider-account-authority.js.map +1 -1
- package/dist/company-profile.d.ts +144 -6
- package/dist/connect.d.ts +37 -0
- package/dist/connect.js +216 -159
- package/dist/connect.js.map +1 -1
- package/dist/connection-account-label.d.ts +2 -0
- package/dist/connection-account-label.js +35 -0
- package/dist/connection-account-label.js.map +1 -0
- package/dist/connection-authority.d.ts +9 -317
- package/dist/connection-authority.js +37 -42
- package/dist/connector-attachments.js +2 -1
- package/dist/connector-destinations.js +2 -1
- package/dist/connector-tool-permissions.d.ts +137 -0
- package/dist/cua-desktop-tools.d.ts +17 -0
- package/dist/define-schema.d.ts +8 -0
- package/dist/direct-model-provider.d.ts +36 -0
- package/dist/editable-artifact-codec-registry.js +5 -5
- package/dist/editable-artifact-committed-transaction.js +3 -2
- package/dist/editable-artifact-live.js +5 -5
- package/dist/editable-artifact-serialized-commit.js +6 -6
- package/dist/editable-artifact-versions.d.ts +7 -1
- package/dist/editable-artifact-versions.js +1 -1
- package/dist/editable-artifacts.js +62 -56
- package/dist/event-preview.d.ts +22 -0
- package/dist/external-identities.d.ts +138 -0
- package/dist/external-identities.js +9 -4
- package/dist/first-party-tool-authorization.d.ts +815 -0
- package/dist/github-repository-contracts.js +60 -43
- package/dist/github-repository-contracts.js.map +1 -1
- package/dist/google-drive.d.ts +2 -1
- package/dist/google-drive.js +305 -238
- package/dist/google-drive.js.map +1 -1
- package/dist/host-mcp-bindings.d.ts +5 -0
- package/dist/host-mcp-bindings.js +233 -170
- package/dist/host-mcp-bindings.js.map +1 -1
- package/dist/image-generation.d.ts +1 -0
- package/dist/index.d.ts +16761 -5946
- package/dist/index.js +1973 -260
- package/dist/insights-usage.d.ts +877 -0
- package/dist/insights-usage.js +559 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/interaction.d.ts +1176 -829
- package/dist/knowledge-entries.d.ts +81 -2
- package/dist/knowledge-preparation.d.ts +239 -0
- package/dist/managed-auth-session-sets.d.ts +7 -0
- package/dist/managed-auth-session-sets.js +198 -132
- package/dist/managed-auth-session-sets.js.map +1 -1
- package/dist/managed-sign-in-methods.d.ts +56 -0
- package/dist/managed-sign-in-methods.js +64 -0
- package/dist/managed-sign-in-methods.js.map +1 -0
- package/dist/mcp-catalog-limits.d.ts +2 -0
- package/dist/mcp-oauth.d.ts +2 -2
- package/dist/mcp-structured-content.d.ts +25 -0
- package/dist/modal-native-proof-v2.d.ts +587 -0
- package/dist/modal-native-proof-v2.js +38 -0
- package/dist/modal-native-proof-v2.js.map +1 -0
- package/dist/model-account-choice.d.ts +235 -0
- package/dist/model-account-settings.d.ts +422 -0
- package/dist/model-availability.d.ts +15 -0
- package/dist/model-connection-access.d.ts +13 -0
- package/dist/model-context-inspector.d.ts +98 -0
- package/dist/model-display.d.ts +43 -0
- package/dist/model-display.js +17 -0
- package/dist/model-display.js.map +1 -0
- package/dist/model-picker-order.d.ts +3 -1
- package/dist/model-picker-order.js +3 -0
- package/dist/model-picker-order.js.map +1 -1
- package/dist/organization-access.d.ts +412 -0
- package/dist/organization-access.js +39 -0
- package/dist/organization-access.js.map +1 -0
- package/dist/organization-integration-policy.d.ts +27 -0
- package/dist/organization-membership-lifecycle.d.ts +38 -0
- package/dist/organization-model-usage.d.ts +146 -0
- package/dist/organization-model-usage.js +78 -0
- package/dist/organization-model-usage.js.map +1 -0
- package/dist/organization-recovery.js +2 -1
- package/dist/organization-usage.d.ts +138 -0
- package/dist/permissions.d.ts +18 -0
- package/dist/personal-github.d.ts +1 -0
- package/dist/personal-github.js +199 -144
- package/dist/personal-github.js.map +1 -1
- package/dist/prepared-mcp-setup.d.ts +54 -0
- package/dist/prepared-mcp-setup.js +12 -0
- package/dist/prepared-mcp-setup.js.map +1 -0
- package/dist/product-analytics.d.ts +116 -0
- package/dist/product-lifecycle-facts.d.ts +73 -0
- package/dist/remember.d.ts +98 -6
- package/dist/retained-output.d.ts +8 -0
- package/dist/sandbox-file-artifacts.d.ts +1 -0
- package/dist/sandbox-provider-command.d.ts +91 -1
- package/dist/sandbox-recovery.d.ts +146 -0
- package/dist/secret-generator.d.ts +44 -0
- package/dist/secret-references.d.ts +90 -0
- package/dist/secret-resolution.d.ts +111 -0
- package/dist/secret-totp.d.ts +41 -0
- package/dist/session-final-reply.d.ts +6 -0
- package/dist/session-final-reply.js +9 -0
- package/dist/session-final-reply.js.map +1 -0
- package/dist/session-goal-reports.d.ts +21 -0
- package/dist/session-history-import.d.ts +1272 -0
- package/dist/session-list-entries.d.ts +4 -0
- package/dist/session-list-entries.js +56 -0
- package/dist/session-list-entries.js.map +1 -0
- package/dist/session-mcp-projections.d.ts +6 -0
- package/dist/session-mcp-tool-permissions.d.ts +62 -0
- package/dist/session-message-search.d.ts +68 -0
- package/dist/session-target.d.ts +18 -0
- package/dist/session-titles.d.ts +8 -0
- package/dist/session-titles.js +5 -1
- package/dist/session-usage-limit-refusal.d.ts +34 -0
- package/dist/session-usage-limit-refusal.js +15 -0
- package/dist/session-usage-limit-refusal.js.map +1 -0
- package/dist/session-usage-limits.d.ts +127 -0
- package/dist/session-usage-limits.js +41 -0
- package/dist/session-usage-limits.js.map +1 -0
- package/dist/signup-attribution.d.ts +39 -0
- package/dist/site-data.d.ts +286 -0
- package/dist/site-operations.d.ts +39 -0
- package/dist/site-publishing.d.ts +778 -0
- package/dist/site-session-http.d.ts +89 -4
- package/dist/site-session-http.js +25 -1
- package/dist/site-sql.d.ts +421 -0
- package/dist/skill-catalog-context.d.ts +7 -0
- package/dist/skill-files.d.ts +1 -1
- package/dist/skill-use.d.ts +61 -0
- package/dist/skills.d.ts +15 -0
- package/dist/slack-bot-scopes.d.ts +17 -12
- package/dist/slack-bot-scopes.js +10 -3
- package/dist/slack-rest-mcp.d.ts +36 -0
- package/dist/slack-rest-mcp.js +25 -0
- package/dist/slack-rest-mcp.js.map +1 -0
- package/dist/spreadsheet-artifact-commands.d.ts +14 -1
- package/dist/spreadsheet-artifact-commands.js +8 -2
- package/dist/spreadsheet-artifact-query.d.ts +13 -6
- package/dist/spreadsheet-artifact-query.js +3 -3
- package/dist/subscription-account-actions.d.ts +64 -0
- package/dist/subscription-account-pools.d.ts +292 -0
- package/dist/subscription-personal-authority-v2.d.ts +28 -0
- package/dist/subscription-personal-authority-v2.js +12 -0
- package/dist/subscription-personal-authority-v2.js.map +1 -0
- package/dist/tool-action-review.d.ts +132 -0
- package/dist/tool-catalog.d.ts +408 -0
- package/dist/tool-policy.d.ts +5 -0
- package/dist/tool-review-presentation.d.ts +12 -0
- package/dist/tool-review-presentation.js +17 -0
- package/dist/tool-review-presentation.js.map +1 -0
- package/dist/transcription-recordings.d.ts +21 -0
- package/dist/turn-serving-policy.d.ts +221 -0
- package/dist/usage-allowances.d.ts +314 -0
- package/dist/usage-allowances.js +52 -0
- package/dist/usage-allowances.js.map +1 -0
- package/dist/vaults.d.ts +1286 -0
- package/dist/video-generation.d.ts +3 -0
- package/dist/video-generation.js +2 -1
- package/dist/workspace-integration-wire.d.ts +36 -0
- package/dist/workspace-integration-wire.js +23 -0
- package/dist/workspace-integration-wire.js.map +1 -0
- package/dist/workspace-integrations.d.ts +1028 -0
- package/dist/xai-provider-account-authority.js +2 -1
- package/package.json +93 -5
- package/src/agent-authored-durable-text.ts +14 -11
- package/src/agent-config.ts +1698 -0
- package/src/agent-instruction-changes.ts +91 -74
- package/src/agent-learning.ts +94 -67
- package/src/agent-topology.ts +57 -52
- package/src/allowance-refusal.ts +81 -0
- package/src/analytics-consent-report.ts +20 -0
- package/src/api-key-presets.ts +28 -0
- package/src/artifact-catalog.ts +82 -0
- package/src/artifacts.ts +299 -227
- package/src/atlassian-native-retirement.ts +33 -0
- package/src/atlassian.ts +135 -108
- package/src/browser-storage.ts +10 -0
- package/src/bundled-skills.ts +60 -17
- package/src/canonical-human-identities.ts +60 -58
- package/src/claude-provider-account-authority.ts +12 -0
- package/src/claude-subscription-oauth.ts +73 -0
- package/src/claude-subscription-usage.ts +68 -0
- package/src/client-error-report.ts +343 -0
- package/src/code-search.ts +105 -0
- package/src/codex-provider-account-authority.ts +21 -16
- package/src/company-brain-governed-writes.ts +255 -233
- package/src/company-brain.ts +164 -153
- package/src/company-profile.ts +365 -292
- package/src/connect.ts +212 -173
- package/src/connection-account-label.ts +46 -0
- package/src/connection-authority.ts +183 -364
- package/src/connector-attachments.ts +137 -122
- package/src/connector-destinations.ts +46 -42
- package/src/connector-tool-permissions.ts +117 -0
- package/src/cua-desktop-tools.gen.json +6512 -0
- package/src/cua-desktop-tools.linux.gen.json +6600 -0
- package/src/cua-desktop-tools.ts +36 -0
- package/src/cua-desktop-tools.windows.gen.json +6353 -0
- package/src/define-schema.ts +10 -0
- package/src/direct-model-provider.ts +108 -0
- package/src/editable-artifact-committed-transaction.ts +17 -0
- package/src/editable-artifact-versions.ts +7 -1
- package/src/event-preview.ts +53 -3
- package/src/external-identities.ts +249 -176
- package/src/feedback.ts +43 -30
- package/src/first-party-tool-authorization.ts +356 -0
- package/src/github-repository-contracts.ts +78 -64
- package/src/google-drive.ts +285 -234
- package/src/governed-learning-activation.ts +152 -131
- package/src/governed-learning-evaluator.ts +140 -133
- package/src/host-mcp-bindings.ts +252 -198
- package/src/image-generation.ts +104 -95
- package/src/index.ts +13235 -8687
- package/src/insights-usage.ts +727 -0
- package/src/interaction.ts +3070 -2326
- package/src/knowledge-entries.ts +361 -276
- package/src/knowledge-preparation.ts +57 -0
- package/src/knowledge.ts +246 -213
- package/src/managed-auth-session-sets.ts +220 -144
- package/src/managed-sign-in-methods.ts +52 -0
- package/src/mcp-catalog-limits.ts +2 -0
- package/src/mcp-oauth.ts +43 -34
- package/src/mcp-receipts.ts +192 -192
- package/src/mcp-structured-content.ts +81 -0
- package/src/memory-slack-delivery.ts +171 -142
- package/src/modal-native-proof-v2.ts +429 -0
- package/src/model-account-choice.ts +177 -0
- package/src/model-account-settings.ts +210 -0
- package/src/model-availability.ts +22 -0
- package/src/model-connection-access.ts +61 -14
- package/src/model-context-inspector.ts +133 -99
- package/src/model-display.ts +221 -0
- package/src/model-picker-order.ts +12 -1
- package/src/organization-access.ts +217 -0
- package/src/organization-integration-policy.ts +63 -0
- package/src/organization-membership-lifecycle.ts +528 -382
- package/src/organization-model-usage.ts +81 -0
- package/src/organization-recovery.ts +147 -135
- package/src/organization-usage.ts +94 -0
- package/src/permissions.ts +88 -52
- package/src/personal-github.ts +210 -171
- package/src/preference-registry.ts +314 -258
- package/src/prepared-mcp-setup.ts +189 -0
- package/src/product-analytics.ts +261 -0
- package/src/product-lifecycle-facts.ts +122 -0
- package/src/remember.ts +181 -167
- package/src/retained-output.ts +194 -165
- package/src/sandbox-file-artifacts.ts +60 -47
- package/src/sandbox-provider-command.ts +88 -20
- package/src/sandbox-recovery.ts +129 -0
- package/src/scoped-knowledge.ts +61 -43
- package/src/secret-generator.ts +155 -0
- package/src/secret-references.ts +414 -0
- package/src/secret-resolution.ts +274 -0
- package/src/secret-totp.ts +188 -0
- package/src/session-final-reply.ts +16 -0
- package/src/session-goal-reports.ts +64 -0
- package/src/session-history-import.ts +177 -0
- package/src/session-list-entries.ts +96 -0
- package/src/session-mcp-projections.ts +11 -0
- package/src/session-mcp-tool-permissions.ts +108 -0
- package/src/session-message-search.ts +61 -0
- package/src/session-target.ts +57 -0
- package/src/session-titles.ts +80 -10
- package/src/session-topology-primitives.ts +19 -12
- package/src/session-usage-limit-refusal.ts +101 -0
- package/src/session-usage-limits.ts +171 -0
- package/src/signup-attribution.ts +86 -0
- package/src/site-data.ts +339 -0
- package/src/site-operations.ts +154 -0
- package/src/site-publishing.ts +876 -0
- package/src/site-session-http.ts +294 -16
- package/src/site-sql.ts +1123 -0
- package/src/skill-catalog-context.ts +50 -0
- package/src/skill-files.ts +3 -3
- package/src/skill-use.ts +80 -0
- package/src/skills.ts +82 -54
- package/src/slack-bot-scopes.ts +31 -39
- package/src/slack-rest-mcp.ts +222 -0
- package/src/slack-task-policy.ts +96 -73
- package/src/spreadsheet-artifact-commands.ts +73 -2
- package/src/spreadsheet-artifact-query.ts +187 -39
- package/src/subscription-account-actions.ts +84 -0
- package/src/subscription-account-pools.ts +53 -0
- package/src/subscription-personal-authority-v2.ts +66 -0
- package/src/task-notes.ts +55 -51
- package/src/tool-action-review.ts +258 -0
- package/src/tool-catalog.ts +609 -372
- package/src/tool-policy.ts +82 -0
- package/src/tool-result-spill.ts +12 -9
- package/src/tool-review-presentation.ts +385 -0
- package/src/transcription-recordings.ts +145 -131
- package/src/turn-serving-policy.ts +166 -0
- package/src/usage-allowances.ts +248 -0
- package/src/vaults.ts +850 -0
- package/src/video-generation.ts +385 -360
- package/src/work-claims.ts +173 -149
- package/src/workspace-instruction-policies.ts +349 -276
- package/src/workspace-integration-wire.ts +101 -0
- package/src/workspace-integrations.ts +724 -0
- package/src/workspace-learning-administration.ts +57 -44
- package/src/workspace-learning-policy.ts +127 -96
- package/src/workspace-state.ts +250 -220
- package/src/xai-provider-account-authority.ts +22 -17
- package/dist/chunk-2AC63F4S.js +0 -171
- package/dist/chunk-2AC63F4S.js.map +0 -1
- package/dist/chunk-3SIZGL3O.js.map +0 -1
- package/dist/chunk-7ABONTXE.js.map +0 -1
- package/dist/chunk-BCS7WHCK.js +0 -139
- package/dist/chunk-BCS7WHCK.js.map +0 -1
- package/dist/chunk-GRG7PHWQ.js +0 -25
- package/dist/chunk-GRG7PHWQ.js.map +0 -1
- package/dist/chunk-JUFK3T4Q.js +0 -80
- package/dist/chunk-JUFK3T4Q.js.map +0 -1
- package/dist/chunk-M5ZGRVIQ.js +0 -719
- package/dist/chunk-M5ZGRVIQ.js.map +0 -1
- package/dist/chunk-MRWYRAS5.js.map +0 -1
- package/dist/chunk-OVFORMPW.js +0 -348
- package/dist/chunk-OVFORMPW.js.map +0 -1
- package/dist/chunk-P3HLDT77.js +0 -59
- package/dist/chunk-P3HLDT77.js.map +0 -1
- package/dist/chunk-QQUJ6NPW.js +0 -23093
- package/dist/chunk-QQUJ6NPW.js.map +0 -1
- package/dist/chunk-TXTQIYCV.js.map +0 -1
- package/dist/chunk-WYBDERIY.js.map +0 -1
- package/dist/chunk-Y3KNXVTD.js.map +0 -1
- package/dist/chunk-YBW5JSA3.js.map +0 -1
- package/dist/chunk-YRXAWWCU.js +0 -45
- package/dist/chunk-YRXAWWCU.js.map +0 -1
- package/dist/host-mcp-resolvers.d.ts +0 -32
- package/dist/host-mcp-resolvers.js +0 -34
- package/dist/host-mcp-resolvers.js.map +0 -1
- package/src/host-mcp-resolvers.ts +0 -50
- /package/dist/{chunk-5LYFSZ7O.js.map → chunk-352X6ENP.js.map} +0 -0
- /package/dist/{chunk-O5LEQHDM.js.map → chunk-Z7WEVGCL.js.map} +0 -0
|
@@ -1,358 +1,163 @@
|
|
|
1
|
+
import { defineSchema } from "./define-schema";
|
|
1
2
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
ConnectionKind,
|
|
4
|
-
ManagedUserResourceGrantMode,
|
|
5
|
-
SessionTenancyVisibility,
|
|
6
|
-
UserResourceAuthorityGrant,
|
|
7
|
-
UserResourceDelegation,
|
|
8
|
-
} from "./index";
|
|
3
|
+
import { ConnectionKind, SessionTenancyVisibility } from "./index";
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Connection authority is either workspace-owned or user-owned. Omission is
|
|
16
|
-
* intentionally compatible with the historical workspace connection path.
|
|
17
|
-
*/
|
|
18
|
-
export const ConnectionAuthorityEnvelope = z
|
|
19
|
-
.object({
|
|
20
|
-
scope: z.enum(["workspace", "user"]).default("workspace"),
|
|
21
|
-
userDelegation: UserResourceDelegation.optional(),
|
|
22
|
-
})
|
|
23
|
-
.strict()
|
|
24
|
-
.superRefine((value, context) => {
|
|
25
|
-
if (value.scope === "workspace" && value.userDelegation !== undefined) {
|
|
26
|
-
context.addIssue({
|
|
27
|
-
code: "custom",
|
|
28
|
-
path: ["userDelegation"],
|
|
29
|
-
message: "workspace connections cannot carry user delegation",
|
|
30
|
-
});
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (value.scope === "user" && value.userDelegation === undefined) {
|
|
34
|
-
context.addIssue({
|
|
35
|
-
code: "custom",
|
|
36
|
-
path: ["userDelegation"],
|
|
37
|
-
message: "user connections require an immutable delegation",
|
|
38
|
-
});
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
if (value.userDelegation && value.userDelegation.action !== ConnectionUseAction.value) {
|
|
42
|
-
context.addIssue({
|
|
43
|
-
code: "custom",
|
|
44
|
-
path: ["userDelegation", "action"],
|
|
45
|
-
message: "connection delegation must use connection.use",
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
export type ConnectionAuthorityEnvelope = z.infer<typeof ConnectionAuthorityEnvelope>;
|
|
50
|
-
|
|
51
|
-
export const ConnectionAuthorityGrant = UserResourceAuthorityGrant.extend({
|
|
52
|
-
action: ConnectionUseAction,
|
|
53
|
-
}).strict();
|
|
54
|
-
export type ConnectionAuthorityGrant = z.infer<typeof ConnectionAuthorityGrant>;
|
|
55
|
-
|
|
56
|
-
/** Owner-only opaque projection; connection identity and owner metadata stay server-side. */
|
|
57
|
-
export const ConnectionAuthoritySummary = z
|
|
58
|
-
.object({
|
|
59
|
-
authorityId: z.string().uuid(),
|
|
60
|
-
resourceId: z.string().uuid(),
|
|
61
|
-
originWorkspaceId: z.string().uuid().nullable(),
|
|
62
|
-
generation: z.number().int().positive(),
|
|
63
|
-
status: z.enum(["active", "retained", "revoked"]),
|
|
64
|
-
grants: z.array(ConnectionAuthorityGrant),
|
|
65
|
-
})
|
|
66
|
-
.strict();
|
|
67
|
-
export type ConnectionAuthoritySummary = z.infer<typeof ConnectionAuthoritySummary>;
|
|
68
|
-
|
|
69
|
-
export const ListConnectionAuthoritiesQuery = z
|
|
70
|
-
.object({
|
|
71
|
-
scope: z.literal("user"),
|
|
72
|
-
cursor: z.string().uuid().optional(),
|
|
73
|
-
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
74
|
-
})
|
|
75
|
-
.strict();
|
|
76
|
-
export const ListConnectionAuthoritiesResponse = z
|
|
77
|
-
.object({
|
|
78
|
-
scope: z.literal("user"),
|
|
79
|
-
authorities: z.array(ConnectionAuthoritySummary),
|
|
80
|
-
nextCursor: z.string().uuid().nullable(),
|
|
81
|
-
})
|
|
82
|
-
.strict();
|
|
83
|
-
|
|
84
|
-
export const IssueConnectionUseGrantRequest = z
|
|
85
|
-
.object({
|
|
86
|
-
scope: z.literal("user"),
|
|
87
|
-
mode: ManagedUserResourceGrantMode,
|
|
88
|
-
context: SessionTenancyVisibility,
|
|
89
|
-
sessionId: z.string().uuid().nullable().optional(),
|
|
90
|
-
expectedAuthorityEpoch: z.number().int().positive().nullable().optional(),
|
|
91
|
-
workspaceSharedAcknowledged: z.boolean().default(false),
|
|
92
|
-
})
|
|
93
|
-
.strict()
|
|
94
|
-
.superRefine((value, context) => {
|
|
95
|
-
if (value.context === "workspace_shared" && !value.workspaceSharedAcknowledged) {
|
|
96
|
-
context.addIssue({
|
|
97
|
-
code: "custom",
|
|
98
|
-
path: ["workspaceSharedAcknowledged"],
|
|
99
|
-
message: "workspace_shared requires durable shared-output acknowledgement",
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
if (value.mode === "always" && (value.sessionId || value.expectedAuthorityEpoch)) {
|
|
103
|
-
context.addIssue({ code: "custom", path: ["sessionId"], message: "always is unbound" });
|
|
104
|
-
}
|
|
105
|
-
if (value.mode === "session" && (!value.sessionId || !value.expectedAuthorityEpoch)) {
|
|
106
|
-
context.addIssue({
|
|
107
|
-
code: "custom",
|
|
108
|
-
path: ["sessionId"],
|
|
109
|
-
message: "session requires a target session and expectedAuthorityEpoch",
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
export type IssueConnectionUseGrantRequest = z.infer<typeof IssueConnectionUseGrantRequest>;
|
|
114
|
-
|
|
115
|
-
export const RevokeConnectionUseGrantQuery = z.object({ scope: z.literal("user") }).strict();
|
|
5
|
+
export const ConnectionAuthoritySelectionSource = /* @__PURE__ */ defineSchema(() =>
|
|
6
|
+
z.enum(["explicit_workspace", "sender"]),
|
|
7
|
+
);
|
|
8
|
+
export type ConnectionAuthoritySelectionSource = z.infer<typeof ConnectionAuthoritySelectionSource>;
|
|
116
9
|
|
|
117
|
-
export const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
10
|
+
export const ConnectionUseSelectionSource = /* @__PURE__ */ defineSchema(() =>
|
|
11
|
+
z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(128)
|
|
15
|
+
.regex(/^[a-z0-9](?:[a-z0-9._:-]*[a-z0-9])?$/u),
|
|
16
|
+
);
|
|
17
|
+
export type ConnectionUseSelectionSource = z.infer<typeof ConnectionUseSelectionSource>;
|
|
124
18
|
|
|
125
|
-
|
|
126
|
-
.
|
|
127
|
-
|
|
128
|
-
grant: z
|
|
19
|
+
const AcceptedConnectionWork = /* @__PURE__ */ defineSchema(() =>
|
|
20
|
+
z.discriminatedUnion("kind", [
|
|
21
|
+
z
|
|
129
22
|
.object({
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
status: z.literal("revoked"),
|
|
133
|
-
revokedAt: z.string().datetime(),
|
|
23
|
+
kind: z.literal("turn"),
|
|
24
|
+
turnId: z.string().uuid(),
|
|
134
25
|
})
|
|
135
26
|
.strict(),
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
"user_delegation",
|
|
147
|
-
]);
|
|
148
|
-
export type ConnectionAuthoritySelectionSource = z.infer<typeof ConnectionAuthoritySelectionSource>;
|
|
149
|
-
|
|
150
|
-
export const ConnectionUseSelectionSource = z
|
|
151
|
-
.string()
|
|
152
|
-
.min(1)
|
|
153
|
-
.max(128)
|
|
154
|
-
.regex(/^[a-z0-9](?:[a-z0-9._:-]*[a-z0-9])?$/u);
|
|
155
|
-
export type ConnectionUseSelectionSource = z.infer<typeof ConnectionUseSelectionSource>;
|
|
156
|
-
|
|
157
|
-
const AcceptedConnectionWork = z.discriminatedUnion("kind", [
|
|
158
|
-
z
|
|
159
|
-
.object({
|
|
160
|
-
kind: z.literal("turn"),
|
|
161
|
-
turnId: z.string().uuid(),
|
|
162
|
-
})
|
|
163
|
-
.strict(),
|
|
164
|
-
z
|
|
165
|
-
.object({
|
|
166
|
-
kind: z.literal("scheduled_task"),
|
|
167
|
-
taskId: z.string().uuid(),
|
|
168
|
-
taskAuthorityRevision: z.number().int().positive(),
|
|
169
|
-
runId: z.string().uuid(),
|
|
170
|
-
})
|
|
171
|
-
.strict(),
|
|
172
|
-
]);
|
|
27
|
+
z
|
|
28
|
+
.object({
|
|
29
|
+
kind: z.literal("scheduled_task"),
|
|
30
|
+
taskId: z.string().uuid(),
|
|
31
|
+
taskAuthorityRevision: z.number().int().positive(),
|
|
32
|
+
runId: z.string().uuid(),
|
|
33
|
+
})
|
|
34
|
+
.strict(),
|
|
35
|
+
]),
|
|
36
|
+
);
|
|
173
37
|
|
|
174
38
|
/**
|
|
175
39
|
* Internal, credential-free authority frozen when work is accepted. Personal
|
|
176
40
|
* owner identity is retained only for live authorization and usage/audit
|
|
177
41
|
* attribution; it is never part of the public delegation envelope.
|
|
178
42
|
*/
|
|
179
|
-
export const ConnectionUseAuthoritySnapshot =
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
path: ["authoritySource"],
|
|
251
|
-
message: "legacy user connections require explicit compatibility provenance",
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
if (value.scope === "workspace" && value.authoritySource === "legacy_user_compatibility") {
|
|
255
|
-
context.addIssue({
|
|
256
|
-
code: "custom",
|
|
257
|
-
path: ["authoritySource"],
|
|
258
|
-
message: "workspace connections cannot claim legacy user provenance",
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
if (!delegated && value.originWorkspaceId !== value.targetWorkspaceId) {
|
|
262
|
-
context.addIssue({
|
|
263
|
-
code: "custom",
|
|
264
|
-
path: ["originWorkspaceId"],
|
|
265
|
-
message: "workspace connections must be owned by the target workspace",
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
const delegation = value.userDelegation;
|
|
269
|
-
if (!delegation) return;
|
|
270
|
-
const exactFacts: Array<[boolean, (string | number)[], string]> = [
|
|
271
|
-
[
|
|
272
|
-
delegation.organizationId === value.organizationId,
|
|
273
|
-
["userDelegation", "organizationId"],
|
|
274
|
-
"delegation organization mismatch",
|
|
275
|
-
],
|
|
276
|
-
[
|
|
277
|
-
delegation.workspaceId === value.targetWorkspaceId,
|
|
278
|
-
["userDelegation", "workspaceId"],
|
|
279
|
-
"delegation target workspace mismatch",
|
|
280
|
-
],
|
|
281
|
-
[
|
|
282
|
-
delegation.action === ConnectionUseAction.value,
|
|
283
|
-
["userDelegation", "action"],
|
|
284
|
-
"delegation action mismatch",
|
|
285
|
-
],
|
|
286
|
-
[
|
|
287
|
-
delegation.context === value.targetSessionVisibility,
|
|
288
|
-
["userDelegation", "context"],
|
|
289
|
-
"delegation visibility mismatch",
|
|
290
|
-
],
|
|
291
|
-
];
|
|
292
|
-
for (const [matches, path, message] of exactFacts) {
|
|
293
|
-
if (!matches) context.addIssue({ code: "custom", path, message });
|
|
294
|
-
}
|
|
295
|
-
if (delegation.sessionId !== null && delegation.sessionId !== value.targetSessionId) {
|
|
296
|
-
context.addIssue({
|
|
297
|
-
code: "custom",
|
|
298
|
-
path: ["userDelegation", "sessionId"],
|
|
299
|
-
message: "delegation session mismatch",
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
if (
|
|
303
|
-
delegation.authorityEpoch !== null &&
|
|
304
|
-
delegation.authorityEpoch !== value.targetSessionAuthorityEpoch
|
|
305
|
-
) {
|
|
306
|
-
context.addIssue({
|
|
307
|
-
code: "custom",
|
|
308
|
-
path: ["userDelegation", "authorityEpoch"],
|
|
309
|
-
message: "delegation authority epoch mismatch",
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
});
|
|
43
|
+
export const ConnectionUseAuthoritySnapshot = /* @__PURE__ */ defineSchema(() =>
|
|
44
|
+
z
|
|
45
|
+
.object({
|
|
46
|
+
organizationId: z.string().uuid(),
|
|
47
|
+
originWorkspaceId: z.string().uuid(),
|
|
48
|
+
targetWorkspaceId: z.string().uuid(),
|
|
49
|
+
targetSessionId: z.string().uuid(),
|
|
50
|
+
targetSessionVisibility: SessionTenancyVisibility,
|
|
51
|
+
targetSessionAuthorityEpoch: z.number().int().positive(),
|
|
52
|
+
acceptedWork: AcceptedConnectionWork,
|
|
53
|
+
connectionId: z.string().uuid(),
|
|
54
|
+
connectionGeneration: z.number().int().positive(),
|
|
55
|
+
connectionStatus: z.literal("active"),
|
|
56
|
+
providerDomain: z.string().min(1).max(2048),
|
|
57
|
+
connectionKind: ConnectionKind,
|
|
58
|
+
scope: z.enum(["workspace", "user"]),
|
|
59
|
+
ownerSubjectId: z.string().min(1).max(512).nullable(),
|
|
60
|
+
ownerOrganizationMembershipId: z.string().uuid().nullable(),
|
|
61
|
+
ownerMembershipAuthorizationRevision: z.number().int().positive().nullable().default(null),
|
|
62
|
+
authoritySource: ConnectionAuthoritySelectionSource,
|
|
63
|
+
selectionSources: z.array(ConnectionUseSelectionSource).min(1).max(128),
|
|
64
|
+
userDelegation: z.null(),
|
|
65
|
+
})
|
|
66
|
+
.strict()
|
|
67
|
+
.superRefine((value, context) => {
|
|
68
|
+
const ownedBySubject = value.scope !== "workspace";
|
|
69
|
+
const delegated = value.scope === "user";
|
|
70
|
+
if (ownedBySubject !== (value.ownerSubjectId !== null)) {
|
|
71
|
+
context.addIssue({
|
|
72
|
+
code: "custom",
|
|
73
|
+
path: ["ownerSubjectId"],
|
|
74
|
+
message: "personal connections retain an owner subject",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (delegated !== (value.ownerOrganizationMembershipId !== null)) {
|
|
78
|
+
context.addIssue({
|
|
79
|
+
code: "custom",
|
|
80
|
+
path: ["ownerOrganizationMembershipId"],
|
|
81
|
+
message: "only user connections retain an owner membership",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (delegated !== (value.ownerMembershipAuthorizationRevision !== null)) {
|
|
85
|
+
context.addIssue({
|
|
86
|
+
code: "custom",
|
|
87
|
+
path: ["ownerMembershipAuthorizationRevision"],
|
|
88
|
+
message: "only user connections retain an owner membership revision",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (delegated && value.authoritySource !== "sender") {
|
|
92
|
+
context.addIssue({
|
|
93
|
+
code: "custom",
|
|
94
|
+
path: ["authoritySource"],
|
|
95
|
+
message: "user connections require authenticated sender provenance",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (!delegated && value.authoritySource === "sender") {
|
|
99
|
+
context.addIssue({
|
|
100
|
+
code: "custom",
|
|
101
|
+
path: ["authoritySource"],
|
|
102
|
+
message: "workspace connections cannot claim sender provenance",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (!delegated && value.originWorkspaceId !== value.targetWorkspaceId) {
|
|
106
|
+
context.addIssue({
|
|
107
|
+
code: "custom",
|
|
108
|
+
path: ["originWorkspaceId"],
|
|
109
|
+
message: "workspace connections must be owned by the target workspace",
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}),
|
|
113
|
+
);
|
|
313
114
|
export type ConnectionUseAuthoritySnapshot = z.infer<typeof ConnectionUseAuthoritySnapshot>;
|
|
314
115
|
|
|
315
|
-
export const ConnectionUseDenialReason =
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
116
|
+
export const ConnectionUseDenialReason = /* @__PURE__ */ defineSchema(() =>
|
|
117
|
+
z.enum([
|
|
118
|
+
"tenant_mismatch",
|
|
119
|
+
"workspace_access_inactive",
|
|
120
|
+
"session_inactive",
|
|
121
|
+
"session_identity_changed",
|
|
122
|
+
"session_visibility_changed",
|
|
123
|
+
"session_authority_epoch_changed",
|
|
124
|
+
"accepted_attempt_authority_required",
|
|
125
|
+
"accepted_snapshot_digest_changed",
|
|
126
|
+
"connection_missing",
|
|
127
|
+
"connection_identity_changed",
|
|
128
|
+
"connection_generation_changed",
|
|
129
|
+
"connection_status_inactive",
|
|
130
|
+
"connection_owner_changed",
|
|
131
|
+
"owner_membership_inactive",
|
|
132
|
+
"authority_missing",
|
|
133
|
+
"authority_identity_changed",
|
|
134
|
+
"authority_generation_changed",
|
|
135
|
+
"authority_status_inactive",
|
|
136
|
+
"grant_missing",
|
|
137
|
+
"grant_identity_changed",
|
|
138
|
+
"grant_generation_changed",
|
|
139
|
+
"grant_status_inactive",
|
|
140
|
+
"grant_expired",
|
|
141
|
+
"grant_already_consumed",
|
|
142
|
+
]),
|
|
143
|
+
);
|
|
341
144
|
export type ConnectionUseDenialReason = z.infer<typeof ConnectionUseDenialReason>;
|
|
342
145
|
|
|
343
|
-
const ConnectionUseAttributionFields =
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
146
|
+
const ConnectionUseAttributionFields = /* @__PURE__ */ defineSchema(() =>
|
|
147
|
+
z
|
|
148
|
+
.object({
|
|
149
|
+
organizationId: z.string().uuid(),
|
|
150
|
+
workspaceId: z.string().uuid(),
|
|
151
|
+
sessionId: z.string().uuid(),
|
|
152
|
+
connectionId: z.string().uuid(),
|
|
153
|
+
connectionGeneration: z.number().int().positive(),
|
|
154
|
+
scope: z.enum(["workspace", "user", "legacy_user"]),
|
|
155
|
+
ownerSubjectId: z.string().min(1).max(512).nullable(),
|
|
156
|
+
authorityId: z.string().uuid().nullable(),
|
|
157
|
+
grantId: z.string().uuid().nullable(),
|
|
158
|
+
})
|
|
159
|
+
.strict(),
|
|
160
|
+
);
|
|
356
161
|
|
|
357
162
|
function refineConnectionUseAttribution(
|
|
358
163
|
value: z.infer<typeof ConnectionUseAttributionFields>,
|
|
@@ -370,44 +175,58 @@ function refineConnectionUseAttribution(
|
|
|
370
175
|
});
|
|
371
176
|
}
|
|
372
177
|
}
|
|
373
|
-
const
|
|
374
|
-
for (const field of ["authorityId"
|
|
375
|
-
if (
|
|
178
|
+
const owned = value.scope === "user";
|
|
179
|
+
for (const field of ["authorityId"] as const) {
|
|
180
|
+
if (owned !== (value[field] !== null)) {
|
|
376
181
|
context.addIssue({
|
|
377
182
|
code: "custom",
|
|
378
183
|
path: [field],
|
|
379
|
-
message:
|
|
380
|
-
? `
|
|
381
|
-
: `non-
|
|
184
|
+
message: owned
|
|
185
|
+
? `personal attribution requires ${field}`
|
|
186
|
+
: `non-personal attribution cannot carry ${field}`,
|
|
382
187
|
});
|
|
383
188
|
}
|
|
384
189
|
}
|
|
190
|
+
if (!owned && value.grantId !== null) {
|
|
191
|
+
context.addIssue({
|
|
192
|
+
code: "custom",
|
|
193
|
+
path: ["grantId"],
|
|
194
|
+
message: "only historical personal attribution can carry a grant",
|
|
195
|
+
});
|
|
196
|
+
}
|
|
385
197
|
}
|
|
386
198
|
|
|
387
199
|
/** Metadata-only attribution emitted after pre-use authorization. */
|
|
388
|
-
export const ConnectionUseAttribution =
|
|
389
|
-
|
|
200
|
+
export const ConnectionUseAttribution = /* @__PURE__ */ defineSchema(() =>
|
|
201
|
+
ConnectionUseAttributionFields.extend({
|
|
202
|
+
scope: z.enum(["workspace", "user"]),
|
|
203
|
+
grantId: z.null(),
|
|
204
|
+
}).superRefine(refineConnectionUseAttribution),
|
|
390
205
|
);
|
|
391
206
|
export type ConnectionUseAttribution = z.infer<typeof ConnectionUseAttribution>;
|
|
392
207
|
|
|
393
|
-
export const ConnectionUseAuditFact =
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
}
|
|
208
|
+
export const ConnectionUseAuditFact = /* @__PURE__ */ defineSchema(() =>
|
|
209
|
+
ConnectionUseAttributionFields.extend({
|
|
210
|
+
outcome: z.enum(["authorized", "denied"]),
|
|
211
|
+
denialReason: ConnectionUseDenialReason.nullable(),
|
|
212
|
+
occurredAt: z.string().datetime({ offset: true }),
|
|
213
|
+
}).superRefine((value, context) => {
|
|
214
|
+
refineConnectionUseAttribution(value, context);
|
|
215
|
+
if ((value.outcome === "denied") !== (value.denialReason !== null)) {
|
|
216
|
+
context.addIssue({
|
|
217
|
+
code: "custom",
|
|
218
|
+
path: ["denialReason"],
|
|
219
|
+
message: "only denied connection use carries a denial reason",
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}),
|
|
223
|
+
);
|
|
407
224
|
export type ConnectionUseAuditFact = z.infer<typeof ConnectionUseAuditFact>;
|
|
408
225
|
|
|
409
|
-
export const ConnectionUseAuthorizationResult =
|
|
410
|
-
z.
|
|
411
|
-
|
|
412
|
-
|
|
226
|
+
export const ConnectionUseAuthorizationResult = /* @__PURE__ */ defineSchema(() =>
|
|
227
|
+
z.discriminatedUnion("status", [
|
|
228
|
+
z.object({ status: z.literal("authorized"), attribution: ConnectionUseAttribution }).strict(),
|
|
229
|
+
z.object({ status: z.literal("denied"), reason: ConnectionUseDenialReason }).strict(),
|
|
230
|
+
]),
|
|
231
|
+
);
|
|
413
232
|
export type ConnectionUseAuthorizationResult = z.infer<typeof ConnectionUseAuthorizationResult>;
|