@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,167 @@
|
|
|
1
|
+
import * as primitives from "./primitives";
|
|
2
|
+
import { defineSchema } from "./define-schema";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { TurnExecutionPolicyV1 } from "./index";
|
|
5
|
+
|
|
6
|
+
export const TURN_SERVING_POLICY_METADATA_KEY = "turnServingPolicyV1" as const;
|
|
7
|
+
export const TURN_PENDING_SERVING_POLICY_METADATA_KEY = "turnPendingServingPolicyV1" as const;
|
|
8
|
+
|
|
9
|
+
const ServingReason = /* @__PURE__ */ defineSchema(() =>
|
|
10
|
+
z.enum([
|
|
11
|
+
"initial",
|
|
12
|
+
"sticky",
|
|
13
|
+
"pinned",
|
|
14
|
+
"reselected_cold",
|
|
15
|
+
"failover_same_provider",
|
|
16
|
+
"failover_cross_provider",
|
|
17
|
+
"return_to_preferred",
|
|
18
|
+
]),
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/** One immutable serving receipt, not a replacement for the accepted policy.
|
|
22
|
+
* The lazy reference keeps the contracts barrel free of initialization cycles.
|
|
23
|
+
* Connection ids are references only; no credential material belongs here.
|
|
24
|
+
*/
|
|
25
|
+
export const TurnServingPolicyV1 = /* @__PURE__ */ defineSchema(() =>
|
|
26
|
+
z
|
|
27
|
+
.object({
|
|
28
|
+
schemaVersion: z.literal(1),
|
|
29
|
+
policy: z.lazy(() => TurnExecutionPolicyV1),
|
|
30
|
+
executionGeneration: primitives.positiveInteger.max(Number.MAX_SAFE_INTEGER),
|
|
31
|
+
/** Selection reference; advisory until the generation is placed. */
|
|
32
|
+
connectionId: primitives.uuid,
|
|
33
|
+
reason: ServingReason,
|
|
34
|
+
/** Highest session history position at recording, including inactive rows.
|
|
35
|
+
* Fractional positions exist in historical compaction layouts. A revision
|
|
36
|
+
* applies strictly AFTER this boundary, never to the row at the boundary.
|
|
37
|
+
*/
|
|
38
|
+
historyPosition: z.number().finite().nonnegative(),
|
|
39
|
+
})
|
|
40
|
+
.strict()
|
|
41
|
+
.superRefine((revision, context) => {
|
|
42
|
+
if (revision.policy.credentialRestriction !== undefined) {
|
|
43
|
+
context.addIssue({
|
|
44
|
+
code: "custom",
|
|
45
|
+
path: ["policy", "credentialRestriction"],
|
|
46
|
+
message: "Restricted policies cannot switch",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (
|
|
50
|
+
revision.policy.billing.metering !== "external" ||
|
|
51
|
+
revision.policy.credentialSource.kind === "deployment"
|
|
52
|
+
) {
|
|
53
|
+
context.addIssue({
|
|
54
|
+
code: "custom",
|
|
55
|
+
path: ["policy", "billing"],
|
|
56
|
+
message: "Serving revisions require externally funded connected access",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}),
|
|
60
|
+
);
|
|
61
|
+
export type TurnServingPolicyV1 = z.infer<typeof TurnServingPolicyV1>;
|
|
62
|
+
|
|
63
|
+
/** A recovery proposal, NOT provenance. Its history boundary is assigned only
|
|
64
|
+
* when a newer claimed generation commits a serving revision. C2 will stage it
|
|
65
|
+
* atomically with recovery using the transaction-local database helper.
|
|
66
|
+
*/
|
|
67
|
+
export const TurnPendingServingPolicyV1 = /* @__PURE__ */ defineSchema(() =>
|
|
68
|
+
z
|
|
69
|
+
.object({
|
|
70
|
+
schemaVersion: z.literal(1),
|
|
71
|
+
sourceExecutionGeneration: primitives.positiveInteger.max(Number.MAX_SAFE_INTEGER),
|
|
72
|
+
sourceAttemptId: primitives.uuid,
|
|
73
|
+
policy: z.lazy(() => TurnExecutionPolicyV1),
|
|
74
|
+
connectionId: primitives.uuid,
|
|
75
|
+
reason: ServingReason,
|
|
76
|
+
})
|
|
77
|
+
.strict()
|
|
78
|
+
.superRefine((target, context) => {
|
|
79
|
+
const candidate = TurnServingPolicyV1.safeParse({
|
|
80
|
+
schemaVersion: 1,
|
|
81
|
+
policy: target.policy,
|
|
82
|
+
connectionId: target.connectionId,
|
|
83
|
+
reason: target.reason,
|
|
84
|
+
executionGeneration: target.sourceExecutionGeneration,
|
|
85
|
+
historyPosition: 0,
|
|
86
|
+
});
|
|
87
|
+
if (!candidate.success)
|
|
88
|
+
context.addIssue({ code: "custom", message: "Invalid pending serving selection" });
|
|
89
|
+
}),
|
|
90
|
+
);
|
|
91
|
+
export type TurnPendingServingPolicyV1 = z.infer<typeof TurnPendingServingPolicyV1>;
|
|
92
|
+
|
|
93
|
+
export function readTurnPendingServingPolicyV1(
|
|
94
|
+
metadata: unknown,
|
|
95
|
+
): TurnPendingServingPolicyV1 | null {
|
|
96
|
+
if (metadata === null || metadata === undefined) return null;
|
|
97
|
+
if (typeof metadata !== "object" || Array.isArray(metadata))
|
|
98
|
+
throw new Error("Malformed pending serving metadata");
|
|
99
|
+
if (!Object.prototype.hasOwnProperty.call(metadata, TURN_PENDING_SERVING_POLICY_METADATA_KEY))
|
|
100
|
+
return null;
|
|
101
|
+
const parsed = TurnPendingServingPolicyV1.safeParse(
|
|
102
|
+
(metadata as Record<string, unknown>)[TURN_PENDING_SERVING_POLICY_METADATA_KEY],
|
|
103
|
+
);
|
|
104
|
+
if (!parsed.success) throw new Error("Malformed pending serving policy");
|
|
105
|
+
return parsed.data;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const ServingRevisions = /* @__PURE__ */ defineSchema(() =>
|
|
109
|
+
z
|
|
110
|
+
.array(TurnServingPolicyV1)
|
|
111
|
+
.nonempty()
|
|
112
|
+
.superRefine((revisions, context) => {
|
|
113
|
+
for (let index = 1; index < revisions.length; index++) {
|
|
114
|
+
const previous = revisions[index - 1]!;
|
|
115
|
+
const current = revisions[index]!;
|
|
116
|
+
if (
|
|
117
|
+
current.executionGeneration <= previous.executionGeneration ||
|
|
118
|
+
current.historyPosition < previous.historyPosition
|
|
119
|
+
) {
|
|
120
|
+
context.addIssue({
|
|
121
|
+
code: "custom",
|
|
122
|
+
path: [index],
|
|
123
|
+
message: "Serving revisions must advance generation and never move history backwards",
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
export type TurnServingPolicyReadV1 =
|
|
131
|
+
| { kind: "absent" }
|
|
132
|
+
| { kind: "valid"; revisions: TurnServingPolicyV1[] };
|
|
133
|
+
|
|
134
|
+
/** Only absence is legacy. Malformed present metadata fails closed, without
|
|
135
|
+
* reflecting untrusted values (which might contain credentials) into errors.
|
|
136
|
+
*/
|
|
137
|
+
export function readTurnServingPolicyV1(metadata: unknown): TurnServingPolicyReadV1 {
|
|
138
|
+
if (metadata === null || metadata === undefined) return { kind: "absent" };
|
|
139
|
+
if (typeof metadata !== "object" || Array.isArray(metadata)) {
|
|
140
|
+
throw new Error("Malformed turn serving policy metadata");
|
|
141
|
+
}
|
|
142
|
+
if (!Object.prototype.hasOwnProperty.call(metadata, TURN_SERVING_POLICY_METADATA_KEY))
|
|
143
|
+
return { kind: "absent" };
|
|
144
|
+
const parsed = ServingRevisions.safeParse(
|
|
145
|
+
(metadata as Record<string, unknown>)[TURN_SERVING_POLICY_METADATA_KEY],
|
|
146
|
+
);
|
|
147
|
+
if (!parsed.success) throw new Error("Malformed turn serving policy revisions");
|
|
148
|
+
return { kind: "valid", revisions: parsed.data };
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/** D-39: the first receipt establishes the baseline. Reclaims, account-only
|
|
152
|
+
* rotations and reasoning changes do not spend the model/provider bound.
|
|
153
|
+
* Combine this with the all-provider refusal count at the recovery boundary.
|
|
154
|
+
*/
|
|
155
|
+
export function countTurnServingPolicyChangesV1(revisions: readonly TurnServingPolicyV1[]): number {
|
|
156
|
+
let count = 0;
|
|
157
|
+
for (let index = 1; index < revisions.length; index++) {
|
|
158
|
+
const previous = revisions[index - 1]!.policy;
|
|
159
|
+
const current = revisions[index]!.policy;
|
|
160
|
+
if (
|
|
161
|
+
previous.providerId !== current.providerId ||
|
|
162
|
+
previous.productModelId !== current.productModelId
|
|
163
|
+
)
|
|
164
|
+
count++;
|
|
165
|
+
}
|
|
166
|
+
return count;
|
|
167
|
+
}
|
package/src/usage-allowances.ts
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
|
+
import * as primitives from "./primitives";
|
|
2
|
+
import { defineSchema } from "./define-schema";
|
|
1
3
|
import { z } from "zod";
|
|
2
4
|
|
|
3
5
|
/** Credit amounts are integer USD micros (1 USD = 1,000,000), never floating-point dollars. */
|
|
4
|
-
export const AllowanceCredits =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
6
|
+
export const AllowanceCredits = /* @__PURE__ */ defineSchema(() =>
|
|
7
|
+
primitives.nonnegativeInteger.safe(),
|
|
8
|
+
);
|
|
9
|
+
const Version = /* @__PURE__ */ defineSchema(() => primitives.nonnegativeInteger.safe());
|
|
10
|
+
const Timestamp = /* @__PURE__ */ defineSchema(() => primitives.string.datetime({ offset: true }));
|
|
11
|
+
const OperationId = /* @__PURE__ */ defineSchema(() =>
|
|
12
|
+
z
|
|
13
|
+
.string()
|
|
14
|
+
.min(1)
|
|
15
|
+
.max(256)
|
|
16
|
+
.refine(
|
|
17
|
+
(value) =>
|
|
18
|
+
value.trim().length > 0 &&
|
|
19
|
+
!value.includes("\0") &&
|
|
20
|
+
!/[\uD800-\uDFFF]/u.test(value) &&
|
|
21
|
+
new TextEncoder().encode(value).byteLength <= 256,
|
|
22
|
+
),
|
|
23
|
+
);
|
|
24
|
+
const SubjectId = /* @__PURE__ */ defineSchema(() =>
|
|
25
|
+
z
|
|
26
|
+
.string()
|
|
27
|
+
.min(1)
|
|
28
|
+
.max(1024)
|
|
29
|
+
.refine((value) => !value.includes("\0")),
|
|
30
|
+
);
|
|
23
31
|
|
|
24
32
|
/**
|
|
25
33
|
* A share scales with the current workspace pool, including unexpired grants.
|
|
@@ -28,160 +36,228 @@ const SubjectId = z
|
|
|
28
36
|
* happens before the next call, after actual usage is settled.
|
|
29
37
|
* null removes the override and uses the workspace's memberDefault.
|
|
30
38
|
*/
|
|
31
|
-
export const MemberAllowanceRule =
|
|
32
|
-
z.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
export const MemberAllowanceRule = /* @__PURE__ */ defineSchema(() =>
|
|
40
|
+
z.union([
|
|
41
|
+
z.object({ share: z.number().finite().nonnegative() }).strict(),
|
|
42
|
+
z.object({ credits: AllowanceCredits }).strict(),
|
|
43
|
+
z.null(),
|
|
44
|
+
]),
|
|
45
|
+
);
|
|
36
46
|
export type MemberAllowanceRule = z.infer<typeof MemberAllowanceRule>;
|
|
37
47
|
|
|
38
|
-
export const MemberAllowanceDefault =
|
|
39
|
-
z.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
export const MemberAllowanceDefault = /* @__PURE__ */ defineSchema(() =>
|
|
49
|
+
z.union([
|
|
50
|
+
z.enum(["none", "equal_share"]),
|
|
51
|
+
z.object({ share: z.number().finite().nonnegative() }).strict(),
|
|
52
|
+
z.object({ credits: AllowanceCredits }).strict(),
|
|
53
|
+
]),
|
|
54
|
+
);
|
|
43
55
|
export type MemberAllowanceDefault = z.infer<typeof MemberAllowanceDefault>;
|
|
44
56
|
|
|
45
|
-
const Thresholds =
|
|
57
|
+
const Thresholds = /* @__PURE__ */ defineSchema(() =>
|
|
58
|
+
z.array(z.number().finite().positive().max(1)).max(16),
|
|
59
|
+
);
|
|
60
|
+
/**
|
|
61
|
+
* How model calls that spend no Opengeni credits count: subscription
|
|
62
|
+
* connections, workspace-owned keys and deployments without credit billing.
|
|
63
|
+
* "ignore" (the default) keeps the allowance credit-only. "list_price" counts
|
|
64
|
+
* each such call at its configured list-price estimate in USD micros and
|
|
65
|
+
* admits those turns against the allowance; calls without a list price are
|
|
66
|
+
* not counted.
|
|
67
|
+
*/
|
|
68
|
+
export const UnbilledUsageMetering = /* @__PURE__ */ defineSchema(() =>
|
|
69
|
+
z.enum(["ignore", "list_price"]),
|
|
70
|
+
);
|
|
71
|
+
export type UnbilledUsageMetering = z.infer<typeof UnbilledUsageMetering>;
|
|
46
72
|
/** Omitted threshold lists default to [0.8, 1]. Monthly boundaries are UTC. */
|
|
47
|
-
export const WorkspaceAllowanceConfig =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
73
|
+
export const WorkspaceAllowanceConfig = /* @__PURE__ */ defineSchema(() =>
|
|
74
|
+
z
|
|
75
|
+
.object({
|
|
76
|
+
includedCredits: AllowanceCredits,
|
|
77
|
+
period: z.enum(["monthly", "none"]),
|
|
78
|
+
anchorDay: z.number().int().min(1).max(31).optional(),
|
|
79
|
+
memberDefault: MemberAllowanceDefault.optional(),
|
|
80
|
+
thresholds: z
|
|
81
|
+
.object({ workspace: Thresholds.optional(), member: Thresholds.optional() })
|
|
82
|
+
.strict()
|
|
83
|
+
.optional(),
|
|
84
|
+
unbilledUsage: UnbilledUsageMetering.optional(),
|
|
85
|
+
})
|
|
86
|
+
.strict(),
|
|
87
|
+
);
|
|
59
88
|
export type WorkspaceAllowanceConfig = z.infer<typeof WorkspaceAllowanceConfig>;
|
|
60
89
|
|
|
61
|
-
export const WorkspaceAllowance =
|
|
90
|
+
export const WorkspaceAllowance = /* @__PURE__ */ defineSchema(() =>
|
|
91
|
+
WorkspaceAllowanceConfig.extend({ version: Version.min(1) }),
|
|
92
|
+
);
|
|
62
93
|
export type WorkspaceAllowance = z.infer<typeof WorkspaceAllowance>;
|
|
63
94
|
/**
|
|
64
95
|
* Lifecycle version survives clear. version=0 means never configured; a null
|
|
65
96
|
* config with a positive version is cleared. Use this version for recreation.
|
|
66
97
|
* The existing nullable configuration read remains unchanged.
|
|
67
98
|
*/
|
|
68
|
-
export const WorkspaceAllowanceState =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
99
|
+
export const WorkspaceAllowanceState = /* @__PURE__ */ defineSchema(() =>
|
|
100
|
+
z
|
|
101
|
+
.object({ version: Version, config: WorkspaceAllowance.nullable() })
|
|
102
|
+
.strict()
|
|
103
|
+
.refine((state) => state.config === null || state.config.version === state.version, {
|
|
104
|
+
message: "Allowance configuration and lifecycle versions must match",
|
|
105
|
+
path: ["config", "version"],
|
|
106
|
+
}),
|
|
107
|
+
);
|
|
75
108
|
export type WorkspaceAllowanceState = z.infer<typeof WorkspaceAllowanceState>;
|
|
76
|
-
export const SetWorkspaceAllowanceRequest =
|
|
77
|
-
|
|
78
|
-
|
|
109
|
+
export const SetWorkspaceAllowanceRequest = /* @__PURE__ */ defineSchema(() =>
|
|
110
|
+
WorkspaceAllowanceConfig.extend({
|
|
111
|
+
expectedVersion: Version,
|
|
112
|
+
}),
|
|
113
|
+
);
|
|
79
114
|
export type SetWorkspaceAllowanceRequest = z.infer<typeof SetWorkspaceAllowanceRequest>;
|
|
80
115
|
/** Reuse operationId and the exact expectedVersion to recover a lost clear
|
|
81
116
|
* receipt. A later lifecycle change conflicts; read the state before deciding
|
|
82
117
|
* on a new mutation, never guess a version or change it for a retry. */
|
|
83
|
-
export const ClearWorkspaceAllowanceRequest =
|
|
84
|
-
.object({ expectedVersion: Version.min(1), operationId: OperationId.optional() })
|
|
85
|
-
|
|
118
|
+
export const ClearWorkspaceAllowanceRequest = /* @__PURE__ */ defineSchema(() =>
|
|
119
|
+
z.object({ expectedVersion: Version.min(1), operationId: OperationId.optional() }).strict(),
|
|
120
|
+
);
|
|
86
121
|
export type ClearWorkspaceAllowanceRequest = z.infer<typeof ClearWorkspaceAllowanceRequest>;
|
|
87
|
-
export const ClearWorkspaceAllowanceResponse =
|
|
122
|
+
export const ClearWorkspaceAllowanceResponse = /* @__PURE__ */ defineSchema(() =>
|
|
123
|
+
z.object({ version: Version.min(1) }).strict(),
|
|
124
|
+
);
|
|
88
125
|
export type ClearWorkspaceAllowanceResponse = z.infer<typeof ClearWorkspaceAllowanceResponse>;
|
|
89
126
|
|
|
90
127
|
/** Reuse the operationId and exact request to recover an uncertain grant response. */
|
|
91
|
-
export const GrantWorkspaceCreditsRequest =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
128
|
+
export const GrantWorkspaceCreditsRequest = /* @__PURE__ */ defineSchema(() =>
|
|
129
|
+
z
|
|
130
|
+
.object({
|
|
131
|
+
operationId: OperationId,
|
|
132
|
+
credits: AllowanceCredits.positive(),
|
|
133
|
+
expiresAt: Timestamp.nullable().optional(),
|
|
134
|
+
})
|
|
135
|
+
.strict(),
|
|
136
|
+
);
|
|
98
137
|
export type GrantWorkspaceCreditsRequest = z.infer<typeof GrantWorkspaceCreditsRequest>;
|
|
99
|
-
export const WorkspaceCreditGrant =
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
138
|
+
export const WorkspaceCreditGrant = /* @__PURE__ */ defineSchema(() =>
|
|
139
|
+
GrantWorkspaceCreditsRequest.extend({
|
|
140
|
+
remaining: AllowanceCredits,
|
|
141
|
+
expiresAt: Timestamp.nullable(),
|
|
142
|
+
}),
|
|
143
|
+
);
|
|
103
144
|
export type WorkspaceCreditGrant = z.infer<typeof WorkspaceCreditGrant>;
|
|
104
145
|
|
|
105
|
-
export const SetMemberAllowanceRequest =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
146
|
+
export const SetMemberAllowanceRequest = /* @__PURE__ */ defineSchema(() =>
|
|
147
|
+
z
|
|
148
|
+
.object({
|
|
149
|
+
rule: MemberAllowanceRule,
|
|
150
|
+
expectedVersion: Version,
|
|
151
|
+
})
|
|
152
|
+
.strict(),
|
|
153
|
+
);
|
|
111
154
|
export type SetMemberAllowanceRequest = z.infer<typeof SetMemberAllowanceRequest>;
|
|
112
|
-
export const MemberAllowance =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
155
|
+
export const MemberAllowance = /* @__PURE__ */ defineSchema(() =>
|
|
156
|
+
z
|
|
157
|
+
.object({
|
|
158
|
+
subjectId: SubjectId,
|
|
159
|
+
rule: MemberAllowanceRule,
|
|
160
|
+
version: Version,
|
|
161
|
+
})
|
|
162
|
+
.strict(),
|
|
163
|
+
);
|
|
119
164
|
export type MemberAllowance = z.infer<typeof MemberAllowance>;
|
|
120
165
|
|
|
121
|
-
export const UsageAllowancePeriod =
|
|
122
|
-
z.literal("current"),
|
|
123
|
-
|
|
124
|
-
]);
|
|
166
|
+
export const UsageAllowancePeriod = /* @__PURE__ */ defineSchema(() =>
|
|
167
|
+
z.union([z.literal("current"), primitives.string.regex(/^\d{4}-(0[1-9]|1[0-2])$/)]),
|
|
168
|
+
);
|
|
125
169
|
export type UsageAllowancePeriod = z.infer<typeof UsageAllowancePeriod>;
|
|
126
|
-
export const GetUsageRequest =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
170
|
+
export const GetUsageRequest = /* @__PURE__ */ defineSchema(() =>
|
|
171
|
+
z
|
|
172
|
+
.object({
|
|
173
|
+
period: UsageAllowancePeriod.optional(),
|
|
174
|
+
limit: z.number().int().min(1).max(200).optional(),
|
|
175
|
+
cursor: z.string().min(1).max(2048).optional(),
|
|
176
|
+
})
|
|
177
|
+
.strict(),
|
|
178
|
+
);
|
|
133
179
|
export type GetUsageRequest = z.infer<typeof GetUsageRequest>;
|
|
134
|
-
export const GetMyUsageRequest =
|
|
180
|
+
export const GetMyUsageRequest = /* @__PURE__ */ defineSchema(() =>
|
|
181
|
+
GetUsageRequest.pick({ period: true }),
|
|
182
|
+
);
|
|
135
183
|
export type GetMyUsageRequest = z.infer<typeof GetMyUsageRequest>;
|
|
136
184
|
|
|
137
|
-
export const UsageAllowanceStatus =
|
|
185
|
+
export const UsageAllowanceStatus = /* @__PURE__ */ defineSchema(() =>
|
|
186
|
+
z.enum(["ok", "warning", "exhausted"]),
|
|
187
|
+
);
|
|
138
188
|
export type UsageAllowanceStatus = z.infer<typeof UsageAllowanceStatus>;
|
|
139
|
-
export const UsageAllowanceWindow =
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
189
|
+
export const UsageAllowanceWindow = /* @__PURE__ */ defineSchema(() =>
|
|
190
|
+
z
|
|
191
|
+
.object({
|
|
192
|
+
start: Timestamp.nullable(),
|
|
193
|
+
end: Timestamp.nullable(),
|
|
194
|
+
})
|
|
195
|
+
.strict(),
|
|
196
|
+
);
|
|
145
197
|
export type UsageAllowanceWindow = z.infer<typeof UsageAllowanceWindow>;
|
|
146
|
-
const Usage =
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
198
|
+
const Usage = /* @__PURE__ */ defineSchema(() =>
|
|
199
|
+
z.object({
|
|
200
|
+
limit: AllowanceCredits.nullable(),
|
|
201
|
+
used: AllowanceCredits,
|
|
202
|
+
remaining: z.number().int().safe().nullable(),
|
|
203
|
+
/** Display this ratio rather than raw USD micros in human-facing products. */
|
|
204
|
+
fraction: z.number().finite().nonnegative().nullable(),
|
|
205
|
+
status: UsageAllowanceStatus,
|
|
206
|
+
resetsAt: Timestamp.nullable(),
|
|
207
|
+
}),
|
|
208
|
+
);
|
|
209
|
+
export const WorkspaceAllowanceUsage = /* @__PURE__ */ defineSchema(() =>
|
|
210
|
+
Usage.extend({
|
|
211
|
+
includedCredits: AllowanceCredits,
|
|
212
|
+
grantsRemaining: AllowanceCredits,
|
|
213
|
+
}).strict(),
|
|
214
|
+
);
|
|
159
215
|
export type WorkspaceAllowanceUsage = z.infer<typeof WorkspaceAllowanceUsage>;
|
|
160
|
-
export const MemberAllowanceUsage =
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
216
|
+
export const MemberAllowanceUsage = /* @__PURE__ */ defineSchema(() =>
|
|
217
|
+
Usage.extend({
|
|
218
|
+
subjectId: SubjectId,
|
|
219
|
+
externalIdentity: z
|
|
220
|
+
.object({ source: primitives.string, externalId: primitives.string })
|
|
221
|
+
.strict()
|
|
222
|
+
.nullable(),
|
|
223
|
+
rule: MemberAllowanceRule,
|
|
224
|
+
version: Version,
|
|
225
|
+
}).strict(),
|
|
226
|
+
);
|
|
166
227
|
export type MemberAllowanceUsage = z.infer<typeof MemberAllowanceUsage>;
|
|
167
228
|
/** /usage/me returns only the authenticated subject's member row, never the roster. */
|
|
168
|
-
export const WorkspaceUsageResponse =
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
229
|
+
export const WorkspaceUsageResponse = /* @__PURE__ */ defineSchema(() =>
|
|
230
|
+
z
|
|
231
|
+
.object({
|
|
232
|
+
/**
|
|
233
|
+
* The unit of every amount (`limit`, `used`, `remaining`,
|
|
234
|
+
* `includedCredits`, `grantsRemaining`): integer USD micros, 1 USD =
|
|
235
|
+
* 1,000,000. Absent from servers that predate it; the unit is the same.
|
|
236
|
+
*/
|
|
237
|
+
unit: z.literal("usd_micros").optional(),
|
|
238
|
+
/**
|
|
239
|
+
* The window the counters cover. Without a configured budget this is
|
|
240
|
+
* still the calendar month (UTC) being counted; null when the window
|
|
241
|
+
* is unknown (a past month with no recorded history) or lifetime.
|
|
242
|
+
*/
|
|
243
|
+
period: UsageAllowanceWindow,
|
|
244
|
+
workspace: WorkspaceAllowanceUsage,
|
|
245
|
+
members: z.array(MemberAllowanceUsage),
|
|
246
|
+
nextCursor: primitives.nullableString,
|
|
247
|
+
})
|
|
248
|
+
.strict(),
|
|
249
|
+
);
|
|
176
250
|
export type WorkspaceUsageResponse = z.infer<typeof WorkspaceUsageResponse>;
|
|
177
251
|
|
|
178
|
-
export const AllowanceExhaustedRefusal =
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
252
|
+
export const AllowanceExhaustedRefusal = /* @__PURE__ */ defineSchema(() =>
|
|
253
|
+
z
|
|
254
|
+
.object({
|
|
255
|
+
code: z.literal("allowance_exhausted"),
|
|
256
|
+
scope: z.enum(["workspace", "member"]),
|
|
257
|
+
resetsAt: Timestamp.nullable(),
|
|
258
|
+
subjectId: SubjectId.optional(),
|
|
259
|
+
message: primitives.string,
|
|
260
|
+
})
|
|
261
|
+
.strict(),
|
|
262
|
+
);
|
|
187
263
|
export type AllowanceExhaustedRefusal = z.infer<typeof AllowanceExhaustedRefusal>;
|
package/src/values.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small runtime helpers shared across packages. Dependency-free and safe in
|
|
3
|
+
* browsers, React Native, workers and servers, so any package can import
|
|
4
|
+
* `@opengeni/contracts/values` without pulling in zod or Node built-ins.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/** A non-null object that is not an array. */
|
|
8
|
+
export function isRecord(value: unknown): value is Record<string, unknown> {
|
|
9
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** An `Error`'s message, or the value converted to a string. */
|
|
13
|
+
export function errorMessage(error: unknown): string {
|
|
14
|
+
return error instanceof Error ? error.message : String(error);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Lowercase hex SHA-256 of bytes, or of a string's UTF-8 encoding, with Web Crypto. */
|
|
18
|
+
export async function sha256Hex(data: string | Uint8Array): Promise<string> {
|
|
19
|
+
// A copy hands Web Crypto a plain ArrayBuffer even for views over shared memory.
|
|
20
|
+
const bytes =
|
|
21
|
+
typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data.byteLength);
|
|
22
|
+
if (typeof data !== "string") bytes.set(data);
|
|
23
|
+
const digest = new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256", bytes));
|
|
24
|
+
return Array.from(digest, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
25
|
+
}
|