@opengeni/contracts 0.50.0 → 1.0.0
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 +70 -0
- package/dist/agent-config.d.ts +869 -0
- package/dist/agent-instruction-changes.d.ts +110 -0
- package/dist/agent-learning.d.ts +243 -0
- package/dist/agent-topology.d.ts +292 -0
- 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 +161 -0
- package/dist/artifacts.d.ts +135 -11
- 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 +2 -0
- package/dist/atlassian.js +26 -12
- 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 +40 -0
- package/dist/chunk-2ACYHZFB.js +292 -0
- package/dist/chunk-2ACYHZFB.js.map +1 -0
- package/dist/chunk-2VORLN2R.js +353 -0
- package/dist/chunk-2VORLN2R.js.map +1 -0
- package/dist/{chunk-Y3MLSLB4.js → chunk-3SIZGL3O.js} +42 -30
- package/dist/chunk-3SIZGL3O.js.map +1 -0
- package/dist/chunk-46KLD2UH.js +186 -0
- package/dist/chunk-46KLD2UH.js.map +1 -0
- package/dist/chunk-4JGHSSB7.js +11 -0
- package/dist/chunk-4JGHSSB7.js.map +1 -0
- package/dist/{chunk-M5ZGRVIQ.js → chunk-5IXYF6XN.js} +14 -5
- package/dist/chunk-5IXYF6XN.js.map +1 -0
- package/dist/chunk-BCS7WHCK.js +139 -0
- package/dist/chunk-BCS7WHCK.js.map +1 -0
- package/dist/chunk-EK7NDGFR.js +128 -0
- package/dist/chunk-EK7NDGFR.js.map +1 -0
- package/dist/{chunk-5UDNP7AO.js → chunk-FZ6BXQHL.js} +78 -38
- package/dist/chunk-FZ6BXQHL.js.map +1 -0
- package/dist/{chunk-CM6BMECR.js → chunk-GRG7PHWQ.js} +2 -1
- package/dist/chunk-GRG7PHWQ.js.map +1 -0
- package/dist/chunk-KHHZTBP7.js +11 -0
- package/dist/chunk-KHHZTBP7.js.map +1 -0
- package/dist/chunk-KR2V42UZ.js +187 -0
- package/dist/chunk-KR2V42UZ.js.map +1 -0
- package/dist/chunk-MZLBPKFE.js +168 -0
- package/dist/chunk-MZLBPKFE.js.map +1 -0
- package/dist/{chunk-LW7OH6CS.js → chunk-NRMCVHAU.js} +6 -5
- package/dist/chunk-NRMCVHAU.js.map +1 -0
- package/dist/{chunk-TZ6YEYN4.js → chunk-NVJMJWLL.js} +3 -1
- package/dist/chunk-NVJMJWLL.js.map +1 -0
- package/dist/chunk-O77VSFYZ.js +70 -0
- package/dist/chunk-O77VSFYZ.js.map +1 -0
- package/dist/chunk-PX3VCKAU.js +29 -0
- package/dist/chunk-PX3VCKAU.js.map +1 -0
- package/dist/chunk-QR5D2IQC.js +61 -0
- package/dist/chunk-QR5D2IQC.js.map +1 -0
- package/dist/chunk-RJ76DRPO.js +117 -0
- package/dist/chunk-RJ76DRPO.js.map +1 -0
- package/dist/chunk-RKX3NQYS.js +28 -0
- package/dist/chunk-RKX3NQYS.js.map +1 -0
- package/dist/{chunk-JBCIY7QD.js → chunk-SIOU2K4U.js} +45 -22
- package/dist/chunk-SIOU2K4U.js.map +1 -0
- package/dist/chunk-TSCDAGET.js +75 -0
- package/dist/chunk-TSCDAGET.js.map +1 -0
- package/dist/{chunk-LSB7GRLG.js → chunk-TXTQIYCV.js} +15 -11
- package/dist/chunk-TXTQIYCV.js.map +1 -0
- package/dist/chunk-X7ETVO4P.js +26544 -0
- package/dist/chunk-X7ETVO4P.js.map +1 -0
- package/dist/{chunk-CADSX6UN.js → chunk-Y3KNXVTD.js} +2 -2
- package/dist/chunk-YBW5JSA3.js +251 -0
- package/dist/chunk-YBW5JSA3.js.map +1 -0
- package/dist/chunk-YRXAWWCU.js +45 -0
- package/dist/chunk-YRXAWWCU.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 +109 -0
- package/dist/client-error-report.js +87 -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/company-brain-governed-writes.d.ts +475 -0
- package/dist/company-brain.d.ts +336 -0
- package/dist/company-profile.d.ts +566 -0
- package/dist/connect.d.ts +325 -0
- package/dist/connect.js +191 -0
- package/dist/connect.js.map +1 -0
- 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 +193 -0
- package/dist/connection-authority.js +50 -0
- package/dist/connection-authority.js.map +1 -0
- package/dist/connector-attachments.d.ts +95 -0
- package/dist/connector-attachments.js +51 -0
- package/dist/connector-attachments.js.map +1 -0
- package/dist/connector-tool-permissions.d.ts +73 -0
- package/dist/direct-model-provider.d.ts +36 -0
- package/dist/editable-artifact-codec-registry.d.ts +16 -7
- package/dist/editable-artifact-codec-registry.js +18 -8
- package/dist/editable-artifact-committed-transaction.d.ts +2 -2
- package/dist/editable-artifact-committed-transaction.js +2 -2
- package/dist/editable-artifact-live.d.ts +11 -12
- package/dist/editable-artifact-live.js +110 -45
- package/dist/editable-artifact-live.js.map +1 -1
- package/dist/editable-artifact-serialized-commit.d.ts +2 -1
- package/dist/editable-artifact-serialized-commit.js +8 -7
- package/dist/editable-artifact-versions.d.ts +20 -5
- package/dist/editable-artifact-versions.js +23 -5
- package/dist/editable-artifacts.d.ts +2 -0
- package/dist/editable-artifacts.js +47 -35
- package/dist/external-identities.d.ts +784 -0
- package/dist/external-identities.js +44 -0
- package/dist/external-identities.js.map +1 -0
- package/dist/feedback.d.ts +51 -0
- package/dist/github-repository-contracts.d.ts +36 -0
- package/dist/github-repository-contracts.js +59 -0
- package/dist/github-repository-contracts.js.map +1 -0
- package/dist/github-repository.d.ts +14 -0
- package/dist/github-repository.js +36 -0
- package/dist/github-repository.js.map +1 -0
- package/dist/google-drive.d.ts +90 -1
- package/dist/google-drive.js +90 -16
- package/dist/google-drive.js.map +1 -1
- package/dist/governed-learning-activation.d.ts +154 -0
- package/dist/governed-learning-evaluator.d.ts +152 -0
- package/dist/host-mcp-bindings.d.ts +326 -0
- package/dist/host-mcp-bindings.js +252 -0
- package/dist/host-mcp-bindings.js.map +1 -0
- package/dist/image-generation.d.ts +1 -0
- package/dist/index.d.ts +32396 -11386
- package/dist/index.js +2198 -164
- package/dist/insights-usage.d.ts +877 -0
- package/dist/insights-usage.js +509 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/interaction.d.ts +344 -0
- package/dist/knowledge-entries.d.ts +982 -0
- package/dist/knowledge-preparation.d.ts +237 -0
- package/dist/knowledge.d.ts +197 -0
- package/dist/managed-auth-session-sets.d.ts +241 -0
- package/dist/managed-auth-session-sets.js +191 -0
- package/dist/managed-auth-session-sets.js.map +1 -0
- package/dist/managed-sign-in-methods.d.ts +56 -0
- package/dist/managed-sign-in-methods.js +46 -0
- package/dist/managed-sign-in-methods.js.map +1 -0
- package/dist/mcp-catalog-limits.d.ts +2 -0
- package/dist/mcp-endpoint.d.ts +7 -0
- package/dist/mcp-endpoint.js +9 -0
- package/dist/mcp-endpoint.js.map +1 -0
- package/dist/mcp-oauth.d.ts +71 -0
- package/dist/modal-native-proof-v2.d.ts +587 -0
- package/dist/modal-native-proof-v2.js +37 -0
- package/dist/modal-native-proof-v2.js.map +1 -0
- package/dist/model-availability.d.ts +15 -0
- package/dist/model-connection-access.d.ts +24 -0
- package/dist/model-context-inspector.d.ts +329 -0
- package/dist/model-display.d.ts +38 -0
- package/dist/model-display.js +134 -0
- package/dist/model-display.js.map +1 -0
- package/dist/model-picker-order.d.ts +25 -0
- package/dist/model-picker-order.js +42 -0
- package/dist/model-picker-order.js.map +1 -0
- package/dist/organization-access.d.ts +231 -0
- package/dist/organization-access.js +34 -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 +1022 -0
- package/dist/organization-model-usage.d.ts +146 -0
- package/dist/organization-model-usage.js +67 -0
- package/dist/organization-model-usage.js.map +1 -0
- package/dist/organization-recovery.d.ts +337 -0
- package/dist/organization-recovery.js +37 -0
- package/dist/organization-recovery.js.map +1 -0
- package/dist/organization-usage.d.ts +138 -0
- package/dist/permissions.d.ts +54 -0
- package/dist/personal-github.d.ts +320 -0
- package/dist/personal-github.js +222 -0
- package/dist/personal-github.js.map +1 -0
- package/dist/plugin-discovery.d.ts +35 -0
- package/dist/plugin-discovery.js +7 -0
- package/dist/plugin-discovery.js.map +1 -0
- package/dist/preference-registry.d.ts +44 -1
- package/dist/product-analytics.d.ts +113 -0
- package/dist/product-lifecycle-facts.d.ts +73 -0
- package/dist/remember.d.ts +350 -0
- package/dist/retained-output.d.ts +8 -0
- package/dist/sandbox-file-artifacts.d.ts +57 -0
- package/dist/sandbox-provider-command.d.ts +113 -0
- package/dist/sandbox-recovery.d.ts +146 -0
- package/dist/sandbox-snapshots.d.ts +39 -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 +947 -0
- package/dist/session-list-entries.d.ts +4 -0
- package/dist/session-list-entries.js +51 -0
- package/dist/session-list-entries.js.map +1 -0
- package/dist/session-mcp-projections.d.ts +215 -0
- package/dist/session-message-search.d.ts +68 -0
- package/dist/session-titles.d.ts +68 -0
- package/dist/session-titles.js +25 -0
- package/dist/session-titles.js.map +1 -0
- package/dist/session-topology-primitives.d.ts +22 -0
- package/dist/signup-attribution.d.ts +39 -0
- package/dist/site-request-headers.test.d.ts +1 -0
- package/dist/site-session-http.d.ts +11 -0
- package/dist/site-session-http.js +11 -0
- package/dist/site-session-http.js.map +1 -0
- package/dist/skill-catalog-context.d.ts +7 -0
- package/dist/skill-files.d.ts +12 -0
- package/dist/skill-metadata.d.ts +9 -0
- package/dist/skill-use.d.ts +61 -0
- package/dist/skills.d.ts +185 -0
- package/dist/slack-bot-scopes.d.ts +46 -21
- package/dist/slack-bot-scopes.js +14 -3
- package/dist/slack-rest-mcp.d.ts +31 -0
- package/dist/slack-rest-mcp.js +19 -0
- package/dist/slack-rest-mcp.js.map +1 -0
- package/dist/spreadsheet-artifact-commands.d.ts +2 -3
- package/dist/spreadsheet-artifact-commands.js +4 -2
- package/dist/spreadsheet-artifact-query.js +3 -2
- package/dist/subscription-account-pools.d.ts +292 -0
- package/dist/task-notes.d.ts +42 -1
- package/dist/tool-catalog.d.ts +286 -0
- package/dist/tool-result-spill.d.ts +16 -0
- package/dist/usage-allowances.d.ts +285 -0
- package/dist/usage-allowances.js +49 -0
- package/dist/usage-allowances.js.map +1 -0
- package/dist/video-generation.d.ts +3 -0
- package/dist/video-generation.js +1 -1
- package/dist/work-claims.d.ts +411 -0
- package/dist/workspace-instruction-policies.d.ts +94 -0
- 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 +948 -0
- package/dist/workspace-learning-administration.d.ts +289 -0
- package/dist/workspace-learning-policy.d.ts +1 -1
- package/dist/workspace-state.d.ts +85 -416
- package/dist/xai-provider-account-authority.d.ts +3 -0
- package/dist/xai-provider-account-authority.js +1 -1
- package/package.json +134 -1
- package/src/agent-authored-durable-text.ts +116 -0
- package/src/agent-config.ts +1527 -0
- package/src/agent-instruction-changes.ts +98 -0
- package/src/agent-learning.ts +161 -0
- package/src/agent-topology.ts +69 -0
- package/src/allowance-refusal.ts +81 -0
- package/src/analytics-consent-report.ts +20 -0
- package/src/api-key-presets.ts +25 -0
- package/src/artifact-catalog.ts +60 -0
- package/src/artifacts.ts +146 -18
- package/src/atlassian-native-retirement.ts +33 -0
- package/src/browser-storage.ts +10 -0
- package/src/bundled-skills.ts +73 -0
- package/src/claude-provider-account-authority.ts +12 -0
- package/src/claude-subscription-oauth.ts +62 -0
- package/src/claude-subscription-usage.ts +59 -0
- package/src/client-error-report.ts +184 -0
- package/src/code-search.ts +105 -0
- package/src/company-brain-governed-writes.ts +356 -0
- package/src/company-brain.ts +201 -0
- package/src/company-profile.ts +167 -1
- package/src/connect.ts +202 -0
- package/src/connection-account-label.ts +46 -0
- package/src/connection-authority.ts +213 -0
- package/src/connector-attachments.ts +327 -0
- package/src/connector-tool-permissions.ts +60 -0
- package/src/direct-model-provider.ts +98 -0
- package/src/editable-artifact-codec-registry.ts +55 -17
- package/src/editable-artifact-committed-transaction.ts +44 -31
- package/src/editable-artifact-live.ts +123 -57
- package/src/editable-artifact-serialized-commit.ts +2 -1
- package/src/editable-artifact-versions.ts +26 -5
- package/src/editable-artifacts.ts +2 -0
- package/src/external-identities.ts +285 -0
- package/src/feedback.ts +39 -0
- package/src/github-repository-contracts.ts +85 -0
- package/src/github-repository.ts +59 -0
- package/src/google-drive.ts +76 -4
- package/src/governed-learning-activation.ts +191 -0
- package/src/governed-learning-evaluator.ts +176 -0
- package/src/host-mcp-bindings.ts +298 -0
- package/src/image-generation.ts +8 -2
- package/src/index.ts +7093 -1466
- package/src/insights-usage.ts +679 -0
- package/src/interaction.ts +220 -5
- package/src/knowledge-entries.ts +375 -0
- package/src/knowledge-preparation.ts +50 -0
- package/src/knowledge.ts +134 -6
- package/src/managed-auth-session-sets.ts +253 -0
- package/src/managed-sign-in-methods.ts +37 -0
- package/src/mcp-catalog-limits.ts +2 -0
- package/src/mcp-endpoint.ts +30 -0
- package/src/mcp-oauth.ts +66 -0
- package/src/modal-native-proof-v2.ts +398 -0
- package/src/model-availability.ts +22 -0
- package/src/model-connection-access.ts +17 -0
- package/src/model-context-inspector.ts +139 -0
- package/src/model-display.ts +195 -0
- package/src/model-picker-order.ts +97 -0
- package/src/organization-access.ts +176 -0
- package/src/organization-integration-policy.ts +54 -0
- package/src/organization-membership-lifecycle.ts +559 -0
- package/src/organization-model-usage.ts +72 -0
- package/src/organization-recovery.ts +186 -0
- package/src/organization-usage.ts +79 -0
- package/src/permissions.ts +58 -0
- package/src/personal-github.ts +267 -0
- package/src/plugin-discovery.ts +33 -0
- package/src/preference-registry.ts +20 -1
- package/src/product-analytics.ts +253 -0
- package/src/product-lifecycle-facts.ts +121 -0
- package/src/remember.ts +243 -0
- package/src/retained-output.ts +20 -3
- package/src/sandbox-file-artifacts.ts +73 -0
- package/src/sandbox-provider-command.ts +82 -0
- package/src/sandbox-recovery.ts +116 -0
- package/src/sandbox-snapshots.ts +142 -0
- package/src/session-final-reply.ts +16 -0
- package/src/session-goal-reports.ts +55 -0
- package/src/session-history-import.ts +159 -0
- package/src/session-list-entries.ts +91 -0
- package/src/session-mcp-projections.ts +273 -0
- package/src/session-message-search.ts +54 -0
- package/src/session-titles.ts +467 -0
- package/src/session-topology-primitives.ts +21 -0
- package/src/signup-attribution.ts +81 -0
- package/src/site-request-headers.test.ts +28 -0
- package/src/site-session-http.ts +63 -0
- package/src/skill-catalog-context.ts +50 -0
- package/src/skill-files.ts +52 -0
- package/src/skill-metadata.ts +40 -0
- package/src/skill-use.ts +77 -0
- package/src/skills.ts +136 -0
- package/src/slack-bot-scopes.ts +106 -42
- package/src/slack-rest-mcp.ts +194 -0
- package/src/spreadsheet-artifact-commands.ts +12 -13
- package/src/subscription-account-pools.ts +44 -0
- package/src/task-notes.ts +14 -1
- package/src/tool-catalog.ts +155 -0
- package/src/tool-result-spill.ts +35 -0
- package/src/usage-allowances.ts +187 -0
- package/src/work-claims.ts +266 -0
- package/src/workspace-instruction-policies.ts +31 -0
- package/src/workspace-integration-wire.ts +99 -0
- package/src/workspace-integrations.ts +640 -0
- package/src/workspace-learning-administration.ts +88 -0
- package/src/workspace-learning-policy.ts +4 -3
- package/src/workspace-state.ts +16 -126
- package/src/xai-provider-account-authority.ts +1 -0
- package/dist/chunk-5UDNP7AO.js.map +0 -1
- package/dist/chunk-BVGIYW7D.js +0 -11
- package/dist/chunk-BVGIYW7D.js.map +0 -1
- package/dist/chunk-CM6BMECR.js.map +0 -1
- package/dist/chunk-JBCIY7QD.js.map +0 -1
- package/dist/chunk-LSB7GRLG.js.map +0 -1
- package/dist/chunk-LW7OH6CS.js.map +0 -1
- package/dist/chunk-M5ZGRVIQ.js.map +0 -1
- package/dist/chunk-Q6A7XT2N.js +0 -16734
- package/dist/chunk-Q6A7XT2N.js.map +0 -1
- package/dist/chunk-TZ6YEYN4.js.map +0 -1
- package/dist/chunk-Y3MLSLB4.js.map +0 -1
- /package/dist/{chunk-CADSX6UN.js.map → chunk-Y3KNXVTD.js.map} +0 -0
package/src/interaction.ts
CHANGED
|
@@ -45,6 +45,13 @@ const opaqueGeneration = z
|
|
|
45
45
|
.min(1)
|
|
46
46
|
.max(256)
|
|
47
47
|
.regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u);
|
|
48
|
+
// Native bridge generations use unpadded base64url; both - and _ can lead.
|
|
49
|
+
// Keep the bytes unchanged: generation equality fences old connections.
|
|
50
|
+
const attachedBridgeGeneration = z
|
|
51
|
+
.string()
|
|
52
|
+
.min(1)
|
|
53
|
+
.max(256)
|
|
54
|
+
.regex(/^[A-Za-z0-9_-][A-Za-z0-9._:-]*$/u);
|
|
48
55
|
const boundedOpaqueId = z
|
|
49
56
|
.string()
|
|
50
57
|
.min(1)
|
|
@@ -202,6 +209,11 @@ export const BrowserSessionCapabilities = z
|
|
|
202
209
|
.strict();
|
|
203
210
|
export type BrowserSessionCapabilities = z.infer<typeof BrowserSessionCapabilities>;
|
|
204
211
|
|
|
212
|
+
/** Versioned persistent discriminator for experimental disposable contexts. */
|
|
213
|
+
export { EPHEMERAL_CHROMIUM_DRIVER_ID, browserSessionStorageMode } from "./browser-storage";
|
|
214
|
+
export const BrowserStorageMode = z.enum(["private_profile", "ephemeral_context"]);
|
|
215
|
+
export type BrowserStorageMode = z.infer<typeof BrowserStorageMode>;
|
|
216
|
+
|
|
205
217
|
export const BrowserSession = z
|
|
206
218
|
.object({
|
|
207
219
|
id: z.string().uuid(),
|
|
@@ -309,7 +321,7 @@ export type AttachedBrowserDeviceAnnouncement = z.infer<typeof AttachedBrowserDe
|
|
|
309
321
|
|
|
310
322
|
export const AttachedBrowserInventorySnapshot = z
|
|
311
323
|
.object({
|
|
312
|
-
bridgeGeneration:
|
|
324
|
+
bridgeGeneration: attachedBridgeGeneration,
|
|
313
325
|
revision: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
314
326
|
devices: z.array(AttachedBrowserDeviceAnnouncement).max(10_000),
|
|
315
327
|
})
|
|
@@ -364,9 +376,25 @@ export const AttachedBrowserDevice = z
|
|
|
364
376
|
});
|
|
365
377
|
export type AttachedBrowserDevice = z.infer<typeof AttachedBrowserDevice>;
|
|
366
378
|
|
|
379
|
+
/** One enrolled machine agent currently reporting its browser-bridge inventory.
|
|
380
|
+
* A bridge with zero devices is operational but has no Chrome profile connected
|
|
381
|
+
* through the OpenGeni extension yet. */
|
|
382
|
+
export const AttachedBrowserBridge = z
|
|
383
|
+
.object({
|
|
384
|
+
enrollmentId: z.string().uuid(),
|
|
385
|
+
state: z.enum(["online", "offline"]),
|
|
386
|
+
bridgeGeneration: attachedBridgeGeneration,
|
|
387
|
+
inventoryRevision: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
388
|
+
connectedProfileCount: z.number().int().nonnegative().max(10_000),
|
|
389
|
+
lastSeenAt: z.string().datetime({ offset: true }),
|
|
390
|
+
})
|
|
391
|
+
.strict();
|
|
392
|
+
export type AttachedBrowserBridge = z.infer<typeof AttachedBrowserBridge>;
|
|
393
|
+
|
|
367
394
|
export const AttachedBrowserDeviceListResponse = z
|
|
368
395
|
.object({
|
|
369
396
|
revision: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
397
|
+
bridges: z.array(AttachedBrowserBridge).max(10_000),
|
|
370
398
|
devices: z.array(AttachedBrowserDevice).max(10_000),
|
|
371
399
|
})
|
|
372
400
|
.strict();
|
|
@@ -1800,6 +1828,18 @@ export const BrowserObservation = z
|
|
|
1800
1828
|
frameId: opaqueGeneration.nullable(),
|
|
1801
1829
|
semantic: z.union([InteractionSemanticSnapshot, InteractionSemanticDiff]).nullable(),
|
|
1802
1830
|
screenshot: RetainedArtifactReferenceSchema.nullable(),
|
|
1831
|
+
viewport: z
|
|
1832
|
+
.object({
|
|
1833
|
+
width: z.number().int().positive(),
|
|
1834
|
+
height: z.number().int().positive(),
|
|
1835
|
+
visualWidth: z.number().positive(),
|
|
1836
|
+
visualHeight: z.number().positive(),
|
|
1837
|
+
deviceScaleFactor: z.number().positive(),
|
|
1838
|
+
maxTouchPoints: z.number().int().nonnegative(),
|
|
1839
|
+
})
|
|
1840
|
+
.strict()
|
|
1841
|
+
.nullable()
|
|
1842
|
+
.optional(),
|
|
1803
1843
|
focusedRef: boundedOpaqueId.nullable(),
|
|
1804
1844
|
changedRegions: z.array(InteractionRect).max(INTERACTION_MAX_CHANGED_NODES),
|
|
1805
1845
|
diagnostics: InteractionDiagnosticSummary,
|
|
@@ -1868,6 +1908,90 @@ export const BrowserLocator = z.discriminatedUnion("kind", [
|
|
|
1868
1908
|
]);
|
|
1869
1909
|
export type BrowserLocator = z.infer<typeof BrowserLocator>;
|
|
1870
1910
|
|
|
1911
|
+
/** Cheap causal state for a target. This is intentionally independent of an
|
|
1912
|
+
* accessibility observation, which can require a full tree for every frame. */
|
|
1913
|
+
export const BrowserTargetState = z
|
|
1914
|
+
.object({
|
|
1915
|
+
browserSessionId: z.string().uuid(),
|
|
1916
|
+
controllerGeneration: opaqueGeneration,
|
|
1917
|
+
targetId: boundedOpaqueId,
|
|
1918
|
+
targetGeneration: opaqueGeneration,
|
|
1919
|
+
documentGeneration: opaqueGeneration.nullable(),
|
|
1920
|
+
frameId: opaqueGeneration.nullable(),
|
|
1921
|
+
})
|
|
1922
|
+
.strict();
|
|
1923
|
+
export type BrowserTargetState = z.infer<typeof BrowserTargetState>;
|
|
1924
|
+
|
|
1925
|
+
export const BrowserDomSafeAttribute = z.enum([
|
|
1926
|
+
"href",
|
|
1927
|
+
"src",
|
|
1928
|
+
"alt",
|
|
1929
|
+
"title",
|
|
1930
|
+
"role",
|
|
1931
|
+
"aria-label",
|
|
1932
|
+
"aria-expanded",
|
|
1933
|
+
"aria-checked",
|
|
1934
|
+
"aria-selected",
|
|
1935
|
+
"placeholder",
|
|
1936
|
+
"type",
|
|
1937
|
+
"name",
|
|
1938
|
+
"data-testid",
|
|
1939
|
+
]);
|
|
1940
|
+
export type BrowserDomSafeAttribute = z.infer<typeof BrowserDomSafeAttribute>;
|
|
1941
|
+
|
|
1942
|
+
export const BrowserDomReadSelector = z
|
|
1943
|
+
.string()
|
|
1944
|
+
.min(1)
|
|
1945
|
+
.max(8_192)
|
|
1946
|
+
.regex(/^[A-Za-z0-9_#.,\s>*-]+$/u);
|
|
1947
|
+
|
|
1948
|
+
/** DOM extraction avoids content-matching locators, which can probe redacted text. */
|
|
1949
|
+
export const BrowserDomReadLocator = z.discriminatedUnion("kind", [
|
|
1950
|
+
z.object({ kind: z.literal("ref"), ref: boundedOpaqueId }).strict(),
|
|
1951
|
+
z.object({ kind: z.literal("placeholder"), text: z.string().min(1).max(8_192) }).strict(),
|
|
1952
|
+
z.object({ kind: z.literal("test_id"), value: z.string().min(1).max(2_048) }).strict(),
|
|
1953
|
+
z.object({ kind: z.literal("css"), selector: BrowserDomReadSelector }).strict(),
|
|
1954
|
+
]);
|
|
1955
|
+
export type BrowserDomReadLocator = z.infer<typeof BrowserDomReadLocator>;
|
|
1956
|
+
|
|
1957
|
+
const BrowserDomReadFence = z.object({
|
|
1958
|
+
expectedTargetGeneration: opaqueGeneration,
|
|
1959
|
+
expectedDocumentGeneration: opaqueGeneration,
|
|
1960
|
+
expectedFrameId: opaqueGeneration,
|
|
1961
|
+
});
|
|
1962
|
+
|
|
1963
|
+
/** A fixed, read-only query. The caller never supplies executable JavaScript.
|
|
1964
|
+
* CSS reads accept only simple tag, class, id, descendant, and child selectors
|
|
1965
|
+
* so predicate queries cannot probe protected attribute values. CSS count is
|
|
1966
|
+
* scoped to the target's main document; child frames and shadow roots are not
|
|
1967
|
+
* part of its count. */
|
|
1968
|
+
export const BrowserDomReadRequest = z.discriminatedUnion("kind", [
|
|
1969
|
+
BrowserDomReadFence.extend({
|
|
1970
|
+
kind: z.literal("element"),
|
|
1971
|
+
locator: BrowserDomReadLocator,
|
|
1972
|
+
attributes: z.array(BrowserDomSafeAttribute).max(13).optional(),
|
|
1973
|
+
maxChars: z.number().int().min(1).max(32_768).optional(),
|
|
1974
|
+
}).strict(),
|
|
1975
|
+
BrowserDomReadFence.extend({
|
|
1976
|
+
kind: z.literal("count"),
|
|
1977
|
+
selector: BrowserDomReadSelector,
|
|
1978
|
+
}).strict(),
|
|
1979
|
+
]);
|
|
1980
|
+
export type BrowserDomReadRequest = z.infer<typeof BrowserDomReadRequest>;
|
|
1981
|
+
|
|
1982
|
+
export const BrowserDomReadResponse = BrowserTargetState.extend({
|
|
1983
|
+
kind: z.enum(["element", "count"]),
|
|
1984
|
+
count: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
1985
|
+
text: z.string().max(32_768).nullable().optional(),
|
|
1986
|
+
value: z.string().max(32_768).nullable().optional(),
|
|
1987
|
+
attributes: z
|
|
1988
|
+
.partialRecord(BrowserDomSafeAttribute, z.string().max(32_768).nullable())
|
|
1989
|
+
.optional(),
|
|
1990
|
+
redacted: z.enum(["password", "payment", "private", "policy"]).nullable().optional(),
|
|
1991
|
+
truncated: z.boolean(),
|
|
1992
|
+
}).strict();
|
|
1993
|
+
export type BrowserDomReadResponse = z.infer<typeof BrowserDomReadResponse>;
|
|
1994
|
+
|
|
1871
1995
|
/** Provider-neutral locator for native accessibility trees. Native automation
|
|
1872
1996
|
* identifiers are intentionally distinct from DOM selectors/test ids: AX,
|
|
1873
1997
|
* AT-SPI, and UIA adapters resolve them inside the exact observed target. */
|
|
@@ -1926,6 +2050,17 @@ export type BrowserPermissionSetting = z.infer<typeof BrowserPermissionSetting>;
|
|
|
1926
2050
|
|
|
1927
2051
|
const browserActionVariants = [
|
|
1928
2052
|
z.object({ type: z.literal("navigate"), url: boundedUrl }).strict(),
|
|
2053
|
+
z.object({ type: z.literal("history"), direction: z.enum(["back", "forward"]) }).strict(),
|
|
2054
|
+
z.object({ type: z.literal("activate") }).strict(),
|
|
2055
|
+
z
|
|
2056
|
+
.object({
|
|
2057
|
+
type: z.literal("viewport"),
|
|
2058
|
+
width: z.number().int().min(240).max(4_096),
|
|
2059
|
+
height: z.number().int().min(240).max(4_096),
|
|
2060
|
+
mobile: z.boolean(),
|
|
2061
|
+
deviceScaleFactor: z.number().min(0.5).max(4).optional(),
|
|
2062
|
+
})
|
|
2063
|
+
.strict(),
|
|
1929
2064
|
z
|
|
1930
2065
|
.object({
|
|
1931
2066
|
type: z.literal("click"),
|
|
@@ -2146,6 +2281,8 @@ export const BrowserActionBatch = z
|
|
|
2146
2281
|
.object({
|
|
2147
2282
|
type: z.literal("batch"),
|
|
2148
2283
|
actions: z.array(BrowserAction).min(1).max(INTERACTION_MAX_ACTIONS_PER_BATCH),
|
|
2284
|
+
/** Revalidate the original document before each action; never follow navigation. */
|
|
2285
|
+
fenceEachAction: z.literal(true).optional(),
|
|
2149
2286
|
})
|
|
2150
2287
|
.strict()
|
|
2151
2288
|
.superRefine((batch, context) => {
|
|
@@ -2162,6 +2299,41 @@ export const BrowserActionBatch = z
|
|
|
2162
2299
|
});
|
|
2163
2300
|
export type BrowserActionBatch = z.infer<typeof BrowserActionBatch>;
|
|
2164
2301
|
|
|
2302
|
+
/** Secret-safe projection of a connected-machine control failure carried in a
|
|
2303
|
+
* standard API error envelope. The outer envelope owns HTTP status, retryability,
|
|
2304
|
+
* and public request correlation; this preserves the exact failing control class
|
|
2305
|
+
* and optional inner request id without exposing subjects, local paths, or tokens. */
|
|
2306
|
+
export const InteractionControlFailureCode = z.enum([
|
|
2307
|
+
"unknown",
|
|
2308
|
+
"unsupported",
|
|
2309
|
+
"os",
|
|
2310
|
+
"not_found",
|
|
2311
|
+
"consent_required",
|
|
2312
|
+
"timeout",
|
|
2313
|
+
"draining",
|
|
2314
|
+
"protocol",
|
|
2315
|
+
"stream",
|
|
2316
|
+
"agent_offline",
|
|
2317
|
+
"fenced",
|
|
2318
|
+
"payload_too_large",
|
|
2319
|
+
]);
|
|
2320
|
+
export type InteractionControlFailureCode = z.infer<typeof InteractionControlFailureCode>;
|
|
2321
|
+
|
|
2322
|
+
export const InteractionControlFailureDetails = z
|
|
2323
|
+
.object({
|
|
2324
|
+
interactionLayer: z.literal("connected_machine"),
|
|
2325
|
+
interactionSurface: z.enum(["browser", "computer"]),
|
|
2326
|
+
controlFailureCode: InteractionControlFailureCode,
|
|
2327
|
+
controlRequestId: z
|
|
2328
|
+
.string()
|
|
2329
|
+
.min(1)
|
|
2330
|
+
.max(128)
|
|
2331
|
+
.regex(/^[A-Za-z0-9._:-]+$/u)
|
|
2332
|
+
.optional(),
|
|
2333
|
+
})
|
|
2334
|
+
.strict();
|
|
2335
|
+
export type InteractionControlFailureDetails = z.infer<typeof InteractionControlFailureDetails>;
|
|
2336
|
+
|
|
2165
2337
|
export const InteractionError = z
|
|
2166
2338
|
.object({
|
|
2167
2339
|
code: z.enum([
|
|
@@ -2205,8 +2377,10 @@ export const BrowserActionCommand = z
|
|
|
2205
2377
|
expectedFrameId: opaqueGeneration.nullable(),
|
|
2206
2378
|
actor: InteractionActor,
|
|
2207
2379
|
/** Human live-control surfaces already receive the resulting pixels. They
|
|
2208
|
-
* may omit the expensive semantic snapshot; agent actions keep it.
|
|
2209
|
-
|
|
2380
|
+
* may omit the expensive semantic snapshot; agent actions keep it. The
|
|
2381
|
+
* negotiated input mode only observes a focused native dropdown after a
|
|
2382
|
+
* pointer click, and otherwise returns no observation. */
|
|
2383
|
+
observationMode: z.enum(["full", "none", "input"]).optional(),
|
|
2210
2384
|
action: z.union([BrowserAction, BrowserActionBatch]),
|
|
2211
2385
|
})
|
|
2212
2386
|
.strict();
|
|
@@ -2334,6 +2508,7 @@ export const CreateBrowserSessionRequest = z
|
|
|
2334
2508
|
name: z.string().trim().min(1).max(200).optional(),
|
|
2335
2509
|
initialUrl: boundedUrl.optional(),
|
|
2336
2510
|
headless: z.boolean().default(true),
|
|
2511
|
+
storageMode: BrowserStorageMode.default("private_profile"),
|
|
2337
2512
|
/** Managed engine choice. Attached Chrome continues to derive its engine
|
|
2338
2513
|
* from the selected device rather than accepting an impersonated value. */
|
|
2339
2514
|
engine: z.enum(["chromium", "lightpanda"]).default("chromium"),
|
|
@@ -2345,6 +2520,23 @@ export const CreateBrowserSessionRequest = z
|
|
|
2345
2520
|
})
|
|
2346
2521
|
.strict()
|
|
2347
2522
|
.superRefine((value, context) => {
|
|
2523
|
+
if (
|
|
2524
|
+
value.storageMode === "ephemeral_context" &&
|
|
2525
|
+
(!value.headless ||
|
|
2526
|
+
value.engine !== "chromium" ||
|
|
2527
|
+
value.identityId ||
|
|
2528
|
+
value.baseRevisionId ||
|
|
2529
|
+
value.networkRouteId ||
|
|
2530
|
+
value.linkedComputerSessionId ||
|
|
2531
|
+
(value.placement && value.placement.kind !== "sandbox_group"))
|
|
2532
|
+
) {
|
|
2533
|
+
context.addIssue({
|
|
2534
|
+
code: "custom",
|
|
2535
|
+
path: ["storageMode"],
|
|
2536
|
+
message:
|
|
2537
|
+
"ephemeral contexts require headless managed sandbox Chromium without identity, revision, route or Computer",
|
|
2538
|
+
});
|
|
2539
|
+
}
|
|
2348
2540
|
if (value.baseRevisionId && !value.identityId) {
|
|
2349
2541
|
context.addIssue({
|
|
2350
2542
|
code: "custom",
|
|
@@ -2502,11 +2694,16 @@ const DirectInteractionFrameStreamAttachment = z
|
|
|
2502
2694
|
})
|
|
2503
2695
|
.strict();
|
|
2504
2696
|
|
|
2697
|
+
/** Native tunnels offer `binary` + RFB + bearer (3). Docker and OpenSandbox
|
|
2698
|
+
* hide those on the API interaction frame-proxy, so the viewer sees `binary` +
|
|
2699
|
+
* the proxy grant (2). */
|
|
2505
2700
|
const DirectComputerRfbAttachment = z
|
|
2506
2701
|
.object({
|
|
2507
2702
|
kind: z.literal("direct_rfb"),
|
|
2508
2703
|
url: boundedUrl,
|
|
2509
|
-
protocols: z.array(z.string().min(1).max(2_048)).
|
|
2704
|
+
protocols: z.array(z.string().min(1).max(2_048)).min(2).max(3),
|
|
2705
|
+
/** Absent on an older API means pixel viewing only. */
|
|
2706
|
+
inputAllowed: z.boolean().default(false),
|
|
2510
2707
|
})
|
|
2511
2708
|
.strict();
|
|
2512
2709
|
|
|
@@ -2554,6 +2751,8 @@ export const BrowserSessionAttachment = z
|
|
|
2554
2751
|
controllerGeneration: opaqueGeneration,
|
|
2555
2752
|
targetId: boundedOpaqueId,
|
|
2556
2753
|
stream: BrowserFrameStreamAttachment,
|
|
2754
|
+
fencedInputBatches: z.literal(true).optional(),
|
|
2755
|
+
focusedInputObservations: z.literal(true).optional(),
|
|
2557
2756
|
expiresAt: z.string().datetime({ offset: true }),
|
|
2558
2757
|
})
|
|
2559
2758
|
.strict();
|
|
@@ -2578,7 +2777,7 @@ export const BrowserActionRequest = z
|
|
|
2578
2777
|
expectedTargetGeneration: opaqueGeneration,
|
|
2579
2778
|
expectedDocumentGeneration: opaqueGeneration.nullable(),
|
|
2580
2779
|
expectedFrameId: opaqueGeneration.nullable(),
|
|
2581
|
-
observationMode: z.enum(["full", "none"]).default("full"),
|
|
2780
|
+
observationMode: z.enum(["full", "none", "input"]).default("full"),
|
|
2582
2781
|
action: z.union([BrowserAction, BrowserActionBatch]),
|
|
2583
2782
|
})
|
|
2584
2783
|
.strict();
|
|
@@ -2742,6 +2941,8 @@ export const ComputerSessionCapabilities = z
|
|
|
2742
2941
|
keyboardInput: z.boolean(),
|
|
2743
2942
|
clipboard: z.boolean(),
|
|
2744
2943
|
backgroundActions: z.boolean(),
|
|
2944
|
+
/** Raw window input stays in the background. Absent means foreground-only. */
|
|
2945
|
+
backgroundInput: z.boolean().optional(),
|
|
2745
2946
|
parallelApps: z.boolean(),
|
|
2746
2947
|
})
|
|
2747
2948
|
.strict();
|
|
@@ -3106,12 +3307,26 @@ export const ComputerSessionAttachment = z
|
|
|
3106
3307
|
computerSessionId: z.string().uuid(),
|
|
3107
3308
|
controllerGeneration: opaqueGeneration,
|
|
3108
3309
|
targetId: boundedOpaqueId,
|
|
3310
|
+
// Viewer posture only. Canonical actions still require live source authority.
|
|
3311
|
+
// Older API responses omit it; their existing action authorization remains.
|
|
3312
|
+
inputAllowed: z.boolean().optional(),
|
|
3109
3313
|
stream: ComputerFrameStreamAttachment,
|
|
3110
3314
|
expiresAt: z.string().datetime({ offset: true }),
|
|
3111
3315
|
})
|
|
3112
3316
|
.strict();
|
|
3113
3317
|
export type ComputerSessionAttachment = z.infer<typeof ComputerSessionAttachment>;
|
|
3114
3318
|
|
|
3319
|
+
/** Caller-specific human input posture, independent of media/native capability.
|
|
3320
|
+
* It is a current-controller hint; every action still reauthorizes. */
|
|
3321
|
+
export const ComputerSessionInputPosture = z
|
|
3322
|
+
.object({
|
|
3323
|
+
computerSessionId: z.string().uuid(),
|
|
3324
|
+
controllerGeneration: opaqueGeneration,
|
|
3325
|
+
inputAllowed: z.boolean(),
|
|
3326
|
+
})
|
|
3327
|
+
.strict();
|
|
3328
|
+
export type ComputerSessionInputPosture = z.infer<typeof ComputerSessionInputPosture>;
|
|
3329
|
+
|
|
3115
3330
|
export const ComputerSessionAttachmentRequest = z
|
|
3116
3331
|
.object({
|
|
3117
3332
|
targetId: boundedOpaqueId,
|