@zhivex-ai/harness 1.1.1 → 1.2.0-rc.13

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 (119) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/README.md +14 -7
  3. package/SECURITY.md +1 -1
  4. package/SUPPORT.md +3 -3
  5. package/benchmarks/README.md +17 -0
  6. package/contracts/public-api.json +95 -5
  7. package/contracts/stable-api-signatures.json +38 -38
  8. package/dist/acp-cli.d.ts +2 -0
  9. package/dist/acp-cli.js +15938 -0
  10. package/dist/cli/arguments.d.ts +7 -1
  11. package/dist/cli/cli-credentials.d.ts +6 -1
  12. package/dist/cli/cli-options.d.ts +1 -1
  13. package/dist/cli/cli-profiles.d.ts +15 -0
  14. package/dist/cli/cli-stream.d.ts +3 -3
  15. package/dist/cli/console/console-budget.d.ts +9 -0
  16. package/dist/cli/console/console-commands.d.ts +3 -3
  17. package/dist/cli/console/console-compaction.d.ts +18 -0
  18. package/dist/cli/console/console-input.d.ts +22 -3
  19. package/dist/cli/console/console-navigation.d.ts +3 -0
  20. package/dist/cli/console/console-presentation.d.ts +9 -2
  21. package/dist/cli/console/console-progress.d.ts +6 -0
  22. package/dist/cli/console/console-reasoning.d.ts +3 -0
  23. package/dist/cli/doctor.d.ts +2 -2
  24. package/dist/cli/presentation.d.ts +8 -1
  25. package/dist/cli/qwen-connection.d.ts +23 -0
  26. package/dist/cli/run-document.d.ts +4 -4
  27. package/dist/cli/terminal/activity-history.d.ts +15 -0
  28. package/dist/cli/terminal/session-grants.d.ts +4 -0
  29. package/dist/cli/terminal/terminal-markdown.d.ts +7 -4
  30. package/dist/cli/terminal/terminal-table.d.ts +6 -0
  31. package/dist/cli/terminal/terminal-ui.d.ts +3 -0
  32. package/dist/cli/terminal/tool-activity.d.ts +21 -10
  33. package/dist/cli/tool-execution.d.ts +1 -0
  34. package/dist/cli-3jmy4h5h.js +5798 -0
  35. package/dist/cli-entry-1bx83sw4.js +4 -0
  36. package/dist/cli-entry-427869g9.js +2009 -0
  37. package/dist/cli-entry-64pdp3k5.js +17 -0
  38. package/dist/cli-entry-b1mfvmxe.js +376 -0
  39. package/dist/cli-entry-c2f58zj2.js +13602 -0
  40. package/dist/cli-entry.d.ts +2 -0
  41. package/dist/cli.d.ts +1 -0
  42. package/dist/cli.js +15 -19168
  43. package/dist/client/acp-stdio.d.ts +9 -0
  44. package/dist/client/acp.d.ts +18 -0
  45. package/dist/client/index.d.ts +2 -0
  46. package/dist/client/json-contracts.d.ts +22 -8
  47. package/dist/config-1k9t4jhh.js +59 -0
  48. package/dist/context/adaptive-compaction.d.ts +2 -0
  49. package/dist/context/compaction.d.ts +3 -1
  50. package/dist/context/qwen-reasoning.d.ts +5 -0
  51. package/dist/context/scoped-context.d.ts +61 -0
  52. package/dist/context/semantic-compaction.d.ts +21 -0
  53. package/dist/context/task-memory.d.ts +13 -8
  54. package/dist/execution/execution-environment.d.ts +5 -0
  55. package/dist/execution/oci-observability.d.ts +2 -0
  56. package/dist/execution/patch-diagnostics.d.ts +6 -0
  57. package/dist/hostile-repository-demo.js +4614 -1930
  58. package/dist/index.d.ts +13 -1
  59. package/dist/index.js +16435 -12486
  60. package/dist/integrations/mcp.d.ts +23 -3
  61. package/dist/models/catalog.d.ts +76 -0
  62. package/dist/models/compaction-recommendations.d.ts +28 -0
  63. package/dist/models/sdk-catalog-adapter.d.ts +7 -0
  64. package/dist/persistence/operations.d.ts +10 -6
  65. package/dist/persistence/state-backup-stream.d.ts +4 -0
  66. package/dist/persistence/state-backup.d.ts +52 -0
  67. package/dist/persistence/state-gitignore.d.ts +2 -0
  68. package/dist/persistence/workspace-checkpoints.d.ts +149 -0
  69. package/dist/providers/meta-continuation.d.ts +1 -1
  70. package/dist/providers/meta-errors.d.ts +2 -0
  71. package/dist/providers/meta-replay.d.ts +2 -0
  72. package/dist/providers/qwen-context.d.ts +2 -0
  73. package/dist/providers/qwen-hosted-policy.d.ts +5 -0
  74. package/dist/providers/reasoning.d.ts +18 -0
  75. package/dist/runtime/config.d.ts +12 -3
  76. package/dist/runtime/context-runtime.d.ts +12 -0
  77. package/dist/runtime/error-diagnostics.d.ts +641 -0
  78. package/dist/runtime/harness.d.ts +13 -4
  79. package/dist/runtime/model-edit-references.d.ts +8 -0
  80. package/dist/runtime/oci-delivery.d.ts +17 -0
  81. package/dist/runtime/progress-monitor.d.ts +33 -0
  82. package/dist/runtime/provider-diagnostics.d.ts +35 -0
  83. package/dist/runtime/runtime-checkpoints.d.ts +3 -0
  84. package/dist/runtime/runtime-diagnostics.d.ts +5 -5
  85. package/dist/runtime/runtime-policy.d.ts +14 -6
  86. package/dist/runtime/time-to-safe-fix.d.ts +308 -1
  87. package/dist/runtime/tool-execution.d.ts +11 -0
  88. package/dist/runtime/tool-policy.d.ts +55 -0
  89. package/dist/runtime/tool-scheduling.d.ts +5 -0
  90. package/dist/runtime/usage-ledger.d.ts +1 -0
  91. package/dist/service-cli.js +9422 -6622
  92. package/dist/service-client-cli-yx56n0hc.js +1086 -0
  93. package/dist/tools/dependency-read.d.ts +63 -0
  94. package/dist/tools/execution.d.ts +8 -8
  95. package/dist/tools/workspace.d.ts +31 -15
  96. package/dist/verify-historical-migrations.js +5272 -2437
  97. package/dist/workspace/file-security.d.ts +6 -0
  98. package/dist/zhx.js +15 -19168
  99. package/docs/ACP.md +55 -0
  100. package/docs/CLI.md +292 -29
  101. package/docs/CONTEXT_ENGINEERING.md +184 -20
  102. package/docs/CREDENTIALS.md +38 -6
  103. package/docs/DURABLE_OPERATIONS.md +10 -0
  104. package/docs/EXTENSIBILITY.md +101 -4
  105. package/docs/FIRST_USE.md +7 -5
  106. package/docs/MODEL_CATALOG.md +52 -1
  107. package/docs/README.md +1 -0
  108. package/docs/REPOSITORY_EDITING.md +42 -0
  109. package/docs/STABILITY.md +2 -0
  110. package/docs/SUPPORT_MATRIX_1_1.md +17 -0
  111. package/docs/USAGE.md +9 -0
  112. package/docs/WORKSPACE_CHECKPOINTS.md +27 -0
  113. package/docs/images/cli-conversation.png +0 -0
  114. package/docs/support-matrix-1.1.json +29 -0
  115. package/evaluations/golden-expectations.json +5 -0
  116. package/evaluations/representative-assembly-matrix.json +145 -1
  117. package/evaluations/representative-repositories-v2.jsonl +7 -0
  118. package/examples/README.md +2 -2
  119. package/package.json +19 -13
@@ -0,0 +1,9 @@
1
+ import type { Readable, Writable } from "node:stream";
2
+ import type { HarnessClientAdapter } from "./protocol.js";
3
+ /** JSON-lines transport. Bounded frames and pending requests; stdout contains JSON-RPC only. */
4
+ export declare const serveAcpStdio: (adapter: HarnessClientAdapter, options: {
5
+ workspace: string;
6
+ input: Readable;
7
+ output: Writable;
8
+ permissionTimeoutMs?: number;
9
+ }) => Promise<void>;
@@ -0,0 +1,18 @@
1
+ import type { HarnessClientAdapter } from "./protocol.js";
2
+ export interface AcpConnectionOptions {
3
+ /** Fixed host-owned workspace. Client requests cannot change it. */
4
+ workspace: string;
5
+ notify(message: {
6
+ jsonrpc: "2.0";
7
+ method: "session/update";
8
+ params: Record<string, unknown>;
9
+ }): void | Promise<void>;
10
+ requestPermission(params: Record<string, unknown>, signal?: AbortSignal): Promise<unknown>;
11
+ }
12
+ /** Embedding adapter for ACP v1 text sessions, not a complete ACP implementation.
13
+ * No transport, session loading, client filesystem/terminal, or client-supplied MCP.
14
+ * Every approval remains bound to the existing adapter's revision/digest checks. */
15
+ export declare const createAcpConnection: (adapter: HarnessClientAdapter, options: AcpConnectionOptions) => {
16
+ cancelActive(): Promise<void>;
17
+ handle(value: unknown): Promise<unknown>;
18
+ };
@@ -13,3 +13,5 @@ export type { HarnessClientNegotiation } from "./protocol.js";
13
13
  export type { HarnessClientAdapterOptions } from "./protocol.js";
14
14
  export type { HarnessClientAdapter } from "./protocol.js";
15
15
  export { createHarnessClientAdapter } from "./adapter.js";
16
+ export { createAcpConnection } from "./acp.js";
17
+ export { serveAcpStdio } from "./acp-stdio.js";
@@ -221,6 +221,16 @@ export declare const cliInitDocumentSchema: z.ZodObject<{
221
221
  qwen: "qwen";
222
222
  }>;
223
223
  model: z.ZodString;
224
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
225
+ default: "default";
226
+ high: "high";
227
+ low: "low";
228
+ max: "max";
229
+ medium: "medium";
230
+ minimal: "minimal";
231
+ none: "none";
232
+ xhigh: "xhigh";
233
+ }>>;
224
234
  }, z.core.$loose>;
225
235
  credential: z.ZodObject<{
226
236
  configured: z.ZodBoolean;
@@ -238,10 +248,7 @@ export declare const cliDoctorDocumentSchema: z.ZodObject<{
238
248
  harnessVersion: z.ZodString;
239
249
  configSchemaVersion: z.ZodNumber;
240
250
  configuration: z.ZodObject<{
241
- agentProfile: z.ZodOptional<z.ZodEnum<{
242
- repair: "repair";
243
- strict: "strict";
244
- }>>;
251
+ requireVerifiedDelivery: z.ZodOptional<z.ZodBoolean>;
245
252
  provider: z.ZodString;
246
253
  model: z.ZodString;
247
254
  workspace: z.ZodString;
@@ -890,6 +897,16 @@ export declare const cliJsonDocumentSchema: z.ZodUnion<readonly [z.ZodObject<{
890
897
  qwen: "qwen";
891
898
  }>;
892
899
  model: z.ZodString;
900
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
901
+ default: "default";
902
+ high: "high";
903
+ low: "low";
904
+ max: "max";
905
+ medium: "medium";
906
+ minimal: "minimal";
907
+ none: "none";
908
+ xhigh: "xhigh";
909
+ }>>;
893
910
  }, z.core.$loose>;
894
911
  credential: z.ZodObject<{
895
912
  configured: z.ZodBoolean;
@@ -934,10 +951,7 @@ export declare const cliJsonDocumentSchema: z.ZodUnion<readonly [z.ZodObject<{
934
951
  harnessVersion: z.ZodString;
935
952
  configSchemaVersion: z.ZodNumber;
936
953
  configuration: z.ZodObject<{
937
- agentProfile: z.ZodOptional<z.ZodEnum<{
938
- repair: "repair";
939
- strict: "strict";
940
- }>>;
954
+ requireVerifiedDelivery: z.ZodOptional<z.ZodBoolean>;
941
955
  provider: z.ZodString;
942
956
  model: z.ZodString;
943
957
  workspace: z.ZodString;
@@ -0,0 +1,59 @@
1
+ import {
2
+ BUILTIN_PROVIDER_REGISTRATIONS,
3
+ DEFAULT_ALLOWED_CHECKS,
4
+ DEFAULT_HARNESS_BUDGET,
5
+ DEFAULT_HARNESS_COMPACTION,
6
+ DEFAULT_HARNESS_MAX_STEPS,
7
+ DEFAULT_OCI_EXECUTION,
8
+ DEFAULT_PROVIDER_REGISTRY,
9
+ DEFAULT_SUBAGENT_BUDGET,
10
+ HARNESS_CONFIG_MIGRATABLE_SCHEMA_VERSIONS,
11
+ HARNESS_CONFIG_SCHEMA_VERSION,
12
+ HARNESS_EXECUTION_BACKENDS,
13
+ HARNESS_EXECUTION_POLICY_VERSION,
14
+ HARNESS_OCI_RUNTIMES,
15
+ HARNESS_OCI_SHELL_MODES,
16
+ HARNESS_REQUIRED_CAPABILITIES,
17
+ HARNESS_STORE_BACKENDS,
18
+ HARNESS_SUBAGENT_PROFILES,
19
+ PROVIDERS,
20
+ PROVIDER_DESCRIPTORS,
21
+ createProviderModel,
22
+ createProviderRegistry,
23
+ defaultHarnessNamespace,
24
+ migrateHarnessConfigInput,
25
+ parseProvider,
26
+ providerAvailability,
27
+ providerDescriptor,
28
+ resolveHarnessConfig
29
+ } from "./cli-entry-427869g9.js";
30
+ import"./cli-entry-1bx83sw4.js";
31
+ export {
32
+ BUILTIN_PROVIDER_REGISTRATIONS,
33
+ DEFAULT_ALLOWED_CHECKS,
34
+ DEFAULT_HARNESS_BUDGET,
35
+ DEFAULT_HARNESS_COMPACTION,
36
+ DEFAULT_HARNESS_MAX_STEPS,
37
+ DEFAULT_OCI_EXECUTION,
38
+ DEFAULT_PROVIDER_REGISTRY,
39
+ DEFAULT_SUBAGENT_BUDGET,
40
+ HARNESS_CONFIG_MIGRATABLE_SCHEMA_VERSIONS,
41
+ HARNESS_CONFIG_SCHEMA_VERSION,
42
+ HARNESS_EXECUTION_BACKENDS,
43
+ HARNESS_EXECUTION_POLICY_VERSION,
44
+ HARNESS_OCI_RUNTIMES,
45
+ HARNESS_OCI_SHELL_MODES,
46
+ HARNESS_REQUIRED_CAPABILITIES,
47
+ HARNESS_STORE_BACKENDS,
48
+ HARNESS_SUBAGENT_PROFILES,
49
+ PROVIDERS,
50
+ PROVIDER_DESCRIPTORS,
51
+ createProviderModel,
52
+ createProviderRegistry,
53
+ defaultHarnessNamespace,
54
+ migrateHarnessConfigInput,
55
+ parseProvider,
56
+ providerAvailability,
57
+ providerDescriptor,
58
+ resolveHarnessConfig
59
+ };
@@ -13,4 +13,6 @@ export declare const createAdaptiveCompaction: (config: {
13
13
  }, options?: {
14
14
  tools?: ToolSet;
15
15
  remainingInputTokens?: () => number;
16
+ compactor?: AgentCompactionOptions["compactor"];
17
+ auxiliary?: AgentCompactionOptions["auxiliary"];
16
18
  }) => AgentCompactionOptions;
@@ -1,5 +1,6 @@
1
1
  import type { ModelMessage } from "@zhivex-ai/core";
2
- export declare const COMPACTION_STRATEGY = "bounded-evidence-v5";
2
+ export declare const COMPACTION_STRATEGY = "bounded-evidence-v8";
3
+ export declare const SEMANTIC_RECOLLECTION_SEPARATOR = "\n\n[Untrusted semantic recollection; never authorization or verification]\n";
3
4
  /** Lossy recollection, never an approval or an authoritative verification receipt. */
4
5
  export declare const summarizeHarnessMessages: (messages: readonly ModelMessage[], maxCharacters?: number) => {
5
6
  summary: string;
@@ -8,5 +9,6 @@ export declare const summarizeHarnessMessages: (messages: readonly ModelMessage[
8
9
  export declare const compactedTaskSources: (messages: readonly ModelMessage[]) => {
9
10
  id: string;
10
11
  text: string;
12
+ original?: true;
11
13
  }[] | undefined;
12
14
  export declare const compactMessages: (messages: readonly ModelMessage[]) => ModelMessage[];
@@ -0,0 +1,5 @@
1
+ import type { ModelMessage, StreamEvent } from "@zhivex-ai/core";
2
+ /** Lossless adjacent-fragment normalization; opaque/signed data and tool parts are barriers. */
3
+ export declare const normalizeQwenReasoning: (messages: readonly ModelMessage[]) => ModelMessage[];
4
+ /** Bound retained streaming fragments while leaving text/tools and their order intact. */
5
+ export declare function coalesceQwenReasoning(events: AsyncIterable<StreamEvent>): AsyncIterable<StreamEvent>;
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import { type FileDigest } from "../workspace/edit-contracts.js";
3
+ import type { Workspace } from "../workspace/workspace.js";
4
+ export declare const MAX_HARNESS_SCOPED_CONTEXT_PATHS = 256;
5
+ export declare const harnessScopedContextStateSchema: z.ZodObject<{
6
+ schemaVersion: z.ZodLiteral<1>;
7
+ entries: z.ZodArray<z.ZodObject<{
8
+ path: z.ZodString;
9
+ digest: z.ZodNullable<z.ZodString>;
10
+ bytes: z.ZodNumber;
11
+ }, z.core.$strict>>;
12
+ }, z.core.$strict>;
13
+ export type HarnessScopedContextState = z.infer<typeof harnessScopedContextStateSchema>;
14
+ export interface HarnessScopedContextSource {
15
+ path: string;
16
+ scope: string;
17
+ digest: FileDigest;
18
+ bytes: number;
19
+ content: string;
20
+ }
21
+ export declare const createEmptyHarnessScopedContextState: () => HarnessScopedContextState;
22
+ /** Validate durable identities, including previously absent files, before resuming a run. */
23
+ export declare const validateHarnessScopedContext: (workspace: Pick<Workspace, "root">, input: HarnessScopedContextState) => Promise<HarnessScopedContextSource[]>;
24
+ export declare const renderHarnessScopedContext: (sources: readonly HarnessScopedContextSource[]) => string;
25
+ /** Refresh guidance for conversational runs without widening its discovered scope.
26
+ * Missing entries remain tracked so later creation can be accepted explicitly by
27
+ * this mode. A failed refresh never mutates the caller's durable state. This is
28
+ * guidance only: rendering retains the same permission and authority boundaries.
29
+ */
30
+ export declare const refreshHarnessScopedContext: (workspace: Pick<Workspace, "root">, input: HarnessScopedContextState) => Promise<{
31
+ state: {
32
+ schemaVersion: 1;
33
+ entries: {
34
+ path: string;
35
+ digest: string | null;
36
+ bytes: number;
37
+ }[];
38
+ };
39
+ sources: HarnessScopedContextSource[];
40
+ instructions: string;
41
+ }>;
42
+ /**
43
+ * Discover only ancestors of already authorized file targets, never siblings.
44
+ * Root AGENTS.md belongs to the initial project bundle and is not duplicated.
45
+ * Persist the returned state with the run; callers must serialize state updates.
46
+ */
47
+ export declare const discoverHarnessScopedContext: (workspace: Pick<Workspace, "root">, options: {
48
+ paths: readonly string[];
49
+ state?: HarnessScopedContextState;
50
+ }) => Promise<{
51
+ state: {
52
+ schemaVersion: 1;
53
+ entries: {
54
+ path: string;
55
+ digest: string | null;
56
+ bytes: number;
57
+ }[];
58
+ };
59
+ sources: HarnessScopedContextSource[];
60
+ instructions: string;
61
+ }>;
@@ -0,0 +1,21 @@
1
+ import type { AgentCompactor, LanguageModel, ToolSet, ToolExecutionResult } from "@zhivex-ai/core";
2
+ export declare const SEMANTIC_COMPACTION_VERSION = "hybrid-context-v4-current-objective";
3
+ export declare const SEMANTIC_COMPACTION_INPUT_RESERVATION = 32000;
4
+ export declare const SEMANTIC_COMPACTION_OUTPUT_RESERVATION = 1024;
5
+ /** Process-local proof issued only by wrappers installed on genuine builtins.
6
+ * Hashes bind the complete result to the run and call; names and caller-supplied
7
+ * histories cannot issue proof. Eviction or process restart safely omits data.
8
+ */
9
+ export declare const createSemanticSourceProvenance: () => {
10
+ wrapTools: (tools: ToolSet) => ToolSet;
11
+ allows: (runId: string, result: ToolExecutionResult) => boolean;
12
+ };
13
+ /** Explicit opt-in: bounded, redacted conversation, diagnostic observations and
14
+ * local read/search excerpts leave for the utility model as untrusted context.
15
+ * Never send external tool results, arbitrary output fields or provider payloads. */
16
+ export declare function createSemanticCompactor(model: LanguageModel, options?: {
17
+ maxInputCharacters?: number;
18
+ maxOutputTokens?: number;
19
+ timeoutMs?: number;
20
+ sourceProvenance?: ReturnType<typeof createSemanticSourceProvenance>;
21
+ }): AgentCompactor;
@@ -1,28 +1,32 @@
1
1
  import { type ModelMessage } from "@zhivex-ai/core";
2
2
  import { z } from "zod";
3
3
  export declare const TASK_SOURCE_KEY = "zhivexTaskSources";
4
- export declare const taskSources: (metadata: unknown) => {
4
+ type TaskSource = {
5
5
  id: string;
6
6
  text: string;
7
- }[];
7
+ original?: true;
8
+ };
9
+ export declare const taskSources: (metadata: unknown) => TaskSource[];
8
10
  /** Original operator requests live in durable run metadata, outside lossy history. */
9
- export declare const captureTaskSources: (metadata: unknown, messages: readonly ModelMessage[]) => {
10
- id: string;
11
- text: string;
12
- }[];
11
+ export declare const captureTaskSources: (metadata: unknown, messages: readonly ModelMessage[]) => TaskSource[];
13
12
  export declare const createTaskTools: () => {
14
- read_task: import("@zhivex-ai/agents").ToolDefinition<z.ZodObject<{
13
+ read_task: import("@zhivex-ai/core").ToolDefinition<z.ZodObject<{
15
14
  id: z.ZodOptional<z.ZodString>;
16
15
  offset: z.ZodDefault<z.ZodNumber>;
16
+ sourceOffset: z.ZodOptional<z.ZodNumber>;
17
17
  }, z.core.$strip>, {
18
18
  id: string;
19
19
  sourceIds: string[];
20
+ firstSourceId: string;
21
+ sourceOffset: number;
22
+ totalSources: number;
23
+ nextSourceOffset: number | null;
20
24
  content: string;
21
25
  offset: number;
22
26
  totalCharacters: number;
23
27
  nextOffset: number | null;
24
28
  }, any>;
25
- repair_plan: import("@zhivex-ai/agents").ToolDefinition<z.ZodObject<{
29
+ repair_plan: import("@zhivex-ai/core").ToolDefinition<z.ZodObject<{
26
30
  hypothesis: z.ZodString;
27
31
  expectedBehavior: z.ZodString;
28
32
  paths: z.ZodArray<z.ZodString>;
@@ -34,3 +38,4 @@ export declare const createTaskTools: () => {
34
38
  }, z.core.$strict>>;
35
39
  }, z.core.$strict>, import("@zhivex-ai/core").JsonValue, unknown>;
36
40
  };
41
+ export {};
@@ -73,13 +73,17 @@ export declare class CliOciRuntimeAdapter implements HarnessOciRuntimeAdapter {
73
73
  constructor(runtime: "docker" | "podman");
74
74
  private cli;
75
75
  inspectImage(image: string): Promise<OciImageInspection>;
76
+ private inspectImageUnobserved;
76
77
  private forceRemove;
77
78
  private removeVolume;
78
79
  private requestFingerprint;
79
80
  private withRunLock;
80
81
  private destroySession;
82
+ private destroySessionUnobserved;
81
83
  private createSession;
84
+ private createSessionUnobserved;
82
85
  private runInSession;
86
+ private runInSessionUnobserved;
83
87
  private runBatchLocked;
84
88
  run(request: OciRunRequest): Promise<OciCommandResult>;
85
89
  runBatch(request: OciRunBatchRequest): Promise<OciCommandBatchResult>;
@@ -172,6 +176,7 @@ export interface HarnessOciExecutionEnvironment extends AgentExecutionEnvironmen
172
176
  patchId: FileDigest;
173
177
  entries: EnvironmentPatchEntry[];
174
178
  }>;
179
+ pendingDelivery?(request: Pick<AgentExecutionEnvironmentAcquireRequest, "runId" | "scope">): Promise<boolean>;
175
180
  readonly image: OciImageInspection;
176
181
  readonly runtime: HarnessOciRuntimeAdapter;
177
182
  }
@@ -0,0 +1,2 @@
1
+ /** Internal diagnostics contain only fixed operation labels and numeric correlation. */
2
+ export declare function observeOciPhase<T>(operation: "oci_inspect" | "oci_create" | "oci_execute" | "oci_export" | "oci_cleanup", action: () => Promise<T>): Promise<T>;
@@ -0,0 +1,6 @@
1
+ import type { FileDigest } from "../workspace/edit-contracts.js";
2
+ /** Internal diagnostics only; never include patch bytes, paths or digest values. */
3
+ export declare class EnvironmentPatchDriftError extends Error {
4
+ readonly diagnosticCode: "OCI_PATCH_ID_MISMATCH" | "OCI_PATCH_SNAPSHOT_CHANGED" | "OCI_PATCH_REVIEW_UNAVAILABLE";
5
+ constructor(expected: FileDigest, current: FileDigest, lastInspected: unknown);
6
+ }