@opengeni/runtime 3.3.0 → 3.4.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.
Files changed (64) hide show
  1. package/dist/agent-LJT5NPWT.js +9 -0
  2. package/dist/assets/codemode-client.json +1 -1
  3. package/dist/browser-current-tab.d.ts +46 -0
  4. package/dist/browser-model-text.d.ts +126 -0
  5. package/dist/{chunk-XRX57ZQO.js → chunk-3DFH3ZHU.js} +784 -121
  6. package/dist/chunk-3DFH3ZHU.js.map +1 -0
  7. package/dist/{chunk-HJSIPTFA.js → chunk-4XDJ4TJA.js} +2 -2
  8. package/dist/{chunk-XQ23VCZ4.js → chunk-6FQ6KEII.js} +3 -3
  9. package/dist/{chunk-7LJ7KDPI.js → chunk-ERD4ICVB.js} +4 -3
  10. package/dist/{chunk-EK7IW2FR.js → chunk-ETTCGPBT.js} +224 -6
  11. package/dist/chunk-ETTCGPBT.js.map +1 -0
  12. package/dist/{chunk-7OUG7WBV.js → chunk-GWRBALGQ.js} +181 -13
  13. package/dist/chunk-GWRBALGQ.js.map +1 -0
  14. package/dist/{chunk-YG26XE7B.js → chunk-JYDG2A7H.js} +2 -2
  15. package/dist/{chunk-RSHQSLEJ.js → chunk-KIL4FGX5.js} +3 -3
  16. package/dist/{chunk-NWS4HPB7.js → chunk-MIAL5I4O.js} +2 -2
  17. package/dist/{chunk-Z5U6WE22.js → chunk-PRZPGRIK.js} +2 -2
  18. package/dist/{chunk-KCPW4K7L.js → chunk-PZQUUBEB.js} +2 -2
  19. package/dist/{chunk-5WJOPANS.js → chunk-Y5THZH5N.js} +7 -7
  20. package/dist/codex-tool-search.d.ts +9 -0
  21. package/dist/gmail-rest-mcp.js +8 -8
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.js +14 -12
  24. package/dist/interaction-tool-json-schema.d.ts +27 -0
  25. package/dist/{lazy-manifest-AJ6XPJ4F.js → lazy-manifest-BLZ3UZLX.js} +4 -4
  26. package/dist/lazy-tool-transport.d.ts +10 -0
  27. package/dist/{localSources-SSIEH5F5.js → localSources-I6SIQ6CX.js} +6 -6
  28. package/dist/model-call.js +3 -3
  29. package/dist/sandbox/browser-control-client.d.ts +77 -0
  30. package/dist/sandbox/index.d.ts +1 -1
  31. package/dist/sandbox/index.js +7 -7
  32. package/dist/sandbox/selfhosted/session.d.ts +3 -0
  33. package/dist/slack-rest-mcp.js +8 -8
  34. package/dist/workspace-tool-gateway.js +12 -12
  35. package/package.json +14 -14
  36. package/src/browser-current-tab.ts +139 -0
  37. package/src/browser-model-text.ts +378 -0
  38. package/src/codex-tool-search.ts +53 -0
  39. package/src/index.ts +39 -1
  40. package/src/interaction-tool-json-schema.ts +281 -0
  41. package/src/interaction-tools.ts +425 -235
  42. package/src/lazy-tool-transport.ts +229 -10
  43. package/src/model-input.ts +12 -1
  44. package/src/sandbox/browser-control-client.ts +336 -0
  45. package/src/sandbox/index.ts +4 -0
  46. package/src/sandbox/selfhosted/session.ts +38 -0
  47. package/dist/agent-CTPLA3HP.js +0 -9
  48. package/dist/browser-action-json-schema.d.ts +0 -4
  49. package/dist/chunk-7OUG7WBV.js.map +0 -1
  50. package/dist/chunk-EK7IW2FR.js.map +0 -1
  51. package/dist/chunk-XRX57ZQO.js.map +0 -1
  52. package/src/browser-action-json-schema.ts +0 -10
  53. /package/dist/{agent-CTPLA3HP.js.map → agent-LJT5NPWT.js.map} +0 -0
  54. /package/dist/{chunk-HJSIPTFA.js.map → chunk-4XDJ4TJA.js.map} +0 -0
  55. /package/dist/{chunk-XQ23VCZ4.js.map → chunk-6FQ6KEII.js.map} +0 -0
  56. /package/dist/{chunk-7LJ7KDPI.js.map → chunk-ERD4ICVB.js.map} +0 -0
  57. /package/dist/{chunk-YG26XE7B.js.map → chunk-JYDG2A7H.js.map} +0 -0
  58. /package/dist/{chunk-RSHQSLEJ.js.map → chunk-KIL4FGX5.js.map} +0 -0
  59. /package/dist/{chunk-NWS4HPB7.js.map → chunk-MIAL5I4O.js.map} +0 -0
  60. /package/dist/{chunk-Z5U6WE22.js.map → chunk-PRZPGRIK.js.map} +0 -0
  61. /package/dist/{chunk-KCPW4K7L.js.map → chunk-PZQUUBEB.js.map} +0 -0
  62. /package/dist/{chunk-5WJOPANS.js.map → chunk-Y5THZH5N.js.map} +0 -0
  63. /package/dist/{lazy-manifest-AJ6XPJ4F.js.map → lazy-manifest-BLZ3UZLX.js.map} +0 -0
  64. /package/dist/{localSources-SSIEH5F5.js.map → localSources-I6SIQ6CX.js.map} +0 -0
@@ -16,7 +16,7 @@ import {
16
16
  randomUUID,
17
17
  relativePosixPathWithinRoot,
18
18
  shellQuote
19
- } from "./chunk-7LJ7KDPI.js";
19
+ } from "./chunk-ERD4ICVB.js";
20
20
 
21
21
  // ../../node_modules/.bun/@openai+agents-core@0.14.3+933c5e7db4cd33c2/node_modules/@openai/agents-core/dist/sandbox/shared/output.mjs
22
22
  var APPROX_BYTES_PER_TOKEN = 4;
@@ -1231,4 +1231,4 @@ export {
1231
1231
  materializeLocalSourceManifest,
1232
1232
  materializeLocalSourceManifestEntry
1233
1233
  };
1234
- //# sourceMappingURL=chunk-YG26XE7B.js.map
1234
+ //# sourceMappingURL=chunk-JYDG2A7H.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  connectorAttachmentFileName
3
- } from "./chunk-Z5U6WE22.js";
3
+ } from "./chunk-PRZPGRIK.js";
4
4
  import {
5
5
  isRoutingMutationOutcomeUnknownError
6
- } from "./chunk-5WJOPANS.js";
6
+ } from "./chunk-Y5THZH5N.js";
7
7
 
8
8
  // src/slack-rest-mcp.ts
9
9
  import {
@@ -597,4 +597,4 @@ export {
597
597
  SLACK_REST_API_BASE2 as SLACK_REST_API_BASE,
598
598
  SLACK_REST_MCP_TOOLS
599
599
  };
600
- //# sourceMappingURL=chunk-RSHQSLEJ.js.map
600
+ //# sourceMappingURL=chunk-KIL4FGX5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  UserError,
4
4
  cloneManifest,
5
5
  isRecord
6
- } from "./chunk-7LJ7KDPI.js";
6
+ } from "./chunk-ERD4ICVB.js";
7
7
 
8
8
  // ../../node_modules/.bun/@openai+agents-core@0.14.3+933c5e7db4cd33c2/node_modules/@openai/agents-core/dist/sandbox/client.mjs
9
9
  var DEFAULT_SANDBOX_ARCHIVE_LIMITS = {
@@ -91,4 +91,4 @@ export {
91
91
  NoopSnapshotSpec,
92
92
  isNoopSnapshotSpec
93
93
  };
94
- //# sourceMappingURL=chunk-NWS4HPB7.js.map
94
+ //# sourceMappingURL=chunk-MIAL5I4O.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isRoutingMutationOutcomeUnknownError,
3
3
  isRoutingMutationOutputRejectedError
4
- } from "./chunk-5WJOPANS.js";
4
+ } from "./chunk-Y5THZH5N.js";
5
5
  import {
6
6
  assertMcpPayloadWithinBytes
7
7
  } from "./chunk-LJNCGUMB.js";
@@ -164,4 +164,4 @@ export {
164
164
  connectorAttachmentSandboxPath,
165
165
  projectConnectorAttachmentTransfers
166
166
  };
167
- //# sourceMappingURL=chunk-Z5U6WE22.js.map
167
+ //# sourceMappingURL=chunk-PRZPGRIK.js.map
@@ -9,7 +9,7 @@ import {
9
9
  logToolActionError,
10
10
  logger,
11
11
  randomUUID
12
- } from "./chunk-7LJ7KDPI.js";
12
+ } from "./chunk-ERD4ICVB.js";
13
13
 
14
14
  // ../../node_modules/.bun/@openai+agents-core@0.14.3+933c5e7db4cd33c2/node_modules/@openai/agents-core/dist/mcpServers.mjs
15
15
  var DEFAULT_CONNECT_TIMEOUT_MS = 1e4;
@@ -828,4 +828,4 @@ export {
828
828
  connectMcpServers,
829
829
  MemorySession
830
830
  };
831
- //# sourceMappingURL=chunk-KCPW4K7L.js.map
831
+ //# sourceMappingURL=chunk-PZQUUBEB.js.map
@@ -26,17 +26,17 @@ import {
26
26
  truncateOutput,
27
27
  validateCredentialPair,
28
28
  validateRemoteSandboxPathForManifest
29
- } from "./chunk-YG26XE7B.js";
29
+ } from "./chunk-JYDG2A7H.js";
30
30
  import {
31
31
  isNoopSnapshotSpec,
32
32
  normalizeSandboxClientCreateArgs,
33
33
  resolveSandboxArchiveLimits,
34
34
  validateSandboxArchiveLimits
35
- } from "./chunk-NWS4HPB7.js";
35
+ } from "./chunk-MIAL5I4O.js";
36
36
  import {
37
37
  isSandboxPathNotFoundError,
38
38
  probeSandboxPathExists
39
- } from "./chunk-HJSIPTFA.js";
39
+ } from "./chunk-4XDJ4TJA.js";
40
40
  import {
41
41
  Environment,
42
42
  FileMode,
@@ -94,7 +94,7 @@ import {
94
94
  shellQuote,
95
95
  stableJsonStringify,
96
96
  withSandboxSpan
97
- } from "./chunk-7LJ7KDPI.js";
97
+ } from "./chunk-ERD4ICVB.js";
98
98
 
99
99
  // src/sandbox/selfhosted/control-rpc.ts
100
100
  import { ControlRequest as ControlRequest2, ControlResponse, ErrorCode } from "@opengeni/agent-proto";
@@ -15086,7 +15086,7 @@ var CloudflareSandboxSession = class {
15086
15086
  async materializeEntry(args) {
15087
15087
  assertSandboxEntryMetadataSupported("CloudflareSandboxClient", args.path, args.entry, MOUNT_MANIFEST_METADATA_SUPPORT);
15088
15088
  if (entryContainsLocalSource(args.entry)) {
15089
- const { applyLocalSourceManifestEntryToState: applyLocalSourceManifestEntryToState2 } = await import("./localSources-SSIEH5F5.js");
15089
+ const { applyLocalSourceManifestEntryToState: applyLocalSourceManifestEntryToState2 } = await import("./localSources-I6SIQ6CX.js");
15090
15090
  await applyLocalSourceManifestEntryToState2(this.state, args.path, args.entry, "cloudflare", this.writer(), this.remotePathResolver, this.manifestMaterializationOptions(args.runAs));
15091
15091
  return;
15092
15092
  }
@@ -15097,7 +15097,7 @@ var CloudflareSandboxSession = class {
15097
15097
  assertSandboxManifestMetadataSupported("CloudflareSandboxClient", manifest, MOUNT_MANIFEST_METADATA_SUPPORT);
15098
15098
  assertCloudflareManifestMountsSupported(manifest);
15099
15099
  if (manifestContainsLocalSource(manifest)) {
15100
- const { applyLocalSourceManifestToState: applyLocalSourceManifestToState2 } = await import("./localSources-SSIEH5F5.js");
15100
+ const { applyLocalSourceManifestToState: applyLocalSourceManifestToState2 } = await import("./localSources-I6SIQ6CX.js");
15101
15101
  await applyLocalSourceManifestToState2(this.state, manifest, "cloudflare", this.writer(), this.remotePathResolver, this.manifestMaterializationOptions(runAs));
15102
15102
  return;
15103
15103
  }
@@ -26127,4 +26127,4 @@ export {
26127
26127
  renderRoutingMutationOutcomeUnknownToolResult,
26128
26128
  RoutingSandboxSession
26129
26129
  };
26130
- //# sourceMappingURL=chunk-5WJOPANS.js.map
26130
+ //# sourceMappingURL=chunk-Y5THZH5N.js.map
@@ -29,6 +29,15 @@ export declare const HARNESS_CONTROL_MCP_SERVER_ID = "opengeni";
29
29
  export declare const HARNESS_CONTROL_FIRST_PARTY_TOOLS: readonly ["goal_set", "goal_update", "goal_complete", "goal_pause", "goal_resume", "command_read", "command_wait", "wait_for_input"];
30
30
  /** True for an exact harness control tool name on the first-party server. */
31
31
  export declare function isHarnessControlMcpToolName(registryId: string, modelName: string): boolean;
32
+ /** True when a prepared function tool is an interaction family's entry tool. */
33
+ export declare function isInteractionEntryFunctionTool(tool: unknown, mcpServerIds?: ReadonlySet<string>, modelServerIds?: ReadonlyMap<string, string>): boolean;
34
+ /** True when a model tool name is an interaction family's entry tool. */
35
+ export declare function isInteractionEntryToolName(name: string): boolean;
36
+ /**
37
+ * The companions an entry tool discloses once it is called: the rest of its
38
+ * family that is still searchable, within the same byte budgets as a search.
39
+ */
40
+ export declare function interactionEntryCompanions(entryName: string, searchable: Tool[]): Tool[];
32
41
  /**
33
42
  * True when a prepared MCP function tool is one of the harness control tools
34
43
  * served by the authorized first-party `opengeni` server. These stay in the
@@ -11,15 +11,15 @@ import {
11
11
  gmailToolAvailableOnDeployment,
12
12
  gmailToolSupportsScopes,
13
13
  isOfficialGmailMcpConfig
14
- } from "./chunk-XQ23VCZ4.js";
15
- import "./chunk-Z5U6WE22.js";
16
- import "./chunk-5WJOPANS.js";
14
+ } from "./chunk-6FQ6KEII.js";
15
+ import "./chunk-PRZPGRIK.js";
16
+ import "./chunk-Y5THZH5N.js";
17
17
  import "./chunk-4A4XTKKX.js";
18
- import "./chunk-YG26XE7B.js";
19
- import "./chunk-NWS4HPB7.js";
20
- import "./chunk-HJSIPTFA.js";
21
- import "./chunk-KCPW4K7L.js";
22
- import "./chunk-7LJ7KDPI.js";
18
+ import "./chunk-JYDG2A7H.js";
19
+ import "./chunk-MIAL5I4O.js";
20
+ import "./chunk-4XDJ4TJA.js";
21
+ import "./chunk-PZQUUBEB.js";
22
+ import "./chunk-ERD4ICVB.js";
23
23
  import "./chunk-LJNCGUMB.js";
24
24
  import "./chunk-PLDDJCW6.js";
25
25
  export {
package/dist/index.d.ts CHANGED
@@ -708,6 +708,9 @@ export declare function buildOpenGeniAgent(settings: Settings, resources: Resour
708
708
  * or writes those rules must derive the identity through this function.
709
709
  */
710
710
  export declare function sessionMcpApprovalConnectionId(serverId: string, url: string): string;
711
+ /** Why interaction_request_human arguments cannot be recorded as an
712
+ * intervention, in words the model can act on, or null when they can. */
713
+ export declare function interactionRequestArgumentsProblem(serialized: string): string | null;
711
714
  /**
712
715
  * Codex and reviewed Responses-compatible Gateway routes accept ordinary
713
716
  * FUNCTION tools plus `input_image` content inside a function_call_output. The
package/dist/index.js CHANGED
@@ -99,6 +99,7 @@ import {
99
99
  identityFromLegacyTemplate,
100
100
  incrementalModelInputProjectionFilter,
101
101
  inspectPersistentAgentInstructions,
102
+ interactionRequestArgumentsProblem,
102
103
  interactionToolErrorOutput,
103
104
  interruptionKindForCallItem,
104
105
  invokePreparedAgentTool,
@@ -187,7 +188,7 @@ import {
187
188
  workspaceEnvironmentInstructions,
188
189
  wrapAttemptToolDefinitions,
189
190
  wrapAttemptToolExecute
190
- } from "./chunk-XRX57ZQO.js";
191
+ } from "./chunk-3DFH3ZHU.js";
191
192
  import {
192
193
  ActiveBackendUnresolvableError,
193
194
  BROWSER_CONTROL_ADMIN_TOKEN_FILE,
@@ -403,7 +404,7 @@ import {
403
404
  withRunCredentialsSession,
404
405
  withoutSandboxProviderIdentity,
405
406
  workspaceArchiveDownloadTemporaryDirectory
406
- } from "./chunk-EK7IW2FR.js";
407
+ } from "./chunk-ETTCGPBT.js";
407
408
  import {
408
409
  SKILL_MAX_FILES,
409
410
  SKILL_MAX_FILE_BYTES,
@@ -558,7 +559,7 @@ import {
558
559
  toolCallIdFromSdkItem,
559
560
  vercelGatewayRoutingFetch,
560
561
  withClaudeUsageObserver
561
- } from "./chunk-7OUG7WBV.js";
562
+ } from "./chunk-GWRBALGQ.js";
562
563
  import {
563
564
  UnsupportedProtocolJsonValueError,
564
565
  normalizeProtocolJsonValue
@@ -572,7 +573,7 @@ import {
572
573
  gmailToolAvailableOnDeployment,
573
574
  gmailToolSupportsScopes,
574
575
  isOfficialGmailMcpConfig
575
- } from "./chunk-XQ23VCZ4.js";
576
+ } from "./chunk-6FQ6KEII.js";
576
577
  import {
577
578
  OFFICIAL_SLACK_MCP_URL,
578
579
  SLACK_REST_API_BASE,
@@ -580,14 +581,14 @@ import {
580
581
  SlackRestMcpServer,
581
582
  isOfficialSlackMcpConfig,
582
583
  slackRestToolIsMutation
583
- } from "./chunk-RSHQSLEJ.js";
584
+ } from "./chunk-KIL4FGX5.js";
584
585
  import {
585
586
  CONNECTOR_ATTACHMENT_PROVIDER_RESULT_MAX_BYTES,
586
587
  CONNECTOR_ATTACHMENT_SANITIZED_RESULT_MAX_BYTES,
587
588
  ConnectorAttachmentTransferError,
588
589
  connectorAttachmentSandboxPath,
589
590
  projectConnectorAttachmentTransfers
590
- } from "./chunk-Z5U6WE22.js";
591
+ } from "./chunk-PRZPGRIK.js";
591
592
  import {
592
593
  CODE_SEARCH_RG_MAX_BYTES,
593
594
  ChannelAConflictError,
@@ -684,15 +685,15 @@ import {
684
685
  validateCodeSearchRipgrepArgs,
685
686
  withModalCommandStartSignal,
686
687
  withRoutingMutationOutputRejectionFence
687
- } from "./chunk-5WJOPANS.js";
688
+ } from "./chunk-Y5THZH5N.js";
688
689
  import "./chunk-4A4XTKKX.js";
689
- import "./chunk-YG26XE7B.js";
690
- import "./chunk-NWS4HPB7.js";
691
- import "./chunk-HJSIPTFA.js";
692
- import "./chunk-KCPW4K7L.js";
690
+ import "./chunk-JYDG2A7H.js";
691
+ import "./chunk-MIAL5I4O.js";
692
+ import "./chunk-4XDJ4TJA.js";
693
+ import "./chunk-PZQUUBEB.js";
693
694
  import {
694
695
  MaxTurnsExceededError
695
- } from "./chunk-7LJ7KDPI.js";
696
+ } from "./chunk-ERD4ICVB.js";
696
697
  import "./chunk-LJNCGUMB.js";
697
698
  import "./chunk-PLDDJCW6.js";
698
699
  export {
@@ -1084,6 +1085,7 @@ export {
1084
1085
  inspectModalSandboxLifecycle,
1085
1086
  inspectPersistentAgentInstructions,
1086
1087
  inspectRecordingArtifact,
1088
+ interactionRequestArgumentsProblem,
1087
1089
  interactionToolErrorOutput,
1088
1090
  interruptionKindForCallItem,
1089
1091
  invokePreparedAgentTool,
@@ -0,0 +1,27 @@
1
+ import type { AttemptToolJsonSchema } from "@opengeni/contracts";
2
+ import { z } from "zod";
3
+ /**
4
+ * The JSON Schema an interaction tool shows the model.
5
+ *
6
+ * Model providers expand every `$ref` when they render a tool, so a tagged
7
+ * union such as a browser action, whose locator union repeats in each of its
8
+ * twenty variants, costs several thousand tokens. Each tagged union of objects
9
+ * is shown as one object instead: the tag lists every variant, each field
10
+ * appears once, and one compact line names the fields each variant takes.
11
+ * Validation-only limits are left out. The tool's own Zod schema stays the
12
+ * authority and rejects any invalid combination with the exact field.
13
+ */
14
+ export declare function interactionToolInputJsonSchema(schema: z.ZodType): AttemptToolJsonSchema;
15
+ /**
16
+ * Let the model pass an element ref as a bare string wherever a locator is
17
+ * expected (`"locator":"e1a2b3c4d"`). It is the common case and a third of
18
+ * the output tokens of `{kind:'ref',ref}`. The tool expands it before
19
+ * validation.
20
+ */
21
+ export declare function withRefShorthandLocators(schema: AttemptToolJsonSchema): AttemptToolJsonSchema;
22
+ /**
23
+ * Name exactly what is wrong with invalid tool arguments. A union failure
24
+ * reports the variant the arguments chose (the one whose tag matched), so a
25
+ * click without a locator role says `action.locator.role`, not only "invalid".
26
+ */
27
+ export declare function describeInvalidToolArguments(error: z.ZodError): string;
@@ -1,9 +1,9 @@
1
1
  import "./chunk-4A4XTKKX.js";
2
- import "./chunk-NWS4HPB7.js";
3
- import "./chunk-HJSIPTFA.js";
2
+ import "./chunk-MIAL5I4O.js";
3
+ import "./chunk-4XDJ4TJA.js";
4
4
  import {
5
5
  Manifest
6
- } from "./chunk-7LJ7KDPI.js";
6
+ } from "./chunk-ERD4ICVB.js";
7
7
  import "./chunk-PLDDJCW6.js";
8
8
 
9
9
  // src/lazy-manifest.ts
@@ -43,4 +43,4 @@ async function recordLazyMaterializedDirectories(session, target) {
43
43
  export {
44
44
  recordLazyMaterializedDirectories
45
45
  };
46
- //# sourceMappingURL=lazy-manifest-AJ6XPJ4F.js.map
46
+ //# sourceMappingURL=lazy-manifest-BLZ3UZLX.js.map
@@ -52,6 +52,8 @@ export declare class LazyToolRuntime {
52
52
  wrapModel(model: Model): Model;
53
53
  private searchableTools;
54
54
  search(rawArguments: unknown): Tool[];
55
+ /** Model-visible schemas an entry-tool call discloses, or [] for any other tool. */
56
+ familyDisclosure(toolName: string): Record<string, unknown>[];
55
57
  genericSearchOutput(rawArguments: unknown): string;
56
58
  private buildListTool;
57
59
  private buildNativeSearchTool;
@@ -95,6 +97,14 @@ export declare function restoreGenericDispatchHistoryItems(input: Array<Record<s
95
97
  */
96
98
  export declare function restoreDirectDeferredCallArgumentTypes(candidate: Record<string, unknown>, runtime: LazyToolRuntime): Record<string, unknown>;
97
99
  export declare function transformGenericDispatchResponse(response: ModelResponse, runtime: LazyToolRuntime): ModelResponse;
100
+ /**
101
+ * Show each entry-tool call's frozen family disclosure right after its result,
102
+ * as the same search call and output a model-issued search would have produced
103
+ * (native tool_search items, or a generic tool_search function call). Tools the
104
+ * history already disclosed are not repeated. The expansion depends only on
105
+ * earlier items, so every later request reproduces the identical prefix.
106
+ */
107
+ export declare function expandInteractionFamilyDisclosures<T>(input: T[]): T[];
98
108
  /** Wrap per-run model resolution without changing any provider client or SDK tool object. */
99
109
  export declare class LazyToolModelProvider implements ModelProvider {
100
110
  private readonly inner;
@@ -3,11 +3,11 @@ import {
3
3
  applyLocalSourceManifestToState,
4
4
  materializeLocalSourceManifest,
5
5
  materializeLocalSourceManifestEntry
6
- } from "./chunk-YG26XE7B.js";
7
- import "./chunk-NWS4HPB7.js";
8
- import "./chunk-HJSIPTFA.js";
9
- import "./chunk-KCPW4K7L.js";
10
- import "./chunk-7LJ7KDPI.js";
6
+ } from "./chunk-JYDG2A7H.js";
7
+ import "./chunk-MIAL5I4O.js";
8
+ import "./chunk-4XDJ4TJA.js";
9
+ import "./chunk-PZQUUBEB.js";
10
+ import "./chunk-ERD4ICVB.js";
11
11
  import "./chunk-PLDDJCW6.js";
12
12
  export {
13
13
  applyLocalSourceManifestEntryToState,
@@ -15,4 +15,4 @@ export {
15
15
  materializeLocalSourceManifest,
16
16
  materializeLocalSourceManifestEntry
17
17
  };
18
- //# sourceMappingURL=localSources-SSIEH5F5.js.map
18
+ //# sourceMappingURL=localSources-I6SIQ6CX.js.map
@@ -4,10 +4,10 @@ import {
4
4
  SingleModelCallUnsupportedError,
5
5
  normalizeModelCallUsage,
6
6
  runSingleModelCall
7
- } from "./chunk-7OUG7WBV.js";
7
+ } from "./chunk-GWRBALGQ.js";
8
8
  import "./chunk-5ULGMFKR.js";
9
- import "./chunk-KCPW4K7L.js";
10
- import "./chunk-7LJ7KDPI.js";
9
+ import "./chunk-PZQUUBEB.js";
10
+ import "./chunk-ERD4ICVB.js";
11
11
  import "./chunk-LJNCGUMB.js";
12
12
  import "./chunk-PLDDJCW6.js";
13
13
  export {
@@ -128,6 +128,8 @@ export type PlacementBrowserSessionReference = {
128
128
  };
129
129
  export type PlacementBrowserSession = PlacementBrowserSessionReference & {
130
130
  observation: BrowserObservationValue;
131
+ /** The tab inventory at creation, when the controller reports it. */
132
+ targets?: BrowserTargetValue[];
131
133
  };
132
134
  export type PlacementComputerSessionReference = {
133
135
  computerSessionId: string;
@@ -265,6 +267,55 @@ export type PlacementBrowserStateCaptureReceipt = PlacementBrowserSessionReferen
265
267
  }>;
266
268
  };
267
269
  };
270
+ /** The exact controller authority a preserved working copy was launched
271
+ * under; the controller refuses any other. */
272
+ export type PlacementBrowserWorkingCopyAuthority = PlacementBrowserSessionReference & {
273
+ tokenGeneration: number;
274
+ controlToken: string;
275
+ viewToken: string;
276
+ };
277
+ export declare const BROWSER_WORKING_COPY_REFUSALS: readonly ["unsupported_platform", "browser_running", "working_copy_invalid", "receipt_not_adoptable", "authority_changed", "process_state_unknown", "adoption_not_needed", "adoption_unresolved"];
278
+ export type PlacementBrowserWorkingCopyRefusal = (typeof BROWSER_WORKING_COPY_REFUSALS)[number];
279
+ export declare const BROWSER_WORKING_COPY_ADOPTION_PHASES: readonly ["intent", "copied", "receipt", "source_preserved", "adopted", "interrupted", "failed", "collision", "reverting", "reverted"];
280
+ export type PlacementBrowserWorkingCopyAdoptionPhase = (typeof BROWSER_WORKING_COPY_ADOPTION_PHASES)[number];
281
+ export type PlacementBrowserWorkingCopyAdoption = PlacementBrowserSessionReference & {
282
+ operationId: string;
283
+ manifestDigest: string;
284
+ phase: PlacementBrowserWorkingCopyAdoptionPhase;
285
+ failureCode: string | null;
286
+ /** Directories this adoption kept beside the browser's own, by name. */
287
+ retainedDirectories: string[];
288
+ createdAt: string;
289
+ updatedAt: string;
290
+ };
291
+ export type PlacementBrowserWorkingCopyInspection = PlacementBrowserSessionReference & {
292
+ platformSupported: boolean;
293
+ refusal: PlacementBrowserWorkingCopyRefusal | null;
294
+ /** Exact digest of the bytes an adoption would take; null when refused. */
295
+ manifest: {
296
+ digest: string;
297
+ entries: number;
298
+ bytes: number;
299
+ excluded: string[];
300
+ } | null;
301
+ profileIdentityMatches: boolean;
302
+ /** false only when no process provably uses the profile. */
303
+ profileInUse: boolean | null;
304
+ receipt: {
305
+ operationId: string;
306
+ intent: "launch" | "suspend" | "retire" | "adopt";
307
+ state: string;
308
+ directoryLaunchAllowed: boolean;
309
+ authorityMatches: boolean;
310
+ /** True when this working copy was first launched from a saved checkpoint. */
311
+ launchedFromCheckpoint: boolean;
312
+ adoption: {
313
+ operationId: string;
314
+ manifestDigest: string;
315
+ } | null;
316
+ } | null;
317
+ activeAdoption: PlacementBrowserWorkingCopyAdoption | null;
318
+ };
268
319
  export type ProvisionBrowserControlClientInput = {
269
320
  adminToken: string;
270
321
  adminTokenFile?: string;
@@ -351,6 +402,32 @@ export declare class BrowserControlClient {
351
402
  * return only integrity/compatibility metadata. Secret authority is carried
352
403
  * in a private placement request file and never returned by browserd. */
353
404
  captureState(input: CapturePlacementBrowserStateInput): Promise<PlacementBrowserStateCaptureReceipt>;
405
+ /** Read-only evidence about a preserved working copy whose controller
406
+ * memory was lost: the exact digest of its bytes and whether it can be
407
+ * adopted. Hashing a large profile can take minutes. */
408
+ inspectWorkingCopy(input: PlacementBrowserWorkingCopyAuthority): Promise<PlacementBrowserWorkingCopyInspection>;
409
+ /** Adopt the exact inspected bytes of a preserved working copy. A lost reply
410
+ * is checked with {@link workingCopyAdoption}. Sending the same operation id
411
+ * again never repeats a side effect: it only settles what that operation
412
+ * already did, under the authority that approved it. */
413
+ adoptWorkingCopy(input: PlacementBrowserWorkingCopyAuthority & {
414
+ operationId: string;
415
+ manifestDigest: string;
416
+ }): Promise<PlacementBrowserWorkingCopyAdoption>;
417
+ /** The recorded state of one adoption, read without changing it. */
418
+ workingCopyAdoption(reference: PlacementBrowserSessionReference, operationId: string): Promise<{
419
+ inFlight: boolean;
420
+ adoption: PlacementBrowserWorkingCopyAdoption | null;
421
+ }>;
422
+ /** Revert one unfinished adoption under the browser's current authority:
423
+ * its own directory goes back to the live path and the staged copy is
424
+ * kept. Retrying the same revert finishes one that stopped part way. */
425
+ revertWorkingCopyAdoption(input: PlacementBrowserWorkingCopyAuthority & {
426
+ operationId: string;
427
+ }): Promise<{
428
+ inFlight: boolean;
429
+ adoption: PlacementBrowserWorkingCopyAdoption | null;
430
+ }>;
354
431
  sessionClient(input: {
355
432
  reference: PlacementBrowserSessionReference;
356
433
  controlToken: string;
@@ -37,7 +37,7 @@ export { createTurnToolCancellationController, TurnSandboxCommandCancelledError,
37
37
  export type { TurnSandboxCommandArgs, TurnSandboxCommandSession, TurnToolCancellationController, TurnToolCancellationFence, } from "./turn-tool-cancellation.js";
38
38
  export { TERMINAL_STREAM_PORT, TERMINAL_SERVER_TIMEOUT_MS, TerminalServerError, TerminalServerUnsupportedError, buildTerminalServerScript, ensureTerminalServer, tearDownTerminalServer, type EnsureTerminalServerOptions, type EnsureTerminalServerResult, } from "./terminal-server.js";
39
39
  export { BROWSER_CONTROL_PORT, BROWSER_CONTROL_SERVER_TIMEOUT_MS, BrowserControlServerError, BrowserControlServerUnsupportedError, buildBrowserControlServerScript, ensureBrowserControlServer, tearDownBrowserControlServer, type EnsureBrowserControlServerOptions, type EnsureBrowserControlServerResult, } from "./browser-control-server.js";
40
- export { BROWSER_CONTROL_ADMIN_TOKEN_FILE, BrowserControlClient, BrowserControlProtocolError, BrowserControlRequestError, BrowserControlSessionClient, BrowserControlTransportError, BrowserControlUnsupportedError, ComputerFrameEvidenceMismatchError, decodeComputerControlFrameMetadataHeader, provisionBrowserControlClient, validateComputerControlFrameEvidence, type BrowserControlPlacementSession, type BrowserControlScreenshotOptions, type BrowserControlFrame, type BrowserStateDownloadGrant, type BrowserStateUploadGrant, type BrowserViewGrant, type CapturePlacementBrowserStateInput, type CreatePlacementBrowserSessionInput, type PlacementBrowserSession, type PlacementBrowserSessionReference, type PlacementBrowserNetworkRoute, type PlacementBrowserTransport, type PlacementBrowserStateCaptureReceipt, type ComputerControlFrame, type ComputerControlFrameMetadata, type ComputerFrameEvidenceMismatchReason, type ExpectedComputerFrameEvidence, type ProvisionBrowserControlClientInput, type ProvisionBrowserControlClientResult, type RestorePlacementBrowserStateInput, } from "./browser-control-client.js";
40
+ export { BROWSER_CONTROL_ADMIN_TOKEN_FILE, BrowserControlClient, BrowserControlProtocolError, BrowserControlRequestError, BrowserControlSessionClient, BrowserControlTransportError, BrowserControlUnsupportedError, ComputerFrameEvidenceMismatchError, decodeComputerControlFrameMetadataHeader, provisionBrowserControlClient, validateComputerControlFrameEvidence, type BrowserControlPlacementSession, type BrowserControlScreenshotOptions, type BrowserControlFrame, type BrowserStateDownloadGrant, type BrowserStateUploadGrant, type BrowserViewGrant, type CapturePlacementBrowserStateInput, type CreatePlacementBrowserSessionInput, type PlacementBrowserSession, type PlacementBrowserSessionReference, type PlacementBrowserNetworkRoute, type PlacementBrowserTransport, type PlacementBrowserStateCaptureReceipt, type PlacementBrowserWorkingCopyAdoption, type PlacementBrowserWorkingCopyAuthority, type PlacementBrowserWorkingCopyInspection, type PlacementBrowserWorkingCopyRefusal, type ComputerControlFrame, type ComputerControlFrameMetadata, type ComputerFrameEvidenceMismatchReason, type ExpectedComputerFrameEvidence, type ProvisionBrowserControlClientInput, type ProvisionBrowserControlClientResult, type RestorePlacementBrowserStateInput, } from "./browser-control-client.js";
41
41
  export { RunCredentialValidationError, normalizeRunCredentialsResolution, runCredentialRoot, runCredentialPointerFile, materializeRunCredentials, clearRunCredentials, clearRunCredentialsForAttempt, withRunCredentialEnvironment, withRunCredentialsSession, withRunCredentialsClient, type RunCredentialExpectedScope, type NormalizedRunCredentialMaterial, type RunCredentialCommandSession, type RunCredentialCommandRunner, type RunCredentialSessionReady, type MaterializeRunCredentialsOptions, } from "./run-credentials.js";
42
42
  export { SECRET_ENV_TOTAL_MAX_BYTES, SECRET_ENV_VALUE_MAX_BYTES, SECRET_FILE_ROOT, clearSecretFilesCommand, prepareSecretExec, prepareSecretStdin, resolveSecretImagePath, resolveSecretLiteralText, resolveSecretPatchText, runWithSecretCarry, secretExecCarryFor, secretFilePath, secretScopeFor, type SecretCarry, type SecretExecCarry, type SecretStdinCarry, } from "./secret-delivery.js";
43
43
  export { CodemodeTokenPathError, codemodeTokenFileForSession, codemodeTokenFileFromEnvironment, withCodemodeTokenEnvironment, withCodemodeTokenSession, withCodemodeTokenClient, } from "./codemode-token.js";
@@ -213,7 +213,7 @@ import {
213
213
  withRunCredentialsSession,
214
214
  withoutSandboxProviderIdentity,
215
215
  workspaceArchiveDownloadTemporaryDirectory
216
- } from "../chunk-EK7IW2FR.js";
216
+ } from "../chunk-ETTCGPBT.js";
217
217
  import "../chunk-5ULGMFKR.js";
218
218
  import {
219
219
  CODE_SEARCH_RG_MAX_BYTES,
@@ -311,13 +311,13 @@ import {
311
311
  validateCodeSearchRipgrepArgs,
312
312
  withModalCommandStartSignal,
313
313
  withRoutingMutationOutputRejectionFence
314
- } from "../chunk-5WJOPANS.js";
314
+ } from "../chunk-Y5THZH5N.js";
315
315
  import "../chunk-4A4XTKKX.js";
316
- import "../chunk-YG26XE7B.js";
317
- import "../chunk-NWS4HPB7.js";
318
- import "../chunk-HJSIPTFA.js";
319
- import "../chunk-KCPW4K7L.js";
320
- import "../chunk-7LJ7KDPI.js";
316
+ import "../chunk-JYDG2A7H.js";
317
+ import "../chunk-MIAL5I4O.js";
318
+ import "../chunk-4XDJ4TJA.js";
319
+ import "../chunk-PZQUUBEB.js";
320
+ import "../chunk-ERD4ICVB.js";
321
321
  import "../chunk-PLDDJCW6.js";
322
322
  export {
323
323
  ActiveBackendUnresolvableError,
@@ -96,6 +96,9 @@ export interface SelfhostedBackgroundCommandAdoption {
96
96
  connectionInstanceId: string;
97
97
  opId: string;
98
98
  command: string;
99
+ /** The exec already failed because the machine stopped answering. Record it
100
+ * with a stop request instead of as a running background command. */
101
+ abandoned?: boolean;
99
102
  }
100
103
  /** Exact command-admission snapshot. A worker resolves this immediately before
101
104
  * every exec/Git admission; retries and already-started operations retain it. */
@@ -8,15 +8,15 @@ import {
8
8
  SlackRestMcpServer,
9
9
  isOfficialSlackMcpConfig,
10
10
  slackRestToolIsMutation
11
- } from "./chunk-RSHQSLEJ.js";
12
- import "./chunk-Z5U6WE22.js";
13
- import "./chunk-5WJOPANS.js";
11
+ } from "./chunk-KIL4FGX5.js";
12
+ import "./chunk-PRZPGRIK.js";
13
+ import "./chunk-Y5THZH5N.js";
14
14
  import "./chunk-4A4XTKKX.js";
15
- import "./chunk-YG26XE7B.js";
16
- import "./chunk-NWS4HPB7.js";
17
- import "./chunk-HJSIPTFA.js";
18
- import "./chunk-KCPW4K7L.js";
19
- import "./chunk-7LJ7KDPI.js";
15
+ import "./chunk-JYDG2A7H.js";
16
+ import "./chunk-MIAL5I4O.js";
17
+ import "./chunk-4XDJ4TJA.js";
18
+ import "./chunk-PZQUUBEB.js";
19
+ import "./chunk-ERD4ICVB.js";
20
20
  import "./chunk-LJNCGUMB.js";
21
21
  import "./chunk-PLDDJCW6.js";
22
22
  export {
@@ -3,21 +3,21 @@ import {
3
3
  prepareAgentTools,
4
4
  secretArgumentMode,
5
5
  sessionMcpApprovalConnectionId
6
- } from "./chunk-XRX57ZQO.js";
7
- import "./chunk-EK7IW2FR.js";
6
+ } from "./chunk-3DFH3ZHU.js";
7
+ import "./chunk-ETTCGPBT.js";
8
8
  import "./chunk-4KFT2G3W.js";
9
- import "./chunk-7OUG7WBV.js";
9
+ import "./chunk-GWRBALGQ.js";
10
10
  import "./chunk-5ULGMFKR.js";
11
- import "./chunk-XQ23VCZ4.js";
12
- import "./chunk-RSHQSLEJ.js";
13
- import "./chunk-Z5U6WE22.js";
14
- import "./chunk-5WJOPANS.js";
11
+ import "./chunk-6FQ6KEII.js";
12
+ import "./chunk-KIL4FGX5.js";
13
+ import "./chunk-PRZPGRIK.js";
14
+ import "./chunk-Y5THZH5N.js";
15
15
  import "./chunk-4A4XTKKX.js";
16
- import "./chunk-YG26XE7B.js";
17
- import "./chunk-NWS4HPB7.js";
18
- import "./chunk-HJSIPTFA.js";
19
- import "./chunk-KCPW4K7L.js";
20
- import "./chunk-7LJ7KDPI.js";
16
+ import "./chunk-JYDG2A7H.js";
17
+ import "./chunk-MIAL5I4O.js";
18
+ import "./chunk-4XDJ4TJA.js";
19
+ import "./chunk-PZQUUBEB.js";
20
+ import "./chunk-ERD4ICVB.js";
21
21
  import "./chunk-LJNCGUMB.js";
22
22
  import "./chunk-PLDDJCW6.js";
23
23
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/runtime",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,19 +75,19 @@
75
75
  "@openai/agents": "0.14.3",
76
76
  "@openai/agents-core": "0.14.3",
77
77
  "@openai/agents-extensions": "0.14.3",
78
- "@opengeni/agent-proto": "3.3.0",
79
- "@opengeni/capabilities": "3.3.0",
80
- "@opengeni/codemode": "3.3.0",
81
- "@opengeni/codex": "3.3.0",
82
- "@opengeni/config": "3.3.0",
83
- "@opengeni/contracts": "3.3.0",
84
- "@opengeni/interaction": "3.3.0",
85
- "@opengeni/network": "3.3.0",
86
- "@opengeni/observability": "3.3.0",
87
- "@opengeni/sdk": "3.3.0",
88
- "@opengeni/tool-gateway": "3.3.0",
89
- "@opengeni/vaults": "3.3.0",
90
- "@opengeni/xai-subscription": "3.3.0",
78
+ "@opengeni/agent-proto": "3.4.0",
79
+ "@opengeni/capabilities": "3.4.0",
80
+ "@opengeni/codemode": "3.4.0",
81
+ "@opengeni/codex": "3.4.0",
82
+ "@opengeni/config": "3.4.0",
83
+ "@opengeni/contracts": "3.4.0",
84
+ "@opengeni/interaction": "3.4.0",
85
+ "@opengeni/network": "3.4.0",
86
+ "@opengeni/observability": "3.4.0",
87
+ "@opengeni/sdk": "3.4.0",
88
+ "@opengeni/tool-gateway": "3.4.0",
89
+ "@opengeni/vaults": "3.4.0",
90
+ "@opengeni/xai-subscription": "3.4.0",
91
91
  "debug": "4.4.3",
92
92
  "modal": "0.9.0",
93
93
  "openai": "6.47.0",