@opengeni/contracts 5.5.0 → 5.5.2-canary.40656248492001
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 +148 -37
- package/dist/api-key-presets.d.ts +19 -0
- package/dist/app-action-catalog-types.d.ts +32 -0
- package/dist/app-action-catalog.gen.d.ts +2 -0
- package/dist/app-actions.d.ts +91 -0
- package/dist/app-actions.js +10130 -0
- package/dist/app-actions.js.map +1 -0
- package/dist/app-shot.d.ts +55 -0
- package/dist/artifact-catalog.d.ts +33 -0
- package/dist/artifacts.d.ts +166 -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.js +48 -23
- package/dist/automation-templates.d.ts +434 -0
- package/dist/automation-templates.js +31 -0
- package/dist/automation-templates.js.map +1 -0
- package/dist/billing-subscriptions.d.ts +61 -0
- package/dist/bots.d.ts +583 -0
- package/dist/bundled-skills.d.ts +58 -2
- package/dist/canonical-human-identities.js +3 -1
- package/dist/child-lifecycle-notice-protocol.d.ts +45 -0
- package/dist/chunk-2QKIEAGY.js +396 -0
- package/dist/chunk-2QKIEAGY.js.map +1 -0
- package/dist/chunk-2WOWEWXV.js +426 -0
- package/dist/chunk-2WOWEWXV.js.map +1 -0
- package/dist/chunk-2ZIHHL72.js +153 -0
- package/dist/chunk-2ZIHHL72.js.map +1 -0
- package/dist/chunk-32U6NKQQ.js +389 -0
- package/dist/chunk-32U6NKQQ.js.map +1 -0
- package/dist/chunk-4YDDHSO2.js +799 -0
- package/dist/chunk-4YDDHSO2.js.map +1 -0
- package/dist/chunk-56SNIMDO.js +9 -0
- package/dist/chunk-56SNIMDO.js.map +1 -0
- package/dist/chunk-5RWB6QVL.js +101 -0
- package/dist/chunk-5RWB6QVL.js.map +1 -0
- package/dist/chunk-5UGUOT3L.js +243 -0
- package/dist/chunk-5UGUOT3L.js.map +1 -0
- package/dist/chunk-6LAT33BH.js +130 -0
- package/dist/chunk-6LAT33BH.js.map +1 -0
- package/dist/chunk-7272KVWZ.js +60 -0
- package/dist/chunk-7272KVWZ.js.map +1 -0
- package/dist/chunk-72QC2GTL.js +36 -0
- package/dist/chunk-72QC2GTL.js.map +1 -0
- package/dist/chunk-7EQGGZBY.js +105 -0
- package/dist/chunk-7EQGGZBY.js.map +1 -0
- package/dist/chunk-A3LXWVYU.js +382 -0
- package/dist/chunk-A3LXWVYU.js.map +1 -0
- package/dist/chunk-AQYDZUJV.js +34 -0
- package/dist/chunk-AQYDZUJV.js.map +1 -0
- package/dist/chunk-BHCEVVUP.js +93 -0
- package/dist/chunk-BHCEVVUP.js.map +1 -0
- package/dist/chunk-BMUTAZX5.js +486 -0
- package/dist/chunk-BMUTAZX5.js.map +1 -0
- package/dist/chunk-DGG6IBBK.js +150 -0
- package/dist/chunk-DGG6IBBK.js.map +1 -0
- package/dist/{chunk-YBW5JSA3.js → chunk-FBCTUMHI.js} +123 -102
- package/dist/chunk-FBCTUMHI.js.map +1 -0
- package/dist/chunk-G2KJTFIC.js +97 -0
- package/dist/chunk-G2KJTFIC.js.map +1 -0
- package/dist/chunk-G4RKARXZ.js +1167 -0
- package/dist/chunk-G4RKARXZ.js.map +1 -0
- package/dist/chunk-H6UJJIUM.js +350 -0
- package/dist/chunk-H6UJJIUM.js.map +1 -0
- package/dist/chunk-JOTHDW4H.js +18 -0
- package/dist/chunk-JOTHDW4H.js.map +1 -0
- package/dist/chunk-L4GUEP7K.js +56480 -0
- package/dist/chunk-L4GUEP7K.js.map +1 -0
- package/dist/{chunk-SIOU2K4U.js → chunk-LJH2EYGT.js} +23 -23
- package/dist/chunk-MTJKSIGA.js +161 -0
- package/dist/chunk-MTJKSIGA.js.map +1 -0
- package/dist/chunk-MYHMB6GZ.js +202 -0
- package/dist/chunk-MYHMB6GZ.js.map +1 -0
- package/dist/chunk-PI5VIKJY.js +660 -0
- package/dist/chunk-PI5VIKJY.js.map +1 -0
- package/dist/{chunk-RIY7GYQS.js → chunk-PTSROVDG.js} +2 -2
- package/dist/chunk-PUIUXIOL.js +189 -0
- package/dist/chunk-PUIUXIOL.js.map +1 -0
- package/dist/chunk-R6VXJIMB.js +19 -0
- package/dist/chunk-R6VXJIMB.js.map +1 -0
- package/dist/chunk-RLJUNVAM.js +15 -0
- package/dist/chunk-RLJUNVAM.js.map +1 -0
- package/dist/chunk-RR6APCBK.js +213 -0
- package/dist/chunk-RR6APCBK.js.map +1 -0
- package/dist/{chunk-TXTQIYCV.js → chunk-RUQ4I6DO.js} +59 -13
- package/dist/chunk-RUQ4I6DO.js.map +1 -0
- package/dist/{chunk-WYBDERIY.js → chunk-RWEEUDHD.js} +53 -42
- package/dist/chunk-RWEEUDHD.js.map +1 -0
- package/dist/chunk-S7MSQQL6.js +158 -0
- package/dist/chunk-S7MSQQL6.js.map +1 -0
- package/dist/{chunk-5Q54VCCH.js → chunk-SHO4YO4B.js} +20 -36
- package/dist/chunk-SHO4YO4B.js.map +1 -0
- package/dist/{chunk-HHZSZYYF.js → chunk-T3HSWMA5.js} +20 -4
- package/dist/chunk-T3HSWMA5.js.map +1 -0
- package/dist/{chunk-YRKRZ6OF.js → chunk-TOOJIBJC.js} +2 -2
- package/dist/chunk-UCUOTRS6.js +431 -0
- package/dist/chunk-UCUOTRS6.js.map +1 -0
- package/dist/chunk-UH4K7GP7.js +424 -0
- package/dist/chunk-UH4K7GP7.js.map +1 -0
- package/dist/chunk-UIZWGPHV.js +120 -0
- package/dist/chunk-UIZWGPHV.js.map +1 -0
- package/dist/chunk-VLUKBV6Y.js +1170 -0
- package/dist/chunk-VLUKBV6Y.js.map +1 -0
- package/dist/chunk-W2QQ5Y6K.js +55 -0
- package/dist/chunk-W2QQ5Y6K.js.map +1 -0
- package/dist/{chunk-Y3KNXVTD.js → chunk-W3NBPR4E.js} +131 -31
- package/dist/chunk-W3NBPR4E.js.map +1 -0
- package/dist/{chunk-NRMCVHAU.js → chunk-WMGO4HJU.js} +11 -9
- package/dist/chunk-WMGO4HJU.js.map +1 -0
- package/dist/{chunk-MYBZRDTY.js → chunk-WQI7VNN4.js} +19 -9
- package/dist/chunk-WQI7VNN4.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-XB6GQLBH.js +76 -0
- package/dist/chunk-XB6GQLBH.js.map +1 -0
- package/dist/{chunk-D2HKF2EF.js → chunk-XP5M3IKT.js} +2 -2
- package/dist/{chunk-O77VSFYZ.js → chunk-ZMPU5BWE.js} +12 -2
- package/dist/chunk-ZMPU5BWE.js.map +1 -0
- package/dist/{chunk-3SIZGL3O.js → chunk-ZYVEJFNU.js} +22 -18
- package/dist/chunk-ZYVEJFNU.js.map +1 -0
- package/dist/claude-provider-account-authority.d.ts +18 -0
- package/dist/claude-subscription-oauth.d.ts +25 -0
- package/dist/claude-subscription-usage.d.ts +95 -1
- package/dist/client-error-report.d.ts +154 -8
- package/dist/client-error-report.js +157 -2
- package/dist/client-error-report.js.map +1 -1
- package/dist/code-search.d.ts +1 -1
- package/dist/code-search.js.map +1 -1
- package/dist/codex-provider-account-authority.js +23 -12
- package/dist/codex-provider-account-authority.js.map +1 -1
- package/dist/company-profile.d.ts +144 -0
- package/dist/connect.d.ts +38 -0
- package/dist/connect.js +244 -164
- package/dist/connect.js.map +1 -1
- package/dist/connection-account-label.d.ts +2 -0
- package/dist/connection-account-label.js +34 -0
- package/dist/connection-account-label.js.map +1 -0
- package/dist/connection-authority.js +49 -24
- package/dist/connector-attachments.js +3 -1
- package/dist/connector-destinations.js +3 -1
- package/dist/connector-tool-permissions.d.ts +68 -4
- package/dist/credential-profiles.d.ts +166 -0
- package/dist/cua-desktop-tools.d.ts +19 -0
- package/dist/define-schema.d.ts +8 -0
- package/dist/desktop-app.d.ts +28 -0
- package/dist/direct-model-provider.d.ts +38 -0
- package/dist/document-artifact-commands.js +2 -2
- package/dist/document-artifact-query.js +2 -2
- package/dist/editable-artifact-binary.d.ts +7 -0
- package/dist/editable-artifact-causal-frontier.js +2 -2
- package/dist/editable-artifact-codec-registry.js +7 -7
- package/dist/editable-artifact-committed-transaction.js +4 -2
- package/dist/editable-artifact-live.js +8 -8
- package/dist/editable-artifact-serialized-commit.js +9 -9
- package/dist/editable-artifact-versions.d.ts +7 -1
- package/dist/editable-artifact-versions.js +1 -1
- package/dist/editable-artifacts.js +49 -43
- package/dist/event-preview.d.ts +22 -0
- package/dist/event-triggers.d.ts +1253 -0
- package/dist/event-triggers.js +148 -0
- package/dist/event-triggers.js.map +1 -0
- package/dist/external-identities.d.ts +34 -0
- package/dist/external-identities.js +4 -2
- package/dist/feedback.d.ts +181 -0
- package/dist/file-access.d.ts +23 -0
- package/dist/first-party-tool-authorization.d.ts +852 -0
- package/dist/github-repository-contracts.js +64 -43
- package/dist/github-repository-contracts.js.map +1 -1
- package/dist/google-drive-native-retirement.d.ts +12 -0
- package/dist/google-drive-native-retirement.js +20 -0
- package/dist/google-drive-native-retirement.js.map +1 -0
- package/dist/google-drive.d.ts +1 -1
- package/dist/google-drive.js +323 -239
- package/dist/google-drive.js.map +1 -1
- package/dist/host-mcp-bindings.js +250 -198
- package/dist/host-mcp-bindings.js.map +1 -1
- package/dist/index.d.ts +29072 -20593
- package/dist/index.js +2432 -366
- package/dist/inference-residency.d.ts +22 -0
- package/dist/insights-usage.d.ts +948 -0
- package/dist/insights-usage.js +608 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/integration-capability-id.d.ts +8 -0
- package/dist/interaction-action-deadline.d.ts +48 -0
- package/dist/interaction-driver-diagnostic.d.ts +28 -0
- package/dist/interaction.d.ts +2126 -881
- package/dist/knowledge-entries.d.ts +38 -0
- package/dist/knowledge-preparation.d.ts +4 -0
- package/dist/learning-refusal.d.ts +43 -0
- package/dist/learning-refusal.js +49 -0
- package/dist/learning-refusal.js.map +1 -0
- package/dist/managed-auth-session-sets.d.ts +1 -0
- package/dist/managed-auth-session-sets.js +207 -146
- package/dist/managed-auth-session-sets.js.map +1 -1
- package/dist/managed-sign-in-methods.d.ts +96 -0
- package/dist/managed-sign-in-methods.js +157 -35
- package/dist/managed-sign-in-methods.js.map +1 -1
- package/dist/mcp-structured-content.d.ts +25 -0
- package/dist/message-time-zone.d.ts +38 -0
- package/dist/message-time-zone.js +19 -0
- package/dist/message-time-zone.js.map +1 -0
- package/dist/modal-native-proof-v2.d.ts +587 -0
- package/dist/modal-native-proof-v2.js +39 -0
- package/dist/modal-native-proof-v2.js.map +1 -0
- package/dist/model-account-choice.d.ts +237 -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 +8 -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.js.map +1 -1
- package/dist/model-residency.d.ts +304 -0
- package/dist/organization-access.d.ts +416 -0
- package/dist/organization-access.js +40 -0
- package/dist/organization-access.js.map +1 -0
- package/dist/organization-integration-policy.d.ts +18 -0
- package/dist/organization-membership-lifecycle.d.ts +66 -0
- package/dist/organization-model-usage.d.ts +146 -0
- package/dist/organization-model-usage.js +87 -0
- package/dist/organization-model-usage.js.map +1 -0
- package/dist/organization-recovery.js +3 -1
- package/dist/organization-usage.d.ts +12 -0
- package/dist/passkey-only-account.d.ts +14 -0
- package/dist/passkey-only-account.js +13 -0
- package/dist/passkey-only-account.js.map +1 -0
- package/dist/permissions.d.ts +19 -0
- package/dist/personal-github.js +220 -148
- package/dist/personal-github.js.map +1 -1
- package/dist/personal-integration-setup.d.ts +81 -0
- package/dist/personal-integration-setup.js +42 -0
- package/dist/personal-integration-setup.js.map +1 -0
- package/dist/prepared-mcp-setup.d.ts +54 -0
- package/dist/prepared-mcp-setup.js +13 -0
- package/dist/prepared-mcp-setup.js.map +1 -0
- package/dist/presentation-artifact-commands.js +2 -2
- package/dist/presentation-artifact-query.js +2 -2
- package/dist/primitives.d.ts +18 -0
- package/dist/product-analytics.d.ts +27 -10
- package/dist/product-lifecycle-facts.d.ts +26 -3
- package/dist/prompt-cache-diagnostics.d.ts +92 -0
- package/dist/recordings.d.ts +1371 -0
- package/dist/remember.d.ts +98 -2
- package/dist/retained-output.d.ts +4 -2
- package/dist/sandbox-file-artifacts.d.ts +19 -2
- package/dist/sandbox-provider-command.d.ts +5 -44
- package/dist/sandbox-recovery.d.ts +139 -8
- package/dist/secret-generator.d.ts +44 -0
- package/dist/secret-mask-strings.d.ts +32 -0
- package/dist/secret-references.d.ts +90 -0
- package/dist/secret-resolution.d.ts +143 -0
- package/dist/secret-shape-masking.d.ts +52 -0
- package/dist/secret-shape-masking.js +19 -0
- package/dist/secret-shape-masking.js.map +1 -0
- package/dist/secret-totp.d.ts +41 -0
- package/dist/secret-use-approval-question.d.ts +11 -0
- package/dist/secret-use-approval-question.js +11 -0
- package/dist/secret-use-approval-question.js.map +1 -0
- package/dist/secret-use-approvals.d.ts +106 -0
- package/dist/secret-value-masking.d.ts +299 -0
- package/dist/secret-value-masking.js +62 -0
- package/dist/secret-value-masking.js.map +1 -0
- package/dist/secret-value.d.ts +19 -0
- package/dist/session-history-import.d.ts +444 -8
- package/dist/session-history.d.ts +111 -0
- package/dist/session-history.js +35 -0
- package/dist/session-history.js.map +1 -0
- package/dist/session-list-entries.d.ts +8 -0
- package/dist/session-list-entries.js +61 -0
- package/dist/session-list-entries.js.map +1 -0
- package/dist/session-mcp-projections.d.ts +13 -1
- package/dist/session-mcp-tool-permissions.d.ts +62 -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 +43 -0
- package/dist/session-usage-limits.js.map +1 -0
- package/dist/site-data.d.ts +286 -0
- package/dist/site-operations.d.ts +39 -0
- package/dist/site-publishing.d.ts +813 -0
- package/dist/site-session-http.d.ts +103 -4
- package/dist/site-session-http.js +27 -1
- package/dist/site-sql.d.ts +425 -0
- package/dist/skills.d.ts +38 -0
- package/dist/slack-bot-scopes.d.ts +9 -7
- package/dist/slack-bot-scopes.js +6 -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 +9 -2
- package/dist/spreadsheet-artifact-query.d.ts +13 -6
- package/dist/spreadsheet-artifact-query.js +4 -3
- package/dist/subscription-account-actions.d.ts +83 -0
- package/dist/subscription-account-pools.d.ts +326 -0
- package/dist/subscription-personal-authority-v2.d.ts +28 -0
- package/dist/subscription-personal-authority-v2.js +13 -0
- package/dist/subscription-personal-authority-v2.js.map +1 -0
- package/dist/subscription-plans.d.ts +38 -0
- package/dist/subscription-usage-pool.d.ts +89 -0
- package/dist/tool-action-review.d.ts +141 -0
- package/dist/tool-catalog.d.ts +479 -0
- package/dist/tool-policy.d.ts +5 -0
- package/dist/tool-review-presentation.d.ts +29 -0
- package/dist/tool-review-presentation.js +21 -0
- package/dist/tool-review-presentation.js.map +1 -0
- package/dist/turn-serving-policy.d.ts +223 -0
- package/dist/usage-allowances.d.ts +30 -0
- package/dist/usage-allowances.js +5 -1
- package/dist/values.d.ts +11 -0
- package/dist/values.js +19 -0
- package/dist/values.js.map +1 -0
- package/dist/vault-provider-wire.d.ts +907 -0
- package/dist/vault-provider-wire.js +74 -0
- package/dist/vault-provider-wire.js.map +1 -0
- package/dist/vaults.d.ts +2185 -0
- package/dist/video-generation.d.ts +75 -0
- package/dist/video-generation.js +8 -1
- package/dist/workspace-control-event.d.ts +18 -0
- package/dist/workspace-control-event.js +18 -0
- package/dist/workspace-control-event.js.map +1 -0
- package/dist/workspace-governance-context.d.ts +18 -0
- package/dist/workspace-integration-wire.d.ts +1 -1
- package/dist/workspace-integration-wire.js +1 -1
- package/dist/workspace-integrations.d.ts +212 -12
- package/dist/xai-provider-account-authority.js +3 -1
- package/package.json +121 -4
- package/src/agent-authored-durable-text.ts +14 -11
- package/src/agent-config.ts +382 -203
- package/src/agent-instruction-changes.ts +94 -74
- package/src/agent-learning.ts +94 -66
- package/src/agent-topology.ts +58 -52
- package/src/api-key-presets.ts +28 -0
- package/src/app-action-catalog-types.ts +32 -0
- package/src/app-action-catalog.gen.ts +9905 -0
- package/src/app-actions.ts +365 -0
- package/src/app-shot.ts +176 -0
- package/src/artifact-catalog.ts +81 -46
- package/src/artifacts.ts +360 -227
- package/src/atlassian-native-retirement.ts +33 -0
- package/src/atlassian.ts +136 -108
- package/src/automation-templates.ts +201 -0
- package/src/billing-subscriptions.ts +48 -0
- package/src/bots.ts +238 -0
- package/src/bundled-skills.ts +79 -22
- package/src/canonical-human-identities.ts +65 -62
- package/src/child-lifecycle-notice-protocol.gen.json +1310 -0
- package/src/child-lifecycle-notice-protocol.ts +224 -0
- package/src/claude-provider-account-authority.ts +12 -0
- package/src/claude-subscription-oauth.ts +61 -19
- package/src/claude-subscription-usage.ts +64 -35
- package/src/client-error-report.ts +344 -9
- package/src/code-search.ts +1 -1
- package/src/codex-provider-account-authority.ts +22 -16
- package/src/company-brain-governed-writes.ts +265 -244
- package/src/company-brain.ts +165 -154
- package/src/company-profile.ts +362 -297
- package/src/connect.ts +222 -173
- package/src/connection-account-label.ts +45 -0
- package/src/connection-authority.ts +172 -152
- package/src/connector-attachments.ts +139 -123
- package/src/connector-destinations.ts +48 -43
- package/src/connector-tool-permissions.ts +104 -46
- package/src/credential-profiles.ts +161 -0
- package/src/cua-desktop-tools.gen.json +6722 -0
- package/src/cua-desktop-tools.linux.gen.json +6798 -0
- package/src/cua-desktop-tools.ts +42 -0
- package/src/cua-desktop-tools.windows.gen.json +6739 -0
- package/src/define-schema.ts +10 -0
- package/src/desktop-app.ts +50 -0
- package/src/direct-model-provider.ts +112 -0
- package/src/editable-artifact-binary.ts +29 -8
- package/src/editable-artifact-committed-transaction.ts +19 -18
- package/src/editable-artifact-serialized-commit.ts +8 -2
- package/src/editable-artifact-versions.ts +7 -1
- package/src/event-preview.ts +53 -3
- package/src/event-triggers.ts +891 -0
- package/src/external-identities.ts +239 -195
- package/src/feedback.ts +125 -30
- package/src/file-access.ts +26 -0
- package/src/first-party-tool-authorization.ts +383 -0
- package/src/github-repository-contracts.ts +78 -64
- package/src/google-drive-native-retirement.ts +20 -0
- package/src/google-drive.ts +286 -234
- package/src/governed-learning-activation.ts +159 -137
- package/src/governed-learning-evaluator.ts +141 -133
- package/src/host-mcp-bindings.ts +244 -221
- package/src/image-generation.ts +105 -95
- package/src/index.ts +13928 -9899
- package/src/inference-residency.ts +36 -0
- package/src/insights-usage.ts +774 -0
- package/src/integration-capability-id.ts +16 -0
- package/src/interaction-action-deadline.ts +143 -0
- package/src/interaction-driver-diagnostic.ts +89 -0
- package/src/interaction.ts +3527 -2427
- package/src/knowledge-entries.ts +386 -299
- package/src/knowledge-preparation.ts +49 -41
- package/src/knowledge.ts +242 -213
- package/src/learning-refusal.ts +90 -0
- package/src/managed-auth-session-sets.ts +180 -133
- package/src/managed-sign-in-methods.ts +156 -34
- package/src/mcp-oauth.ts +58 -46
- package/src/mcp-receipts.ts +199 -194
- package/src/mcp-structured-content.ts +81 -0
- package/src/memory-slack-delivery.ts +172 -142
- package/src/message-time-zone.ts +109 -0
- package/src/modal-native-proof-v2.ts +430 -0
- package/src/model-account-choice.ts +178 -0
- package/src/model-account-settings.ts +210 -0
- package/src/model-availability.ts +22 -0
- package/src/model-connection-access.ts +62 -14
- package/src/model-context-inspector.ts +130 -109
- package/src/model-display.ts +221 -0
- package/src/model-picker-order.ts +1 -1
- package/src/model-residency.ts +535 -0
- package/src/organization-access.ts +216 -0
- package/src/organization-integration-policy.ts +47 -28
- package/src/organization-membership-lifecycle.ts +558 -384
- package/src/organization-model-usage.ts +82 -0
- package/src/organization-recovery.ts +148 -135
- package/src/organization-usage.ts +84 -52
- package/src/passkey-only-account.ts +29 -0
- package/src/permissions.ts +94 -52
- package/src/personal-github.ts +211 -171
- package/src/personal-integration-setup.ts +150 -0
- package/src/preference-registry.ts +319 -263
- package/src/prepared-mcp-setup.ts +190 -0
- package/src/primitives.ts +22 -0
- package/src/product-analytics.ts +40 -15
- package/src/product-lifecycle-facts.ts +50 -20
- package/src/prompt-cache-diagnostics.ts +212 -0
- package/src/recordings.ts +1153 -0
- package/src/remember.ts +184 -172
- package/src/retained-output.ts +181 -168
- package/src/sandbox-file-artifacts.ts +78 -57
- package/src/sandbox-provider-command.ts +55 -72
- package/src/sandbox-recovery.ts +163 -77
- package/src/scoped-knowledge.ts +62 -43
- package/src/secret-generator.ts +156 -0
- package/src/secret-mask-strings.ts +175 -0
- package/src/secret-references.ts +414 -0
- package/src/secret-resolution.ts +322 -0
- package/src/secret-shape-masking.ts +573 -0
- package/src/secret-totp.ts +188 -0
- package/src/secret-use-approval-question.ts +22 -0
- package/src/secret-use-approvals.ts +219 -0
- package/src/secret-value-masking.ts +1283 -0
- package/src/secret-value.ts +22 -0
- package/src/session-goal-reports.ts +55 -49
- package/src/session-history-import.ts +84 -68
- package/src/session-history.ts +197 -0
- package/src/session-list-entries.ts +106 -0
- package/src/session-mcp-projections.ts +21 -3
- package/src/session-mcp-tool-permissions.ts +109 -0
- package/src/session-message-search.ts +46 -38
- package/src/session-target.ts +58 -0
- package/src/session-titles.ts +40 -4
- package/src/session-topology-primitives.ts +20 -12
- package/src/session-usage-limit-refusal.ts +101 -0
- package/src/session-usage-limits.ts +169 -0
- package/src/signup-attribution.ts +20 -15
- package/src/site-data.ts +337 -0
- package/src/site-operations.ts +154 -0
- package/src/site-publishing.ts +903 -0
- package/src/site-session-http.ts +344 -16
- package/src/site-sql.ts +1120 -0
- package/src/skill-use.ts +18 -17
- package/src/skills.ts +105 -50
- package/src/slack-bot-scopes.ts +18 -35
- package/src/slack-rest-mcp.ts +222 -0
- package/src/slack-task-policy.ts +97 -73
- package/src/spreadsheet-artifact-commands.ts +74 -13
- package/src/spreadsheet-artifact-query.ts +188 -50
- package/src/subscription-account-actions.ts +103 -0
- package/src/subscription-account-pools.ts +74 -0
- package/src/subscription-personal-authority-v2.ts +69 -0
- package/src/subscription-plans.ts +51 -0
- package/src/subscription-usage-pool.ts +44 -0
- package/src/task-notes.ts +70 -68
- package/src/tool-action-review.ts +271 -0
- package/src/tool-catalog.ts +694 -379
- package/src/tool-policy.ts +82 -0
- package/src/tool-result-spill.ts +13 -9
- package/src/tool-review-presentation.ts +643 -0
- package/src/turn-serving-policy.ts +167 -0
- package/src/usage-allowances.ts +212 -136
- package/src/values.ts +25 -0
- package/src/vault-provider-wire.ts +580 -0
- package/src/vaults.ts +1296 -0
- package/src/video-generation.ts +430 -361
- package/src/work-claims.ts +183 -166
- package/src/workspace-control-event.ts +134 -0
- package/src/workspace-governance-context.ts +63 -0
- package/src/workspace-instruction-policies.ts +346 -279
- package/src/workspace-integration-wire.ts +10 -0
- package/src/workspace-integrations.ts +488 -398
- package/src/workspace-learning-administration.ts +58 -44
- package/src/workspace-learning-policy.ts +126 -99
- package/src/workspace-state.ts +239 -220
- package/src/xai-provider-account-authority.ts +23 -17
- package/dist/chunk-3SIZGL3O.js.map +0 -1
- package/dist/chunk-566IFOVP.js +0 -26133
- package/dist/chunk-566IFOVP.js.map +0 -1
- package/dist/chunk-5IXYF6XN.js +0 -728
- package/dist/chunk-5IXYF6XN.js.map +0 -1
- package/dist/chunk-5Q54VCCH.js.map +0 -1
- package/dist/chunk-BCS7WHCK.js +0 -139
- package/dist/chunk-BCS7WHCK.js.map +0 -1
- package/dist/chunk-EK7NDGFR.js +0 -128
- package/dist/chunk-EK7NDGFR.js.map +0 -1
- package/dist/chunk-GRG7PHWQ.js +0 -25
- package/dist/chunk-GRG7PHWQ.js.map +0 -1
- package/dist/chunk-HHZSZYYF.js.map +0 -1
- package/dist/chunk-ICDZGUX2.js +0 -186
- package/dist/chunk-ICDZGUX2.js.map +0 -1
- package/dist/chunk-JUFK3T4Q.js +0 -80
- package/dist/chunk-JUFK3T4Q.js.map +0 -1
- package/dist/chunk-MYBZRDTY.js.map +0 -1
- package/dist/chunk-NRMCVHAU.js.map +0 -1
- package/dist/chunk-O77VSFYZ.js.map +0 -1
- package/dist/chunk-P3HLDT77.js +0 -59
- package/dist/chunk-P3HLDT77.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/chunk-YWMOIZ6A.js +0 -185
- package/dist/chunk-YWMOIZ6A.js.map +0 -1
- package/dist/site-request-headers.test.d.ts +0 -1
- package/dist/transcription-recordings.d.ts +0 -300
- package/src/transcription-recordings.ts +0 -169
- /package/dist/{chunk-SIOU2K4U.js.map → chunk-LJH2EYGT.js.map} +0 -0
- /package/dist/{chunk-RIY7GYQS.js.map → chunk-PTSROVDG.js.map} +0 -0
- /package/dist/{chunk-YRKRZ6OF.js.map → chunk-TOOJIBJC.js.map} +0 -0
- /package/dist/{chunk-D2HKF2EF.js.map → chunk-XP5M3IKT.js.map} +0 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defineSchema
|
|
3
|
+
} from "./chunk-56SNIMDO.js";
|
|
4
|
+
|
|
5
|
+
// src/model-residency.ts
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
var MODEL_PROCESSING_GEOGRAPHIES = ["eu", "us", "global", "other", "unknown"];
|
|
8
|
+
var ModelProcessingGeography = /* @__PURE__ */ defineSchema(
|
|
9
|
+
() => z.enum(MODEL_PROCESSING_GEOGRAPHIES)
|
|
10
|
+
);
|
|
11
|
+
var MODEL_DEPLOYMENT_TYPES = [
|
|
12
|
+
"azure_regional",
|
|
13
|
+
"azure_data_zone",
|
|
14
|
+
"azure_global",
|
|
15
|
+
"bedrock_regional",
|
|
16
|
+
"bedrock_geo_profile",
|
|
17
|
+
"bedrock_global_profile",
|
|
18
|
+
"gateway",
|
|
19
|
+
"subscription",
|
|
20
|
+
"provider_default",
|
|
21
|
+
"self_hosted",
|
|
22
|
+
"unknown"
|
|
23
|
+
];
|
|
24
|
+
var ModelDeploymentType = /* @__PURE__ */ defineSchema(
|
|
25
|
+
() => z.enum(MODEL_DEPLOYMENT_TYPES)
|
|
26
|
+
);
|
|
27
|
+
var EU_CAPABLE_DEPLOYMENT_TYPES = Object.freeze([
|
|
28
|
+
"azure_regional",
|
|
29
|
+
"azure_data_zone",
|
|
30
|
+
"bedrock_regional",
|
|
31
|
+
"bedrock_geo_profile",
|
|
32
|
+
"provider_default",
|
|
33
|
+
"self_hosted"
|
|
34
|
+
]);
|
|
35
|
+
var EU_AZURE_REGIONS = Object.freeze([
|
|
36
|
+
"austriaeast",
|
|
37
|
+
"belgiumcentral",
|
|
38
|
+
"denmarkeast",
|
|
39
|
+
"francecentral",
|
|
40
|
+
"francesouth",
|
|
41
|
+
"germanynorth",
|
|
42
|
+
"germanywestcentral",
|
|
43
|
+
"italynorth",
|
|
44
|
+
"northeurope",
|
|
45
|
+
"norwayeast",
|
|
46
|
+
"norwaywest",
|
|
47
|
+
"polandcentral",
|
|
48
|
+
"spaincentral",
|
|
49
|
+
"swedencentral",
|
|
50
|
+
"swedensouth",
|
|
51
|
+
"switzerlandnorth",
|
|
52
|
+
"switzerlandwest",
|
|
53
|
+
"westeurope"
|
|
54
|
+
]);
|
|
55
|
+
var EU_AWS_REGIONS = Object.freeze([
|
|
56
|
+
"eu-central-1",
|
|
57
|
+
"eu-central-2",
|
|
58
|
+
"eu-north-1",
|
|
59
|
+
"eu-south-1",
|
|
60
|
+
"eu-south-2",
|
|
61
|
+
"eu-west-1",
|
|
62
|
+
"eu-west-3"
|
|
63
|
+
]);
|
|
64
|
+
function euRegionsFor(deploymentType) {
|
|
65
|
+
if (deploymentType === "azure_regional" || deploymentType === "azure_data_zone") {
|
|
66
|
+
return EU_AZURE_REGIONS;
|
|
67
|
+
}
|
|
68
|
+
if (deploymentType === "bedrock_regional" || deploymentType === "bedrock_geo_profile") {
|
|
69
|
+
return EU_AWS_REGIONS;
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
var MODEL_RESIDENCY_EVIDENCE_SOURCES = [
|
|
74
|
+
/** The deployment operator declared it in the reviewed catalog or environment. */
|
|
75
|
+
"operator_declaration",
|
|
76
|
+
/** Published provider documentation for this exact route type. */
|
|
77
|
+
"provider_documentation",
|
|
78
|
+
/** A provider API reported it (for example an Azure deployment SKU lookup). */
|
|
79
|
+
"provider_api",
|
|
80
|
+
/** A code-owned rule for a provider kind, reviewed with the code. */
|
|
81
|
+
"built_in_rule",
|
|
82
|
+
/** An organization admin declared it for their own connection. */
|
|
83
|
+
"admin_declaration",
|
|
84
|
+
/** Nothing establishes where this route processes data. */
|
|
85
|
+
"none"
|
|
86
|
+
];
|
|
87
|
+
var ModelResidencyEvidenceSource = /* @__PURE__ */ defineSchema(
|
|
88
|
+
() => z.enum(MODEL_RESIDENCY_EVIDENCE_SOURCES)
|
|
89
|
+
);
|
|
90
|
+
var REGION_PATTERN = /^[a-z0-9][a-z0-9-]{0,62}$/u;
|
|
91
|
+
var ModelResidencyEvidenceV1 = /* @__PURE__ */ defineSchema(
|
|
92
|
+
() => z.object({
|
|
93
|
+
source: ModelResidencyEvidenceSource,
|
|
94
|
+
/** Where to check it: a document URL, resource and SKU, or rule description. */
|
|
95
|
+
reference: z.string().trim().min(1).max(1e3).nullable(),
|
|
96
|
+
/** Date (or date-time) the evidence was last checked. */
|
|
97
|
+
verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable()
|
|
98
|
+
}).strict()
|
|
99
|
+
);
|
|
100
|
+
function modelResidencyProblems(residency) {
|
|
101
|
+
const problems = [];
|
|
102
|
+
if (residency.geography === "unknown") {
|
|
103
|
+
return problems;
|
|
104
|
+
}
|
|
105
|
+
if (residency.evidence.source === "none" || residency.evidence.reference === null) {
|
|
106
|
+
problems.push({
|
|
107
|
+
path: ["evidence"],
|
|
108
|
+
message: "a known processing geography needs an evidence source and reference"
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (residency.geography !== "eu") return problems;
|
|
112
|
+
if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(residency.deploymentType)) {
|
|
113
|
+
problems.push({
|
|
114
|
+
path: ["deploymentType"],
|
|
115
|
+
message: `${residency.deploymentType} routing can leave the EU, so it cannot be declared eu`
|
|
116
|
+
});
|
|
117
|
+
return problems;
|
|
118
|
+
}
|
|
119
|
+
const allowedRegions = euRegionsFor(residency.deploymentType);
|
|
120
|
+
if (allowedRegions) {
|
|
121
|
+
if (residency.regions.length === 0) {
|
|
122
|
+
problems.push({ path: ["regions"], message: "an eu claim needs the route's regions" });
|
|
123
|
+
}
|
|
124
|
+
for (const region of residency.regions) {
|
|
125
|
+
if (!allowedRegions.includes(region)) {
|
|
126
|
+
problems.push({
|
|
127
|
+
path: ["regions"],
|
|
128
|
+
message: `${region} is not an EU region for ${residency.deploymentType}`
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return problems;
|
|
134
|
+
}
|
|
135
|
+
var NON_EU_BEDROCK_PROFILE_PREFIXES = Object.freeze([
|
|
136
|
+
"us.",
|
|
137
|
+
"us-gov.",
|
|
138
|
+
"apac.",
|
|
139
|
+
"jp.",
|
|
140
|
+
"au.",
|
|
141
|
+
"ca.",
|
|
142
|
+
"global."
|
|
143
|
+
]);
|
|
144
|
+
var NON_EU_MODEL_HOSTS = Object.freeze([
|
|
145
|
+
"ai-gateway.vercel.sh",
|
|
146
|
+
"api.anthropic.com",
|
|
147
|
+
"api.openai.com",
|
|
148
|
+
"api.x.ai",
|
|
149
|
+
"chatgpt.com",
|
|
150
|
+
"openrouter.ai"
|
|
151
|
+
]);
|
|
152
|
+
function hostOf(baseUrl) {
|
|
153
|
+
try {
|
|
154
|
+
return new URL(baseUrl).hostname.toLowerCase().replace(/\.+$/u, "");
|
|
155
|
+
} catch {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function modelEndpointDeployment(url) {
|
|
160
|
+
let pathname;
|
|
161
|
+
try {
|
|
162
|
+
pathname = new URL(url).pathname;
|
|
163
|
+
} catch {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const segments = pathname.split("/").filter((raw) => raw !== "").map((raw) => {
|
|
167
|
+
let decoded;
|
|
168
|
+
try {
|
|
169
|
+
decoded = decodeURIComponent(raw);
|
|
170
|
+
} catch {
|
|
171
|
+
decoded = null;
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
decoded,
|
|
175
|
+
marker: decoded?.toLowerCase() === "deployments",
|
|
176
|
+
hidesMarker: hidesDeploymentsMarker(raw),
|
|
177
|
+
plain: decoded !== null && isPlainDeploymentSegment(decoded)
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
const first = segments.findIndex((segment) => segment.marker || segment.hidesMarker);
|
|
181
|
+
if (first < 0) return null;
|
|
182
|
+
const marker = segments[first];
|
|
183
|
+
const name = segments[first + 1];
|
|
184
|
+
if (!marker.marker || !name) return "";
|
|
185
|
+
const rest = segments.slice(first + 1);
|
|
186
|
+
if (!rest.every((segment) => segment.plain)) return "";
|
|
187
|
+
if (rest.slice(1).some((segment) => segment.marker || segment.hidesMarker)) return "";
|
|
188
|
+
return name.decoded;
|
|
189
|
+
}
|
|
190
|
+
function isPlainDeploymentSegment(segment) {
|
|
191
|
+
return /^[A-Za-z0-9._-]+$/u.test(segment) && segment !== "." && segment !== "..";
|
|
192
|
+
}
|
|
193
|
+
function hidesDeploymentsMarker(raw) {
|
|
194
|
+
return looselyDecoded(raw).split(/[/\\]/u).some(
|
|
195
|
+
(part) => part.replace(/^[^A-Za-z0-9]+/u, "").toLowerCase().startsWith("deployments")
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
function looselyDecoded(raw) {
|
|
199
|
+
let value = raw;
|
|
200
|
+
for (let round = 0; round < 4; round += 1) {
|
|
201
|
+
const next = value.replace(
|
|
202
|
+
/%([0-7][0-9a-f])/giu,
|
|
203
|
+
(_, hex) => String.fromCharCode(Number.parseInt(hex, 16))
|
|
204
|
+
);
|
|
205
|
+
if (next === value) break;
|
|
206
|
+
value = next;
|
|
207
|
+
}
|
|
208
|
+
return value;
|
|
209
|
+
}
|
|
210
|
+
function modelResidencyRouteProblems(residency, route) {
|
|
211
|
+
if (residency.geography !== "eu") return [];
|
|
212
|
+
const problems = [];
|
|
213
|
+
const upstreamModelId = (route.upstreamModelId ?? "").toLowerCase();
|
|
214
|
+
if (residency.deploymentType.startsWith("bedrock_")) {
|
|
215
|
+
const prefix = NON_EU_BEDROCK_PROFILE_PREFIXES.find(
|
|
216
|
+
(candidate) => upstreamModelId.startsWith(candidate)
|
|
217
|
+
);
|
|
218
|
+
if (prefix) {
|
|
219
|
+
problems.push({
|
|
220
|
+
path: ["upstreamModelId"],
|
|
221
|
+
message: `${upstreamModelId} is a ${prefix} inference profile, which routes outside the EU`
|
|
222
|
+
});
|
|
223
|
+
} else if (residency.deploymentType === "bedrock_geo_profile" && !upstreamModelId.startsWith("eu.")) {
|
|
224
|
+
problems.push({
|
|
225
|
+
path: ["upstreamModelId"],
|
|
226
|
+
message: `an eu bedrock_geo_profile needs an eu. inference profile, not ${upstreamModelId}`
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
const host = route.baseUrl ? hostOf(route.baseUrl) : null;
|
|
231
|
+
if (host && NON_EU_MODEL_HOSTS.includes(host)) {
|
|
232
|
+
problems.push({
|
|
233
|
+
path: ["baseUrl"],
|
|
234
|
+
message: `${host} routes outside the EU, so a route on it cannot be declared eu`
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
const deployment = route.baseUrl ? modelEndpointDeployment(route.baseUrl) : null;
|
|
238
|
+
if (deployment === "") {
|
|
239
|
+
problems.push({
|
|
240
|
+
path: ["baseUrl"],
|
|
241
|
+
message: "the endpoint calls a deployment whose name can't be read, so it cannot be declared eu"
|
|
242
|
+
});
|
|
243
|
+
} else if (deployment !== null && deployment !== (route.upstreamModelId ?? "")) {
|
|
244
|
+
problems.push({
|
|
245
|
+
path: ["baseUrl"],
|
|
246
|
+
message: `the endpoint calls deployment ${deployment}, not ${route.upstreamModelId ?? "this model"}, so only ${deployment} can be declared eu on it`
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
return problems;
|
|
250
|
+
}
|
|
251
|
+
function modelResidencyClaim(residency) {
|
|
252
|
+
return {
|
|
253
|
+
geography: residency.geography,
|
|
254
|
+
deploymentType: residency.deploymentType,
|
|
255
|
+
regions: [...new Set(residency.regions)].sort()
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
var ModelResidencyV1 = /* @__PURE__ */ defineSchema(
|
|
259
|
+
() => z.object({
|
|
260
|
+
geography: ModelProcessingGeography,
|
|
261
|
+
deploymentType: ModelDeploymentType,
|
|
262
|
+
/** Provider regions where the endpoint or processing lives, when known. */
|
|
263
|
+
regions: z.array(z.string().regex(REGION_PATTERN)).max(32),
|
|
264
|
+
evidence: ModelResidencyEvidenceV1
|
|
265
|
+
}).strict().superRefine((residency, context) => {
|
|
266
|
+
for (const problem of modelResidencyProblems(residency)) {
|
|
267
|
+
context.addIssue({ code: "custom", path: problem.path, message: problem.message });
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
);
|
|
271
|
+
var ModelResidencyDeclaration = /* @__PURE__ */ defineSchema(
|
|
272
|
+
() => z.object({
|
|
273
|
+
geography: ModelProcessingGeography,
|
|
274
|
+
deploymentType: ModelDeploymentType,
|
|
275
|
+
regions: z.array(z.string().regex(REGION_PATTERN)).max(32).default([]),
|
|
276
|
+
evidence: z.object({
|
|
277
|
+
// Operator configuration states its own declaration or the provider
|
|
278
|
+
// documentation it relies on; other sources come from code or admins.
|
|
279
|
+
source: z.enum(["operator_declaration", "provider_documentation"]),
|
|
280
|
+
reference: z.string().trim().min(1).max(1e3),
|
|
281
|
+
verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable().default(null)
|
|
282
|
+
}).strict()
|
|
283
|
+
}).strict().superRefine((residency, context) => {
|
|
284
|
+
for (const problem of modelResidencyProblems(residency)) {
|
|
285
|
+
context.addIssue({ code: "custom", path: problem.path, message: problem.message });
|
|
286
|
+
}
|
|
287
|
+
})
|
|
288
|
+
);
|
|
289
|
+
var UNKNOWN_MODEL_RESIDENCY = Object.freeze({
|
|
290
|
+
geography: "unknown",
|
|
291
|
+
deploymentType: "unknown",
|
|
292
|
+
regions: Object.freeze([]),
|
|
293
|
+
evidence: Object.freeze({ source: "none", reference: null, verifiedAt: null })
|
|
294
|
+
});
|
|
295
|
+
function isEuResidency(residency) {
|
|
296
|
+
const parsed = ModelResidencyV1.safeParse(residency);
|
|
297
|
+
if (!parsed.success) return false;
|
|
298
|
+
return parsed.data.geography === "eu" && parsed.data.evidence.source !== "none" && parsed.data.evidence.reference !== null;
|
|
299
|
+
}
|
|
300
|
+
var ClientModelResidencyV1 = /* @__PURE__ */ defineSchema(
|
|
301
|
+
() => z.object({
|
|
302
|
+
geography: ModelProcessingGeography,
|
|
303
|
+
deploymentType: ModelDeploymentType,
|
|
304
|
+
regions: z.array(z.string()).max(32),
|
|
305
|
+
evidenceSource: ModelResidencyEvidenceSource,
|
|
306
|
+
eu: z.boolean()
|
|
307
|
+
}).strict()
|
|
308
|
+
);
|
|
309
|
+
function projectClientModelResidency(residency) {
|
|
310
|
+
return {
|
|
311
|
+
geography: residency.geography,
|
|
312
|
+
deploymentType: residency.deploymentType,
|
|
313
|
+
regions: [...residency.regions],
|
|
314
|
+
evidenceSource: residency.evidence.source,
|
|
315
|
+
eu: isEuResidency(residency)
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
var ModelCallProcessingResidencyV1 = /* @__PURE__ */ defineSchema(
|
|
319
|
+
() => z.object({
|
|
320
|
+
geography: ModelProcessingGeography,
|
|
321
|
+
deploymentType: ModelDeploymentType,
|
|
322
|
+
regions: z.array(z.string().regex(REGION_PATTERN)).max(32)
|
|
323
|
+
}).strict().superRefine((claim, context) => {
|
|
324
|
+
if (!recordedEuClaimHolds(claim)) {
|
|
325
|
+
context.addIssue({
|
|
326
|
+
code: "custom",
|
|
327
|
+
path: ["geography"],
|
|
328
|
+
message: "an eu claim needs an EU-capable deployment type and EU regions"
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
})
|
|
332
|
+
);
|
|
333
|
+
function recordedEuClaimHolds(claim) {
|
|
334
|
+
if (claim.geography !== "eu") return true;
|
|
335
|
+
if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(claim.deploymentType)) return false;
|
|
336
|
+
const allowedRegions = euRegionsFor(claim.deploymentType);
|
|
337
|
+
if (!allowedRegions) return true;
|
|
338
|
+
return claim.regions.length > 0 && claim.regions.every((region) => allowedRegions.includes(region));
|
|
339
|
+
}
|
|
340
|
+
function modelCallProcessingResidency(residency) {
|
|
341
|
+
const parsed = ModelResidencyV1.safeParse(residency);
|
|
342
|
+
return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);
|
|
343
|
+
}
|
|
344
|
+
function parseModelCallProcessingResidency(value) {
|
|
345
|
+
if (value === void 0 || value === null) return null;
|
|
346
|
+
const record = typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
347
|
+
const parsed = ModelCallProcessingResidencyV1.safeParse({
|
|
348
|
+
geography: record.geography,
|
|
349
|
+
deploymentType: record.deploymentType,
|
|
350
|
+
regions: record.regions
|
|
351
|
+
});
|
|
352
|
+
return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export {
|
|
356
|
+
MODEL_PROCESSING_GEOGRAPHIES,
|
|
357
|
+
ModelProcessingGeography,
|
|
358
|
+
MODEL_DEPLOYMENT_TYPES,
|
|
359
|
+
ModelDeploymentType,
|
|
360
|
+
EU_CAPABLE_DEPLOYMENT_TYPES,
|
|
361
|
+
EU_AZURE_REGIONS,
|
|
362
|
+
EU_AWS_REGIONS,
|
|
363
|
+
MODEL_RESIDENCY_EVIDENCE_SOURCES,
|
|
364
|
+
ModelResidencyEvidenceSource,
|
|
365
|
+
ModelResidencyEvidenceV1,
|
|
366
|
+
modelResidencyProblems,
|
|
367
|
+
NON_EU_BEDROCK_PROFILE_PREFIXES,
|
|
368
|
+
NON_EU_MODEL_HOSTS,
|
|
369
|
+
modelEndpointDeployment,
|
|
370
|
+
modelResidencyRouteProblems,
|
|
371
|
+
modelResidencyClaim,
|
|
372
|
+
ModelResidencyV1,
|
|
373
|
+
ModelResidencyDeclaration,
|
|
374
|
+
UNKNOWN_MODEL_RESIDENCY,
|
|
375
|
+
isEuResidency,
|
|
376
|
+
ClientModelResidencyV1,
|
|
377
|
+
projectClientModelResidency,
|
|
378
|
+
ModelCallProcessingResidencyV1,
|
|
379
|
+
modelCallProcessingResidency,
|
|
380
|
+
parseModelCallProcessingResidency
|
|
381
|
+
};
|
|
382
|
+
//# sourceMappingURL=chunk-A3LXWVYU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/model-residency.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\n\n/**\n * Where a model route processes prompts and outputs, and how we know.\n *\n * EU status is derived only from this record, never from a model name, label\n * or provider id. A route without a record is `unknown`, and unknown is never\n * EU. `eu` follows GDPR: EEA processing counts the same as EU processing, so a\n * provider's EU data zone (Azure Data Zone EU, Bedrock `eu.` inference\n * profiles) qualifies even when it can include Norway or Switzerland.\n */\nexport const MODEL_PROCESSING_GEOGRAPHIES = [\"eu\", \"us\", \"global\", \"other\", \"unknown\"] as const;\nexport const ModelProcessingGeography = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_PROCESSING_GEOGRAPHIES),\n);\nexport type ModelProcessingGeography = z.infer<typeof ModelProcessingGeography>;\n\n/** How the provider places the request. Global routing types can never be EU. */\nexport const MODEL_DEPLOYMENT_TYPES = [\n \"azure_regional\",\n \"azure_data_zone\",\n \"azure_global\",\n \"bedrock_regional\",\n \"bedrock_geo_profile\",\n \"bedrock_global_profile\",\n \"gateway\",\n \"subscription\",\n \"provider_default\",\n \"self_hosted\",\n \"unknown\",\n] as const;\nexport const ModelDeploymentType = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_DEPLOYMENT_TYPES),\n);\nexport type ModelDeploymentType = z.infer<typeof ModelDeploymentType>;\n\n/**\n * The only deployment types that can be EU. Anything else, including gateways,\n * subscriptions, global routing, unknown and any type added later, can never\n * be EU, whatever a declaration says.\n */\nexport const EU_CAPABLE_DEPLOYMENT_TYPES: readonly ModelDeploymentType[] = Object.freeze([\n \"azure_regional\",\n \"azure_data_zone\",\n \"bedrock_regional\",\n \"bedrock_geo_profile\",\n \"provider_default\",\n \"self_hosted\",\n]);\n\n/**\n * Cloud regions an EU claim may name, by deployment family: EEA regions plus\n * Switzerland, which provider EU data zones can include. A region outside\n * these lists rejects the claim (names only ever reject, never grant). The\n * United Kingdom is not in the EEA and is not listed.\n */\nexport const EU_AZURE_REGIONS: readonly string[] = Object.freeze([\n \"austriaeast\",\n \"belgiumcentral\",\n \"denmarkeast\",\n \"francecentral\",\n \"francesouth\",\n \"germanynorth\",\n \"germanywestcentral\",\n \"italynorth\",\n \"northeurope\",\n \"norwayeast\",\n \"norwaywest\",\n \"polandcentral\",\n \"spaincentral\",\n \"swedencentral\",\n \"swedensouth\",\n \"switzerlandnorth\",\n \"switzerlandwest\",\n \"westeurope\",\n]);\nexport const EU_AWS_REGIONS: readonly string[] = Object.freeze([\n \"eu-central-1\",\n \"eu-central-2\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-south-2\",\n \"eu-west-1\",\n \"eu-west-3\",\n]);\n\nfunction euRegionsFor(deploymentType: ModelDeploymentType): readonly string[] | null {\n if (deploymentType === \"azure_regional\" || deploymentType === \"azure_data_zone\") {\n return EU_AZURE_REGIONS;\n }\n if (deploymentType === \"bedrock_regional\" || deploymentType === \"bedrock_geo_profile\") {\n return EU_AWS_REGIONS;\n }\n return null;\n}\n\nexport const MODEL_RESIDENCY_EVIDENCE_SOURCES = [\n /** The deployment operator declared it in the reviewed catalog or environment. */\n \"operator_declaration\",\n /** Published provider documentation for this exact route type. */\n \"provider_documentation\",\n /** A provider API reported it (for example an Azure deployment SKU lookup). */\n \"provider_api\",\n /** A code-owned rule for a provider kind, reviewed with the code. */\n \"built_in_rule\",\n /** An organization admin declared it for their own connection. */\n \"admin_declaration\",\n /** Nothing establishes where this route processes data. */\n \"none\",\n] as const;\nexport const ModelResidencyEvidenceSource = /* @__PURE__ */ defineSchema(() =>\n z.enum(MODEL_RESIDENCY_EVIDENCE_SOURCES),\n);\nexport type ModelResidencyEvidenceSource = z.infer<typeof ModelResidencyEvidenceSource>;\n\nconst REGION_PATTERN = /^[a-z0-9][a-z0-9-]{0,62}$/u;\n\nexport const ModelResidencyEvidenceV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n source: ModelResidencyEvidenceSource,\n /** Where to check it: a document URL, resource and SKU, or rule description. */\n reference: z.string().trim().min(1).max(1000).nullable(),\n /** Date (or date-time) the evidence was last checked. */\n verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable(),\n })\n .strict(),\n);\nexport type ModelResidencyEvidenceV1 = z.infer<typeof ModelResidencyEvidenceV1>;\n\n/** Problems that make a residency record unable to claim its geography. */\nexport function modelResidencyProblems(residency: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n evidence: { source: ModelResidencyEvidenceSource; reference: string | null };\n}): { path: string[]; message: string }[] {\n const problems: { path: string[]; message: string }[] = [];\n if (residency.geography === \"unknown\") {\n return problems;\n }\n if (residency.evidence.source === \"none\" || residency.evidence.reference === null) {\n problems.push({\n path: [\"evidence\"],\n message: \"a known processing geography needs an evidence source and reference\",\n });\n }\n if (residency.geography !== \"eu\") return problems;\n if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(residency.deploymentType)) {\n problems.push({\n path: [\"deploymentType\"],\n message: `${residency.deploymentType} routing can leave the EU, so it cannot be declared eu`,\n });\n return problems;\n }\n const allowedRegions = euRegionsFor(residency.deploymentType);\n if (allowedRegions) {\n if (residency.regions.length === 0) {\n problems.push({ path: [\"regions\"], message: \"an eu claim needs the route's regions\" });\n }\n for (const region of residency.regions) {\n if (!allowedRegions.includes(region)) {\n problems.push({\n path: [\"regions\"],\n message: `${region} is not an EU region for ${residency.deploymentType}`,\n });\n }\n }\n }\n return problems;\n}\n\n/** Bedrock inference profile prefixes that route outside the EU. */\nexport const NON_EU_BEDROCK_PROFILE_PREFIXES: readonly string[] = Object.freeze([\n \"us.\",\n \"us-gov.\",\n \"apac.\",\n \"jp.\",\n \"au.\",\n \"ca.\",\n \"global.\",\n]);\n\n/**\n * Hosts that route globally or process outside the EU. An EU claim on a route\n * whose endpoint is one of these exact hosts is wrong. Exact match only:\n * `eu.api.openai.com`, for example, is a different endpoint.\n */\nexport const NON_EU_MODEL_HOSTS: readonly string[] = Object.freeze([\n \"ai-gateway.vercel.sh\",\n \"api.anthropic.com\",\n \"api.openai.com\",\n \"api.x.ai\",\n \"chatgpt.com\",\n \"openrouter.ai\",\n]);\n\nfunction hostOf(baseUrl: string): string | null {\n try {\n // A trailing dot names the same host (openrouter.ai. is openrouter.ai).\n return new URL(baseUrl).hostname.toLowerCase().replace(/\\.+$/u, \"\");\n } catch {\n return null;\n }\n}\n\n/**\n * The deployment an endpoint URL calls, from its `/deployments/{name}` path\n * segment (Azure OpenAI's deployment-path form), or null when no segment\n * holds or hides a `deployments` marker. Such an endpoint runs that\n * deployment whatever model the request body names.\n *\n * Only a plain path is read: empty segments are dropped, the marker matches in\n * any case (percent-encoded too), and the name and every segment after it must\n * be readable `[A-Za-z0-9._-]+` and not `.` or `..`. Anything else returns an\n * empty string, meaning a deployment that can't be read, which is refused\n * under EU. That covers a missing name, a second marker, a marker hidden in a\n * longer or encoded segment (`deployments;`, `x%2Fdeployments`), and a later\n * segment that could lead somewhere else once decoded (`..%2F`, `%5C`, `;`).\n */\nexport function modelEndpointDeployment(url: string | URL): string | null {\n let pathname: string;\n try {\n // The URL parser has already resolved plain and %2e dot segments.\n pathname = new URL(url).pathname;\n } catch {\n return null;\n }\n const segments = pathname\n .split(\"/\")\n .filter((raw) => raw !== \"\")\n .map((raw) => {\n let decoded: string | null;\n try {\n decoded = decodeURIComponent(raw);\n } catch {\n decoded = null;\n }\n return {\n decoded,\n marker: decoded?.toLowerCase() === \"deployments\",\n hidesMarker: hidesDeploymentsMarker(raw),\n plain: decoded !== null && isPlainDeploymentSegment(decoded),\n };\n });\n const first = segments.findIndex((segment) => segment.marker || segment.hidesMarker);\n if (first < 0) return null;\n const marker = segments[first]!;\n const name = segments[first + 1];\n if (!marker.marker || !name) return \"\";\n const rest = segments.slice(first + 1);\n if (!rest.every((segment) => segment.plain)) return \"\";\n // A second marker after the name (the name itself may be anything plain).\n if (rest.slice(1).some((segment) => segment.marker || segment.hidesMarker)) return \"\";\n return name.decoded!;\n}\n\n/** A readable, plain path segment: `[A-Za-z0-9._-]+`, not `.` or `..`. */\nfunction isPlainDeploymentSegment(segment: string): boolean {\n return /^[A-Za-z0-9._-]+$/u.test(segment) && segment !== \".\" && segment !== \"..\";\n}\n\n/**\n * Whether a raw segment holds or hides `deployments`: any part of it, decoded\n * as far as it goes and split on separators, starts with the word in any case\n * once leading punctuation is dropped.\n */\nfunction hidesDeploymentsMarker(raw: string): boolean {\n return looselyDecoded(raw)\n .split(/[/\\\\]/u)\n .some((part) =>\n part\n .replace(/^[^A-Za-z0-9]+/u, \"\")\n .toLowerCase()\n .startsWith(\"deployments\"),\n );\n}\n\n/** Every ASCII %XX escape decoded, repeatedly (to catch double encoding). */\nfunction looselyDecoded(raw: string): string {\n let value = raw;\n for (let round = 0; round < 4; round += 1) {\n const next = value.replace(/%([0-7][0-9a-f])/giu, (_, hex: string) =>\n String.fromCharCode(Number.parseInt(hex, 16)),\n );\n if (next === value) break;\n value = next;\n }\n return value;\n}\n\n/**\n * Problems that make an EU claim wrong for the route it is declared on: a\n * Bedrock upstream id with a non-EU inference profile prefix, a Bedrock\n * geographic profile that is not `eu.`, an endpoint on a known global host,\n * or a deployment-path endpoint that calls a different deployment than the\n * model. Every resolver applies it. Names only ever reject a claim, never\n * grant one.\n */\nexport function modelResidencyRouteProblems(\n residency: { geography: ModelProcessingGeography; deploymentType: ModelDeploymentType },\n route: { upstreamModelId?: string | null | undefined; baseUrl?: string | null | undefined },\n): { path: string[]; message: string }[] {\n if (residency.geography !== \"eu\") return [];\n const problems: { path: string[]; message: string }[] = [];\n // Profile prefixes compare case-insensitively (US.anthropic... is us.).\n const upstreamModelId = (route.upstreamModelId ?? \"\").toLowerCase();\n if (residency.deploymentType.startsWith(\"bedrock_\")) {\n const prefix = NON_EU_BEDROCK_PROFILE_PREFIXES.find((candidate) =>\n upstreamModelId.startsWith(candidate),\n );\n if (prefix) {\n problems.push({\n path: [\"upstreamModelId\"],\n message: `${upstreamModelId} is a ${prefix} inference profile, which routes outside the EU`,\n });\n } else if (\n residency.deploymentType === \"bedrock_geo_profile\" &&\n !upstreamModelId.startsWith(\"eu.\")\n ) {\n problems.push({\n path: [\"upstreamModelId\"],\n message: `an eu bedrock_geo_profile needs an eu. inference profile, not ${upstreamModelId}`,\n });\n }\n }\n const host = route.baseUrl ? hostOf(route.baseUrl) : null;\n if (host && NON_EU_MODEL_HOSTS.includes(host)) {\n problems.push({\n path: [\"baseUrl\"],\n message: `${host} routes outside the EU, so a route on it cannot be declared eu`,\n });\n }\n const deployment = route.baseUrl ? modelEndpointDeployment(route.baseUrl) : null;\n if (deployment === \"\") {\n problems.push({\n path: [\"baseUrl\"],\n message:\n \"the endpoint calls a deployment whose name can't be read, so it cannot be declared eu\",\n });\n } else if (deployment !== null && deployment !== (route.upstreamModelId ?? \"\")) {\n problems.push({\n path: [\"baseUrl\"],\n message: `the endpoint calls deployment ${deployment}, not ${route.upstreamModelId ?? \"this model\"}, so only ${deployment} can be declared eu on it`,\n });\n }\n return problems;\n}\n\n/** The fields that move processing; evidence text and dates do not. */\nexport function modelResidencyClaim(residency: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n}): {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: string[];\n} {\n return {\n geography: residency.geography,\n deploymentType: residency.deploymentType,\n regions: [...new Set(residency.regions)].sort(),\n };\n}\n\nexport const ModelResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n /** Provider regions where the endpoint or processing lives, when known. */\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32),\n evidence: ModelResidencyEvidenceV1,\n })\n .strict()\n .superRefine((residency, context) => {\n for (const problem of modelResidencyProblems(residency)) {\n context.addIssue({ code: \"custom\", path: problem.path, message: problem.message });\n }\n }),\n);\nexport type ModelResidencyV1 = z.infer<typeof ModelResidencyV1>;\n\n/** Operator-facing declaration: the same record, with optional regions and dates. */\nexport const ModelResidencyDeclaration = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32).default([]),\n evidence: z\n .object({\n // Operator configuration states its own declaration or the provider\n // documentation it relies on; other sources come from code or admins.\n source: z.enum([\"operator_declaration\", \"provider_documentation\"]),\n reference: z.string().trim().min(1).max(1000),\n verifiedAt: z.union([z.iso.date(), z.iso.datetime()]).nullable().default(null),\n })\n .strict(),\n })\n .strict()\n .superRefine((residency, context) => {\n for (const problem of modelResidencyProblems(residency)) {\n context.addIssue({ code: \"custom\", path: problem.path, message: problem.message });\n }\n }),\n);\nexport type ModelResidencyDeclaration = z.input<typeof ModelResidencyDeclaration>;\n\n/** The record for a route nothing describes. Unknown is never EU. */\nexport const UNKNOWN_MODEL_RESIDENCY: ModelResidencyV1 = Object.freeze({\n geography: \"unknown\",\n deploymentType: \"unknown\",\n regions: Object.freeze([]) as unknown as string[],\n evidence: Object.freeze({ source: \"none\", reference: null, verifiedAt: null }),\n}) as ModelResidencyV1;\n\n/**\n * The single EU predicate. Anything malformed, missing, unknown, globally\n * routed or without evidence is not EU.\n */\nexport function isEuResidency(residency: unknown): boolean {\n const parsed = ModelResidencyV1.safeParse(residency);\n if (!parsed.success) return false;\n return (\n parsed.data.geography === \"eu\" &&\n parsed.data.evidence.source !== \"none\" &&\n parsed.data.evidence.reference !== null\n );\n}\n\n/** Client-safe projection: no evidence reference text, which may name internal resources. */\nexport const ClientModelResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string()).max(32),\n evidenceSource: ModelResidencyEvidenceSource,\n eu: z.boolean(),\n })\n .strict(),\n);\nexport type ClientModelResidencyV1 = z.infer<typeof ClientModelResidencyV1>;\n\nexport function projectClientModelResidency(residency: ModelResidencyV1): ClientModelResidencyV1 {\n return {\n geography: residency.geography,\n deploymentType: residency.deploymentType,\n regions: [...residency.regions],\n evidenceSource: residency.evidence.source,\n eu: isEuResidency(residency),\n };\n}\n\n/**\n * Where the route that served one model call processes data, as recorded on\n * the call's `model_call_facts` row and its durable `agent.model.usage` event:\n * the residency claim only. Evidence is never recorded, because its reference\n * text may name internal resources. An eu claim must still satisfy the same\n * deployment-type and region rules as the route record it came from; a stored\n * value that does not is read back as unknown, never as eu.\n */\nexport const ModelCallProcessingResidencyV1 = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n geography: ModelProcessingGeography,\n deploymentType: ModelDeploymentType,\n regions: z.array(z.string().regex(REGION_PATTERN)).max(32),\n })\n .strict()\n .superRefine((claim, context) => {\n if (!recordedEuClaimHolds(claim)) {\n context.addIssue({\n code: \"custom\",\n path: [\"geography\"],\n message: \"an eu claim needs an EU-capable deployment type and EU regions\",\n });\n }\n }),\n);\nexport type ModelCallProcessingResidencyV1 = z.infer<typeof ModelCallProcessingResidencyV1>;\n\n/**\n * Whether a recorded claim may say eu: the deployment type is EU-capable and,\n * for cloud families with known EU regions, it names at least one region and\n * every region is one of them. Non-eu claims always hold.\n */\nfunction recordedEuClaimHolds(claim: {\n geography: ModelProcessingGeography;\n deploymentType: ModelDeploymentType;\n regions: readonly string[];\n}): boolean {\n if (claim.geography !== \"eu\") return true;\n if (!EU_CAPABLE_DEPLOYMENT_TYPES.includes(claim.deploymentType)) return false;\n const allowedRegions = euRegionsFor(claim.deploymentType);\n if (!allowedRegions) return true;\n return (\n claim.regions.length > 0 && claim.regions.every((region) => allowedRegions.includes(region))\n );\n}\n\n/**\n * The recorded processing residency for a call served by a route with this\n * residency record. A missing or invalid record is recorded as unknown.\n */\nexport function modelCallProcessingResidency(\n residency: ModelResidencyV1 | null | undefined,\n): ModelCallProcessingResidencyV1 {\n const parsed = ModelResidencyV1.safeParse(residency);\n return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);\n}\n\n/**\n * Read a recorded processing residency (a fact column or event payload field).\n * Absent or null means the call was recorded before calls carried one. A value\n * that is present but malformed, or an eu claim that breaks the eu rules\n * (see `ModelCallProcessingResidencyV1`), is unknown. Any other field, such as\n * evidence, is dropped.\n */\nexport function parseModelCallProcessingResidency(\n value: unknown,\n): ModelCallProcessingResidencyV1 | null {\n if (value === undefined || value === null) return null;\n const record =\n typeof value === \"object\" && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n const parsed = ModelCallProcessingResidencyV1.safeParse({\n geography: record.geography,\n deploymentType: record.deploymentType,\n regions: record.regions,\n });\n return modelResidencyClaim(parsed.success ? parsed.data : UNKNOWN_MODEL_RESIDENCY);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defineSchema
|
|
3
|
+
} from "./chunk-56SNIMDO.js";
|
|
4
|
+
|
|
5
|
+
// src/primitives.ts
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
var string = /* @__PURE__ */ defineSchema(() => z.string());
|
|
8
|
+
var boolean = /* @__PURE__ */ defineSchema(() => z.boolean());
|
|
9
|
+
var uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());
|
|
10
|
+
var nonnegativeInteger = /* @__PURE__ */ defineSchema(
|
|
11
|
+
() => z.number().int().nonnegative()
|
|
12
|
+
);
|
|
13
|
+
var positiveInteger = /* @__PURE__ */ defineSchema(() => z.number().int().positive());
|
|
14
|
+
var nullableString = /* @__PURE__ */ defineSchema(() => string.nullable());
|
|
15
|
+
var nonEmptyString = /* @__PURE__ */ defineSchema(() => string.min(1));
|
|
16
|
+
var nullableUuid = /* @__PURE__ */ defineSchema(() => uuid.nullable());
|
|
17
|
+
var optionalBoolean = /* @__PURE__ */ defineSchema(() => boolean.optional());
|
|
18
|
+
var optionalUuid = /* @__PURE__ */ defineSchema(() => uuid.optional());
|
|
19
|
+
var dateTime = /* @__PURE__ */ defineSchema(() => string.datetime());
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
string,
|
|
23
|
+
boolean,
|
|
24
|
+
uuid,
|
|
25
|
+
nonnegativeInteger,
|
|
26
|
+
positiveInteger,
|
|
27
|
+
nullableString,
|
|
28
|
+
nonEmptyString,
|
|
29
|
+
nullableUuid,
|
|
30
|
+
optionalBoolean,
|
|
31
|
+
optionalUuid,
|
|
32
|
+
dateTime
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=chunk-AQYDZUJV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\n\n/**\n * Reuse common validators instead of retaining thousands of identical Zod\n * instances. These are ordinary eager schemas, not a validation cache. Zod's\n * builder methods return derived schemas; attach field-specific metadata to a\n * derived schema rather than mutating a shared primitive's registry entry.\n */\nexport const string = /* @__PURE__ */ defineSchema(() => z.string());\nexport const boolean = /* @__PURE__ */ defineSchema(() => z.boolean());\nexport const uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());\nexport const nonnegativeInteger = /* @__PURE__ */ defineSchema(() =>\n z.number().int().nonnegative(),\n);\nexport const positiveInteger = /* @__PURE__ */ defineSchema(() => z.number().int().positive());\nexport const nullableString = /* @__PURE__ */ defineSchema(() => string.nullable());\nexport const nonEmptyString = /* @__PURE__ */ defineSchema(() => string.min(1));\nexport const nullableUuid = /* @__PURE__ */ defineSchema(() => uuid.nullable());\nexport const optionalBoolean = /* @__PURE__ */ defineSchema(() => boolean.optional());\nexport const optionalUuid = /* @__PURE__ */ defineSchema(() => uuid.optional());\nexport const dateTime = /* @__PURE__ */ defineSchema(() => string.datetime());\n"],"mappings":";;;;;AAAA,SAAS,SAAS;AASX,IAAM,SAAyB,6BAAa,MAAM,EAAE,OAAO,CAAC;AAC5D,IAAM,UAA0B,6BAAa,MAAM,EAAE,QAAQ,CAAC;AAC9D,IAAM,OAAuB,6BAAa,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AACjE,IAAM,qBAAqC;AAAA,EAAa,MAC7D,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAC/B;AACO,IAAM,kBAAkC,6BAAa,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;AACtF,IAAM,iBAAiC,6BAAa,MAAM,OAAO,SAAS,CAAC;AAC3E,IAAM,iBAAiC,6BAAa,MAAM,OAAO,IAAI,CAAC,CAAC;AACvE,IAAM,eAA+B,6BAAa,MAAM,KAAK,SAAS,CAAC;AACvE,IAAM,kBAAkC,6BAAa,MAAM,QAAQ,SAAS,CAAC;AAC7E,IAAM,eAA+B,6BAAa,MAAM,KAAK,SAAS,CAAC;AACvE,IAAM,WAA2B,6BAAa,MAAM,OAAO,SAAS,CAAC;","names":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import {
|
|
2
|
+
dateTime,
|
|
3
|
+
nullableUuid,
|
|
4
|
+
optionalUuid,
|
|
5
|
+
positiveInteger,
|
|
6
|
+
string,
|
|
7
|
+
uuid
|
|
8
|
+
} from "./chunk-AQYDZUJV.js";
|
|
9
|
+
import {
|
|
10
|
+
defineSchema
|
|
11
|
+
} from "./chunk-56SNIMDO.js";
|
|
12
|
+
|
|
13
|
+
// src/canonical-human-identities.ts
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
var CanonicalHumanIdentityStatus = /* @__PURE__ */ defineSchema(
|
|
16
|
+
() => z.enum(["active", "recovery_required", "disputed", "disabled"])
|
|
17
|
+
);
|
|
18
|
+
var CanonicalHumanLoginBindingStatus = /* @__PURE__ */ defineSchema(
|
|
19
|
+
() => z.enum(["active", "recovery_pending", "stale", "disputed", "revoked"])
|
|
20
|
+
);
|
|
21
|
+
var CanonicalHumanRecoveryState = /* @__PURE__ */ defineSchema(
|
|
22
|
+
() => z.enum(["ready", "recovery_required", "lost_factor", "disputed", "disabled"])
|
|
23
|
+
);
|
|
24
|
+
var CanonicalHumanLoginBinding = /* @__PURE__ */ defineSchema(
|
|
25
|
+
() => z.object({
|
|
26
|
+
id: uuid,
|
|
27
|
+
providerId: z.string().min(1).max(128),
|
|
28
|
+
providerAccountId: z.string().min(1).max(1024),
|
|
29
|
+
status: CanonicalHumanLoginBindingStatus,
|
|
30
|
+
revision: positiveInteger,
|
|
31
|
+
verifiedAt: dateTime,
|
|
32
|
+
lastVerifiedAt: dateTime,
|
|
33
|
+
revokedAt: z.string().datetime().nullable(),
|
|
34
|
+
createdAt: dateTime,
|
|
35
|
+
updatedAt: dateTime
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
var CanonicalHumanIdentityProjection = /* @__PURE__ */ defineSchema(
|
|
39
|
+
() => z.object({
|
|
40
|
+
activeIdentity: z.object({
|
|
41
|
+
id: uuid,
|
|
42
|
+
displayName: z.string().min(1).max(256),
|
|
43
|
+
status: CanonicalHumanIdentityStatus,
|
|
44
|
+
identityRevision: positiveInteger,
|
|
45
|
+
authRevision: positiveInteger,
|
|
46
|
+
activeLoginBindingId: nullableUuid,
|
|
47
|
+
recoveryState: CanonicalHumanRecoveryState,
|
|
48
|
+
createdAt: dateTime,
|
|
49
|
+
updatedAt: dateTime
|
|
50
|
+
}),
|
|
51
|
+
loginBindings: z.array(CanonicalHumanLoginBinding).max(64)
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
var OperationFields = {
|
|
55
|
+
operationId: optionalUuid,
|
|
56
|
+
expectedIdentityRevision: positiveInteger,
|
|
57
|
+
reason: string.trim().min(1).max(512)
|
|
58
|
+
};
|
|
59
|
+
var LinkCanonicalHumanLoginBindingRequest = /* @__PURE__ */ defineSchema(
|
|
60
|
+
() => z.object({
|
|
61
|
+
...OperationFields,
|
|
62
|
+
providerId: string.trim().min(1).max(128),
|
|
63
|
+
providerAccountId: string.trim().min(1).max(1024)
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
var CanonicalHumanBindingOperationRequest = /* @__PURE__ */ defineSchema(
|
|
67
|
+
() => z.object({
|
|
68
|
+
...OperationFields
|
|
69
|
+
})
|
|
70
|
+
);
|
|
71
|
+
var CanonicalHumanIdentityMutationOutcome = /* @__PURE__ */ defineSchema(
|
|
72
|
+
() => z.enum(["applied", "lost_factor", "disputed"])
|
|
73
|
+
);
|
|
74
|
+
var CanonicalHumanIdentityMutationResponse = /* @__PURE__ */ defineSchema(
|
|
75
|
+
() => z.object({
|
|
76
|
+
outcome: CanonicalHumanIdentityMutationOutcome,
|
|
77
|
+
operationId: uuid,
|
|
78
|
+
identity: CanonicalHumanIdentityProjection
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
CanonicalHumanIdentityStatus,
|
|
84
|
+
CanonicalHumanLoginBindingStatus,
|
|
85
|
+
CanonicalHumanRecoveryState,
|
|
86
|
+
CanonicalHumanLoginBinding,
|
|
87
|
+
CanonicalHumanIdentityProjection,
|
|
88
|
+
LinkCanonicalHumanLoginBindingRequest,
|
|
89
|
+
CanonicalHumanBindingOperationRequest,
|
|
90
|
+
CanonicalHumanIdentityMutationOutcome,
|
|
91
|
+
CanonicalHumanIdentityMutationResponse
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=chunk-BHCEVVUP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canonical-human-identities.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nexport const CanonicalHumanIdentityStatus = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"active\", \"recovery_required\", \"disputed\", \"disabled\"]),\n);\nexport type CanonicalHumanIdentityStatus = z.infer<typeof CanonicalHumanIdentityStatus>;\n\nexport const CanonicalHumanLoginBindingStatus = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"active\", \"recovery_pending\", \"stale\", \"disputed\", \"revoked\"]),\n);\nexport type CanonicalHumanLoginBindingStatus = z.infer<typeof CanonicalHumanLoginBindingStatus>;\n\nexport const CanonicalHumanRecoveryState = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"ready\", \"recovery_required\", \"lost_factor\", \"disputed\", \"disabled\"]),\n);\nexport type CanonicalHumanRecoveryState = z.infer<typeof CanonicalHumanRecoveryState>;\n\nexport const CanonicalHumanLoginBinding = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: primitives.uuid,\n providerId: z.string().min(1).max(128),\n providerAccountId: z.string().min(1).max(1024),\n status: CanonicalHumanLoginBindingStatus,\n revision: primitives.positiveInteger,\n verifiedAt: primitives.dateTime,\n lastVerifiedAt: primitives.dateTime,\n revokedAt: z.string().datetime().nullable(),\n createdAt: primitives.dateTime,\n updatedAt: primitives.dateTime,\n }),\n);\nexport type CanonicalHumanLoginBinding = z.infer<typeof CanonicalHumanLoginBinding>;\n\nexport const CanonicalHumanIdentityProjection = /* @__PURE__ */ defineSchema(() =>\n z.object({\n activeIdentity: z.object({\n id: primitives.uuid,\n displayName: z.string().min(1).max(256),\n status: CanonicalHumanIdentityStatus,\n identityRevision: primitives.positiveInteger,\n authRevision: primitives.positiveInteger,\n activeLoginBindingId: primitives.nullableUuid,\n recoveryState: CanonicalHumanRecoveryState,\n createdAt: primitives.dateTime,\n updatedAt: primitives.dateTime,\n }),\n loginBindings: z.array(CanonicalHumanLoginBinding).max(64),\n }),\n);\nexport type CanonicalHumanIdentityProjection = z.infer<typeof CanonicalHumanIdentityProjection>;\n\nconst OperationFields = {\n operationId: primitives.optionalUuid,\n expectedIdentityRevision: primitives.positiveInteger,\n reason: primitives.string.trim().min(1).max(512),\n} as const;\n\nexport const LinkCanonicalHumanLoginBindingRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n ...OperationFields,\n providerId: primitives.string.trim().min(1).max(128),\n providerAccountId: primitives.string.trim().min(1).max(1024),\n }),\n);\nexport type LinkCanonicalHumanLoginBindingRequest = z.infer<\n typeof LinkCanonicalHumanLoginBindingRequest\n>;\n\nexport const CanonicalHumanBindingOperationRequest = /* @__PURE__ */ defineSchema(() =>\n z.object({\n ...OperationFields,\n }),\n);\nexport type CanonicalHumanBindingOperationRequest = z.infer<\n typeof CanonicalHumanBindingOperationRequest\n>;\n\nexport const CanonicalHumanIdentityMutationOutcome = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"applied\", \"lost_factor\", \"disputed\"]),\n);\nexport type CanonicalHumanIdentityMutationOutcome = z.infer<\n typeof CanonicalHumanIdentityMutationOutcome\n>;\n\nexport const CanonicalHumanIdentityMutationResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({\n outcome: CanonicalHumanIdentityMutationOutcome,\n operationId: primitives.uuid,\n identity: CanonicalHumanIdentityProjection,\n }),\n);\nexport type CanonicalHumanIdentityMutationResponse = z.infer<\n typeof CanonicalHumanIdentityMutationResponse\n>;\n"],"mappings":";;;;;;;;;;;;;AAEA,SAAS,SAAS;AAEX,IAAM,+BAA+C;AAAA,EAAa,MACvE,EAAE,KAAK,CAAC,UAAU,qBAAqB,YAAY,UAAU,CAAC;AAChE;AAGO,IAAM,mCAAmD;AAAA,EAAa,MAC3E,EAAE,KAAK,CAAC,UAAU,oBAAoB,SAAS,YAAY,SAAS,CAAC;AACvE;AAGO,IAAM,8BAA8C;AAAA,EAAa,MACtE,EAAE,KAAK,CAAC,SAAS,qBAAqB,eAAe,YAAY,UAAU,CAAC;AAC9E;AAGO,IAAM,6BAA6C;AAAA,EAAa,MACrE,EAAE,OAAO;AAAA,IACP,IAAe;AAAA,IACf,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACrC,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,IAC7C,QAAQ;AAAA,IACR,UAAqB;AAAA,IACrB,YAAuB;AAAA,IACvB,gBAA2B;AAAA,IAC3B,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,IAC1C,WAAsB;AAAA,IACtB,WAAsB;AAAA,EACxB,CAAC;AACH;AAGO,IAAM,mCAAmD;AAAA,EAAa,MAC3E,EAAE,OAAO;AAAA,IACP,gBAAgB,EAAE,OAAO;AAAA,MACvB,IAAe;AAAA,MACf,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MACtC,QAAQ;AAAA,MACR,kBAA6B;AAAA,MAC7B,cAAyB;AAAA,MACzB,sBAAiC;AAAA,MACjC,eAAe;AAAA,MACf,WAAsB;AAAA,MACtB,WAAsB;AAAA,IACxB,CAAC;AAAA,IACD,eAAe,EAAE,MAAM,0BAA0B,EAAE,IAAI,EAAE;AAAA,EAC3D,CAAC;AACH;AAGA,IAAM,kBAAkB;AAAA,EACtB,aAAwB;AAAA,EACxB,0BAAqC;AAAA,EACrC,QAAmB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACjD;AAEO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,OAAO;AAAA,IACP,GAAG;AAAA,IACH,YAAuB,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACnD,mBAA8B,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,EAC7D,CAAC;AACH;AAKO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,OAAO;AAAA,IACP,GAAG;AAAA,EACL,CAAC;AACH;AAKO,IAAM,wCAAwD;AAAA,EAAa,MAChF,EAAE,KAAK,CAAC,WAAW,eAAe,UAAU,CAAC;AAC/C;AAKO,IAAM,yCAAyD;AAAA,EAAa,MACjF,EAAE,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAwB;AAAA,IACxB,UAAU;AAAA,EACZ,CAAC;AACH;","names":[]}
|