@post-print/agent-harness 0.3.4 → 0.3.6

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 (86) hide show
  1. package/README.md +64 -16
  2. package/dist/adapters/index.d.ts +9 -1
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +88 -6
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/auth-mode.d.ts +22 -0
  7. package/dist/auth-mode.d.ts.map +1 -0
  8. package/dist/auth-mode.js +36 -0
  9. package/dist/auth-mode.js.map +1 -0
  10. package/dist/capture.d.ts +0 -2
  11. package/dist/capture.d.ts.map +1 -1
  12. package/dist/capture.js +12 -66
  13. package/dist/capture.js.map +1 -1
  14. package/dist/classifier.d.ts +13 -0
  15. package/dist/classifier.d.ts.map +1 -0
  16. package/dist/classifier.js +91 -0
  17. package/dist/classifier.js.map +1 -0
  18. package/dist/claude-run.d.ts +15 -1
  19. package/dist/claude-run.d.ts.map +1 -1
  20. package/dist/claude-run.js +54 -8
  21. package/dist/claude-run.js.map +1 -1
  22. package/dist/context.d.ts +3 -2
  23. package/dist/context.d.ts.map +1 -1
  24. package/dist/context.js +27 -9
  25. package/dist/context.js.map +1 -1
  26. package/dist/conversation.d.ts +28 -0
  27. package/dist/conversation.d.ts.map +1 -0
  28. package/dist/conversation.js +191 -0
  29. package/dist/conversation.js.map +1 -0
  30. package/dist/cursor-run.d.ts +17 -1
  31. package/dist/cursor-run.d.ts.map +1 -1
  32. package/dist/cursor-run.js +152 -101
  33. package/dist/cursor-run.js.map +1 -1
  34. package/dist/host-registry.d.ts +12 -0
  35. package/dist/host-registry.d.ts.map +1 -0
  36. package/dist/host-registry.js +39 -0
  37. package/dist/host-registry.js.map +1 -0
  38. package/dist/index.d.ts +19 -7
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +28 -7
  41. package/dist/index.js.map +1 -1
  42. package/dist/judge.d.ts +30 -1
  43. package/dist/judge.d.ts.map +1 -1
  44. package/dist/judge.js +137 -17
  45. package/dist/judge.js.map +1 -1
  46. package/dist/live-agent-event.d.ts +17 -0
  47. package/dist/live-agent-event.d.ts.map +1 -0
  48. package/dist/live-agent-event.js +31 -0
  49. package/dist/live-agent-event.js.map +1 -0
  50. package/dist/main.d.ts +1 -1
  51. package/dist/main.d.ts.map +1 -1
  52. package/dist/main.js +1 -1
  53. package/dist/main.js.map +1 -1
  54. package/dist/openai-capture.d.ts +43 -0
  55. package/dist/openai-capture.d.ts.map +1 -0
  56. package/dist/openai-capture.js +164 -0
  57. package/dist/openai-capture.js.map +1 -0
  58. package/dist/openai-run.d.ts +70 -0
  59. package/dist/openai-run.d.ts.map +1 -0
  60. package/dist/openai-run.js +373 -0
  61. package/dist/openai-run.js.map +1 -0
  62. package/dist/sealed-workspace.d.ts +37 -0
  63. package/dist/sealed-workspace.d.ts.map +1 -0
  64. package/dist/sealed-workspace.js +170 -0
  65. package/dist/sealed-workspace.js.map +1 -0
  66. package/dist/skills-context.d.ts +26 -7
  67. package/dist/skills-context.d.ts.map +1 -1
  68. package/dist/skills-context.js +105 -40
  69. package/dist/skills-context.js.map +1 -1
  70. package/dist/types.d.ts +44 -2
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js +13 -1
  73. package/dist/types.js.map +1 -1
  74. package/dist/user-simulator.d.ts +10 -0
  75. package/dist/user-simulator.d.ts.map +1 -0
  76. package/dist/user-simulator.js +47 -0
  77. package/dist/user-simulator.js.map +1 -0
  78. package/dist/user-skills.d.ts +17 -0
  79. package/dist/user-skills.d.ts.map +1 -0
  80. package/dist/user-skills.js +32 -0
  81. package/dist/user-skills.js.map +1 -0
  82. package/dist/working-tree-guard.d.ts +5 -0
  83. package/dist/working-tree-guard.d.ts.map +1 -1
  84. package/dist/working-tree-guard.js +27 -3
  85. package/dist/working-tree-guard.js.map +1 -1
  86. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"skills-context.d.ts","sourceRoot":"","sources":["../src/skills-context.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAsBD,iBAAS,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,mBAAmB,CAQ5F;AAiED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA+B7B;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"skills-context.d.ts","sourceRoot":"","sources":["../src/skills-context.ts"],"names":[],"mappings":"AAGA,4EAA4E;AAC5E,eAAO,MAAM,WAAW,YACvB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,CACP,CAAC;AAQX,0EAA0E;AAC1E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1E;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC7C;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE7D,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,mBAAmB,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAsBD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS5D;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIvD;AAaD,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,MAAM,EAAE,CAExF;AAED,iBAAS,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG;IACzE,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAoBA;AAgED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,8 +1,20 @@
1
- import { readdir, readFile } from "node:fs/promises";
2
- import { join } from "node:path";
3
- const SKILLS_ROOT = ".claude/skills";
1
+ import { readFile } from "node:fs/promises";
2
+ import { isAbsolute, join } from "node:path";
3
+ /** Project skill trees used by Cursor, Claude, Codex, and similar hosts. */
4
+ export const SKILL_ROOTS = [
5
+ ".agents/skills",
6
+ ".cursor/skills",
7
+ ".codex/skills",
8
+ ".claude/skills",
9
+ ];
10
+ const SKILL_WORKFLOW_PATH_PATTERN = /(?:^|[/\\])(?:\.agents|\.cursor|\.codex|\.claude)[/\\]skills[/\\]([^/\\]+)[/\\](?:SKILL\.md|references[/\\])/i;
4
11
  const INTERNAL_SKILL_NAMES = new Set(["align-commands"]);
5
12
  const FRONTMATTER_PATTERN = /^---\r?\n([\s\S]*?)\r?\n---/;
13
+ /** Skill folder name from a host-agnostic SKILL.md or references path. */
14
+ export function skillNameFromWorkflowPath(path) {
15
+ const match = path.match(SKILL_WORKFLOW_PATH_PATTERN);
16
+ return match?.[1]?.toLowerCase();
17
+ }
6
18
  function parseFrontmatter(raw) {
7
19
  const match = FRONTMATTER_PATTERN.exec(raw);
8
20
  if (!match?.[1]) {
@@ -22,56 +34,110 @@ function parseFrontmatter(raw) {
22
34
  }
23
35
  return fields;
24
36
  }
37
+ export function normalizeRelSkillPath(raw) {
38
+ return raw.replace(/\\/g, "/").replace(/^\.\//, "").replace(/\/+$/, "").trim();
39
+ }
40
+ /** True for a repo-relative skill file or folder. Bare names are invalid. */
41
+ export function isRepoRelativeSkillPath(raw) {
42
+ const rel = normalizeRelSkillPath(raw);
43
+ if (!rel || isAbsolute(raw) || rel.startsWith("/")) {
44
+ return false;
45
+ }
46
+ if (rel.split("/").includes("..") || rel.split("/").includes(".")) {
47
+ return false;
48
+ }
49
+ return rel.includes("/");
50
+ }
51
+ /** SKILL.md path for a listed skill file or folder. */
52
+ export function skillManifestRelPath(raw) {
53
+ const rel = normalizeRelSkillPath(raw);
54
+ if (/\/skill\.md$/i.test(rel)) {
55
+ return rel.replace(/skill\.md$/i, "SKILL.md");
56
+ }
57
+ return `${rel}/SKILL.md`;
58
+ }
59
+ /** Folder copied into the sealed workspace for a listed skill path. */
60
+ export function skillOverlayRelPath(raw) {
61
+ const manifest = skillManifestRelPath(raw);
62
+ const slash = manifest.lastIndexOf("/");
63
+ return slash === -1 ? manifest : manifest.slice(0, slash);
64
+ }
65
+ function normalizePaths(paths) {
66
+ const include = (paths ?? []).map((item) => normalizeRelSkillPath(item)).filter(Boolean);
67
+ const invalid = include.filter((item) => !isRepoRelativeSkillPath(item));
68
+ if (invalid.length > 0) {
69
+ throw new Error(`skills must be repo-relative paths (for example [".agents/skills/skeleton/SKILL.md"]), got ${JSON.stringify(invalid)}`);
70
+ }
71
+ return include;
72
+ }
73
+ /** Skill paths this run may load. Empty when skills are off. */
74
+ export function skillPathsFromSetting(setting) {
75
+ return normalizeSkillContext(setting).include ?? [];
76
+ }
25
77
  function normalizeSkillContext(setting) {
26
- if (!setting) {
27
- return { mode: "none" };
78
+ if (!setting || setting === "none") {
79
+ return { mode: "none", include: [] };
80
+ }
81
+ if (Array.isArray(setting)) {
82
+ const include = normalizePaths(setting);
83
+ return { mode: include.length > 0 ? "catalog" : "none", include };
28
84
  }
29
85
  if (typeof setting === "string") {
30
- return { mode: setting };
86
+ throw new Error(`skills "${setting}" is invalid — pass a list of skill paths (for example [".agents/skills/skeleton/SKILL.md"])`);
87
+ }
88
+ const options = setting;
89
+ const include = normalizePaths(options.include);
90
+ const mode = options.mode ?? (include.length > 0 ? "catalog" : "none");
91
+ if (mode !== "none" && include.length === 0) {
92
+ throw new Error("skills.include must list the skill paths for this run");
31
93
  }
32
- return setting;
94
+ return { mode: mode === "none" ? "none" : mode, include };
33
95
  }
34
- async function discoverSkills(cwd) {
35
- const skillsDir = join(cwd, SKILLS_ROOT);
36
- let entries;
96
+ async function resolveSkillPath(cwd, raw) {
97
+ const relPath = skillManifestRelPath(raw);
98
+ const dir = skillOverlayRelPath(raw).split("/").pop() ?? relPath;
99
+ const absPath = join(cwd, relPath);
100
+ let rawText;
37
101
  try {
38
- entries = await readdir(skillsDir, { withFileTypes: true }).then((items) => items.filter((item) => item.isDirectory()).map((item) => item.name));
102
+ rawText = await readFile(absPath, "utf8");
39
103
  }
40
104
  catch {
41
- return [];
105
+ return undefined;
106
+ }
107
+ const frontmatter = parseFrontmatter(rawText);
108
+ const name = frontmatter.name ?? dir;
109
+ if (INTERNAL_SKILL_NAMES.has(name) || INTERNAL_SKILL_NAMES.has(dir)) {
110
+ return undefined;
42
111
  }
112
+ return {
113
+ name,
114
+ dir,
115
+ relPath,
116
+ description: frontmatter.description ?? "",
117
+ disableModelInvocation: frontmatter["disable-model-invocation"] === "true",
118
+ };
119
+ }
120
+ async function resolveSkillPaths(cwd, include) {
43
121
  const skills = [];
44
- for (const dir of entries.sort()) {
45
- const relPath = `${SKILLS_ROOT}/${dir}/SKILL.md`;
46
- const absPath = join(cwd, relPath);
47
- let raw;
48
- try {
49
- raw = await readFile(absPath, "utf8");
50
- }
51
- catch {
122
+ const seen = new Set();
123
+ const missing = [];
124
+ for (const raw of include) {
125
+ const key = skillManifestRelPath(raw).toLowerCase();
126
+ if (seen.has(key)) {
52
127
  continue;
53
128
  }
54
- const frontmatter = parseFrontmatter(raw);
55
- const name = frontmatter.name ?? dir;
56
- if (INTERNAL_SKILL_NAMES.has(name) || INTERNAL_SKILL_NAMES.has(dir)) {
129
+ const skill = await resolveSkillPath(cwd, raw);
130
+ if (!skill) {
131
+ missing.push(raw);
57
132
  continue;
58
133
  }
59
- skills.push({
60
- name,
61
- dir,
62
- relPath,
63
- description: frontmatter.description ?? "",
64
- disableModelInvocation: frontmatter["disable-model-invocation"] === "true",
65
- });
134
+ seen.add(key);
135
+ skills.push(skill);
66
136
  }
67
- return skills;
68
- }
69
- function filterSkills(skills, include) {
70
- if (!include?.length) {
71
- return skills;
137
+ if (missing.length > 0) {
138
+ throw new Error(`skill not found: ${missing.join(", ")}`);
72
139
  }
73
- const wanted = new Set(include.map((name) => name.toLowerCase()));
74
- return skills.filter((skill) => wanted.has(skill.name.toLowerCase()) || wanted.has(skill.dir));
140
+ return skills;
75
141
  }
76
142
  function buildCatalogSection(skills) {
77
143
  const lines = [
@@ -93,13 +159,12 @@ export async function loadSkillContext(cwd, setting) {
93
159
  if (options.mode === "none") {
94
160
  return { mode: "none", sources: [], preamble: "", catalog: [] };
95
161
  }
96
- const allSkills = await discoverSkills(cwd);
97
- const skills = filterSkills(allSkills, options.include);
162
+ const skills = await resolveSkillPaths(cwd, options.include ?? []);
98
163
  const sources = [];
99
164
  const parts = [];
100
165
  if (options.mode === "catalog" || options.mode === "full") {
101
166
  parts.push(buildCatalogSection(skills));
102
- sources.push(`${SKILLS_ROOT}/catalog`);
167
+ sources.push("skills/catalog");
103
168
  }
104
169
  if (options.mode === "full") {
105
170
  for (const skill of skills) {
@@ -1 +1 @@
1
- {"version":3,"file":"skills-context.js","sourceRoot":"","sources":["../src/skills-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-context.js","sourceRoot":"","sources":["../src/skills-context.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,12 @@
1
- export type AgentHost = "cursor" | "claude";
1
+ export declare const AGENT_HOSTS: readonly ["cursor", "claude", "openai"];
2
+ export type BuiltinAgentHost = (typeof AGENT_HOSTS)[number];
3
+ /** Builtin host or a registered consumer slug. */
4
+ export type AgentHost = BuiltinAgentHost | (string & {});
5
+ export declare function isBuiltinAgentHost(value: string): value is BuiltinAgentHost;
6
+ /** Lowercase slug: starts with a letter, then letters, digits, or hyphens. */
7
+ export declare function isHostSlug(value: string): boolean;
8
+ /** True for a builtin host id. Registered slugs use `isKnownAgentHost`. */
9
+ export declare function isAgentHost(value: string): value is AgentHost;
2
10
  import type { McpServerConfig } from "./mcp.js";
3
11
  import type { RoutingContract } from "./routing-contract.js";
4
12
  import type { SkillContextMode } from "./skills-context.js";
@@ -65,6 +73,14 @@ export interface LoadedContext {
65
73
  /** Skill catalog / full SKILL.md loading mode when enabled. */
66
74
  skillsMode?: SkillContextMode;
67
75
  }
76
+ export type LiveAgentEvent = {
77
+ type: "tool";
78
+ name: string;
79
+ args?: Record<string, unknown>;
80
+ } | {
81
+ type: "text";
82
+ text: string;
83
+ };
68
84
  export interface RunAgentOptions {
69
85
  host: AgentHost;
70
86
  cwd: string;
@@ -78,8 +94,17 @@ export interface RunAgentOptions {
78
94
  timeoutMs?: number;
79
95
  /** Fail fast when the agent invokes AskQuestion-style tools (default true for live). */
80
96
  failOnUserInput?: boolean;
97
+ /** Max agent turns when failOnUserInput is false (default 6). */
98
+ maxConversationTurns?: number;
81
99
  /** Fires when the live harness deadline clock starts (after pre-stream SDK setup). */
82
100
  onDeadlineStart?: () => void | Promise<void>;
101
+ /** Fires as the host streams assistant text and tool calls. */
102
+ onAgentEvent?: (event: LiveAgentEvent) => void;
103
+ /**
104
+ * Load host-global user skills (`~/.cursor/skills`, `~/.claude/skills`,
105
+ * `~/.codex/skills`, `~/.agents/skills`). Default false.
106
+ */
107
+ allowUserSkills?: boolean;
83
108
  env?: Record<string, string>;
84
109
  }
85
110
  export type RunStatus = "completed" | "failed" | "skipped";
@@ -93,7 +118,24 @@ export interface AgentSession {
93
118
  error?: string;
94
119
  }
95
120
  export interface HostAdapter {
96
- readonly host: AgentHost;
121
+ readonly host: string;
97
122
  run(options: RunAgentOptions): Promise<AgentSession>;
123
+ /** Missing credential or binary. Undefined when this host can run. */
124
+ missingAuth?(): string | undefined;
125
+ /** Builtin judge family when this adapter does not implement `classify`. */
126
+ classifierHost?: BuiltinAgentHost;
127
+ /** Optional judge/classifier. Use this or `classifierHost`. */
128
+ classify?(options: {
129
+ cwd: string;
130
+ prompt: string;
131
+ apiKey?: string;
132
+ }): Promise<{
133
+ status: string;
134
+ text: string;
135
+ rawStatus?: string;
136
+ usage?: AgentUsage;
137
+ }>;
138
+ /** Missing classifier auth. Undefined when the judge can run. */
139
+ missingClassifierAuth?(): string | undefined;
98
140
  }
99
141
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,2 +1,14 @@
1
- export {};
1
+ export const AGENT_HOSTS = ["cursor", "claude", "openai"];
2
+ const HOST_SLUG = /^[a-z][a-z0-9-]{0,31}$/;
3
+ export function isBuiltinAgentHost(value) {
4
+ return AGENT_HOSTS.includes(value);
5
+ }
6
+ /** Lowercase slug: starts with a letter, then letters, digits, or hyphens. */
7
+ export function isHostSlug(value) {
8
+ return HOST_SLUG.test(value);
9
+ }
10
+ /** True for a builtin host id. Registered slugs use `isKnownAgentHost`. */
11
+ export function isAgentHost(value) {
12
+ return isBuiltinAgentHost(value);
13
+ }
2
14
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAKnE,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAE3C,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAQ,WAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { UserSimulator } from "./conversation.js";
2
+ import type { AgentHost } from "./types.js";
3
+ export interface JudgeUserSimulatorOptions {
4
+ cwd: string;
5
+ apiKey?: string;
6
+ host?: AgentHost;
7
+ }
8
+ /** Default user agent: a one-shot classifier that answers AskQuestion prompts. */
9
+ export declare function createJudgeUserSimulator(options: JudgeUserSimulatorOptions): UserSimulator;
10
+ //# sourceMappingURL=user-simulator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-simulator.d.ts","sourceRoot":"","sources":["../src/user-simulator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;CACjB;AAyBD,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAqB1F"}
@@ -0,0 +1,47 @@
1
+ import { missingClassifierAuth, runClassifier } from "./classifier.js";
2
+ import { formatTraceForJudge } from "./judge.js";
3
+ function formatQuestions(questions) {
4
+ return questions
5
+ .map((question, index) => {
6
+ const options = question.options?.length ? ` Options: ${question.options.join("; ")}` : "";
7
+ return `${index + 1}. ${question.prompt}${options}`;
8
+ })
9
+ .join("\n");
10
+ }
11
+ function buildUserPrompt(questions, transcript) {
12
+ return [
13
+ "You are the human user in a coding-agent test.",
14
+ "Answer the agent question so the task can continue.",
15
+ "Keep the answer short and concrete. Do not use tools.",
16
+ "",
17
+ "Questions:",
18
+ formatQuestions(questions),
19
+ "",
20
+ "Transcript:",
21
+ transcript,
22
+ ].join("\n");
23
+ }
24
+ /** Default user agent: a one-shot classifier that answers AskQuestion prompts. */
25
+ export function createJudgeUserSimulator(options) {
26
+ return {
27
+ async reply({ questions, trace }) {
28
+ const host = options.host ?? "cursor";
29
+ const missing = missingClassifierAuth(host, options.apiKey);
30
+ if (missing) {
31
+ throw new Error(`${missing} — required for the default user simulator`);
32
+ }
33
+ const result = await runClassifier({
34
+ host,
35
+ cwd: options.cwd,
36
+ prompt: buildUserPrompt(questions, formatTraceForJudge(trace)),
37
+ apiKey: options.apiKey,
38
+ });
39
+ const text = result.text.trim();
40
+ if (result.status !== "completed" || !text) {
41
+ throw new Error(result.sdkError?.message ?? "user simulator failed");
42
+ }
43
+ return text;
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=user-simulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-simulator.js","sourceRoot":"","sources":["../src/user-simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASjD,SAAS,eAAe,CAAC,SAAyB;IACjD,OAAO,SAAS;SACd,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,GAAG,KAAK,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;IACrD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,SAAyB,EAAE,UAAkB;IACrE,OAAO;QACN,gDAAgD;QAChD,qDAAqD;QACrD,uDAAuD;QACvD,EAAE;QACF,YAAY;QACZ,eAAe,CAAC,SAAS,CAAC;QAC1B,EAAE;QACF,aAAa;QACb,UAAU;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IAC1E,OAAO;QACN,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;YACtC,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4CAA4C,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;gBAClC,IAAI;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,uBAAuB,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** Cursor on-disk layers that can feed skills and settings. */
2
+ export type CursorSettingSource = "project" | "user" | "plugins";
3
+ /**
4
+ * Host-global user skills stay out unless the caller sets true.
5
+ * Scenario value wins over suite defaults. Omitted values are false.
6
+ */
7
+ export declare function resolveAllowUserSkills(scenarioValue?: boolean, defaultValue?: boolean): boolean;
8
+ /** Cursor SDK `local.settingSources`. Deny keeps project files only. */
9
+ export declare function cursorSettingSources(allowUserSkills: boolean): CursorSettingSource[];
10
+ /**
11
+ * Claude CLI isolation flags after `-p`.
12
+ * Deny + api-key keeps `--bare`. Deny + subscription loads project only.
13
+ */
14
+ export declare function claudeSessionFlags(authMode: "api-key" | "subscription", allowUserSkills: boolean): string[];
15
+ /** Codex `--ignore-user-config` when user skills stay out. */
16
+ export declare function openaiUserConfigArgs(allowUserSkills: boolean): string[];
17
+ //# sourceMappingURL=user-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-skills.d.ts","sourceRoot":"","sources":["../src/user-skills.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAK/F;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,OAAO,GAAG,mBAAmB,EAAE,CAEpF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,SAAS,GAAG,cAAc,EACpC,eAAe,EAAE,OAAO,GACtB,MAAM,EAAE,CAQV;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,EAAE,CAEvE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Host-global user skills stay out unless the caller sets true.
3
+ * Scenario value wins over suite defaults. Omitted values are false.
4
+ */
5
+ export function resolveAllowUserSkills(scenarioValue, defaultValue) {
6
+ if (scenarioValue !== undefined) {
7
+ return scenarioValue === true;
8
+ }
9
+ return defaultValue === true;
10
+ }
11
+ /** Cursor SDK `local.settingSources`. Deny keeps project files only. */
12
+ export function cursorSettingSources(allowUserSkills) {
13
+ return allowUserSkills ? ["project", "user"] : ["project"];
14
+ }
15
+ /**
16
+ * Claude CLI isolation flags after `-p`.
17
+ * Deny + api-key keeps `--bare`. Deny + subscription loads project only.
18
+ */
19
+ export function claudeSessionFlags(authMode, allowUserSkills) {
20
+ if (allowUserSkills) {
21
+ return ["--strict-mcp-config", "--setting-sources", "user,project"];
22
+ }
23
+ if (authMode === "api-key") {
24
+ return ["--bare"];
25
+ }
26
+ return ["--strict-mcp-config", "--setting-sources", "project"];
27
+ }
28
+ /** Codex `--ignore-user-config` when user skills stay out. */
29
+ export function openaiUserConfigArgs(allowUserSkills) {
30
+ return allowUserSkills ? [] : ["--ignore-user-config"];
31
+ }
32
+ //# sourceMappingURL=user-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-skills.js","sourceRoot":"","sources":["../src/user-skills.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAuB,EAAE,YAAsB;IACrF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,aAAa,KAAK,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,YAAY,KAAK,IAAI,CAAC;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,eAAwB;IAC5D,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CACjC,QAAoC,EACpC,eAAwB;IAExB,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,oBAAoB,CAAC,eAAwB;IAC5D,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACxD,CAAC"}
@@ -10,6 +10,11 @@ export declare function captureWorkingTreeStatus(repoRoot: string): Promise<stri
10
10
  export declare function findWorkingTreeLeak(before: string, after: string): string[];
11
11
  /** Extract the path portion from a git status --porcelain line. */
12
12
  export declare function porcelainPathFromStatusLine(line: string): string;
13
+ /**
14
+ * Resolve a path, then follow existing ancestors so `/var` and `/private/var`
15
+ * compare as the same workspace on macOS.
16
+ */
17
+ export declare function canonicalizePath(target: string): string;
13
18
  /** True when `target` is the same as or nested under `root`. */
14
19
  export declare function isPathUnderRoot(target: string, root: string): boolean;
15
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"working-tree-guard.d.ts","sourceRoot":"","sources":["../src/working-tree-guard.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,oFAAoF;AACpF,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAM3E;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAShE;AAoBD,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrE;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACvB,MAAM,EAAE,CASV;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,EAAE,MAAM,GACd,MAAM,EAAE,CAaV;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7D;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F"}
1
+ {"version":3,"file":"working-tree-guard.d.ts","sourceRoot":"","sources":["../src/working-tree-guard.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,oFAAoF;AACpF,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAM3E;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAShE;AAoBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrE;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACvB,MAAM,EAAE,CASV;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,EAAE,MAAM,GACd,MAAM,EAAE,CAaV;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7D;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F"}
@@ -1,5 +1,6 @@
1
1
  import { execFile } from "node:child_process";
2
- import { resolve, sep } from "node:path";
2
+ import { realpathSync } from "node:fs";
3
+ import { basename, dirname, join, resolve, sep } from "node:path";
3
4
  import { promisify } from "node:util";
4
5
  const execFileAsync = promisify(execFile);
5
6
  /**
@@ -51,10 +52,33 @@ function unquoteGitPath(token) {
51
52
  }
52
53
  return token;
53
54
  }
55
+ /**
56
+ * Resolve a path, then follow existing ancestors so `/var` and `/private/var`
57
+ * compare as the same workspace on macOS.
58
+ */
59
+ export function canonicalizePath(target) {
60
+ const abs = resolve(target);
61
+ const missing = [];
62
+ let current = abs;
63
+ for (;;) {
64
+ try {
65
+ const real = realpathSync(current);
66
+ return missing.length === 0 ? real : join(real, ...missing);
67
+ }
68
+ catch {
69
+ const parent = dirname(current);
70
+ if (parent === current) {
71
+ return abs;
72
+ }
73
+ missing.unshift(basename(current));
74
+ current = parent;
75
+ }
76
+ }
77
+ }
54
78
  /** True when `target` is the same as or nested under `root`. */
55
79
  export function isPathUnderRoot(target, root) {
56
- const absTarget = resolve(target);
57
- const absRoot = resolve(root);
80
+ const absTarget = canonicalizePath(target);
81
+ const absRoot = canonicalizePath(root);
58
82
  const prefix = absRoot.endsWith(sep) ? absRoot : `${absRoot}${sep}`;
59
83
  return absTarget === absRoot || absTarget.startsWith(prefix);
60
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"working-tree-guard.js","sourceRoot":"","sources":["../src/working-tree-guard.ts"],"names":[],"mappings":"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"}
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.4",
3
+ "version": "0.3.6",
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
  },