@post-print/agent-harness 2.0.9 → 2.0.10

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @post-print/agent-harness
2
2
 
3
3
  <!-- source-of-truth: configured agent definitions and isolated harness sessions -->
4
- <!-- doc-meta: owner=eng | last-reviewed=2026-09-26 -->
4
+ <!-- doc-meta: owner=eng | last-reviewed=2026-10-01 -->
5
5
  <!-- review-deps: paths=packages/harness/src/*.ts,packages/harness/src/**/*.ts,packages/harness/package.json -->
6
6
 
7
7
  Configure coding agents for agent-test. Definitions are reusable; each task session owns an isolated worker and host runtime.
@@ -25,3 +25,5 @@ Built-in runs default to a ten-minute deadline. A finite positive `timeoutMs` ov
25
25
  Factories do not launch agents. Agent-test prepares workspaces, installs attached skills, supplies context, creates sessions, and guarantees cleanup. Custom adapters use `defineAgent()` and `customAgent()`; see [the SDK guide](../../docs/sdk-v2.md#custom-agents).
26
26
 
27
27
  Built-in continuation currently reconstructs prior conversation. Cursor does not yet support enforced read-only judge sessions; use OpenAI or Claude as the judge. ACP is not introduced by this change.
28
+
29
+ `createSealedWorkspace` returns a temporary `workspace/` plus idempotent cleanup. A manifest outside that working tree allows startup recovery of expired dead-owner roots. Orchestrators can call `recoverSealedWorkspaces({ temporaryRoot?, minimumAgeMs? })`; see [storage ownership](../../docs/isolation.md#storage-ownership-and-retention) for active-run protection and the 24-hour default grace period.
package/dist/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export { createAgentSession, HarnessSession } from "./agent-session.js";
4
4
  export { resolvedTotalTokens } from "./capture.js";
5
5
  export { loginCursorSdk } from "./cursor-auth.js";
6
6
  export { resolveOpenaiBin } from "./openai-run.js";
7
+ export { ownerIsActive, ProcessOwner, processOwner } from "./process-owner.js";
8
+ export { recoverSealedWorkspaces } from "./sealed-storage.js";
7
9
  export { createSealedWorkspace, SealedWorkspace, toolPathsOutsideWorkspace, } from "./sealed-workspace.js";
8
10
  export { AgentHost, AgentMessage, AgentToolCall, AgentTrace, AgentUsage, ContextMode, ContextProfile, McpServerConfig, SkillContextSetting, } from "./types.js";
9
11
  export { buildScenarioUsageBreakdown, ScenarioUsageBreakdown, sumUsageParts, } from "./usage-breakdown.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,sBAAsB,EACtB,MAAM,EACN,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,2BAA2B,EAC3B,sBAAsB,EACtB,aAAa,GACb,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,sBAAsB,EACtB,MAAM,EACN,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,2BAA2B,EAC3B,sBAAsB,EACtB,aAAa,GACb,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,8 @@ export { createAgentSession } from "./agent-session.js";
4
4
  export { resolvedTotalTokens } from "./capture.js";
5
5
  export { loginCursorSdk } from "./cursor-auth.js";
6
6
  export { resolveOpenaiBin } from "./openai-run.js";
7
+ export { ownerIsActive, processOwner } from "./process-owner.js";
8
+ export { recoverSealedWorkspaces } from "./sealed-storage.js";
7
9
  export { createSealedWorkspace, toolPathsOutsideWorkspace, } from "./sealed-workspace.js";
8
10
  export { buildScenarioUsageBreakdown, sumUsageParts, } from "./usage-breakdown.js";
9
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASN,MAAM,EACN,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,WAAW,EAEX,MAAM,EACN,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,wBAAwB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAkB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACN,qBAAqB,EAErB,yBAAyB,GACzB,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACN,2BAA2B,EAE3B,aAAa,GACb,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASN,MAAM,EACN,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,WAAW,EAEX,MAAM,EACN,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,wBAAwB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAkB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAgB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,qBAAqB,EAErB,yBAAyB,GACzB,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACN,2BAA2B,EAE3B,aAAa,GACb,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface ProcessOwner {
2
+ pid: number;
3
+ startedAt?: string;
4
+ }
5
+ export declare function processOwner(pid?: number): Promise<ProcessOwner>;
6
+ /** Unknown identity or permission failures protect storage conservatively. */
7
+ export declare function ownerIsActive(owner: ProcessOwner): Promise<boolean>;
8
+ //# sourceMappingURL=process-owner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-owner.d.ts","sourceRoot":"","sources":["../src/process-owner.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,GAAG,SAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAO3E;AAED,8EAA8E;AAC9E,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CASzE"}
@@ -0,0 +1,26 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ export async function processOwner(pid = process.pid) {
5
+ try {
6
+ const { stdout } = await execFileAsync("ps", ["-p", String(pid), "-o", "lstart="]);
7
+ return { pid, startedAt: stdout.trim() || undefined };
8
+ }
9
+ catch {
10
+ return { pid };
11
+ }
12
+ }
13
+ /** Unknown identity or permission failures protect storage conservatively. */
14
+ export async function ownerIsActive(owner) {
15
+ try {
16
+ process.kill(owner.pid, 0);
17
+ }
18
+ catch (error) {
19
+ return error.code !== "ESRCH";
20
+ }
21
+ if (!owner.startedAt)
22
+ return true;
23
+ const current = await processOwner(owner.pid);
24
+ return !current.startedAt || current.startedAt === owner.startedAt;
25
+ }
26
+ //# sourceMappingURL=process-owner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-owner.js","sourceRoot":"","sources":["../src/process-owner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAM1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG;IACnD,IAAI,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,GAAG,EAAE,CAAC;IAChB,CAAC;AACF,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAmB;IACtD,IAAI,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;AACpE,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const SEALED_WORKSPACE_DIR_PREFIX = "agent-harness-seal-";
2
+ /** Only versioned harness-owned roots are swept; legacy/unrecognized roots are preserved. */
3
+ export declare function recoverSealedWorkspaces(options?: {
4
+ temporaryRoot?: string;
5
+ minimumAgeMs?: number;
6
+ }): Promise<void>;
7
+ export declare function allocateSealedWorkspace(callerCwd: string): Promise<{
8
+ path: string;
9
+ cleanup: () => Promise<void>;
10
+ }>;
11
+ //# sourceMappingURL=sealed-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-storage.d.ts","sourceRoot":"","sources":["../src/sealed-storage.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAUjE,6FAA6F;AAC7F,wBAAsB,uBAAuB,CAC5C,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,IAAI,CAAC,CAYf;AA4BD,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM;;;GAmB9D"}
@@ -0,0 +1,71 @@
1
+ import { mkdir, mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join, resolve } from "node:path";
4
+ import { ownerIsActive, processOwner } from "./process-owner.js";
5
+ export const SEALED_WORKSPACE_DIR_PREFIX = "agent-harness-seal-";
6
+ const MANIFEST = "owner.json";
7
+ /** Only versioned harness-owned roots are swept; legacy/unrecognized roots are preserved. */
8
+ export async function recoverSealedWorkspaces(options = {}) {
9
+ const root = options.temporaryRoot ?? tmpdir();
10
+ const minimumAgeMs = options.minimumAgeMs ?? 24 * 60 * 60 * 1000;
11
+ validateAge(minimumAgeMs);
12
+ for (const entry of await readdir(root, { withFileTypes: true })) {
13
+ if (!isSealedRoot(entry))
14
+ continue;
15
+ const path = join(root, entry.name);
16
+ const manifest = await readManifest(path);
17
+ if (!manifest)
18
+ continue;
19
+ if (!(await canRecover(manifest, minimumAgeMs)))
20
+ continue;
21
+ await rm(path, { recursive: true, force: true });
22
+ }
23
+ }
24
+ function validateAge(age) {
25
+ if (!Number.isFinite(age) || age < 0)
26
+ throw new Error("minimumAgeMs must be nonnegative");
27
+ }
28
+ async function canRecover(manifest, minimumAgeMs) {
29
+ return (Date.now() - Date.parse(manifest.createdAt) >= minimumAgeMs &&
30
+ !(await ownerIsActive(manifest.owner)));
31
+ }
32
+ function isSealedRoot(entry) {
33
+ return entry.isDirectory() && entry.name.startsWith(SEALED_WORKSPACE_DIR_PREFIX);
34
+ }
35
+ async function readManifest(root) {
36
+ try {
37
+ const value = JSON.parse(await readFile(join(root, MANIFEST), "utf8"));
38
+ if (value.version !== 1 || value.kind !== "agent-harness-sealed-workspace")
39
+ return;
40
+ if (!Number.isInteger(value.owner?.pid) || value.owner.pid <= 0)
41
+ return;
42
+ if (!Number.isFinite(Date.parse(value.createdAt)))
43
+ return;
44
+ return value;
45
+ }
46
+ catch {
47
+ return;
48
+ }
49
+ }
50
+ export async function allocateSealedWorkspace(callerCwd) {
51
+ await recoverSealedWorkspaces();
52
+ const root = await mkdtemp(join(tmpdir(), SEALED_WORKSPACE_DIR_PREFIX));
53
+ try {
54
+ const manifest = {
55
+ version: 1,
56
+ kind: "agent-harness-sealed-workspace",
57
+ callerCwd: resolve(callerCwd),
58
+ createdAt: new Date().toISOString(),
59
+ owner: await processOwner(),
60
+ };
61
+ await writeFile(join(root, MANIFEST), JSON.stringify(manifest));
62
+ const path = join(root, "workspace");
63
+ await mkdir(path);
64
+ return { path, cleanup: () => rm(root, { recursive: true, force: true }) };
65
+ }
66
+ catch (error) {
67
+ await rm(root, { recursive: true, force: true });
68
+ throw error;
69
+ }
70
+ }
71
+ //# sourceMappingURL=sealed-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-storage.js","sourceRoot":"","sources":["../src/sealed-storage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentTrace } from "./types.js";
2
- export declare const SEALED_WORKSPACE_DIR_PREFIX = "agent-harness-seal-";
2
+ export { SEALED_WORKSPACE_DIR_PREFIX } from "./sealed-storage.js";
3
3
  export interface SealedWorkspace {
4
4
  path: string;
5
5
  cleanup: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sealed-workspace.d.ts","sourceRoot":"","sources":["../src/sealed-workspace.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,CAyB5E;AAqDD,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAc3F;AAcD,mFAAmF;AACnF,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,eAAe,CAAC,CAwB1B;AA6CD,4DAA4D;AAC5D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAc5F"}
1
+ {"version":3,"file":"sealed-workspace.d.ts","sourceRoot":"","sources":["../src/sealed-workspace.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAIlE,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,CAyB5E;AAqDD,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAc3F;AAcD,mFAAmF;AACnF,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,eAAe,CAAC,CAY1B;AA0DD,4DAA4D;AAC5D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAc5F"}
@@ -1,6 +1,5 @@
1
1
  import { execFile } from "node:child_process";
2
- import { cp, mkdir, mkdtemp, rm } from "node:fs/promises";
3
- import { tmpdir } from "node:os";
2
+ import { cp, mkdir, rm } from "node:fs/promises";
4
3
  import { dirname, isAbsolute, join, resolve, sep } from "node:path";
5
4
  import { promisify } from "node:util";
6
5
  import { SKILL_ROOTS, skillOverlayRelPath } from "./skills-context.js";
@@ -10,7 +9,8 @@ const RELATIVE_PREFIX = /^\.\//;
10
9
  const FILE_PROTOCOL = /^file:\/\//;
11
10
  const TRAILING_PUNCTUATION = /[,:]+$/;
12
11
  const execFileAsync = promisify(execFile);
13
- export const SEALED_WORKSPACE_DIR_PREFIX = "agent-harness-seal-";
12
+ export { SEALED_WORKSPACE_DIR_PREFIX } from "./sealed-storage.js";
13
+ import { allocateSealedWorkspace } from "./sealed-storage.js";
14
14
  /**
15
15
  * Parse `workspace`. `undefined`, empty, and `"."` mean caller HEAD.
16
16
  * Subfolder paths must stay repo-relative and must not contain `..`.
@@ -116,28 +116,28 @@ async function initNestedGit(dest) {
116
116
  }
117
117
  /** Copy HEAD plus caller context into a temp folder the agent should not leave. */
118
118
  export async function createSealedWorkspace(options) {
119
- const dest = await mkdtemp(join(tmpdir(), SEALED_WORKSPACE_DIR_PREFIX));
120
119
  const parsed = parseScenarioWorkspace(options.workspace);
121
- if (!parsed.ok) {
122
- await rm(dest, { recursive: true, force: true });
120
+ if (!parsed.ok)
123
121
  throw new Error(parsed.message);
122
+ const sealed = await allocateSealedWorkspace(options.callerCwd);
123
+ try {
124
+ await materializeSealedWorkspace(options, parsed.rel, sealed.path);
125
+ await initNestedGit(sealed.path);
126
+ return sealed;
124
127
  }
125
- if (parsed.rel) {
126
- await materializeWorkspaceFolder(options.callerCwd, parsed.rel, dest);
128
+ catch (error) {
129
+ await sealed.cleanup();
130
+ throw error;
127
131
  }
128
- else {
129
- await materializeGitHead(options.callerCwd, dest);
130
- for (const rel of options.overlayPaths ?? []) {
131
- await overlayPath(options.callerCwd, dest, rel);
132
- }
132
+ }
133
+ async function materializeSealedWorkspace(options, workspaceRel, dest) {
134
+ if (workspaceRel) {
135
+ await materializeWorkspaceFolder(options.callerCwd, workspaceRel, dest);
136
+ return;
133
137
  }
134
- await initNestedGit(dest);
135
- return {
136
- path: dest,
137
- cleanup: async () => {
138
- await rm(dest, { recursive: true, force: true });
139
- },
140
- };
138
+ await materializeGitHead(options.callerCwd, dest);
139
+ for (const rel of options.overlayPaths ?? [])
140
+ await overlayPath(options.callerCwd, dest, rel);
141
141
  }
142
142
  function candidatePathsFromArgs(args) {
143
143
  if (!args) {
@@ -1 +1 @@
1
- {"version":3,"file":"sealed-workspace.js","sourceRoot":"","sources":["../src/sealed-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAsBjE;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;SAC/E,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;SAC/E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAY;IAChE,IAAI,CAAC;QACJ,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;IACR,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;QAClF,GAAG,EAAE,SAAS;KACd,CAAC,CAAC;IACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,SAAiB,EACjB,YAAoB,EACpB,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,IAAY,EAAE,GAAW;IACtE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO;IACR,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,uCAAuC;IACxC,CAAC;AACF,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,KAAgB,EAAE,UAAqB;IAChF,MAAM,kBAAkB,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,OAAO;QACN,WAAW;QACX,WAAW;QACX,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,uBAAuB;QACvB,qBAAqB;QACrB,GAAG,WAAW;QACd,GAAG,kBAAkB;QACrB,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;KAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACJ,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACR,uEAAuE;IACxE,CAAC;AACF,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,OAAqC;IAErC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACP,MAAM,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IACD,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO;QACN,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAyC;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QACzF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACzD,wEAAwE;YACxE,sEAAsE;YACtE,uDAAuD;YACvD,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAY;IACvC,OAAO,CACN,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1B,CAAC;AACH,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AACD,4DAA4D;AAC5D,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,aAAqB;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,SAAS;QACV,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"sealed-workspace.js","sourceRoot":"","sources":["../src/sealed-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAsB9D;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;SAC/E,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;SAC/E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAY;IAChE,IAAI,CAAC;QACJ,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;IACR,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;QAClF,GAAG,EAAE,SAAS;KACd,CAAC,CAAC;IACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,SAAiB,EACjB,YAAoB,EACpB,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,IAAY,EAAE,GAAW;IACtE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO;IACR,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,uCAAuC;IACxC,CAAC;AACF,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,KAAgB,EAAE,UAAqB;IAChF,MAAM,kBAAkB,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,OAAO;QACN,WAAW;QACX,WAAW;QACX,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,uBAAuB;QACvB,qBAAqB;QACrB,GAAG,WAAW;QACd,GAAG,kBAAkB;QACrB,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;KAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACJ,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACR,uEAAuE;IACxE,CAAC;AACF,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,OAAqC;IAErC,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC;QACJ,MAAM,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,OAAqC,EACrC,YAAgC,EAChC,IAAY;IAEZ,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACxE,OAAO;IACR,CAAC;IACD,MAAM,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE;QAAE,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAyC;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QACzF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACzD,wEAAwE;YACxE,sEAAsE;YACtE,uDAAuD;YACvD,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAY;IACvC,OAAO,CACN,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1B,CAAC;AACH,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AACD,4DAA4D;AAC5D,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,aAAqB;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,SAAS;QACV,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@post-print/agent-harness",
3
- "version": "2.0.9",
3
+ "version": "2.0.10",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",