@opengeni/contracts 3.1.0-canary.2 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-authored-durable-text.d.ts +9 -9
- package/dist/agent-config.d.ts +971 -0
- package/dist/agent-instruction-changes.d.ts +0 -2
- package/dist/allowance-refusal.d.ts +9 -0
- package/dist/allowance-refusal.js +50 -0
- package/dist/allowance-refusal.js.map +1 -0
- package/dist/analytics-consent-report.d.ts +19 -0
- package/dist/analytics-consent-report.js +10 -0
- package/dist/analytics-consent-report.js.map +1 -0
- package/dist/api-key-presets.d.ts +19 -0
- package/dist/artifact-catalog.d.ts +188 -0
- package/dist/artifacts.d.ts +86 -0
- package/dist/atlassian-native-retirement.d.ts +16 -0
- package/dist/atlassian-native-retirement.js +30 -0
- package/dist/atlassian-native-retirement.js.map +1 -0
- package/dist/atlassian.d.ts +1 -0
- package/dist/atlassian.js +34 -19
- package/dist/browser-storage.d.ts +5 -0
- package/dist/browser-storage.js +9 -0
- package/dist/browser-storage.js.map +1 -0
- package/dist/bundled-skills.d.ts +24 -1
- package/dist/canonical-human-identities.js +2 -1
- package/dist/chunk-2ZIHHL72.js +153 -0
- package/dist/chunk-2ZIHHL72.js.map +1 -0
- package/dist/{chunk-5LYFSZ7O.js → chunk-352X6ENP.js} +31 -31
- package/dist/chunk-4JGHSSB7.js +11 -0
- package/dist/chunk-4JGHSSB7.js.map +1 -0
- package/dist/chunk-4QO6GJUX.js +85 -0
- package/dist/chunk-4QO6GJUX.js.map +1 -0
- package/dist/chunk-4VDMHLLL.js +49 -0
- package/dist/chunk-4VDMHLLL.js.map +1 -0
- package/dist/chunk-56SNIMDO.js +9 -0
- package/dist/chunk-56SNIMDO.js.map +1 -0
- package/dist/chunk-6C2HKFTU.js +207 -0
- package/dist/chunk-6C2HKFTU.js.map +1 -0
- package/dist/chunk-6IXO76Z6.js +72 -0
- package/dist/chunk-6IXO76Z6.js.map +1 -0
- package/dist/chunk-7272KVWZ.js +60 -0
- package/dist/chunk-7272KVWZ.js.map +1 -0
- package/dist/{chunk-7ABONTXE.js → chunk-E3GGUBHS.js} +49 -5
- package/dist/chunk-E3GGUBHS.js.map +1 -0
- package/dist/chunk-EFZYKUE2.js +767 -0
- package/dist/chunk-EFZYKUE2.js.map +1 -0
- package/dist/chunk-EKWNTOG3.js +154 -0
- package/dist/chunk-EKWNTOG3.js.map +1 -0
- package/dist/chunk-HABQ7ADB.js +234 -0
- package/dist/chunk-HABQ7ADB.js.map +1 -0
- package/dist/chunk-HRRU4QPI.js +91 -0
- package/dist/chunk-HRRU4QPI.js.map +1 -0
- package/dist/{chunk-3SIZGL3O.js → chunk-IK36LXKC.js} +18 -2
- package/dist/chunk-IK36LXKC.js.map +1 -0
- package/dist/{chunk-TXTQIYCV.js → chunk-ILJ72KPO.js} +56 -3
- package/dist/chunk-ILJ72KPO.js.map +1 -0
- package/dist/chunk-J4HQ3UKY.js +93 -0
- package/dist/chunk-J4HQ3UKY.js.map +1 -0
- package/dist/chunk-KHHZTBP7.js +11 -0
- package/dist/chunk-KHHZTBP7.js.map +1 -0
- package/dist/{chunk-WYBDERIY.js → chunk-LZ2LAHIX.js} +47 -41
- package/dist/chunk-LZ2LAHIX.js.map +1 -0
- package/dist/chunk-NDZHPTCL.js +400 -0
- package/dist/chunk-NDZHPTCL.js.map +1 -0
- package/dist/chunk-OF6OKOBF.js +54793 -0
- package/dist/chunk-OF6OKOBF.js.map +1 -0
- package/dist/chunk-OL23ARTF.js +94 -0
- package/dist/chunk-OL23ARTF.js.map +1 -0
- package/dist/chunk-PUIUXIOL.js +189 -0
- package/dist/chunk-PUIUXIOL.js.map +1 -0
- package/dist/{chunk-Y3KNXVTD.js → chunk-RMWXDZEO.js} +128 -21
- package/dist/chunk-RMWXDZEO.js.map +1 -0
- package/dist/{chunk-MRWYRAS5.js → chunk-SHO4YO4B.js} +27 -35
- package/dist/chunk-SHO4YO4B.js.map +1 -0
- package/dist/chunk-SWRN2DJ3.js +153 -0
- package/dist/chunk-SWRN2DJ3.js.map +1 -0
- package/dist/chunk-TCXCRBPF.js +267 -0
- package/dist/chunk-TCXCRBPF.js.map +1 -0
- package/dist/chunk-TLU3UEMD.js +324 -0
- package/dist/chunk-TLU3UEMD.js.map +1 -0
- package/dist/chunk-TSWWZMUS.js +186 -0
- package/dist/chunk-TSWWZMUS.js.map +1 -0
- package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
- package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
- package/dist/chunk-XDLAGX66.js +127 -0
- package/dist/chunk-XDLAGX66.js.map +1 -0
- package/dist/chunk-YKZ4WU4P.js +33 -0
- package/dist/chunk-YKZ4WU4P.js.map +1 -0
- package/dist/{chunk-O5LEQHDM.js → chunk-Z7WEVGCL.js} +3 -3
- package/dist/{chunk-YBW5JSA3.js → chunk-ZDCRWCGZ.js} +119 -101
- package/dist/chunk-ZDCRWCGZ.js.map +1 -0
- package/dist/claude-provider-account-authority.d.ts +18 -0
- package/dist/claude-subscription-oauth.d.ts +42 -0
- package/dist/claude-subscription-usage.d.ts +159 -0
- package/dist/client-error-report.d.ts +158 -0
- package/dist/client-error-report.js +164 -0
- package/dist/client-error-report.js.map +1 -0
- package/dist/code-search.d.ts +52 -0
- package/dist/code-search.js +40 -0
- package/dist/code-search.js.map +1 -0
- package/dist/codex-provider-account-authority.js +20 -12
- package/dist/codex-provider-account-authority.js.map +1 -1
- package/dist/company-profile.d.ts +144 -6
- package/dist/connect.d.ts +37 -0
- package/dist/connect.js +216 -159
- package/dist/connect.js.map +1 -1
- package/dist/connection-account-label.d.ts +2 -0
- package/dist/connection-account-label.js +35 -0
- package/dist/connection-account-label.js.map +1 -0
- package/dist/connection-authority.d.ts +9 -317
- package/dist/connection-authority.js +37 -42
- package/dist/connector-attachments.js +2 -1
- package/dist/connector-destinations.js +2 -1
- package/dist/connector-tool-permissions.d.ts +137 -0
- package/dist/cua-desktop-tools.d.ts +17 -0
- package/dist/define-schema.d.ts +8 -0
- package/dist/direct-model-provider.d.ts +36 -0
- package/dist/editable-artifact-codec-registry.js +5 -5
- package/dist/editable-artifact-committed-transaction.js +3 -2
- package/dist/editable-artifact-live.js +5 -5
- package/dist/editable-artifact-serialized-commit.js +6 -6
- package/dist/editable-artifact-versions.d.ts +7 -1
- package/dist/editable-artifact-versions.js +1 -1
- package/dist/editable-artifacts.js +62 -56
- package/dist/event-preview.d.ts +22 -0
- package/dist/external-identities.d.ts +138 -0
- package/dist/external-identities.js +9 -4
- package/dist/first-party-tool-authorization.d.ts +815 -0
- package/dist/github-repository-contracts.js +60 -43
- package/dist/github-repository-contracts.js.map +1 -1
- package/dist/google-drive.d.ts +2 -1
- package/dist/google-drive.js +305 -238
- package/dist/google-drive.js.map +1 -1
- package/dist/host-mcp-bindings.d.ts +5 -0
- package/dist/host-mcp-bindings.js +233 -170
- package/dist/host-mcp-bindings.js.map +1 -1
- package/dist/image-generation.d.ts +1 -0
- package/dist/index.d.ts +16761 -5946
- package/dist/index.js +1973 -260
- package/dist/insights-usage.d.ts +877 -0
- package/dist/insights-usage.js +559 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/interaction.d.ts +1176 -829
- package/dist/knowledge-entries.d.ts +81 -2
- package/dist/knowledge-preparation.d.ts +239 -0
- package/dist/managed-auth-session-sets.d.ts +7 -0
- package/dist/managed-auth-session-sets.js +198 -132
- package/dist/managed-auth-session-sets.js.map +1 -1
- package/dist/managed-sign-in-methods.d.ts +56 -0
- package/dist/managed-sign-in-methods.js +64 -0
- package/dist/managed-sign-in-methods.js.map +1 -0
- package/dist/mcp-catalog-limits.d.ts +2 -0
- package/dist/mcp-oauth.d.ts +2 -2
- package/dist/mcp-structured-content.d.ts +25 -0
- package/dist/modal-native-proof-v2.d.ts +587 -0
- package/dist/modal-native-proof-v2.js +38 -0
- package/dist/modal-native-proof-v2.js.map +1 -0
- package/dist/model-account-choice.d.ts +235 -0
- package/dist/model-account-settings.d.ts +422 -0
- package/dist/model-availability.d.ts +15 -0
- package/dist/model-connection-access.d.ts +13 -0
- package/dist/model-context-inspector.d.ts +98 -0
- package/dist/model-display.d.ts +43 -0
- package/dist/model-display.js +17 -0
- package/dist/model-display.js.map +1 -0
- package/dist/model-picker-order.d.ts +3 -1
- package/dist/model-picker-order.js +3 -0
- package/dist/model-picker-order.js.map +1 -1
- package/dist/organization-access.d.ts +412 -0
- package/dist/organization-access.js +39 -0
- package/dist/organization-access.js.map +1 -0
- package/dist/organization-integration-policy.d.ts +27 -0
- package/dist/organization-membership-lifecycle.d.ts +38 -0
- package/dist/organization-model-usage.d.ts +146 -0
- package/dist/organization-model-usage.js +78 -0
- package/dist/organization-model-usage.js.map +1 -0
- package/dist/organization-recovery.js +2 -1
- package/dist/organization-usage.d.ts +138 -0
- package/dist/permissions.d.ts +18 -0
- package/dist/personal-github.d.ts +1 -0
- package/dist/personal-github.js +199 -144
- package/dist/personal-github.js.map +1 -1
- package/dist/prepared-mcp-setup.d.ts +54 -0
- package/dist/prepared-mcp-setup.js +12 -0
- package/dist/prepared-mcp-setup.js.map +1 -0
- package/dist/product-analytics.d.ts +116 -0
- package/dist/product-lifecycle-facts.d.ts +73 -0
- package/dist/remember.d.ts +98 -6
- package/dist/retained-output.d.ts +8 -0
- package/dist/sandbox-file-artifacts.d.ts +1 -0
- package/dist/sandbox-provider-command.d.ts +91 -1
- package/dist/sandbox-recovery.d.ts +146 -0
- package/dist/secret-generator.d.ts +44 -0
- package/dist/secret-references.d.ts +90 -0
- package/dist/secret-resolution.d.ts +111 -0
- package/dist/secret-totp.d.ts +41 -0
- package/dist/session-final-reply.d.ts +6 -0
- package/dist/session-final-reply.js +9 -0
- package/dist/session-final-reply.js.map +1 -0
- package/dist/session-goal-reports.d.ts +21 -0
- package/dist/session-history-import.d.ts +1272 -0
- package/dist/session-list-entries.d.ts +4 -0
- package/dist/session-list-entries.js +56 -0
- package/dist/session-list-entries.js.map +1 -0
- package/dist/session-mcp-projections.d.ts +6 -0
- package/dist/session-mcp-tool-permissions.d.ts +62 -0
- package/dist/session-message-search.d.ts +68 -0
- package/dist/session-target.d.ts +18 -0
- package/dist/session-titles.d.ts +8 -0
- package/dist/session-titles.js +5 -1
- package/dist/session-usage-limit-refusal.d.ts +34 -0
- package/dist/session-usage-limit-refusal.js +15 -0
- package/dist/session-usage-limit-refusal.js.map +1 -0
- package/dist/session-usage-limits.d.ts +127 -0
- package/dist/session-usage-limits.js +41 -0
- package/dist/session-usage-limits.js.map +1 -0
- package/dist/signup-attribution.d.ts +39 -0
- package/dist/site-data.d.ts +286 -0
- package/dist/site-operations.d.ts +39 -0
- package/dist/site-publishing.d.ts +778 -0
- package/dist/site-session-http.d.ts +89 -4
- package/dist/site-session-http.js +25 -1
- package/dist/site-sql.d.ts +421 -0
- package/dist/skill-catalog-context.d.ts +7 -0
- package/dist/skill-files.d.ts +1 -1
- package/dist/skill-use.d.ts +61 -0
- package/dist/skills.d.ts +15 -0
- package/dist/slack-bot-scopes.d.ts +17 -12
- package/dist/slack-bot-scopes.js +10 -3
- package/dist/slack-rest-mcp.d.ts +36 -0
- package/dist/slack-rest-mcp.js +25 -0
- package/dist/slack-rest-mcp.js.map +1 -0
- package/dist/spreadsheet-artifact-commands.d.ts +14 -1
- package/dist/spreadsheet-artifact-commands.js +8 -2
- package/dist/spreadsheet-artifact-query.d.ts +13 -6
- package/dist/spreadsheet-artifact-query.js +3 -3
- package/dist/subscription-account-actions.d.ts +64 -0
- package/dist/subscription-account-pools.d.ts +292 -0
- package/dist/subscription-personal-authority-v2.d.ts +28 -0
- package/dist/subscription-personal-authority-v2.js +12 -0
- package/dist/subscription-personal-authority-v2.js.map +1 -0
- package/dist/tool-action-review.d.ts +132 -0
- package/dist/tool-catalog.d.ts +408 -0
- package/dist/tool-policy.d.ts +5 -0
- package/dist/tool-review-presentation.d.ts +12 -0
- package/dist/tool-review-presentation.js +17 -0
- package/dist/tool-review-presentation.js.map +1 -0
- package/dist/transcription-recordings.d.ts +21 -0
- package/dist/turn-serving-policy.d.ts +221 -0
- package/dist/usage-allowances.d.ts +314 -0
- package/dist/usage-allowances.js +52 -0
- package/dist/usage-allowances.js.map +1 -0
- package/dist/vaults.d.ts +1286 -0
- package/dist/video-generation.d.ts +3 -0
- package/dist/video-generation.js +2 -1
- package/dist/workspace-integration-wire.d.ts +36 -0
- package/dist/workspace-integration-wire.js +23 -0
- package/dist/workspace-integration-wire.js.map +1 -0
- package/dist/workspace-integrations.d.ts +1028 -0
- package/dist/xai-provider-account-authority.js +2 -1
- package/package.json +93 -5
- package/src/agent-authored-durable-text.ts +14 -11
- package/src/agent-config.ts +1698 -0
- package/src/agent-instruction-changes.ts +91 -74
- package/src/agent-learning.ts +94 -67
- package/src/agent-topology.ts +57 -52
- package/src/allowance-refusal.ts +81 -0
- package/src/analytics-consent-report.ts +20 -0
- package/src/api-key-presets.ts +28 -0
- package/src/artifact-catalog.ts +82 -0
- package/src/artifacts.ts +299 -227
- package/src/atlassian-native-retirement.ts +33 -0
- package/src/atlassian.ts +135 -108
- package/src/browser-storage.ts +10 -0
- package/src/bundled-skills.ts +60 -17
- package/src/canonical-human-identities.ts +60 -58
- package/src/claude-provider-account-authority.ts +12 -0
- package/src/claude-subscription-oauth.ts +73 -0
- package/src/claude-subscription-usage.ts +68 -0
- package/src/client-error-report.ts +343 -0
- package/src/code-search.ts +105 -0
- package/src/codex-provider-account-authority.ts +21 -16
- package/src/company-brain-governed-writes.ts +255 -233
- package/src/company-brain.ts +164 -153
- package/src/company-profile.ts +365 -292
- package/src/connect.ts +212 -173
- package/src/connection-account-label.ts +46 -0
- package/src/connection-authority.ts +183 -364
- package/src/connector-attachments.ts +137 -122
- package/src/connector-destinations.ts +46 -42
- package/src/connector-tool-permissions.ts +117 -0
- package/src/cua-desktop-tools.gen.json +6512 -0
- package/src/cua-desktop-tools.linux.gen.json +6600 -0
- package/src/cua-desktop-tools.ts +36 -0
- package/src/cua-desktop-tools.windows.gen.json +6353 -0
- package/src/define-schema.ts +10 -0
- package/src/direct-model-provider.ts +108 -0
- package/src/editable-artifact-committed-transaction.ts +17 -0
- package/src/editable-artifact-versions.ts +7 -1
- package/src/event-preview.ts +53 -3
- package/src/external-identities.ts +249 -176
- package/src/feedback.ts +43 -30
- package/src/first-party-tool-authorization.ts +356 -0
- package/src/github-repository-contracts.ts +78 -64
- package/src/google-drive.ts +285 -234
- package/src/governed-learning-activation.ts +152 -131
- package/src/governed-learning-evaluator.ts +140 -133
- package/src/host-mcp-bindings.ts +252 -198
- package/src/image-generation.ts +104 -95
- package/src/index.ts +13235 -8687
- package/src/insights-usage.ts +727 -0
- package/src/interaction.ts +3070 -2326
- package/src/knowledge-entries.ts +361 -276
- package/src/knowledge-preparation.ts +57 -0
- package/src/knowledge.ts +246 -213
- package/src/managed-auth-session-sets.ts +220 -144
- package/src/managed-sign-in-methods.ts +52 -0
- package/src/mcp-catalog-limits.ts +2 -0
- package/src/mcp-oauth.ts +43 -34
- package/src/mcp-receipts.ts +192 -192
- package/src/mcp-structured-content.ts +81 -0
- package/src/memory-slack-delivery.ts +171 -142
- package/src/modal-native-proof-v2.ts +429 -0
- package/src/model-account-choice.ts +177 -0
- package/src/model-account-settings.ts +210 -0
- package/src/model-availability.ts +22 -0
- package/src/model-connection-access.ts +61 -14
- package/src/model-context-inspector.ts +133 -99
- package/src/model-display.ts +221 -0
- package/src/model-picker-order.ts +12 -1
- package/src/organization-access.ts +217 -0
- package/src/organization-integration-policy.ts +63 -0
- package/src/organization-membership-lifecycle.ts +528 -382
- package/src/organization-model-usage.ts +81 -0
- package/src/organization-recovery.ts +147 -135
- package/src/organization-usage.ts +94 -0
- package/src/permissions.ts +88 -52
- package/src/personal-github.ts +210 -171
- package/src/preference-registry.ts +314 -258
- package/src/prepared-mcp-setup.ts +189 -0
- package/src/product-analytics.ts +261 -0
- package/src/product-lifecycle-facts.ts +122 -0
- package/src/remember.ts +181 -167
- package/src/retained-output.ts +194 -165
- package/src/sandbox-file-artifacts.ts +60 -47
- package/src/sandbox-provider-command.ts +88 -20
- package/src/sandbox-recovery.ts +129 -0
- package/src/scoped-knowledge.ts +61 -43
- package/src/secret-generator.ts +155 -0
- package/src/secret-references.ts +414 -0
- package/src/secret-resolution.ts +274 -0
- package/src/secret-totp.ts +188 -0
- package/src/session-final-reply.ts +16 -0
- package/src/session-goal-reports.ts +64 -0
- package/src/session-history-import.ts +177 -0
- package/src/session-list-entries.ts +96 -0
- package/src/session-mcp-projections.ts +11 -0
- package/src/session-mcp-tool-permissions.ts +108 -0
- package/src/session-message-search.ts +61 -0
- package/src/session-target.ts +57 -0
- package/src/session-titles.ts +80 -10
- package/src/session-topology-primitives.ts +19 -12
- package/src/session-usage-limit-refusal.ts +101 -0
- package/src/session-usage-limits.ts +171 -0
- package/src/signup-attribution.ts +86 -0
- package/src/site-data.ts +339 -0
- package/src/site-operations.ts +154 -0
- package/src/site-publishing.ts +876 -0
- package/src/site-session-http.ts +294 -16
- package/src/site-sql.ts +1123 -0
- package/src/skill-catalog-context.ts +50 -0
- package/src/skill-files.ts +3 -3
- package/src/skill-use.ts +80 -0
- package/src/skills.ts +82 -54
- package/src/slack-bot-scopes.ts +31 -39
- package/src/slack-rest-mcp.ts +222 -0
- package/src/slack-task-policy.ts +96 -73
- package/src/spreadsheet-artifact-commands.ts +73 -2
- package/src/spreadsheet-artifact-query.ts +187 -39
- package/src/subscription-account-actions.ts +84 -0
- package/src/subscription-account-pools.ts +53 -0
- package/src/subscription-personal-authority-v2.ts +66 -0
- package/src/task-notes.ts +55 -51
- package/src/tool-action-review.ts +258 -0
- package/src/tool-catalog.ts +609 -372
- package/src/tool-policy.ts +82 -0
- package/src/tool-result-spill.ts +12 -9
- package/src/tool-review-presentation.ts +385 -0
- package/src/transcription-recordings.ts +145 -131
- package/src/turn-serving-policy.ts +166 -0
- package/src/usage-allowances.ts +248 -0
- package/src/vaults.ts +850 -0
- package/src/video-generation.ts +385 -360
- package/src/work-claims.ts +173 -149
- package/src/workspace-instruction-policies.ts +349 -276
- package/src/workspace-integration-wire.ts +101 -0
- package/src/workspace-integrations.ts +724 -0
- package/src/workspace-learning-administration.ts +57 -44
- package/src/workspace-learning-policy.ts +127 -96
- package/src/workspace-state.ts +250 -220
- package/src/xai-provider-account-authority.ts +22 -17
- package/dist/chunk-2AC63F4S.js +0 -171
- package/dist/chunk-2AC63F4S.js.map +0 -1
- package/dist/chunk-3SIZGL3O.js.map +0 -1
- package/dist/chunk-7ABONTXE.js.map +0 -1
- package/dist/chunk-BCS7WHCK.js +0 -139
- package/dist/chunk-BCS7WHCK.js.map +0 -1
- package/dist/chunk-GRG7PHWQ.js +0 -25
- package/dist/chunk-GRG7PHWQ.js.map +0 -1
- package/dist/chunk-JUFK3T4Q.js +0 -80
- package/dist/chunk-JUFK3T4Q.js.map +0 -1
- package/dist/chunk-M5ZGRVIQ.js +0 -719
- package/dist/chunk-M5ZGRVIQ.js.map +0 -1
- package/dist/chunk-MRWYRAS5.js.map +0 -1
- package/dist/chunk-OVFORMPW.js +0 -348
- package/dist/chunk-OVFORMPW.js.map +0 -1
- package/dist/chunk-P3HLDT77.js +0 -59
- package/dist/chunk-P3HLDT77.js.map +0 -1
- package/dist/chunk-QQUJ6NPW.js +0 -23093
- package/dist/chunk-QQUJ6NPW.js.map +0 -1
- package/dist/chunk-TXTQIYCV.js.map +0 -1
- package/dist/chunk-WYBDERIY.js.map +0 -1
- package/dist/chunk-Y3KNXVTD.js.map +0 -1
- package/dist/chunk-YBW5JSA3.js.map +0 -1
- package/dist/chunk-YRXAWWCU.js +0 -45
- package/dist/chunk-YRXAWWCU.js.map +0 -1
- package/dist/host-mcp-resolvers.d.ts +0 -32
- package/dist/host-mcp-resolvers.js +0 -34
- package/dist/host-mcp-resolvers.js.map +0 -1
- package/src/host-mcp-resolvers.ts +0 -50
- /package/dist/{chunk-5LYFSZ7O.js.map → chunk-352X6ENP.js.map} +0 -0
- /package/dist/{chunk-O5LEQHDM.js.map → chunk-Z7WEVGCL.js.map} +0 -0
package/dist/personal-github.js
CHANGED
|
@@ -1,28 +1,45 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ConnectionMetadata
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-OF6OKOBF.js";
|
|
4
|
+
import "./chunk-EFZYKUE2.js";
|
|
5
|
+
import "./chunk-Z7WEVGCL.js";
|
|
6
|
+
import "./chunk-4JGHSSB7.js";
|
|
7
|
+
import "./chunk-2ZIHHL72.js";
|
|
8
|
+
import "./chunk-LZ2LAHIX.js";
|
|
9
|
+
import "./chunk-NDZHPTCL.js";
|
|
10
|
+
import "./chunk-SHO4YO4B.js";
|
|
11
|
+
import "./chunk-TSWWZMUS.js";
|
|
12
|
+
import "./chunk-XDLAGX66.js";
|
|
13
|
+
import "./chunk-4VDMHLLL.js";
|
|
14
|
+
import "./chunk-E3GGUBHS.js";
|
|
15
|
+
import "./chunk-KHHZTBP7.js";
|
|
16
|
+
import "./chunk-6IXO76Z6.js";
|
|
10
17
|
import "./chunk-NVJMJWLL.js";
|
|
18
|
+
import "./chunk-352X6ENP.js";
|
|
11
19
|
import "./chunk-YRKRZ6OF.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-J4HQ3UKY.js";
|
|
21
|
+
import "./chunk-YKZ4WU4P.js";
|
|
22
|
+
import "./chunk-TLU3UEMD.js";
|
|
23
|
+
import "./chunk-OL23ARTF.js";
|
|
24
|
+
import "./chunk-TCXCRBPF.js";
|
|
25
|
+
import "./chunk-ZDCRWCGZ.js";
|
|
26
|
+
import "./chunk-SWRN2DJ3.js";
|
|
27
|
+
import "./chunk-HRRU4QPI.js";
|
|
28
|
+
import "./chunk-IK36LXKC.js";
|
|
19
29
|
import "./chunk-RIY7GYQS.js";
|
|
30
|
+
import "./chunk-4QO6GJUX.js";
|
|
31
|
+
import "./chunk-EKWNTOG3.js";
|
|
32
|
+
import {
|
|
33
|
+
defineSchema
|
|
34
|
+
} from "./chunk-56SNIMDO.js";
|
|
35
|
+
import "./chunk-D2HKF2EF.js";
|
|
20
36
|
import "./chunk-MYBZRDTY.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-PUIUXIOL.js";
|
|
38
|
+
import "./chunk-RKX3NQYS.js";
|
|
39
|
+
import "./chunk-7272KVWZ.js";
|
|
40
|
+
import "./chunk-RMWXDZEO.js";
|
|
41
|
+
import "./chunk-ILJ72KPO.js";
|
|
42
|
+
import "./chunk-WVCFSOUZ.js";
|
|
26
43
|
|
|
27
44
|
// src/personal-github.ts
|
|
28
45
|
import { z } from "zod";
|
|
@@ -36,142 +53,180 @@ var PERSONAL_GITHUB_TOKEN_URL = "https://github.com/login/oauth/access_token";
|
|
|
36
53
|
var PERSONAL_GITHUB_USER_URL = "https://api.github.com/user";
|
|
37
54
|
var PERSONAL_GITHUB_API_ORIGIN = "https://api.github.com";
|
|
38
55
|
var PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX = 100;
|
|
39
|
-
var PersonalGitHubRepositoryId =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
var PersonalGitHubRepositoryId = /* @__PURE__ */ defineSchema(
|
|
57
|
+
() => z.string().regex(/^[1-9]\d*$/u)
|
|
58
|
+
);
|
|
59
|
+
var PersonalGitHubRepositoryAccess = /* @__PURE__ */ defineSchema(
|
|
60
|
+
() => z.enum(["read", "write"])
|
|
61
|
+
);
|
|
62
|
+
var PersonalGitHubRepositoryPermissions = /* @__PURE__ */ defineSchema(
|
|
63
|
+
() => z.object({
|
|
64
|
+
pull: z.boolean(),
|
|
65
|
+
push: z.boolean(),
|
|
66
|
+
admin: z.boolean(),
|
|
67
|
+
maintain: z.boolean(),
|
|
68
|
+
triage: z.boolean()
|
|
69
|
+
}).strict()
|
|
70
|
+
);
|
|
71
|
+
var PersonalGitHubRepositoryVisibility = /* @__PURE__ */ defineSchema(
|
|
72
|
+
() => z.enum(["public", "private", "internal"])
|
|
73
|
+
);
|
|
74
|
+
var PersonalGitHubRepositoryFullName = /* @__PURE__ */ defineSchema(
|
|
75
|
+
() => z.string().min(3).max(140).regex(/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})\/[A-Za-z0-9_.-]{1,100}$/u)
|
|
76
|
+
);
|
|
50
77
|
function canonicalPersonalGitHubRepositoryUrl(fullName) {
|
|
51
78
|
return `https://github.com/${fullName}`;
|
|
52
79
|
}
|
|
53
|
-
var PersonalGitHubRepository =
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
code: "custom",
|
|
67
|
-
path: ["canonicalUrl"],
|
|
68
|
-
message: "canonicalUrl must be derived from fullName"
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
if (repository.private !== (repository.visibility === "private")) {
|
|
72
|
-
context.addIssue({
|
|
73
|
-
code: "custom",
|
|
74
|
-
path: ["private"],
|
|
75
|
-
message: "private must agree with visibility"
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
var PersonalGitHubSelectedRepository = PersonalGitHubRepository.safeExtend({
|
|
80
|
-
selectedAccess: PersonalGitHubRepositoryAccess,
|
|
81
|
-
selectionGeneration: z.number().int().positive(),
|
|
82
|
-
selectedAt: z.string().datetime({ offset: true }),
|
|
83
|
-
lastVerifiedAt: z.string().datetime({ offset: true })
|
|
84
|
-
}).strict();
|
|
85
|
-
var PersonalGitHubRepositorySelectionState = z.object({
|
|
86
|
-
connectionAuthorityGeneration: z.number().int().positive(),
|
|
87
|
-
credentialBindingId: z.string().uuid(),
|
|
88
|
-
providerPrincipalId: PersonalGitHubRepositoryId,
|
|
89
|
-
selectionGeneration: z.number().int().nonnegative(),
|
|
90
|
-
repositories: z.array(PersonalGitHubSelectedRepository).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX)
|
|
91
|
-
}).strict();
|
|
92
|
-
var ListPersonalGitHubRepositoriesQuery = z.object({
|
|
93
|
-
cursor: z.coerce.number().int().positive().max(1e4).default(1),
|
|
94
|
-
limit: z.coerce.number().int().min(1).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX).default(50)
|
|
95
|
-
}).strict();
|
|
96
|
-
var PersonalGitHubRepositoryCatalogItem = PersonalGitHubRepository.safeExtend({
|
|
97
|
-
selectedAccess: PersonalGitHubRepositoryAccess.nullable()
|
|
98
|
-
}).strict();
|
|
99
|
-
var ListPersonalGitHubRepositoriesResponse = z.object({
|
|
100
|
-
repositories: z.array(PersonalGitHubRepositoryCatalogItem).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),
|
|
101
|
-
nextCursor: z.number().int().positive().nullable(),
|
|
102
|
-
selection: PersonalGitHubRepositorySelectionState
|
|
103
|
-
}).strict();
|
|
104
|
-
var PersonalGitHubRepositorySelectionInput = z.object({
|
|
105
|
-
repositoryId: PersonalGitHubRepositoryId,
|
|
106
|
-
fullName: PersonalGitHubRepositoryFullName,
|
|
107
|
-
access: PersonalGitHubRepositoryAccess
|
|
108
|
-
}).strict();
|
|
109
|
-
var ReplacePersonalGitHubRepositorySelectionsRequest = z.object({
|
|
110
|
-
expectedConnectionAuthorityGeneration: z.number().int().positive(),
|
|
111
|
-
expectedSelectionGeneration: z.number().int().nonnegative(),
|
|
112
|
-
idempotencyKey: z.string().trim().min(1).max(200),
|
|
113
|
-
repositories: z.array(PersonalGitHubRepositorySelectionInput).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX)
|
|
114
|
-
}).strict().superRefine((request, context) => {
|
|
115
|
-
const repositoryIds = /* @__PURE__ */ new Set();
|
|
116
|
-
const fullNames = /* @__PURE__ */ new Set();
|
|
117
|
-
request.repositories.forEach((repository, index) => {
|
|
118
|
-
const normalizedFullName = repository.fullName.toLowerCase();
|
|
119
|
-
if (repositoryIds.has(repository.repositoryId)) {
|
|
80
|
+
var PersonalGitHubRepository = /* @__PURE__ */ defineSchema(
|
|
81
|
+
() => z.object({
|
|
82
|
+
repositoryId: PersonalGitHubRepositoryId,
|
|
83
|
+
fullName: PersonalGitHubRepositoryFullName,
|
|
84
|
+
canonicalUrl: z.string().url().max(512),
|
|
85
|
+
defaultBranch: z.string().min(1).max(255),
|
|
86
|
+
visibility: PersonalGitHubRepositoryVisibility,
|
|
87
|
+
private: z.boolean(),
|
|
88
|
+
archived: z.boolean(),
|
|
89
|
+
disabled: z.boolean(),
|
|
90
|
+
permissions: PersonalGitHubRepositoryPermissions
|
|
91
|
+
}).strict().superRefine((repository, context) => {
|
|
92
|
+
if (repository.canonicalUrl !== canonicalPersonalGitHubRepositoryUrl(repository.fullName)) {
|
|
120
93
|
context.addIssue({
|
|
121
94
|
code: "custom",
|
|
122
|
-
path: ["
|
|
123
|
-
message: "
|
|
95
|
+
path: ["canonicalUrl"],
|
|
96
|
+
message: "canonicalUrl must be derived from fullName"
|
|
124
97
|
});
|
|
125
98
|
}
|
|
126
|
-
if (
|
|
99
|
+
if (repository.private !== (repository.visibility === "private")) {
|
|
127
100
|
context.addIssue({
|
|
128
101
|
code: "custom",
|
|
129
|
-
path: ["
|
|
130
|
-
message: "
|
|
102
|
+
path: ["private"],
|
|
103
|
+
message: "private must agree with visibility"
|
|
131
104
|
});
|
|
132
105
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}).strict()
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}).strict()
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
106
|
+
})
|
|
107
|
+
);
|
|
108
|
+
var PersonalGitHubSelectedRepository = /* @__PURE__ */ defineSchema(
|
|
109
|
+
() => PersonalGitHubRepository.safeExtend({
|
|
110
|
+
selectedAccess: PersonalGitHubRepositoryAccess,
|
|
111
|
+
selectionGeneration: z.number().int().positive(),
|
|
112
|
+
selectedAt: z.string().datetime({ offset: true }),
|
|
113
|
+
lastVerifiedAt: z.string().datetime({ offset: true })
|
|
114
|
+
}).strict()
|
|
115
|
+
);
|
|
116
|
+
var PersonalGitHubRepositorySelectionState = /* @__PURE__ */ defineSchema(
|
|
117
|
+
() => z.object({
|
|
118
|
+
connectionAuthorityGeneration: z.number().int().positive(),
|
|
119
|
+
credentialBindingId: z.string().uuid(),
|
|
120
|
+
providerPrincipalId: PersonalGitHubRepositoryId,
|
|
121
|
+
selectionGeneration: z.number().int().nonnegative(),
|
|
122
|
+
repositories: z.array(PersonalGitHubSelectedRepository).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX)
|
|
123
|
+
}).strict()
|
|
124
|
+
);
|
|
125
|
+
var ListPersonalGitHubRepositoriesQuery = /* @__PURE__ */ defineSchema(
|
|
126
|
+
() => z.object({
|
|
127
|
+
cursor: z.coerce.number().int().positive().max(1e4).default(1),
|
|
128
|
+
limit: z.coerce.number().int().min(1).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX).default(50)
|
|
129
|
+
}).strict()
|
|
130
|
+
);
|
|
131
|
+
var PersonalGitHubRepositoryCatalogItem = /* @__PURE__ */ defineSchema(
|
|
132
|
+
() => PersonalGitHubRepository.safeExtend({
|
|
133
|
+
selectedAccess: PersonalGitHubRepositoryAccess.nullable()
|
|
134
|
+
}).strict()
|
|
135
|
+
);
|
|
136
|
+
var ListPersonalGitHubRepositoriesResponse = /* @__PURE__ */ defineSchema(
|
|
137
|
+
() => z.object({
|
|
138
|
+
repositories: z.array(PersonalGitHubRepositoryCatalogItem).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),
|
|
139
|
+
nextCursor: z.number().int().positive().nullable(),
|
|
140
|
+
selection: PersonalGitHubRepositorySelectionState
|
|
141
|
+
}).strict()
|
|
142
|
+
);
|
|
143
|
+
var PersonalGitHubRepositorySelectionInput = /* @__PURE__ */ defineSchema(
|
|
144
|
+
() => z.object({
|
|
145
|
+
repositoryId: PersonalGitHubRepositoryId,
|
|
146
|
+
fullName: PersonalGitHubRepositoryFullName,
|
|
147
|
+
access: PersonalGitHubRepositoryAccess
|
|
148
|
+
}).strict()
|
|
149
|
+
);
|
|
150
|
+
var ReplacePersonalGitHubRepositorySelectionsRequest = /* @__PURE__ */ defineSchema(
|
|
151
|
+
() => z.object({
|
|
152
|
+
expectedConnectionAuthorityGeneration: z.number().int().positive(),
|
|
153
|
+
expectedSelectionGeneration: z.number().int().nonnegative(),
|
|
154
|
+
idempotencyKey: z.string().trim().min(1).max(200),
|
|
155
|
+
repositories: z.array(PersonalGitHubRepositorySelectionInput).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX)
|
|
156
|
+
}).strict().superRefine((request, context) => {
|
|
157
|
+
const repositoryIds = /* @__PURE__ */ new Set();
|
|
158
|
+
const fullNames = /* @__PURE__ */ new Set();
|
|
159
|
+
request.repositories.forEach((repository, index) => {
|
|
160
|
+
const normalizedFullName = repository.fullName.toLowerCase();
|
|
161
|
+
if (repositoryIds.has(repository.repositoryId)) {
|
|
162
|
+
context.addIssue({
|
|
163
|
+
code: "custom",
|
|
164
|
+
path: ["repositories", index, "repositoryId"],
|
|
165
|
+
message: "repositoryId must be unique"
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
if (fullNames.has(normalizedFullName)) {
|
|
169
|
+
context.addIssue({
|
|
170
|
+
code: "custom",
|
|
171
|
+
path: ["repositories", index, "fullName"],
|
|
172
|
+
message: "fullName must be unique"
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
repositoryIds.add(repository.repositoryId);
|
|
176
|
+
fullNames.add(normalizedFullName);
|
|
177
|
+
});
|
|
178
|
+
})
|
|
179
|
+
);
|
|
180
|
+
var VerifyPersonalGitHubRepositorySelectionsRequest = /* @__PURE__ */ defineSchema(
|
|
181
|
+
() => z.object({
|
|
182
|
+
expectedConnectionAuthorityGeneration: z.number().int().positive(),
|
|
183
|
+
expectedSelectionGeneration: z.number().int().nonnegative(),
|
|
184
|
+
idempotencyKey: z.string().trim().min(1).max(200)
|
|
185
|
+
}).strict()
|
|
186
|
+
);
|
|
187
|
+
var PersonalGitHubConnectionMetadata = /* @__PURE__ */ defineSchema(
|
|
188
|
+
() => z.object({
|
|
189
|
+
credentialRole: z.literal(PERSONAL_GITHUB_CREDENTIAL_ROLE),
|
|
190
|
+
providerFamily: z.literal(PERSONAL_GITHUB_PROVIDER_FAMILY),
|
|
191
|
+
providerPrincipalId: z.string().regex(/^\d+$/u),
|
|
192
|
+
githubUserId: z.string().regex(/^\d+$/u),
|
|
193
|
+
githubLogin: z.string().min(1).max(100),
|
|
194
|
+
oauthEnvironment: z.string().min(1).max(128),
|
|
195
|
+
oauthClientMarker: z.string().regex(/^[a-f0-9]{32}$/u),
|
|
196
|
+
credentialBindingId: z.string().uuid(),
|
|
197
|
+
connectedAt: z.string().datetime({ offset: true }),
|
|
198
|
+
lastVerifiedAt: z.string().datetime({ offset: true }),
|
|
199
|
+
disconnectedAt: z.string().datetime({ offset: true }).nullable().optional(),
|
|
200
|
+
refreshTokenExpiresAt: z.string().datetime({ offset: true }).nullable().optional()
|
|
201
|
+
}).passthrough()
|
|
202
|
+
);
|
|
203
|
+
var PersonalGitHubOAuthStartRequest = /* @__PURE__ */ defineSchema(
|
|
204
|
+
() => z.object({
|
|
205
|
+
/** Existing exact connection generation to re-authorize in place. */
|
|
206
|
+
connectionId: z.string().uuid().optional(),
|
|
207
|
+
/** Same-workspace UI path restored after the callback. */
|
|
208
|
+
returnPath: z.string().min(1).max(2048).optional()
|
|
209
|
+
}).strict()
|
|
210
|
+
);
|
|
211
|
+
var PersonalGitHubOAuthStartResponse = /* @__PURE__ */ defineSchema(
|
|
212
|
+
() => z.object({
|
|
213
|
+
authorizationUrl: z.string().url(),
|
|
214
|
+
expiresAt: z.string().datetime({ offset: true })
|
|
215
|
+
}).strict()
|
|
216
|
+
);
|
|
217
|
+
var PersonalGitHubConnectionStatusResponse = /* @__PURE__ */ defineSchema(
|
|
218
|
+
() => z.object({
|
|
219
|
+
enabled: z.boolean(),
|
|
220
|
+
connection: ConnectionMetadata.nullable(),
|
|
221
|
+
reviewUrl: z.string().url().nullable()
|
|
222
|
+
}).strict()
|
|
223
|
+
);
|
|
224
|
+
var PersonalGitHubDisconnectRequest = /* @__PURE__ */ defineSchema(
|
|
225
|
+
() => z.object({
|
|
226
|
+
expectedVersion: z.number().int().positive(),
|
|
227
|
+
idempotencyKey: z.string().trim().min(1).max(200)
|
|
228
|
+
}).strict()
|
|
229
|
+
);
|
|
175
230
|
function isPersonalGitHubConnection(connection) {
|
|
176
231
|
return connection.providerDomain.toLowerCase() === PERSONAL_GITHUB_PROVIDER_DOMAIN && connection.kind === "oauth2" && PersonalGitHubConnectionMetadata.safeParse(connection.metadata).success;
|
|
177
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/personal-github.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { ConnectionMetadata } from \"./index\";\n\nexport const PERSONAL_GITHUB_PROVIDER_DOMAIN = \"github.com\" as const;\nexport const PERSONAL_GITHUB_PROVIDER_FAMILY = \"github\" as const;\nexport const PERSONAL_GITHUB_CREDENTIAL_ROLE = \"opengeni_github_personal\" as const;\nexport const PERSONAL_GITHUB_CONNECTION_SURFACE_ID = \"github:personal\" as const;\nexport const PERSONAL_GITHUB_REQUESTED_SCOPES = [\"repo\"] as const;\nexport const PERSONAL_GITHUB_AUTHORIZATION_URL =\n \"https://github.com/login/oauth/authorize\" as const;\nexport const PERSONAL_GITHUB_TOKEN_URL = \"https://github.com/login/oauth/access_token\" as const;\nexport const PERSONAL_GITHUB_USER_URL = \"https://api.github.com/user\" as const;\nexport const PERSONAL_GITHUB_API_ORIGIN = \"https://api.github.com\" as const;\nexport const PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX = 100 as const;\n\nexport const PersonalGitHubRepositoryId = z.string().regex(/^[1-9]\\d*$/u);\nexport type PersonalGitHubRepositoryId = z.infer<typeof PersonalGitHubRepositoryId>;\n\nexport const PersonalGitHubRepositoryAccess = z.enum([\"read\", \"write\"]);\nexport type PersonalGitHubRepositoryAccess = z.infer<typeof PersonalGitHubRepositoryAccess>;\n\nexport const PersonalGitHubRepositoryPermissions = z\n .object({\n pull: z.boolean(),\n push: z.boolean(),\n admin: z.boolean(),\n maintain: z.boolean(),\n triage: z.boolean(),\n })\n .strict();\nexport type PersonalGitHubRepositoryPermissions = z.infer<\n typeof PersonalGitHubRepositoryPermissions\n>;\n\nexport const PersonalGitHubRepositoryVisibility = z.enum([\"public\", \"private\", \"internal\"]);\nexport type PersonalGitHubRepositoryVisibility = z.infer<typeof PersonalGitHubRepositoryVisibility>;\n\nconst PersonalGitHubRepositoryFullName = z\n .string()\n .min(3)\n .max(140)\n .regex(/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})\\/[A-Za-z0-9_.-]{1,100}$/u);\n\nexport function canonicalPersonalGitHubRepositoryUrl(fullName: string): string {\n return `https://github.com/${fullName}`;\n}\n\n/** A bounded, credential-free projection verified directly against GitHub. */\nexport const PersonalGitHubRepository = z\n .object({\n repositoryId: PersonalGitHubRepositoryId,\n fullName: PersonalGitHubRepositoryFullName,\n canonicalUrl: z.string().url().max(512),\n defaultBranch: z.string().min(1).max(255),\n visibility: PersonalGitHubRepositoryVisibility,\n private: z.boolean(),\n archived: z.boolean(),\n disabled: z.boolean(),\n permissions: PersonalGitHubRepositoryPermissions,\n })\n .strict()\n .superRefine((repository, context) => {\n if (repository.canonicalUrl !== canonicalPersonalGitHubRepositoryUrl(repository.fullName)) {\n context.addIssue({\n code: \"custom\",\n path: [\"canonicalUrl\"],\n message: \"canonicalUrl must be derived from fullName\",\n });\n }\n if (repository.private !== (repository.visibility === \"private\")) {\n context.addIssue({\n code: \"custom\",\n path: [\"private\"],\n message: \"private must agree with visibility\",\n });\n }\n });\nexport type PersonalGitHubRepository = z.infer<typeof PersonalGitHubRepository>;\n\nexport const PersonalGitHubSelectedRepository = PersonalGitHubRepository.safeExtend({\n selectedAccess: PersonalGitHubRepositoryAccess,\n selectionGeneration: z.number().int().positive(),\n selectedAt: z.string().datetime({ offset: true }),\n lastVerifiedAt: z.string().datetime({ offset: true }),\n}).strict();\nexport type PersonalGitHubSelectedRepository = z.infer<typeof PersonalGitHubSelectedRepository>;\n\nexport const PersonalGitHubRepositorySelectionState = z\n .object({\n connectionAuthorityGeneration: z.number().int().positive(),\n credentialBindingId: z.string().uuid(),\n providerPrincipalId: PersonalGitHubRepositoryId,\n selectionGeneration: z.number().int().nonnegative(),\n repositories: z\n .array(PersonalGitHubSelectedRepository)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n })\n .strict();\nexport type PersonalGitHubRepositorySelectionState = z.infer<\n typeof PersonalGitHubRepositorySelectionState\n>;\n\nexport const ListPersonalGitHubRepositoriesQuery = z\n .object({\n cursor: z.coerce.number().int().positive().max(10_000).default(1),\n limit: z.coerce.number().int().min(1).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX).default(50),\n })\n .strict();\nexport type ListPersonalGitHubRepositoriesQuery = z.infer<\n typeof ListPersonalGitHubRepositoriesQuery\n>;\n\nexport const PersonalGitHubRepositoryCatalogItem = PersonalGitHubRepository.safeExtend({\n selectedAccess: PersonalGitHubRepositoryAccess.nullable(),\n}).strict();\nexport type PersonalGitHubRepositoryCatalogItem = z.infer<\n typeof PersonalGitHubRepositoryCatalogItem\n>;\n\nexport const ListPersonalGitHubRepositoriesResponse = z\n .object({\n repositories: z\n .array(PersonalGitHubRepositoryCatalogItem)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n nextCursor: z.number().int().positive().nullable(),\n selection: PersonalGitHubRepositorySelectionState,\n })\n .strict();\nexport type ListPersonalGitHubRepositoriesResponse = z.infer<\n typeof ListPersonalGitHubRepositoriesResponse\n>;\n\nexport const PersonalGitHubRepositorySelectionInput = z\n .object({\n repositoryId: PersonalGitHubRepositoryId,\n fullName: PersonalGitHubRepositoryFullName,\n access: PersonalGitHubRepositoryAccess,\n })\n .strict();\nexport type PersonalGitHubRepositorySelectionInput = z.infer<\n typeof PersonalGitHubRepositorySelectionInput\n>;\n\nexport const ReplacePersonalGitHubRepositorySelectionsRequest = z\n .object({\n expectedConnectionAuthorityGeneration: z.number().int().positive(),\n expectedSelectionGeneration: z.number().int().nonnegative(),\n idempotencyKey: z.string().trim().min(1).max(200),\n repositories: z\n .array(PersonalGitHubRepositorySelectionInput)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n })\n .strict()\n .superRefine((request, context) => {\n const repositoryIds = new Set<string>();\n const fullNames = new Set<string>();\n request.repositories.forEach((repository, index) => {\n const normalizedFullName = repository.fullName.toLowerCase();\n if (repositoryIds.has(repository.repositoryId)) {\n context.addIssue({\n code: \"custom\",\n path: [\"repositories\", index, \"repositoryId\"],\n message: \"repositoryId must be unique\",\n });\n }\n if (fullNames.has(normalizedFullName)) {\n context.addIssue({\n code: \"custom\",\n path: [\"repositories\", index, \"fullName\"],\n message: \"fullName must be unique\",\n });\n }\n repositoryIds.add(repository.repositoryId);\n fullNames.add(normalizedFullName);\n });\n });\nexport type ReplacePersonalGitHubRepositorySelectionsRequest = z.infer<\n typeof ReplacePersonalGitHubRepositorySelectionsRequest\n>;\n\nexport const VerifyPersonalGitHubRepositorySelectionsRequest = z\n .object({\n expectedConnectionAuthorityGeneration: z.number().int().positive(),\n expectedSelectionGeneration: z.number().int().nonnegative(),\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict();\nexport type VerifyPersonalGitHubRepositorySelectionsRequest = z.infer<\n typeof VerifyPersonalGitHubRepositorySelectionsRequest\n>;\n\n/**\n * Owner-visible, credential-free metadata for one dedicated personal GitHub\n * OAuth connection. Repository selections are a separate authority and never\n * live in this credential record.\n */\nexport const PersonalGitHubConnectionMetadata = z\n .object({\n credentialRole: z.literal(PERSONAL_GITHUB_CREDENTIAL_ROLE),\n providerFamily: z.literal(PERSONAL_GITHUB_PROVIDER_FAMILY),\n providerPrincipalId: z.string().regex(/^\\d+$/u),\n githubUserId: z.string().regex(/^\\d+$/u),\n githubLogin: z.string().min(1).max(100),\n oauthEnvironment: z.string().min(1).max(128),\n oauthClientMarker: z.string().regex(/^[a-f0-9]{32}$/u),\n credentialBindingId: z.string().uuid(),\n connectedAt: z.string().datetime({ offset: true }),\n lastVerifiedAt: z.string().datetime({ offset: true }),\n disconnectedAt: z.string().datetime({ offset: true }).nullable().optional(),\n refreshTokenExpiresAt: z.string().datetime({ offset: true }).nullable().optional(),\n })\n .passthrough();\nexport type PersonalGitHubConnectionMetadata = z.infer<typeof PersonalGitHubConnectionMetadata>;\n\nexport const PersonalGitHubOAuthStartRequest = z\n .object({\n /** Existing exact connection generation to re-authorize in place. */\n connectionId: z.string().uuid().optional(),\n /** Same-workspace UI path restored after the callback. */\n returnPath: z.string().min(1).max(2048).optional(),\n })\n .strict();\nexport type PersonalGitHubOAuthStartRequest = z.infer<typeof PersonalGitHubOAuthStartRequest>;\n\nexport const PersonalGitHubOAuthStartResponse = z\n .object({\n authorizationUrl: z.string().url(),\n expiresAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport type PersonalGitHubOAuthStartResponse = z.infer<typeof PersonalGitHubOAuthStartResponse>;\n\nexport const PersonalGitHubConnectionStatusResponse = z\n .object({\n enabled: z.boolean(),\n connection: ConnectionMetadata.nullable(),\n reviewUrl: z.string().url().nullable(),\n })\n .strict();\nexport type PersonalGitHubConnectionStatusResponse = z.infer<\n typeof PersonalGitHubConnectionStatusResponse\n>;\n\nexport const PersonalGitHubDisconnectRequest = z\n .object({\n expectedVersion: z.number().int().positive(),\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict();\nexport type PersonalGitHubDisconnectRequest = z.infer<typeof PersonalGitHubDisconnectRequest>;\n\nexport function isPersonalGitHubConnection(\n connection: Pick<z.infer<typeof ConnectionMetadata>, \"providerDomain\" | \"kind\" | \"metadata\">,\n): boolean {\n return (\n connection.providerDomain.toLowerCase() === PERSONAL_GITHUB_PROVIDER_DOMAIN &&\n connection.kind === \"oauth2\" &&\n PersonalGitHubConnectionMetadata.safeParse(connection.metadata).success\n );\n}\n\nexport function hasReservedPersonalGitHubMetadata(\n metadata: Record<string, unknown> | undefined,\n): boolean {\n return metadata?.credentialRole === PERSONAL_GITHUB_CREDENTIAL_ROLE;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/personal-github.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nimport { ConnectionMetadata } from \"./index\";\n\nexport const PERSONAL_GITHUB_PROVIDER_DOMAIN = \"github.com\" as const;\nexport const PERSONAL_GITHUB_PROVIDER_FAMILY = \"github\" as const;\nexport const PERSONAL_GITHUB_CREDENTIAL_ROLE = \"opengeni_github_personal\" as const;\nexport const PERSONAL_GITHUB_CONNECTION_SURFACE_ID = \"github:personal\" as const;\nexport const PERSONAL_GITHUB_REQUESTED_SCOPES = [\"repo\"] as const;\nexport const PERSONAL_GITHUB_AUTHORIZATION_URL =\n \"https://github.com/login/oauth/authorize\" as const;\nexport const PERSONAL_GITHUB_TOKEN_URL = \"https://github.com/login/oauth/access_token\" as const;\nexport const PERSONAL_GITHUB_USER_URL = \"https://api.github.com/user\" as const;\nexport const PERSONAL_GITHUB_API_ORIGIN = \"https://api.github.com\" as const;\nexport const PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX = 100 as const;\n\nexport const PersonalGitHubRepositoryId = /* @__PURE__ */ defineSchema(() =>\n z.string().regex(/^[1-9]\\d*$/u),\n);\nexport type PersonalGitHubRepositoryId = z.infer<typeof PersonalGitHubRepositoryId>;\n\nexport const PersonalGitHubRepositoryAccess = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"read\", \"write\"]),\n);\nexport type PersonalGitHubRepositoryAccess = z.infer<typeof PersonalGitHubRepositoryAccess>;\n\nexport const PersonalGitHubRepositoryPermissions = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n pull: z.boolean(),\n push: z.boolean(),\n admin: z.boolean(),\n maintain: z.boolean(),\n triage: z.boolean(),\n })\n .strict(),\n);\nexport type PersonalGitHubRepositoryPermissions = z.infer<\n typeof PersonalGitHubRepositoryPermissions\n>;\n\nexport const PersonalGitHubRepositoryVisibility = /* @__PURE__ */ defineSchema(() =>\n z.enum([\"public\", \"private\", \"internal\"]),\n);\nexport type PersonalGitHubRepositoryVisibility = z.infer<typeof PersonalGitHubRepositoryVisibility>;\n\nconst PersonalGitHubRepositoryFullName = /* @__PURE__ */ defineSchema(() =>\n z\n .string()\n .min(3)\n .max(140)\n .regex(/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})\\/[A-Za-z0-9_.-]{1,100}$/u),\n);\n\nexport function canonicalPersonalGitHubRepositoryUrl(fullName: string): string {\n return `https://github.com/${fullName}`;\n}\n\n/** A bounded, credential-free projection verified directly against GitHub. */\nexport const PersonalGitHubRepository = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n repositoryId: PersonalGitHubRepositoryId,\n fullName: PersonalGitHubRepositoryFullName,\n canonicalUrl: z.string().url().max(512),\n defaultBranch: z.string().min(1).max(255),\n visibility: PersonalGitHubRepositoryVisibility,\n private: z.boolean(),\n archived: z.boolean(),\n disabled: z.boolean(),\n permissions: PersonalGitHubRepositoryPermissions,\n })\n .strict()\n .superRefine((repository, context) => {\n if (repository.canonicalUrl !== canonicalPersonalGitHubRepositoryUrl(repository.fullName)) {\n context.addIssue({\n code: \"custom\",\n path: [\"canonicalUrl\"],\n message: \"canonicalUrl must be derived from fullName\",\n });\n }\n if (repository.private !== (repository.visibility === \"private\")) {\n context.addIssue({\n code: \"custom\",\n path: [\"private\"],\n message: \"private must agree with visibility\",\n });\n }\n }),\n);\nexport type PersonalGitHubRepository = z.infer<typeof PersonalGitHubRepository>;\n\nexport const PersonalGitHubSelectedRepository = /* @__PURE__ */ defineSchema(() =>\n PersonalGitHubRepository.safeExtend({\n selectedAccess: PersonalGitHubRepositoryAccess,\n selectionGeneration: z.number().int().positive(),\n selectedAt: z.string().datetime({ offset: true }),\n lastVerifiedAt: z.string().datetime({ offset: true }),\n }).strict(),\n);\nexport type PersonalGitHubSelectedRepository = z.infer<typeof PersonalGitHubSelectedRepository>;\n\nexport const PersonalGitHubRepositorySelectionState = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n connectionAuthorityGeneration: z.number().int().positive(),\n credentialBindingId: z.string().uuid(),\n providerPrincipalId: PersonalGitHubRepositoryId,\n selectionGeneration: z.number().int().nonnegative(),\n repositories: z\n .array(PersonalGitHubSelectedRepository)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n })\n .strict(),\n);\nexport type PersonalGitHubRepositorySelectionState = z.infer<\n typeof PersonalGitHubRepositorySelectionState\n>;\n\nexport const ListPersonalGitHubRepositoriesQuery = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n cursor: z.coerce.number().int().positive().max(10_000).default(1),\n limit: z.coerce.number().int().min(1).max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX).default(50),\n })\n .strict(),\n);\nexport type ListPersonalGitHubRepositoriesQuery = z.infer<\n typeof ListPersonalGitHubRepositoriesQuery\n>;\n\nexport const PersonalGitHubRepositoryCatalogItem = /* @__PURE__ */ defineSchema(() =>\n PersonalGitHubRepository.safeExtend({\n selectedAccess: PersonalGitHubRepositoryAccess.nullable(),\n }).strict(),\n);\nexport type PersonalGitHubRepositoryCatalogItem = z.infer<\n typeof PersonalGitHubRepositoryCatalogItem\n>;\n\nexport const ListPersonalGitHubRepositoriesResponse = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n repositories: z\n .array(PersonalGitHubRepositoryCatalogItem)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n nextCursor: z.number().int().positive().nullable(),\n selection: PersonalGitHubRepositorySelectionState,\n })\n .strict(),\n);\nexport type ListPersonalGitHubRepositoriesResponse = z.infer<\n typeof ListPersonalGitHubRepositoriesResponse\n>;\n\nexport const PersonalGitHubRepositorySelectionInput = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n repositoryId: PersonalGitHubRepositoryId,\n fullName: PersonalGitHubRepositoryFullName,\n access: PersonalGitHubRepositoryAccess,\n })\n .strict(),\n);\nexport type PersonalGitHubRepositorySelectionInput = z.infer<\n typeof PersonalGitHubRepositorySelectionInput\n>;\n\nexport const ReplacePersonalGitHubRepositorySelectionsRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedConnectionAuthorityGeneration: z.number().int().positive(),\n expectedSelectionGeneration: z.number().int().nonnegative(),\n idempotencyKey: z.string().trim().min(1).max(200),\n repositories: z\n .array(PersonalGitHubRepositorySelectionInput)\n .max(PERSONAL_GITHUB_REPOSITORY_CATALOG_MAX),\n })\n .strict()\n .superRefine((request, context) => {\n const repositoryIds = new Set<string>();\n const fullNames = new Set<string>();\n request.repositories.forEach((repository, index) => {\n const normalizedFullName = repository.fullName.toLowerCase();\n if (repositoryIds.has(repository.repositoryId)) {\n context.addIssue({\n code: \"custom\",\n path: [\"repositories\", index, \"repositoryId\"],\n message: \"repositoryId must be unique\",\n });\n }\n if (fullNames.has(normalizedFullName)) {\n context.addIssue({\n code: \"custom\",\n path: [\"repositories\", index, \"fullName\"],\n message: \"fullName must be unique\",\n });\n }\n repositoryIds.add(repository.repositoryId);\n fullNames.add(normalizedFullName);\n });\n }),\n);\nexport type ReplacePersonalGitHubRepositorySelectionsRequest = z.infer<\n typeof ReplacePersonalGitHubRepositorySelectionsRequest\n>;\n\nexport const VerifyPersonalGitHubRepositorySelectionsRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedConnectionAuthorityGeneration: z.number().int().positive(),\n expectedSelectionGeneration: z.number().int().nonnegative(),\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict(),\n);\nexport type VerifyPersonalGitHubRepositorySelectionsRequest = z.infer<\n typeof VerifyPersonalGitHubRepositorySelectionsRequest\n>;\n\n/**\n * Owner-visible, credential-free metadata for one dedicated personal GitHub\n * OAuth connection. Repository selections are a separate authority and never\n * live in this credential record.\n */\nexport const PersonalGitHubConnectionMetadata = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n credentialRole: z.literal(PERSONAL_GITHUB_CREDENTIAL_ROLE),\n providerFamily: z.literal(PERSONAL_GITHUB_PROVIDER_FAMILY),\n providerPrincipalId: z.string().regex(/^\\d+$/u),\n githubUserId: z.string().regex(/^\\d+$/u),\n githubLogin: z.string().min(1).max(100),\n oauthEnvironment: z.string().min(1).max(128),\n oauthClientMarker: z.string().regex(/^[a-f0-9]{32}$/u),\n credentialBindingId: z.string().uuid(),\n connectedAt: z.string().datetime({ offset: true }),\n lastVerifiedAt: z.string().datetime({ offset: true }),\n disconnectedAt: z.string().datetime({ offset: true }).nullable().optional(),\n refreshTokenExpiresAt: z.string().datetime({ offset: true }).nullable().optional(),\n })\n .passthrough(),\n);\nexport type PersonalGitHubConnectionMetadata = z.infer<typeof PersonalGitHubConnectionMetadata>;\n\nexport const PersonalGitHubOAuthStartRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n /** Existing exact connection generation to re-authorize in place. */\n connectionId: z.string().uuid().optional(),\n /** Same-workspace UI path restored after the callback. */\n returnPath: z.string().min(1).max(2048).optional(),\n })\n .strict(),\n);\nexport type PersonalGitHubOAuthStartRequest = z.infer<typeof PersonalGitHubOAuthStartRequest>;\n\nexport const PersonalGitHubOAuthStartResponse = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n authorizationUrl: z.string().url(),\n expiresAt: z.string().datetime({ offset: true }),\n })\n .strict(),\n);\nexport type PersonalGitHubOAuthStartResponse = z.infer<typeof PersonalGitHubOAuthStartResponse>;\n\nexport const PersonalGitHubConnectionStatusResponse = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n enabled: z.boolean(),\n connection: ConnectionMetadata.nullable(),\n reviewUrl: z.string().url().nullable(),\n })\n .strict(),\n);\nexport type PersonalGitHubConnectionStatusResponse = z.infer<\n typeof PersonalGitHubConnectionStatusResponse\n>;\n\nexport const PersonalGitHubDisconnectRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n expectedVersion: z.number().int().positive(),\n idempotencyKey: z.string().trim().min(1).max(200),\n })\n .strict(),\n);\nexport type PersonalGitHubDisconnectRequest = z.infer<typeof PersonalGitHubDisconnectRequest>;\n\nexport function isPersonalGitHubConnection(\n connection: Pick<z.infer<typeof ConnectionMetadata>, \"providerDomain\" | \"kind\" | \"metadata\">,\n): boolean {\n return (\n connection.providerDomain.toLowerCase() === PERSONAL_GITHUB_PROVIDER_DOMAIN &&\n connection.kind === \"oauth2\" &&\n PersonalGitHubConnectionMetadata.safeParse(connection.metadata).success\n );\n}\n\nexport function hasReservedPersonalGitHubMetadata(\n metadata: Record<string, unknown> | undefined,\n): boolean {\n return metadata?.credentialRole === PERSONAL_GITHUB_CREDENTIAL_ROLE;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Configuration is safe to retain; secret values enter only the protected
|
|
3
|
+
* Connect credential request, never this model-visible setup description. */
|
|
4
|
+
export declare const PreparedMcpSetup: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
endpointUrl: z.ZodString;
|
|
7
|
+
headers: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
value: z.ZodString;
|
|
10
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
11
|
+
name: z.ZodString;
|
|
12
|
+
secret: z.ZodString;
|
|
13
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
14
|
+
suffix: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strict>]>>;
|
|
16
|
+
secretFields: z.ZodArray<z.ZodObject<{
|
|
17
|
+
id: z.ZodString;
|
|
18
|
+
label: z.ZodString;
|
|
19
|
+
}, z.core.$strict>>;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
export type PreparedMcpSetup = z.infer<typeof PreparedMcpSetup>;
|
|
22
|
+
/** A missing-key proposal retains configuration only. Ownership is explicit
|
|
23
|
+
* and the displayed identity must equal the destination actually configured. */
|
|
24
|
+
export declare const CustomMcpSetupRequest: z.ZodObject<{
|
|
25
|
+
kind: z.ZodLiteral<"mcp">;
|
|
26
|
+
name: z.ZodString;
|
|
27
|
+
endpointUrl: z.ZodString;
|
|
28
|
+
rationale: z.ZodString;
|
|
29
|
+
ownership: z.ZodOptional<z.ZodEnum<{
|
|
30
|
+
personal: "personal";
|
|
31
|
+
workspace: "workspace";
|
|
32
|
+
}>>;
|
|
33
|
+
mcpSetup: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
name: z.ZodString;
|
|
35
|
+
endpointUrl: z.ZodString;
|
|
36
|
+
headers: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
value: z.ZodString;
|
|
39
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
40
|
+
name: z.ZodString;
|
|
41
|
+
secret: z.ZodString;
|
|
42
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
43
|
+
suffix: z.ZodOptional<z.ZodString>;
|
|
44
|
+
}, z.core.$strict>]>>;
|
|
45
|
+
secretFields: z.ZodArray<z.ZodObject<{
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
label: z.ZodString;
|
|
48
|
+
}, z.core.$strict>>;
|
|
49
|
+
}, z.core.$strict>>;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
export type CustomMcpSetupRequest = z.infer<typeof CustomMcpSetupRequest>;
|
|
52
|
+
/** Values are intentionally accepted separately. Errors name neither supplied
|
|
53
|
+
* values nor undeclared input keys, which may themselves contain credentials. */
|
|
54
|
+
export declare function preparedMcpHeaders(configuration: PreparedMcpSetup, values: Readonly<Record<string, string>>): Record<string, string>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CustomMcpSetupRequest,
|
|
3
|
+
PreparedMcpSetup,
|
|
4
|
+
preparedMcpHeaders
|
|
5
|
+
} from "./chunk-XDLAGX66.js";
|
|
6
|
+
import "./chunk-56SNIMDO.js";
|
|
7
|
+
export {
|
|
8
|
+
CustomMcpSetupRequest,
|
|
9
|
+
PreparedMcpSetup,
|
|
10
|
+
preparedMcpHeaders
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=prepared-mcp-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The product surface through which a turn's request entered Opengeni.
|
|
4
|
+
*
|
|
5
|
+
* - `web`: the Opengeni web app (managed cookie or the local browser context).
|
|
6
|
+
* - `slack`: a Slack mention, command, DM, shortcut, thread reply, or reaction.
|
|
7
|
+
* - `api_key`: an API key or configured key, including the SDK and scripts.
|
|
8
|
+
* - `embedded`: a host that embeds Opengeni through signed delegation or an
|
|
9
|
+
* organization key acting for an external user.
|
|
10
|
+
* - `scheduled`: a scheduled-task occurrence.
|
|
11
|
+
* - `agent`: another agent (a child session, an agent message, or Agent Steer).
|
|
12
|
+
* - `voice`: a realtime voice delegation or its end-of-call handoff.
|
|
13
|
+
* - `site`: a published workspace Site.
|
|
14
|
+
* - `automation`: an event-triggered automation run.
|
|
15
|
+
* - `mcp`: an external MCP client connected through workspace MCP OAuth.
|
|
16
|
+
* - `system`: Opengeni's own maintenance work with no human entry.
|
|
17
|
+
*
|
|
18
|
+
* Turns that no new request entered (goal continuations, child results,
|
|
19
|
+
* command results, wait timeouts, compaction) inherit the surface of the
|
|
20
|
+
* session's latest started turn. Null means no surface was captured: rows
|
|
21
|
+
* written before capture existed, or machine work in a session that has
|
|
22
|
+
* never started a turn with one.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SESSION_TURN_SURFACES: readonly ["web", "slack", "api_key", "embedded", "scheduled", "agent", "voice", "site", "automation", "mcp", "system"];
|
|
25
|
+
export declare const SessionTurnSurface: z.ZodEnum<{
|
|
26
|
+
agent: "agent";
|
|
27
|
+
api_key: "api_key";
|
|
28
|
+
automation: "automation";
|
|
29
|
+
embedded: "embedded";
|
|
30
|
+
mcp: "mcp";
|
|
31
|
+
scheduled: "scheduled";
|
|
32
|
+
site: "site";
|
|
33
|
+
slack: "slack";
|
|
34
|
+
system: "system";
|
|
35
|
+
voice: "voice";
|
|
36
|
+
web: "web";
|
|
37
|
+
}>;
|
|
38
|
+
export type SessionTurnSurface = z.infer<typeof SessionTurnSurface>;
|
|
39
|
+
/**
|
|
40
|
+
* Request header the first-party web console sends while its tab is visible
|
|
41
|
+
* and the person interacted with it in the last few minutes. The API records
|
|
42
|
+
* server-side presence (`opengeni_active_users`, `user.active`) only for
|
|
43
|
+
* canonical managed browser sessions carrying this exact value, so an idle open
|
|
44
|
+
* tab, background polling and stream re-authorization never count as activity.
|
|
45
|
+
* Analytics only: it never grants or narrows access.
|
|
46
|
+
*/
|
|
47
|
+
export declare const OPENGENI_USER_ACTIVITY_HEADER = "x-opengeni-user-activity";
|
|
48
|
+
export declare const OPENGENI_USER_ACTIVITY_ACTIVE = "active";
|
|
49
|
+
/** Interaction recency, in milliseconds, behind the activity header. */
|
|
50
|
+
export declare const OPENGENI_USER_ACTIVITY_WINDOW_MS: number;
|
|
51
|
+
/** Parse a stored value; anything outside the fixed list is treated as absent. */
|
|
52
|
+
export declare function sessionTurnSurfaceOrNull(value: unknown): SessionTurnSurface | null;
|
|
53
|
+
/**
|
|
54
|
+
* Model provider families exported for analytics. Reserved Opengeni provider
|
|
55
|
+
* ids pass through unchanged; every operator-configured registry provider is
|
|
56
|
+
* reported as `registry` so a deployment's own naming never leaves it.
|
|
57
|
+
* `opengeni_private.analytics_model_provider` (migration 0533) mirrors this.
|
|
58
|
+
*/
|
|
59
|
+
export declare const ANALYTICS_MODEL_PROVIDERS: readonly ["openai", "azure", "codex-subscription", "supergrok-subscription", "opengeni-gateway", "workspace-gateway", "organization-gateway", "openrouter", "workspace-openrouter", "organization-openrouter", "opper", "workspace-opper", "organization-opper", "registry"];
|
|
60
|
+
export declare const AnalyticsModelProvider: z.ZodEnum<{
|
|
61
|
+
azure: "azure";
|
|
62
|
+
"codex-subscription": "codex-subscription";
|
|
63
|
+
openai: "openai";
|
|
64
|
+
"opengeni-gateway": "opengeni-gateway";
|
|
65
|
+
openrouter: "openrouter";
|
|
66
|
+
opper: "opper";
|
|
67
|
+
"organization-gateway": "organization-gateway";
|
|
68
|
+
"organization-openrouter": "organization-openrouter";
|
|
69
|
+
"organization-opper": "organization-opper";
|
|
70
|
+
registry: "registry";
|
|
71
|
+
"supergrok-subscription": "supergrok-subscription";
|
|
72
|
+
"workspace-gateway": "workspace-gateway";
|
|
73
|
+
"workspace-openrouter": "workspace-openrouter";
|
|
74
|
+
"workspace-opper": "workspace-opper";
|
|
75
|
+
}>;
|
|
76
|
+
export type AnalyticsModelProvider = z.infer<typeof AnalyticsModelProvider>;
|
|
77
|
+
/** Map an accepted turn's execution-policy provider id to its analytics family. */
|
|
78
|
+
export declare function analyticsModelProvider(providerId: string | null | undefined): AnalyticsModelProvider | null;
|
|
79
|
+
/**
|
|
80
|
+
* Tool family on a tool-call fact: an Opengeni first-party tool name,
|
|
81
|
+
* `integration:<catalog domain>` for a reviewed catalog integration, or
|
|
82
|
+
* `custom` for any other MCP server (a workspace's own server, a self-hosted
|
|
83
|
+
* provider, or an unreviewed catalog entry). The domain part is limited to
|
|
84
|
+
* {@link TOOL_FAMILY_INTEGRATION_DOMAINS}, so a tenant's own host name is
|
|
85
|
+
* never exported.
|
|
86
|
+
*/
|
|
87
|
+
export declare const ToolFamily: z.ZodString;
|
|
88
|
+
export type ToolFamily = z.infer<typeof ToolFamily>;
|
|
89
|
+
/**
|
|
90
|
+
* Reviewed integration domains that may appear as `integration:<domain>`:
|
|
91
|
+
* Opengeni's native provider domains plus the MCP host of every curated
|
|
92
|
+
* catalog entry (`data/catalog/curated.json`). A test keeps the curated part
|
|
93
|
+
* in sync. Any other domain is reported as `custom`.
|
|
94
|
+
*/
|
|
95
|
+
export declare const TOOL_FAMILY_INTEGRATION_DOMAINS: readonly ["github.com", "gitlab.com", "dev.azure.com", "slack.com", "chatgpt.com", "x.com", "reddit.com", "fiken.no", "api.atlassian.com", "googleapis.com", "gmailmcp.googleapis.com", "mcp.slack.com", "api.mobbin.com", "mcp.linear.app", "mcp.asana.com", "mcp.stripe.com", "mcp.figma.com", "mcp.canva.com", "mcp.sentry.dev", "mcp.vercel.com", "bindings.mcp.cloudflare.com", "mcp.paypal.com", "mcp.monday.com", "mcp.airtable.com", "mcp.zapier.com", "mcp.webflow.com", "mcp.supabase.com", "mcp.clickup.com", "mcp.calendly.com", "mcp.box.com", "mcp.dropbox.com", "mcp.amplitude.com", "mcp.posthog.com", "mcp.pagerduty.com", "mcp.apollo.io", "api.ahrefs.com", "mcp.semrush.com", "mcp.frontapp.com", "mcp.otter.ai", "mcp.notion.com", "mcp.hubspot.com", "mcp.atlassian.com", "mcp.intercom.com"];
|
|
96
|
+
/**
|
|
97
|
+
* Tool family for an MCP server that is not first-party. The first candidate
|
|
98
|
+
* domain on the reviewed list wins; otherwise the server is `custom`.
|
|
99
|
+
*/
|
|
100
|
+
export declare function integrationToolFamily(candidateDomains: readonly (string | null | undefined)[]): ToolFamily;
|
|
101
|
+
/**
|
|
102
|
+
* First-party tools the runtime exposes outside any MCP server: base sandbox
|
|
103
|
+
* and runtime tools, progressive-disclosure routers, media generation, and
|
|
104
|
+
* provider-hosted tool calls as the event stream names them.
|
|
105
|
+
*/
|
|
106
|
+
export declare const FIRST_PARTY_FUNCTION_TOOL_FAMILY_NAMES: readonly ["exec_command", "write_stdin", "view_image", "apply_patch", "skill_read", "repository_skill_read", "request_human_input", "list_models", "code_search", "tool_search", "tool_list", "tool_invoke", "generate_image", "generate_video", "get_video_generation_capabilities", "computer_screenshot", "web_search_call", "image_generation_call", "code_interpreter_call", "file_search_call", "computer_call", "local_shell_call", "shell_call", "apply_patch_call"];
|
|
107
|
+
/**
|
|
108
|
+
* First-party tools served by in-process attempt definitions or the dedicated
|
|
109
|
+
* `files` server rather than the public `opengeni` MCP catalog.
|
|
110
|
+
*/
|
|
111
|
+
export declare const FIRST_PARTY_ATTEMPT_TOOL_FAMILY_NAMES: readonly ["skill_checkout", "skill_publish", "skill_install", "skill_remove", "skill_save", "skill_search", "operation_read", "knowledge_source_fetch", "knowledge_source_read", "files_get_download_url"];
|
|
112
|
+
/**
|
|
113
|
+
* Opengeni's in-process integration tools that are not registry MCP servers,
|
|
114
|
+
* keyed by their catalog server id, with the provider domain they act on.
|
|
115
|
+
*/
|
|
116
|
+
export declare const IN_PROCESS_INTEGRATION_TOOL_FAMILY_DOMAINS: Readonly<Record<string, string>>;
|