@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,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Schemas whose value is a secret: a password, key, token, or a bundle of
|
|
5
|
+
* credential headers or values. The action catalog generator reads this
|
|
6
|
+
* registry, so every action whose request or response carries such a field is
|
|
7
|
+
* marked as handling secrets wherever the schema is reused, whatever the
|
|
8
|
+
* field is called. Field names that already say "secret" ("apiKey",
|
|
9
|
+
* "clientSecret") are caught by name as well.
|
|
10
|
+
*/
|
|
11
|
+
export const secretValues = z.registry<{ secret: true }, z.ZodType>();
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Mark a schema as holding a secret value. Pass the schema built for this
|
|
15
|
+
* field ("z.record(...)"), never a shared one such as a primitive: the mark
|
|
16
|
+
* belongs to the schema instance, so marking a shared one would mark every
|
|
17
|
+
* field that uses it.
|
|
18
|
+
*/
|
|
19
|
+
export function secretValue<Schema extends z.ZodType>(schema: Schema): Schema {
|
|
20
|
+
secretValues.add(schema as z.ZodType, { secret: true });
|
|
21
|
+
return schema;
|
|
22
|
+
}
|
|
@@ -1,55 +1,61 @@
|
|
|
1
|
+
import * as primitives from "./primitives";
|
|
2
|
+
import { defineSchema } from "./define-schema";
|
|
1
3
|
import { z } from "zod";
|
|
2
4
|
|
|
3
|
-
export const SessionGoalReportRequirement =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.string
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
5
|
+
export const SessionGoalReportRequirement = /* @__PURE__ */ defineSchema(() =>
|
|
6
|
+
z
|
|
7
|
+
.object({
|
|
8
|
+
id: z
|
|
9
|
+
.string()
|
|
10
|
+
.max(64)
|
|
11
|
+
.describe(
|
|
12
|
+
"Stable report requirement identifier, at most 64 ASCII characters; not a title or status.",
|
|
13
|
+
)
|
|
14
|
+
.regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/),
|
|
15
|
+
title: primitives.string
|
|
16
|
+
.trim()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(512)
|
|
19
|
+
.describe(
|
|
20
|
+
"Short human-readable report title, at most 512 UTF-8 bytes. Keep normal spaces; do not put the report or a progress transcript here.",
|
|
21
|
+
)
|
|
22
|
+
.refine(
|
|
23
|
+
(value) => new TextEncoder().encode(value).byteLength <= 512,
|
|
24
|
+
"Report title exceeds 512 UTF-8 bytes",
|
|
25
|
+
),
|
|
26
|
+
})
|
|
27
|
+
.strict(),
|
|
28
|
+
);
|
|
26
29
|
export type SessionGoalReportRequirement = z.infer<typeof SessionGoalReportRequirement>;
|
|
27
30
|
|
|
28
|
-
export const SessionGoalReportRequirements =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
export const SessionGoalReportRequirements = /* @__PURE__ */ defineSchema(() =>
|
|
32
|
+
z
|
|
33
|
+
.array(SessionGoalReportRequirement)
|
|
34
|
+
.max(16)
|
|
35
|
+
.superRefine((requirements, context) => {
|
|
36
|
+
if (new Set(requirements.map((item) => item.id)).size !== requirements.length) {
|
|
37
|
+
context.addIssue({ code: "custom", message: "Duplicate report requirement IDs" });
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
);
|
|
36
41
|
|
|
37
|
-
export const SessionGoalReportDelivery =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.string()
|
|
42
|
-
.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
.strict();
|
|
42
|
+
export const SessionGoalReportDelivery = /* @__PURE__ */ defineSchema(() =>
|
|
43
|
+
z
|
|
44
|
+
.object({
|
|
45
|
+
requirementId: SessionGoalReportRequirement.shape.id,
|
|
46
|
+
artifactId: primitives.string.regex(/^[0-9a-f]{32}$/).refine((value) => !/^0+$/.test(value)),
|
|
47
|
+
inspectionReceiptId: primitives.uuid,
|
|
48
|
+
})
|
|
49
|
+
.strict(),
|
|
50
|
+
);
|
|
47
51
|
export type SessionGoalReportDelivery = z.infer<typeof SessionGoalReportDelivery>;
|
|
48
|
-
export const SessionGoalReportDeliveries =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
export const SessionGoalReportDeliveries = /* @__PURE__ */ defineSchema(() =>
|
|
53
|
+
z
|
|
54
|
+
.array(SessionGoalReportDelivery)
|
|
55
|
+
.max(16)
|
|
56
|
+
.superRefine((deliveries, context) => {
|
|
57
|
+
if (new Set(deliveries.map((item) => item.requirementId)).size !== deliveries.length) {
|
|
58
|
+
context.addIssue({ code: "custom", message: "Duplicate report delivery requirement IDs" });
|
|
59
|
+
}
|
|
60
|
+
}),
|
|
61
|
+
);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as primitives from "./primitives";
|
|
2
|
+
import { defineSchema } from "./define-schema";
|
|
1
3
|
import { z } from "zod";
|
|
2
4
|
import { Session } from "./index";
|
|
3
5
|
import type { SessionEventType } from "./index";
|
|
@@ -30,19 +32,23 @@ export const ARCHIVED_SESSION_IMPORT_EVENT_TYPES = [
|
|
|
30
32
|
"goal.cleared",
|
|
31
33
|
] as const satisfies readonly SessionEventType[];
|
|
32
34
|
|
|
33
|
-
export const SessionImportedArchive = /* @__PURE__ */
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
export const SessionImportedArchive = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
36
|
+
z
|
|
37
|
+
.object({
|
|
38
|
+
importId: z.string().min(1).max(200),
|
|
39
|
+
importedAt: z.iso.datetime({ offset: true }),
|
|
40
|
+
readOnly: z.literal(true),
|
|
41
|
+
})
|
|
42
|
+
.strict(),
|
|
43
|
+
);
|
|
40
44
|
export type SessionImportedArchive = z.infer<typeof SessionImportedArchive>;
|
|
41
45
|
|
|
42
46
|
/** JS/SQL session seams preserve millisecond precision; never silently truncate. */
|
|
43
|
-
const sourceTimestamp = /* @__PURE__ */
|
|
44
|
-
.
|
|
45
|
-
|
|
47
|
+
const sourceTimestamp = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
48
|
+
z.iso
|
|
49
|
+
.datetime({ offset: true })
|
|
50
|
+
.refine((value) => !/\.\d{4}/u.test(value), "Source timestamp supports at most milliseconds"),
|
|
51
|
+
);
|
|
46
52
|
|
|
47
53
|
/** Validate JSON without coercing dates, dropping undefined, or rewriting text. */
|
|
48
54
|
function isImportJson(value: unknown): boolean {
|
|
@@ -86,74 +92,84 @@ function jsonBytes(value: unknown): number {
|
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
|
|
89
|
-
export const ArchivedSessionImportEvent = /* @__PURE__ */
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
export const ArchivedSessionImportEvent = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
96
|
+
z
|
|
97
|
+
.object({
|
|
98
|
+
type: z.enum(ARCHIVED_SESSION_IMPORT_EVENT_TYPES),
|
|
99
|
+
createdAt: sourceTimestamp,
|
|
100
|
+
/** Source turn identity is presentation correlation; no execution row is created. */
|
|
101
|
+
turnId: z.string().uuid().nullable().optional(),
|
|
102
|
+
payload: z
|
|
103
|
+
.record(primitives.string, z.unknown())
|
|
104
|
+
.refine(isImportJson, "Payload must be bounded JSON"),
|
|
105
|
+
})
|
|
106
|
+
.strict()
|
|
107
|
+
.refine(
|
|
108
|
+
(event) => isImportJson(event) && jsonBytes(event) <= SESSION_HISTORY_IMPORT_MAX_EVENT_BYTES,
|
|
109
|
+
"Imported event exceeds its JSON or byte limit",
|
|
110
|
+
),
|
|
111
|
+
);
|
|
102
112
|
export type ArchivedSessionImportEvent = z.infer<typeof ArchivedSessionImportEvent>;
|
|
103
113
|
|
|
104
|
-
const importEvents = /* @__PURE__ */
|
|
105
|
-
.array(ArchivedSessionImportEvent)
|
|
106
|
-
|
|
114
|
+
const importEvents = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
115
|
+
z.array(ArchivedSessionImportEvent).max(SESSION_HISTORY_IMPORT_MAX_EVENTS),
|
|
116
|
+
);
|
|
107
117
|
|
|
108
|
-
export const ImportArchivedSessionRequest = /* @__PURE__ */
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
(
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
export const ImportArchivedSessionRequest = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
119
|
+
z
|
|
120
|
+
.object({
|
|
121
|
+
importId: z.string().min(1).max(200),
|
|
122
|
+
title: z.string().min(1).max(200),
|
|
123
|
+
createdAt: sourceTimestamp,
|
|
124
|
+
/** The authenticated asUser actor supplies creator/owner, never a display label. */
|
|
125
|
+
visibility: z.enum(["workspace_shared", "user_private"]).optional(),
|
|
126
|
+
events: importEvents.default([]),
|
|
127
|
+
})
|
|
128
|
+
.strict()
|
|
129
|
+
.refine(
|
|
130
|
+
(request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
|
|
131
|
+
"Import request exceeds its byte limit",
|
|
132
|
+
),
|
|
133
|
+
);
|
|
122
134
|
export type ImportArchivedSessionRequest = z.input<typeof ImportArchivedSessionRequest>;
|
|
123
135
|
|
|
124
|
-
export const AppendArchivedSessionEventsRequest = /* @__PURE__ */
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
);
|
|
136
|
+
export const AppendArchivedSessionEventsRequest = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
137
|
+
z
|
|
138
|
+
.object({
|
|
139
|
+
batchId: z.string().min(1).max(200),
|
|
140
|
+
offset: primitives.nonnegativeInteger
|
|
141
|
+
.max(Number.MAX_SAFE_INTEGER)
|
|
142
|
+
.refine((value) => !Object.is(value, -0)),
|
|
143
|
+
events: importEvents.min(1),
|
|
144
|
+
})
|
|
145
|
+
.strict()
|
|
146
|
+
.refine(
|
|
147
|
+
(request) => jsonBytes(request) <= SESSION_HISTORY_IMPORT_MAX_BODY_BYTES,
|
|
148
|
+
"Import batch exceeds its byte limit",
|
|
149
|
+
),
|
|
150
|
+
);
|
|
140
151
|
export type AppendArchivedSessionEventsRequest = z.infer<typeof AppendArchivedSessionEventsRequest>;
|
|
141
152
|
|
|
142
153
|
// Lazy to preserve the root contracts initialization order; SDK uses types only.
|
|
143
|
-
export const ImportArchivedSessionResponse = /* @__PURE__ */
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
154
|
+
export const ImportArchivedSessionResponse = /* @__PURE__ */ /* @__PURE__ */ defineSchema(() =>
|
|
155
|
+
z.object({
|
|
156
|
+
session: /* @__PURE__ */ z.lazy(() => Session),
|
|
157
|
+
importId: primitives.string,
|
|
158
|
+
created: primitives.boolean,
|
|
159
|
+
nextOffset: primitives.nonnegativeInteger,
|
|
160
|
+
}),
|
|
161
|
+
);
|
|
149
162
|
export type ImportArchivedSessionResponse = z.infer<typeof ImportArchivedSessionResponse>;
|
|
150
163
|
|
|
151
|
-
export const AppendArchivedSessionEventsResponse = /* @__PURE__ */
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
164
|
+
export const AppendArchivedSessionEventsResponse = /* @__PURE__ */ /* @__PURE__ */ defineSchema(
|
|
165
|
+
() =>
|
|
166
|
+
z.object({
|
|
167
|
+
sessionId: primitives.uuid,
|
|
168
|
+
importId: primitives.string,
|
|
169
|
+
nextOffset: primitives.nonnegativeInteger,
|
|
170
|
+
replayed: primitives.boolean,
|
|
171
|
+
}),
|
|
172
|
+
);
|
|
157
173
|
export type AppendArchivedSessionEventsResponse = z.infer<
|
|
158
174
|
typeof AppendArchivedSessionEventsResponse
|
|
159
175
|
>;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation-first session history: which durable events are the steps of a
|
|
3
|
+
* turn, and which tool results stay visible without opening those steps.
|
|
4
|
+
* Dependency-free so browser packages can import it without the schema bundle.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The bulk of a long agent turn: tool calls, their outputs and streamed
|
|
8
|
+
* reasoning or command output. A turn whose window skips any of these has
|
|
9
|
+
* steps a reader can open.
|
|
10
|
+
*/
|
|
11
|
+
export const SESSION_EVENT_CONTENT_STEP_TYPES = [
|
|
12
|
+
"agent.toolCall.created",
|
|
13
|
+
"agent.toolCall.output",
|
|
14
|
+
"agent.reasoning.delta",
|
|
15
|
+
"sandbox.command.output.delta",
|
|
16
|
+
"terminal.pty.output.delta",
|
|
17
|
+
] as const;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Turn bookkeeping that renders nothing in the conversation: a turn writes a
|
|
21
|
+
* few `agent.model.request` rows and an `agent.model.usage` row per model
|
|
22
|
+
* call. Only a turn's request rows up to its first model response draw
|
|
23
|
+
* anything (the "first model response" startup phase); a conversation-filter
|
|
24
|
+
* server keeps those, and every bookkeeping row of a turn without other
|
|
25
|
+
* steps, so it never looks like it has steps to open.
|
|
26
|
+
*/
|
|
27
|
+
export const SESSION_EVENT_BOOKKEEPING_STEP_TYPES = [
|
|
28
|
+
"agent.model.request",
|
|
29
|
+
"agent.model.usage",
|
|
30
|
+
] as const;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Everything conversation-first history reads exclude and load per turn, only
|
|
34
|
+
* when a reader asks for that turn's steps.
|
|
35
|
+
*/
|
|
36
|
+
export const SESSION_EVENT_STEP_TYPES = [
|
|
37
|
+
...SESSION_EVENT_CONTENT_STEP_TYPES,
|
|
38
|
+
...SESSION_EVENT_BOOKKEEPING_STEP_TYPES,
|
|
39
|
+
] as const;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The conversation-filter behavior a server applies to a read that sends
|
|
43
|
+
* `presentedToolCalls=include`, announced in the `X-OpenGeni-Conversation-Filter`
|
|
44
|
+
* response header. Version 2 keeps presented tool calls and the bookkeeping
|
|
45
|
+
* rows described by {@link SESSION_EVENT_BOOKKEEPING_STEP_TYPES}; excluded
|
|
46
|
+
* turnless output (PTY and command output) stays out, for the sandbox dock to
|
|
47
|
+
* read itself. A server without the header may ignore `presentedToolCalls`
|
|
48
|
+
* entirely.
|
|
49
|
+
*/
|
|
50
|
+
export const SESSION_EVENT_CONVERSATION_FILTER_VERSION = 2;
|
|
51
|
+
export const SESSION_EVENT_CONVERSATION_FILTER_HEADER = "X-OpenGeni-Conversation-Filter";
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* What a reader excludes from a conversation read when the server has not
|
|
55
|
+
* announced {@link SESSION_EVENT_CONVERSATION_FILTER_VERSION}: tool calls stay
|
|
56
|
+
* in (an older server would otherwise drop presented calls with them) and the
|
|
57
|
+
* reader drops the ones that are not presented.
|
|
58
|
+
*/
|
|
59
|
+
export const SESSION_EVENT_COMPAT_EXCLUDED_STEP_TYPES = [
|
|
60
|
+
"agent.toolCall.output",
|
|
61
|
+
"agent.reasoning.delta",
|
|
62
|
+
"sandbox.command.output.delta",
|
|
63
|
+
"terminal.pty.output.delta",
|
|
64
|
+
] as const;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Whether an `agent.model.request` phase is the model's first response. A
|
|
68
|
+
* turn's request rows after its first response no longer change what the
|
|
69
|
+
* conversation draws.
|
|
70
|
+
*/
|
|
71
|
+
export function isSessionModelResponsePhase(phase: unknown): boolean {
|
|
72
|
+
return phase === "first_byte" || phase === "first_event";
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Tools whose result is primary output a reader sees without opening the
|
|
77
|
+
* turn's steps: presented images and published files, Skill changes that may
|
|
78
|
+
* need review, learning writes whose refusal is told outside the folded work
|
|
79
|
+
* row, and worker spawns or messages that a turn's wait counts. Matched on the
|
|
80
|
+
* tool name's leaf (`x__leaf` or `leaf`).
|
|
81
|
+
*/
|
|
82
|
+
export const SESSION_EVENT_PRESENTED_TOOL_LEAVES = [
|
|
83
|
+
"generate_image",
|
|
84
|
+
"image_generation_call",
|
|
85
|
+
"sandbox_file_publish",
|
|
86
|
+
"skill_save",
|
|
87
|
+
"skill_remove",
|
|
88
|
+
"skill_install",
|
|
89
|
+
"skill_publish",
|
|
90
|
+
"instruction_policy_save",
|
|
91
|
+
"knowledge_save",
|
|
92
|
+
"knowledge_retain_file",
|
|
93
|
+
"knowledge_retain_message",
|
|
94
|
+
"knowledge_archive",
|
|
95
|
+
"task_note_promote_knowledge",
|
|
96
|
+
"remember_confirm",
|
|
97
|
+
"session_create",
|
|
98
|
+
"session_send_message",
|
|
99
|
+
] as const;
|
|
100
|
+
|
|
101
|
+
/** Whether a tool name is one of {@link SESSION_EVENT_PRESENTED_TOOL_LEAVES}. */
|
|
102
|
+
export function isPresentedSessionToolName(name: unknown): boolean {
|
|
103
|
+
if (typeof name !== "string" || name.length === 0) return false;
|
|
104
|
+
return SESSION_EVENT_PRESENTED_TOOL_LEAVES.some(
|
|
105
|
+
(leaf) => name === leaf || name.endsWith(`__${leaf}`),
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** The tool leaf a session runs the app's own actions through. */
|
|
110
|
+
export const SESSION_EVENT_APP_ACTION_CALL_LEAF = "admin_action_call";
|
|
111
|
+
|
|
112
|
+
/** The page an app action opens: buying credits, starting a subscription, or the billing portal. */
|
|
113
|
+
export type PresentedAppActionPage = "credits" | "subscription" | "portal";
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* App actions whose call is primary output too: each opens a payment page,
|
|
117
|
+
* and the chat shows it as a button that later confirms the payment, which a
|
|
118
|
+
* person returning to the chat (often in a reloaded tab) needs to see.
|
|
119
|
+
* Keyed by action id, with the "METHOD /path" a call may name it by instead
|
|
120
|
+
* (as `findAppAction` accepts) and the page it opens.
|
|
121
|
+
*/
|
|
122
|
+
export const SESSION_EVENT_PRESENTED_APP_ACTIONS = {
|
|
123
|
+
createBillingCheckout: { route: "POST /v1/billing/checkout", page: "credits" },
|
|
124
|
+
createSubscriptionCheckout: {
|
|
125
|
+
route: "POST /v1/billing/subscription/checkout",
|
|
126
|
+
page: "subscription",
|
|
127
|
+
},
|
|
128
|
+
createBillingPortalSession: { route: "POST /v1/billing/portal", page: "portal" },
|
|
129
|
+
createSubscriptionPortalSession: {
|
|
130
|
+
route: "POST /v1/billing/subscription/portal",
|
|
131
|
+
page: "portal",
|
|
132
|
+
},
|
|
133
|
+
} as const satisfies Record<string, { route: string; page: PresentedAppActionPage }>;
|
|
134
|
+
|
|
135
|
+
export type PresentedAppActionId = keyof typeof SESSION_EVENT_PRESENTED_APP_ACTIONS;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* The whitespace a call's action id is trimmed of before it's matched: exactly
|
|
139
|
+
* what `String.prototype.trim` removes, as the action runner trims the id
|
|
140
|
+
* (`findAppAction`), spelled out so the history query (Postgres `btrim`) and
|
|
141
|
+
* every client agree.
|
|
142
|
+
*/
|
|
143
|
+
export const SESSION_EVENT_APP_ACTION_ID_SPACE =
|
|
144
|
+
" \t\n\v\f\r\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff";
|
|
145
|
+
|
|
146
|
+
/** Every name that calls one of {@link SESSION_EVENT_PRESENTED_APP_ACTIONS}: each id and its "METHOD /path". */
|
|
147
|
+
export const SESSION_EVENT_PRESENTED_APP_ACTION_NAMES: readonly string[] = Object.entries(
|
|
148
|
+
SESSION_EVENT_PRESENTED_APP_ACTIONS,
|
|
149
|
+
).flatMap(([id, { route }]) => [id, route]);
|
|
150
|
+
|
|
151
|
+
const PRESENTED_APP_ACTION_BY_NAME: ReadonlyMap<string, PresentedAppActionId> = new Map(
|
|
152
|
+
Object.entries(SESSION_EVENT_PRESENTED_APP_ACTIONS).flatMap(([id, { route }]) => [
|
|
153
|
+
[id, id as PresentedAppActionId],
|
|
154
|
+
[route, id as PresentedAppActionId],
|
|
155
|
+
]),
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
function trimActionId(value: string): string {
|
|
159
|
+
let start = 0;
|
|
160
|
+
let end = value.length;
|
|
161
|
+
while (start < end && SESSION_EVENT_APP_ACTION_ID_SPACE.includes(value[start]!)) start += 1;
|
|
162
|
+
while (end > start && SESSION_EVENT_APP_ACTION_ID_SPACE.includes(value[end - 1]!)) end -= 1;
|
|
163
|
+
return value.slice(start, end);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Which of {@link SESSION_EVENT_PRESENTED_APP_ACTIONS} an app action call's
|
|
168
|
+
* `id` names, by its id or its "METHOD /path"; undefined for anything else.
|
|
169
|
+
*/
|
|
170
|
+
export function presentedAppActionId(id: unknown): PresentedAppActionId | undefined {
|
|
171
|
+
return typeof id === "string" ? PRESENTED_APP_ACTION_BY_NAME.get(trimActionId(id)) : undefined;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Whether a tool call's result is primary output: a presented tool
|
|
176
|
+
* ({@link isPresentedSessionToolName}), or an app action call that runs one of
|
|
177
|
+
* {@link SESSION_EVENT_PRESENTED_APP_ACTIONS} (its arguments' top-level `id`,
|
|
178
|
+
* see {@link presentedAppActionId}). Takes the `agent.toolCall.created`
|
|
179
|
+
* payload (its `name` and `arguments`, an object or JSON text).
|
|
180
|
+
*/
|
|
181
|
+
export function isPresentedSessionToolCall(call: unknown): boolean {
|
|
182
|
+
if (!call || typeof call !== "object") return false;
|
|
183
|
+
const { name, arguments: args } = call as { name?: unknown; arguments?: unknown };
|
|
184
|
+
if (isPresentedSessionToolName(name)) return true;
|
|
185
|
+
const leaf = SESSION_EVENT_APP_ACTION_CALL_LEAF;
|
|
186
|
+
if (typeof name !== "string" || (name !== leaf && !name.endsWith(`__${leaf}`))) return false;
|
|
187
|
+
let parsed: unknown = args;
|
|
188
|
+
if (typeof args === "string") {
|
|
189
|
+
try {
|
|
190
|
+
parsed = JSON.parse(args);
|
|
191
|
+
} catch {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return false;
|
|
196
|
+
return presentedAppActionId((parsed as { id?: unknown }).id) !== undefined;
|
|
197
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { Session, SessionListEntry } from "./index";
|
|
2
|
+
import {
|
|
3
|
+
deriveAutomaticSessionTitlePreview,
|
|
4
|
+
deriveSessionDisplayTitle,
|
|
5
|
+
sessionTitleIsPending,
|
|
6
|
+
} from "./session-titles";
|
|
7
|
+
|
|
8
|
+
/** Explicit list projection. Detail/configuration remains available from getSession. */
|
|
9
|
+
export type SessionListEntryInput = Omit<
|
|
10
|
+
SessionListEntry,
|
|
11
|
+
| "displayTitle"
|
|
12
|
+
| "renameSeed"
|
|
13
|
+
| "scheduledTaskId"
|
|
14
|
+
| "siteOrigin"
|
|
15
|
+
| "pinned"
|
|
16
|
+
| "pinnedAt"
|
|
17
|
+
| "pinVersion"
|
|
18
|
+
| "unread"
|
|
19
|
+
| "activelyWorking"
|
|
20
|
+
| "attentionVersion"
|
|
21
|
+
| "archived"
|
|
22
|
+
| "archivedAt"
|
|
23
|
+
| "archiveVersion"
|
|
24
|
+
| "description"
|
|
25
|
+
| "avatar"
|
|
26
|
+
> & {
|
|
27
|
+
/** Absent from older servers' rows and SDK-projected sessions. */
|
|
28
|
+
description?: string | null | undefined;
|
|
29
|
+
avatar?: Session["avatar"] | undefined;
|
|
30
|
+
} & Partial<
|
|
31
|
+
Pick<
|
|
32
|
+
Session,
|
|
33
|
+
| "pinned"
|
|
34
|
+
| "pinnedAt"
|
|
35
|
+
| "pinVersion"
|
|
36
|
+
| "unread"
|
|
37
|
+
| "activelyWorking"
|
|
38
|
+
| "attentionVersion"
|
|
39
|
+
| "archived"
|
|
40
|
+
| "archivedAt"
|
|
41
|
+
| "archiveVersion"
|
|
42
|
+
>
|
|
43
|
+
> &
|
|
44
|
+
Pick<Session, "metadata" | "initialMessage">;
|
|
45
|
+
|
|
46
|
+
export function sessionListEntry(session: SessionListEntryInput): SessionListEntry {
|
|
47
|
+
const origin = session.metadata._opengeniSiteOrigin as
|
|
48
|
+
| { siteId?: unknown; title?: unknown }
|
|
49
|
+
| undefined;
|
|
50
|
+
const siteOrigin =
|
|
51
|
+
origin &&
|
|
52
|
+
typeof origin.siteId === "string" &&
|
|
53
|
+
/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i.test(origin.siteId) &&
|
|
54
|
+
typeof origin.title === "string"
|
|
55
|
+
? { siteId: origin.siteId, title: origin.title }
|
|
56
|
+
: null;
|
|
57
|
+
const scheduledTaskId = session.metadata.scheduledTaskId;
|
|
58
|
+
return {
|
|
59
|
+
id: session.id,
|
|
60
|
+
workspaceId: session.workspaceId,
|
|
61
|
+
accountId: session.accountId,
|
|
62
|
+
status: session.status,
|
|
63
|
+
backgroundCommandActivity: session.backgroundCommandActivity,
|
|
64
|
+
hasSchedules: session.hasSchedules,
|
|
65
|
+
hasUpcomingSchedules: session.hasUpcomingSchedules,
|
|
66
|
+
waitingForEvents: session.waitingForEvents,
|
|
67
|
+
automationWait: session.automationWait,
|
|
68
|
+
title: session.title,
|
|
69
|
+
titleSource: session.titleSource,
|
|
70
|
+
description: session.description ?? null,
|
|
71
|
+
avatar: session.avatar ?? null,
|
|
72
|
+
displayTitle: deriveSessionDisplayTitle(session),
|
|
73
|
+
renameSeed: sessionTitleIsPending(session)
|
|
74
|
+
? (deriveAutomaticSessionTitlePreview(session.initialMessage) ?? "")
|
|
75
|
+
: (session.title?.trim() ?? ""),
|
|
76
|
+
scheduledTaskId:
|
|
77
|
+
typeof scheduledTaskId === "string" && scheduledTaskId.length > 0 ? scheduledTaskId : null,
|
|
78
|
+
siteOrigin,
|
|
79
|
+
...(session.model ? { model: session.model } : {}),
|
|
80
|
+
...(session.reasoningEffort ? { reasoningEffort: session.reasoningEffort } : {}),
|
|
81
|
+
createdBy: session.createdBy,
|
|
82
|
+
channelId: session.channelId,
|
|
83
|
+
parentSessionId: session.parentSessionId,
|
|
84
|
+
rootSessionId: session.rootSessionId,
|
|
85
|
+
effectiveControl: session.effectiveControl,
|
|
86
|
+
inputWait: session.inputWait,
|
|
87
|
+
lastSequence: session.lastSequence,
|
|
88
|
+
pinned: session.pinned ?? false,
|
|
89
|
+
pinnedAt: session.pinnedAt ?? null,
|
|
90
|
+
pinVersion: session.pinVersion ?? 0,
|
|
91
|
+
unread: session.unread ?? false,
|
|
92
|
+
activelyWorking: session.activelyWorking ?? false,
|
|
93
|
+
attentionVersion: session.attentionVersion ?? 0,
|
|
94
|
+
archived: session.archived ?? false,
|
|
95
|
+
archivedAt: session.archivedAt ?? null,
|
|
96
|
+
importedArchive: session.importedArchive,
|
|
97
|
+
...(session.retention ? { retention: session.retention } : {}),
|
|
98
|
+
archiveVersion: session.archiveVersion ?? 0,
|
|
99
|
+
treeStats: session.treeStats,
|
|
100
|
+
requiresActionSince: session.requiresActionSince,
|
|
101
|
+
// Lets lists tell a runtime-held session apart from one waiting on a person.
|
|
102
|
+
...(session.admissionBlock !== undefined ? { admissionBlock: session.admissionBlock } : {}),
|
|
103
|
+
createdAt: session.createdAt,
|
|
104
|
+
updatedAt: session.updatedAt,
|
|
105
|
+
};
|
|
106
|
+
}
|