@post-print/agent-harness 0.3.3 → 0.3.5
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 +64 -19
- package/dist/adapters/index.d.ts +11 -7
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +97 -12
- package/dist/adapters/index.js.map +1 -1
- package/dist/auth-mode.d.ts +22 -0
- package/dist/auth-mode.d.ts.map +1 -0
- package/dist/auth-mode.js +36 -0
- package/dist/auth-mode.js.map +1 -0
- package/dist/capture.d.ts +1 -3
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +13 -67
- package/dist/capture.js.map +1 -1
- package/dist/classifier.d.ts +13 -0
- package/dist/classifier.d.ts.map +1 -0
- package/dist/classifier.js +91 -0
- package/dist/classifier.js.map +1 -0
- package/dist/claude-run.d.ts +15 -1
- package/dist/claude-run.d.ts.map +1 -1
- package/dist/claude-run.js +54 -8
- package/dist/claude-run.js.map +1 -1
- package/dist/context.d.ts +3 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +27 -9
- package/dist/context.js.map +1 -1
- package/dist/conversation.d.ts +28 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +191 -0
- package/dist/conversation.js.map +1 -0
- package/dist/cursor-run.d.ts +17 -1
- package/dist/cursor-run.d.ts.map +1 -1
- package/dist/cursor-run.js +152 -101
- package/dist/cursor-run.js.map +1 -1
- package/dist/host-registry.d.ts +12 -0
- package/dist/host-registry.d.ts.map +1 -0
- package/dist/host-registry.js +39 -0
- package/dist/host-registry.js.map +1 -0
- package/dist/index.d.ts +19 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -7
- package/dist/index.js.map +1 -1
- package/dist/judge.d.ts +30 -1
- package/dist/judge.d.ts.map +1 -1
- package/dist/judge.js +137 -17
- package/dist/judge.js.map +1 -1
- package/dist/live-agent-event.d.ts +17 -0
- package/dist/live-agent-event.d.ts.map +1 -0
- package/dist/live-agent-event.js +31 -0
- package/dist/live-agent-event.js.map +1 -0
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openai-capture.d.ts +43 -0
- package/dist/openai-capture.d.ts.map +1 -0
- package/dist/openai-capture.js +164 -0
- package/dist/openai-capture.js.map +1 -0
- package/dist/openai-run.d.ts +70 -0
- package/dist/openai-run.d.ts.map +1 -0
- package/dist/openai-run.js +373 -0
- package/dist/openai-run.js.map +1 -0
- package/dist/run-guards.js +1 -1
- package/dist/run-guards.js.map +1 -1
- package/dist/sealed-workspace.d.ts +37 -0
- package/dist/sealed-workspace.d.ts.map +1 -0
- package/dist/sealed-workspace.js +170 -0
- package/dist/sealed-workspace.js.map +1 -0
- package/dist/skills-context.d.ts +26 -7
- package/dist/skills-context.d.ts.map +1 -1
- package/dist/skills-context.js +105 -40
- package/dist/skills-context.js.map +1 -1
- package/dist/types.d.ts +50 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -1
- package/dist/types.js.map +1 -1
- package/dist/user-simulator.d.ts +10 -0
- package/dist/user-simulator.d.ts.map +1 -0
- package/dist/user-simulator.js +47 -0
- package/dist/user-simulator.js.map +1 -0
- package/dist/user-skills.d.ts +17 -0
- package/dist/user-skills.d.ts.map +1 -0
- package/dist/user-skills.js +32 -0
- package/dist/user-skills.js.map +1 -0
- package/dist/working-tree-guard.d.ts +5 -0
- package/dist/working-tree-guard.d.ts.map +1 -1
- package/dist/working-tree-guard.js +27 -3
- package/dist/working-tree-guard.js.map +1 -1
- package/package.json +3 -3
- package/dist/adapters/replay.d.ts +0 -7
- package/dist/adapters/replay.d.ts.map +0 -1
- package/dist/adapters/replay.js +0 -61
- package/dist/adapters/replay.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-tree-guard.js","sourceRoot":"","sources":["../src/working-tree-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"working-tree-guard.js","sourceRoot":"","sources":["../src/working-tree-guard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@post-print/agent-harness",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"lint": "bunx biome check .",
|
|
20
20
|
"lint:fix": "bunx biome check . --write",
|
|
21
21
|
"test": "bun test",
|
|
22
|
-
"test:sandbox-safe": "bun test --path-ignore-patterns '**/{worktree-judge,harness}.test.ts'",
|
|
22
|
+
"test:sandbox-safe": "bun test --path-ignore-patterns '**/{worktree-judge,harness,sealed-workspace}.test.ts'",
|
|
23
23
|
"test:coverage": "bun test --coverage --coverage-reporter=text --coverage-reporter=lcov",
|
|
24
24
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
25
25
|
},
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@types/node": "^26.1.1",
|
|
38
38
|
"typescript": "~7.0.2"
|
|
39
39
|
},
|
|
40
|
-
"description": "Host-agnostic agent runtime for
|
|
40
|
+
"description": "Host-agnostic agent runtime for direct execution, capture, and judging",
|
|
41
41
|
"repository": {
|
|
42
42
|
"type": "git",
|
|
43
43
|
"url": "https://github.com/post-print/agent-spec.git",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { AgentSession, HostAdapter, RunAgentOptions } from "../types.js";
|
|
2
|
-
/** Replay a committed trace JSON — host-agnostic scoring path. */
|
|
3
|
-
export declare class ReplayAdapter implements HostAdapter {
|
|
4
|
-
readonly host: "replay";
|
|
5
|
-
run(options: RunAgentOptions): Promise<AgentSession>;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/adapters/replay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoC1F,kEAAkE;AAClE,qBAAa,aAAc,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BzD;CACD"}
|
package/dist/adapters/replay.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
function emptyTrace() {
|
|
4
|
-
return {
|
|
5
|
-
messages: [],
|
|
6
|
-
toolCalls: [],
|
|
7
|
-
shellCommands: [],
|
|
8
|
-
artifacts: {},
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
function isAgentTrace(value) {
|
|
12
|
-
if (typeof value !== "object" || value === null) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
const trace = value;
|
|
16
|
-
return (Array.isArray(trace.messages) &&
|
|
17
|
-
Array.isArray(trace.toolCalls) &&
|
|
18
|
-
Array.isArray(trace.shellCommands) &&
|
|
19
|
-
typeof trace.artifacts === "object" &&
|
|
20
|
-
trace.artifacts !== null &&
|
|
21
|
-
!Array.isArray(trace.artifacts));
|
|
22
|
-
}
|
|
23
|
-
function failedReplay(started, error) {
|
|
24
|
-
return {
|
|
25
|
-
host: "replay",
|
|
26
|
-
status: "failed",
|
|
27
|
-
trace: emptyTrace(),
|
|
28
|
-
durationMs: Math.round(performance.now() - started),
|
|
29
|
-
error,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/** Replay a committed trace JSON — host-agnostic scoring path. */
|
|
33
|
-
export class ReplayAdapter {
|
|
34
|
-
host = "replay";
|
|
35
|
-
async run(options) {
|
|
36
|
-
const started = performance.now();
|
|
37
|
-
if (!options.replayTracePath) {
|
|
38
|
-
return failedReplay(started, "replay host requires replayTracePath");
|
|
39
|
-
}
|
|
40
|
-
const path = resolve(options.cwd, options.replayTracePath);
|
|
41
|
-
let parsed;
|
|
42
|
-
try {
|
|
43
|
-
const raw = await readFile(path, "utf8");
|
|
44
|
-
parsed = JSON.parse(raw);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
const message = error instanceof Error ? error.message : "failed to read replay trace";
|
|
48
|
-
return failedReplay(started, `invalid replay trace: ${message}`);
|
|
49
|
-
}
|
|
50
|
-
if (!isAgentTrace(parsed)) {
|
|
51
|
-
return failedReplay(started, "invalid replay trace: expected messages, toolCalls, shellCommands, and artifacts");
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
host: this.host,
|
|
55
|
-
status: "completed",
|
|
56
|
-
trace: { ...parsed, raw: parsed },
|
|
57
|
-
durationMs: Math.round(performance.now() - started),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=replay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../src/adapters/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,SAAS,UAAU;IAClB,OAAO;QACN,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,EAAE;KACb,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAmB,CAAC;IAClC,OAAO,CACN,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QAClC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,KAAK,CAAC,SAAS,KAAK,IAAI;QACxB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAC/B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,KAAa;IACnD,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,UAAU,EAAE;QACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACnD,KAAK;KACL,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,OAAO,aAAa;IAChB,IAAI,GAAG,QAAiB,CAAC;IAElC,KAAK,CAAC,GAAG,CAAC,OAAwB;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACvF,OAAO,YAAY,CAAC,OAAO,EAAE,yBAAyB,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,YAAY,CAClB,OAAO,EACP,kFAAkF,CAClF,CAAC;QACH,CAAC;QAED,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;YACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;SACnD,CAAC;IACH,CAAC;CACD"}
|