@post-print/agent-test 1.1.9 → 2.0.1

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 (300) hide show
  1. package/README.md +18 -66
  2. package/dist/cli.d.ts +2 -64
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +26 -691
  5. package/dist/cli.js.map +1 -1
  6. package/dist/host-login.d.ts +1 -26
  7. package/dist/host-login.d.ts.map +1 -1
  8. package/dist/host-login.js +1 -92
  9. package/dist/host-login.js.map +1 -1
  10. package/dist/index.d.ts +6 -28
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -26
  13. package/dist/index.js.map +1 -1
  14. package/dist/sdk/cli.d.ts +3 -0
  15. package/dist/sdk/cli.d.ts.map +1 -0
  16. package/dist/sdk/cli.js +55 -0
  17. package/dist/sdk/cli.js.map +1 -0
  18. package/dist/sdk/definitions.d.ts +22 -0
  19. package/dist/sdk/definitions.d.ts.map +1 -0
  20. package/dist/sdk/definitions.js +58 -0
  21. package/dist/sdk/definitions.js.map +1 -0
  22. package/dist/sdk/execution-reporter.d.ts +18 -0
  23. package/dist/sdk/execution-reporter.d.ts.map +1 -0
  24. package/dist/sdk/execution-reporter.js +171 -0
  25. package/dist/sdk/execution-reporter.js.map +1 -0
  26. package/dist/sdk/execution-runner.d.ts +14 -0
  27. package/dist/sdk/execution-runner.d.ts.map +1 -0
  28. package/dist/sdk/execution-runner.js +80 -0
  29. package/dist/sdk/execution-runner.js.map +1 -0
  30. package/dist/sdk/execution-store.d.ts +92 -0
  31. package/dist/sdk/execution-store.d.ts.map +1 -0
  32. package/dist/sdk/execution-store.js +357 -0
  33. package/dist/sdk/execution-store.js.map +1 -0
  34. package/dist/sdk/expect.d.ts +31 -0
  35. package/dist/sdk/expect.d.ts.map +1 -0
  36. package/dist/sdk/expect.js +96 -0
  37. package/dist/sdk/expect.js.map +1 -0
  38. package/dist/sdk/judge.d.ts +16 -0
  39. package/dist/sdk/judge.d.ts.map +1 -0
  40. package/dist/sdk/judge.js +82 -0
  41. package/dist/sdk/judge.js.map +1 -0
  42. package/dist/sdk/metrics.d.ts +3 -0
  43. package/dist/sdk/metrics.d.ts.map +1 -0
  44. package/dist/sdk/metrics.js +24 -0
  45. package/dist/sdk/metrics.js.map +1 -0
  46. package/dist/sdk/playwright-cli.d.ts +2 -0
  47. package/dist/sdk/playwright-cli.d.ts.map +1 -0
  48. package/dist/sdk/playwright-cli.js +6 -0
  49. package/dist/sdk/playwright-cli.js.map +1 -0
  50. package/dist/sdk/reporter.d.ts +12 -0
  51. package/dist/sdk/reporter.d.ts.map +1 -0
  52. package/dist/sdk/reporter.js +98 -0
  53. package/dist/sdk/reporter.js.map +1 -0
  54. package/dist/sdk/runtime.d.ts +33 -0
  55. package/dist/sdk/runtime.d.ts.map +1 -0
  56. package/dist/sdk/runtime.js +197 -0
  57. package/dist/sdk/runtime.js.map +1 -0
  58. package/dist/sdk/test.d.ts +36 -0
  59. package/dist/sdk/test.d.ts.map +1 -0
  60. package/dist/sdk/test.js +133 -0
  61. package/dist/sdk/test.js.map +1 -0
  62. package/dist/sdk/types.d.ts +76 -0
  63. package/dist/sdk/types.d.ts.map +1 -0
  64. package/dist/sdk/types.js.map +1 -0
  65. package/dist/sdk/usage.d.ts +10 -0
  66. package/dist/sdk/usage.d.ts.map +1 -0
  67. package/dist/sdk/usage.js +13 -0
  68. package/dist/sdk/usage.js.map +1 -0
  69. package/dist/sdk/viewer.d.ts +5 -0
  70. package/dist/sdk/viewer.d.ts.map +1 -0
  71. package/dist/sdk/viewer.js +74 -0
  72. package/dist/sdk/viewer.js.map +1 -0
  73. package/dist/sdk/workspace.d.ts +33 -0
  74. package/dist/sdk/workspace.d.ts.map +1 -0
  75. package/dist/sdk/workspace.js +100 -0
  76. package/dist/sdk/workspace.js.map +1 -0
  77. package/dist/viewer/bootstrap.d.ts +10 -0
  78. package/dist/viewer/bootstrap.d.ts.map +1 -0
  79. package/dist/viewer/bootstrap.js +2 -0
  80. package/dist/viewer/bootstrap.js.map +1 -0
  81. package/dist/viewer/client-entry.d.ts +2 -0
  82. package/dist/viewer/client-entry.d.ts.map +1 -0
  83. package/dist/viewer/client-entry.js +31 -0
  84. package/dist/viewer/client-entry.js.map +1 -0
  85. package/dist/viewer/generated-api.d.ts +15 -0
  86. package/dist/viewer/generated-api.d.ts.map +1 -0
  87. package/dist/viewer/generated-api.js +42 -0
  88. package/dist/viewer/generated-api.js.map +1 -0
  89. package/dist/viewer/generated-contracts.d.ts +13 -0
  90. package/dist/viewer/generated-contracts.d.ts.map +1 -0
  91. package/dist/viewer/generated-contracts.js +12 -0
  92. package/dist/viewer/generated-contracts.js.map +1 -0
  93. package/dist/viewer/main.js +64 -3
  94. package/dist/viewer/main.js.map +1 -1
  95. package/dist/viewer/page.d.ts +2 -4
  96. package/dist/viewer/page.d.ts.map +1 -1
  97. package/dist/viewer/page.js +18 -194
  98. package/dist/viewer/page.js.map +1 -1
  99. package/dist/viewer/presentation.d.ts +8 -0
  100. package/dist/viewer/presentation.d.ts.map +1 -0
  101. package/dist/viewer/presentation.js +45 -0
  102. package/dist/viewer/presentation.js.map +1 -0
  103. package/dist/viewer/protocol.d.ts +21 -0
  104. package/dist/viewer/protocol.d.ts.map +1 -0
  105. package/dist/viewer/protocol.js +6 -0
  106. package/dist/viewer/protocol.js.map +1 -0
  107. package/dist/viewer/server.d.ts +7 -11
  108. package/dist/viewer/server.d.ts.map +1 -1
  109. package/dist/viewer/server.js +314 -175
  110. package/dist/viewer/server.js.map +1 -1
  111. package/dist/viewer/styles.d.ts +2 -0
  112. package/dist/viewer/styles.d.ts.map +1 -0
  113. package/dist/viewer/styles.js +97 -0
  114. package/dist/viewer/styles.js.map +1 -0
  115. package/dist/viewer/stylex.css +1322 -0
  116. package/dist/viewer/test-catalog.d.ts +43 -0
  117. package/dist/viewer/test-catalog.d.ts.map +1 -0
  118. package/dist/viewer/test-catalog.js +27 -0
  119. package/dist/viewer/test-catalog.js.map +1 -0
  120. package/dist/viewer/v2-client.d.ts +7 -0
  121. package/dist/viewer/v2-client.d.ts.map +1 -0
  122. package/dist/viewer/v2-client.js +1862 -0
  123. package/dist/viewer/v2-client.js.map +1 -0
  124. package/package.json +19 -9
  125. package/dist/check.d.ts +0 -38
  126. package/dist/check.d.ts.map +0 -1
  127. package/dist/check.js +0 -169
  128. package/dist/check.js.map +0 -1
  129. package/dist/command-allowlist.d.ts +0 -9
  130. package/dist/command-allowlist.d.ts.map +0 -1
  131. package/dist/command-allowlist.js +0 -29
  132. package/dist/command-allowlist.js.map +0 -1
  133. package/dist/compare-scenario.d.ts +0 -65
  134. package/dist/compare-scenario.d.ts.map +0 -1
  135. package/dist/compare-scenario.js +0 -328
  136. package/dist/compare-scenario.js.map +0 -1
  137. package/dist/debug-bundle.d.ts +0 -81
  138. package/dist/debug-bundle.d.ts.map +0 -1
  139. package/dist/debug-bundle.js +0 -392
  140. package/dist/debug-bundle.js.map +0 -1
  141. package/dist/discover-suites.d.ts +0 -2
  142. package/dist/discover-suites.d.ts.map +0 -1
  143. package/dist/discover-suites.js +0 -19
  144. package/dist/discover-suites.js.map +0 -1
  145. package/dist/doctor.d.ts +0 -24
  146. package/dist/doctor.d.ts.map +0 -1
  147. package/dist/doctor.js +0 -272
  148. package/dist/doctor.js.map +0 -1
  149. package/dist/expect.d.ts +0 -59
  150. package/dist/expect.d.ts.map +0 -1
  151. package/dist/expect.js +0 -518
  152. package/dist/expect.js.map +0 -1
  153. package/dist/failures.d.ts +0 -4
  154. package/dist/failures.d.ts.map +0 -1
  155. package/dist/failures.js +0 -7
  156. package/dist/failures.js.map +0 -1
  157. package/dist/host-log.d.ts +0 -17
  158. package/dist/host-log.d.ts.map +0 -1
  159. package/dist/host-log.js +0 -154
  160. package/dist/host-log.js.map +0 -1
  161. package/dist/hosts.d.ts +0 -22
  162. package/dist/hosts.d.ts.map +0 -1
  163. package/dist/hosts.js +0 -84
  164. package/dist/hosts.js.map +0 -1
  165. package/dist/html-report.d.ts +0 -18
  166. package/dist/html-report.d.ts.map +0 -1
  167. package/dist/html-report.js +0 -1276
  168. package/dist/html-report.js.map +0 -1
  169. package/dist/live-isolation.d.ts +0 -82
  170. package/dist/live-isolation.d.ts.map +0 -1
  171. package/dist/live-isolation.js +0 -399
  172. package/dist/live-isolation.js.map +0 -1
  173. package/dist/live-timeout.d.ts +0 -11
  174. package/dist/live-timeout.d.ts.map +0 -1
  175. package/dist/live-timeout.js +0 -29
  176. package/dist/live-timeout.js.map +0 -1
  177. package/dist/load-adapters.d.ts +0 -13
  178. package/dist/load-adapters.d.ts.map +0 -1
  179. package/dist/load-adapters.js +0 -76
  180. package/dist/load-adapters.js.map +0 -1
  181. package/dist/load-suite.d.ts +0 -22
  182. package/dist/load-suite.d.ts.map +0 -1
  183. package/dist/load-suite.js +0 -154
  184. package/dist/load-suite.js.map +0 -1
  185. package/dist/mcp-config.d.ts +0 -13
  186. package/dist/mcp-config.d.ts.map +0 -1
  187. package/dist/mcp-config.js +0 -121
  188. package/dist/mcp-config.js.map +0 -1
  189. package/dist/preflight.d.ts +0 -3
  190. package/dist/preflight.d.ts.map +0 -1
  191. package/dist/preflight.js +0 -17
  192. package/dist/preflight.js.map +0 -1
  193. package/dist/progress.d.ts +0 -24
  194. package/dist/progress.d.ts.map +0 -1
  195. package/dist/progress.js +0 -111
  196. package/dist/progress.js.map +0 -1
  197. package/dist/record-trace.d.ts +0 -64
  198. package/dist/record-trace.d.ts.map +0 -1
  199. package/dist/record-trace.js +0 -124
  200. package/dist/record-trace.js.map +0 -1
  201. package/dist/report-preview-server.d.ts +0 -2
  202. package/dist/report-preview-server.d.ts.map +0 -1
  203. package/dist/report-preview-server.js +0 -24
  204. package/dist/report-preview-server.js.map +0 -1
  205. package/dist/report-preview.d.ts +0 -35
  206. package/dist/report-preview.d.ts.map +0 -1
  207. package/dist/report-preview.js +0 -205
  208. package/dist/report-preview.js.map +0 -1
  209. package/dist/run-suite.d.ts +0 -139
  210. package/dist/run-suite.d.ts.map +0 -1
  211. package/dist/run-suite.js +0 -1688
  212. package/dist/run-suite.js.map +0 -1
  213. package/dist/scenario-finalizer.d.ts +0 -27
  214. package/dist/scenario-finalizer.d.ts.map +0 -1
  215. package/dist/scenario-finalizer.js +0 -39
  216. package/dist/scenario-finalizer.js.map +0 -1
  217. package/dist/scenario-retry.d.ts +0 -15
  218. package/dist/scenario-retry.d.ts.map +0 -1
  219. package/dist/scenario-retry.js +0 -52
  220. package/dist/scenario-retry.js.map +0 -1
  221. package/dist/scenario-seed.d.ts +0 -13
  222. package/dist/scenario-seed.d.ts.map +0 -1
  223. package/dist/scenario-seed.js +0 -72
  224. package/dist/scenario-seed.js.map +0 -1
  225. package/dist/scenario-story.d.ts +0 -41
  226. package/dist/scenario-story.d.ts.map +0 -1
  227. package/dist/scenario-story.js +0 -459
  228. package/dist/scenario-story.js.map +0 -1
  229. package/dist/scenario-usage.d.ts +0 -15
  230. package/dist/scenario-usage.d.ts.map +0 -1
  231. package/dist/scenario-usage.js +0 -18
  232. package/dist/scenario-usage.js.map +0 -1
  233. package/dist/suite-summary.d.ts +0 -16
  234. package/dist/suite-summary.d.ts.map +0 -1
  235. package/dist/suite-summary.js +0 -218
  236. package/dist/suite-summary.js.map +0 -1
  237. package/dist/theme.d.ts +0 -96
  238. package/dist/theme.d.ts.map +0 -1
  239. package/dist/theme.js +0 -446
  240. package/dist/theme.js.map +0 -1
  241. package/dist/types.d.ts +0 -364
  242. package/dist/types.d.ts.map +0 -1
  243. package/dist/types.js.map +0 -1
  244. package/dist/validate-seeds.d.ts +0 -20
  245. package/dist/validate-seeds.d.ts.map +0 -1
  246. package/dist/validate-seeds.js +0 -72
  247. package/dist/validate-seeds.js.map +0 -1
  248. package/dist/validate-suite.d.ts +0 -24
  249. package/dist/validate-suite.d.ts.map +0 -1
  250. package/dist/validate-suite.js +0 -542
  251. package/dist/validate-suite.js.map +0 -1
  252. package/dist/viewer/catalog.d.ts +0 -72
  253. package/dist/viewer/catalog.d.ts.map +0 -1
  254. package/dist/viewer/catalog.js +0 -154
  255. package/dist/viewer/catalog.js.map +0 -1
  256. package/dist/viewer/cli.d.ts +0 -17
  257. package/dist/viewer/cli.d.ts.map +0 -1
  258. package/dist/viewer/cli.js +0 -38
  259. package/dist/viewer/cli.js.map +0 -1
  260. package/dist/viewer/client.d.ts +0 -7
  261. package/dist/viewer/client.d.ts.map +0 -1
  262. package/dist/viewer/client.js +0 -14
  263. package/dist/viewer/client.js.map +0 -1
  264. package/dist/viewer/compare-metrics.d.ts +0 -30
  265. package/dist/viewer/compare-metrics.d.ts.map +0 -1
  266. package/dist/viewer/compare-metrics.js +0 -101
  267. package/dist/viewer/compare-metrics.js.map +0 -1
  268. package/dist/viewer/context-files.d.ts +0 -8
  269. package/dist/viewer/context-files.d.ts.map +0 -1
  270. package/dist/viewer/context-files.js +0 -57
  271. package/dist/viewer/context-files.js.map +0 -1
  272. package/dist/viewer/emit.d.ts +0 -7
  273. package/dist/viewer/emit.d.ts.map +0 -1
  274. package/dist/viewer/emit.js +0 -25
  275. package/dist/viewer/emit.js.map +0 -1
  276. package/dist/viewer/events.d.ts +0 -118
  277. package/dist/viewer/events.d.ts.map +0 -1
  278. package/dist/viewer/events.js +0 -51
  279. package/dist/viewer/events.js.map +0 -1
  280. package/dist/viewer/live-runner.d.ts +0 -27
  281. package/dist/viewer/live-runner.d.ts.map +0 -1
  282. package/dist/viewer/live-runner.js +0 -166
  283. package/dist/viewer/live-runner.js.map +0 -1
  284. package/dist/viewer/run-controller.d.ts +0 -41
  285. package/dist/viewer/run-controller.d.ts.map +0 -1
  286. package/dist/viewer/run-controller.js +0 -426
  287. package/dist/viewer/run-controller.js.map +0 -1
  288. package/dist/viewer/session-server.d.ts +0 -2
  289. package/dist/viewer/session-server.d.ts.map +0 -1
  290. package/dist/viewer/session-server.js +0 -71
  291. package/dist/viewer/session-server.js.map +0 -1
  292. package/dist/warnings.d.ts +0 -3
  293. package/dist/warnings.d.ts.map +0 -1
  294. package/dist/warnings.js +0 -13
  295. package/dist/warnings.js.map +0 -1
  296. package/dist/worker-pool.d.ts +0 -8
  297. package/dist/worker-pool.d.ts.map +0 -1
  298. package/dist/worker-pool.js +0 -26
  299. package/dist/worker-pool.js.map +0 -1
  300. /package/dist/{types.js → sdk/types.js} +0 -0
package/dist/types.d.ts DELETED
@@ -1,364 +0,0 @@
1
- import type { AgentHost, AgentTrace, AgentUsage, ContextMode, ContextProfile, McpServerConfig, ScenarioUsageBreakdown, SkillContextSetting } from "@post-print/agent-harness";
2
- export type { AgentUsage, ContextMode, McpServerConfig, ScenarioUsageBreakdown, } from "@post-print/agent-harness";
3
- export type JudgeRubricItem = string | {
4
- id?: string;
5
- question: string;
6
- };
7
- /** Why the runner put a file in the host preamble. */
8
- export type ScenarioContextReason = "contextSources" | "profile" | "skills";
9
- /** One preamble file the host received for a run. */
10
- export interface ScenarioContextFile {
11
- path: string;
12
- text: string;
13
- reason: ScenarioContextReason;
14
- why: string;
15
- }
16
- export interface ScenarioRubric {
17
- tier?: "low" | "medium" | "high";
18
- /** Chat-style tier announce — infer one-line routing from transcript when routing.tier absent. */
19
- handsOnRouting?: boolean;
20
- /** Substring that must appear in assistant reply text. */
21
- must?: string[];
22
- /** Substring that must not appear in assistant text, commands, artifacts, or tool args. Tool results are ignored. */
23
- mustNot?: string[];
24
- mustRun?: string[];
25
- /** Shell command substring that must be observed with a successful structured execution result. */
26
- mustRunSuccessfully?: string[];
27
- /**
28
- * When set, every shell statement must include one listed fragment.
29
- * Combined commands split on `&&`, `||`, `;`, `|`, and newlines.
30
- * An empty list forbids every shell command.
31
- */
32
- allowedCommands?: string[];
33
- /**
34
- * Tool name substring, or `name:fragment` where fragment must appear in
35
- * JSON args or the tool result. Matches built-in and MCP tool calls.
36
- */
37
- mustCallTool?: string[];
38
- /** Required tool calls in chronological order. Extra calls are permitted. */
39
- mustCallToolsInOrder?: string[];
40
- mustNotCallTool?: string[];
41
- /**
42
- * Substring that must appear in Read-family args or a Shell/Bash path access.
43
- * Hallucination scoring stays in live `judge` questions — these are lightweight proxies.
44
- */
45
- mustReadPath?: string[];
46
- /** Substring that must not appear in any Read tool's JSON args. */
47
- mustNotReadPath?: string[];
48
- /**
49
- * Skill folder names. Deterministic match is a SKILL.md / references read
50
- * on a host skill path. Live judge then scores whether the agent followed it.
51
- */
52
- mustInvokeSkill?: string[];
53
- mustNotInvokeSkill?: string[];
54
- routingBlock?: boolean;
55
- reviewDepth?: "quick" | "standard" | "thorough" | "full";
56
- /** Any transcript outcome. The judge sees assistant text, tool args, and tool results. */
57
- judge?: JudgeRubricItem[];
58
- }
59
- /** Arm id. Two-arm form uses `a` and `b`. Named arms use a lowercase slug. */
60
- export type CompareArmId = string;
61
- /** Named winner-versus-loser pair for a metric gate. */
62
- export type CompareMetric = "outcome" | "turns" | "tokens" | "tools" | "durationMs" | `judge:${string}`;
63
- export type CompareGateOperator = "equal" | "lessThan" | "atMost" | "atLeast" | "greaterThan";
64
- export type CompareGate = {
65
- metric: CompareMetric;
66
- winner: CompareArmId;
67
- loser: CompareArmId;
68
- } | {
69
- metric: CompareMetric;
70
- arm: CompareArmId;
71
- operator: CompareGateOperator;
72
- value: number | "pass" | "fail";
73
- };
74
- export interface CompareJudgeMetric {
75
- id: string;
76
- question: string;
77
- }
78
- export interface CompareGateResult {
79
- gate: CompareGate;
80
- passed: boolean;
81
- left?: number | "pass" | "fail";
82
- right?: number | "pass" | "fail";
83
- message: string;
84
- }
85
- /** Overrides for one side of a compare scenario. Omitted fields inherit the scenario. */
86
- export interface CompareArm {
87
- /** Required on `compare.arms`. Implicit `a` / `b` in the two-arm form. */
88
- id?: CompareArmId;
89
- /** Display name. Omitted labels are control (a), experimental (b), or the arm id. */
90
- label?: string;
91
- /** Required. Says what this arm tests. */
92
- description?: string;
93
- prompt?: string;
94
- host?: AgentHost;
95
- /** How workspace instructions reach the host. */
96
- contextMode?: ContextMode;
97
- profile?: ContextProfile;
98
- workspace?: string;
99
- skills?: SkillContextSetting;
100
- contextSources?: string[];
101
- mcpServers?: Record<string, McpServerConfig>;
102
- allowUserSkills?: boolean;
103
- seedPatch?: string;
104
- seedStageOnly?: boolean;
105
- /**
106
- * Extra deterministic checks for this arm only.
107
- * Arrays append onto the scenario rubric. Do not set judge here.
108
- */
109
- rubric?: ScenarioRubric;
110
- }
111
- /**
112
- * Two or more live arms in one scenario.
113
- * Keep `a` and `b` for the two-arm form. Use `arms` when the scenario has more than two workspaces.
114
- * `gates` are optional outcome and measurement requirements.
115
- * `rubric.judge` is optional and scores every arm transcript.
116
- */
117
- export interface ScenarioCompare {
118
- a?: CompareArm;
119
- b?: CompareArm;
120
- /** Named arms. Each row needs `id`, `description`, and a workspace override when the trees differ. */
121
- arms?: CompareArm[];
122
- /** Questions that the judge scores once for each arm. */
123
- judgeMetrics?: CompareJudgeMetric[];
124
- /** Independent conditions that decide an experiment. */
125
- gates?: CompareGate[];
126
- }
127
- export interface CompareArmResult {
128
- id: CompareArmId;
129
- label: string;
130
- prompt: string;
131
- /** Plain-language note for this arm. */
132
- description?: string;
133
- trace?: AgentTrace;
134
- durationMs?: number;
135
- passed?: boolean;
136
- failures?: AssertionFailure[];
137
- judgeVerdicts?: JudgeVerdictResult[];
138
- /** Whether this arm used host discovery or a runner-built preamble. */
139
- contextMode?: ContextMode;
140
- /** Preamble files this arm sent to the host. */
141
- contextFiles?: ScenarioContextFile[];
142
- /** Exact initial user input submitted through a builtin host adapter. */
143
- hostInput?: string;
144
- /** Internal parent-owned judge workspace handoff. */
145
- judgeWorkspace?: {
146
- name: string;
147
- path: string;
148
- cleanup: () => Promise<void>;
149
- };
150
- }
151
- export interface ScenarioCompareResult {
152
- /** Every arm in author order. */
153
- arms: CompareArmResult[];
154
- /** Present when an arm id is `a`. */
155
- a?: CompareArmResult;
156
- /** Present when an arm id is `b`. */
157
- b?: CompareArmResult;
158
- gates?: CompareGate[];
159
- gateResults?: CompareGateResult[];
160
- }
161
- export interface AgentScenario {
162
- name: string;
163
- /** Plain-language note. Says what this scenario tests. */
164
- description?: string;
165
- /** Run two or more arms. Optional metric gates and an optional shared judge. */
166
- compare?: ScenarioCompare;
167
- prompt: string;
168
- host?: AgentHost;
169
- /** Default `harness-preamble` preserves agent-test 1.0 behavior. */
170
- contextMode?: ContextMode;
171
- profile?: ContextProfile;
172
- /** Extra skill folders to overlay. Project skills in the git repo load without this. */
173
- skills?: SkillContextSetting;
174
- /** Additive context paths (merged after suite defaults.contextSources). */
175
- contextSources?: string[];
176
- /** Inline MCP servers for live Cursor (merged over suite defaults by server name). */
177
- mcpServers?: Record<string, McpServerConfig>;
178
- /**
179
- * Caller-relative folder that becomes the sealed repo.
180
- * Omit or `"."` copies caller HEAD. A subfolder copies only that tree.
181
- */
182
- workspace?: string;
183
- /**
184
- * Load host-global user skills from the developer machine.
185
- * Default false. Keep false for a custom `workspace` fixture.
186
- */
187
- allowUserSkills?: boolean;
188
- /** OpenAI only: allow network access in the Codex workspace-write sandbox. Default false. */
189
- networkAccess?: boolean;
190
- /** Live-only: apply patch + commit in worktree so pr-mode branch diff exists. */
191
- seedPatch?: string;
192
- /** Live-only: with seedPatch, stage changes without committing (staged review mode). */
193
- seedStageOnly?: boolean;
194
- /**
195
- * Assertions / judge criteria. May be omitted in scenarios.json when supplied via
196
- * sibling `rubrics.json` / `scenarios.rubric.json` or `--rubrics-dir` (harness-only);
197
- * `loadSuiteFile` always normalizes to an object.
198
- */
199
- rubric: ScenarioRubric;
200
- skip?: boolean;
201
- }
202
- export interface AgentSuiteDefaults {
203
- host?: AgentHost;
204
- /** Default context delivery for scenarios in this suite. */
205
- contextMode?: ContextMode;
206
- profile?: ContextProfile;
207
- /** Extra skill folders to overlay, or `"none"`. */
208
- skills?: SkillContextSetting;
209
- /** Additive repo-relative context paths or `.skeleton/customize/` basenames. */
210
- contextSources?: string[];
211
- /** Inline MCP servers for direct agent runs. */
212
- mcpServers?: Record<string, McpServerConfig>;
213
- /**
214
- * Caller-relative folder that becomes the sealed repo.
215
- * Scenario `workspace` wins when both are set.
216
- */
217
- workspace?: string;
218
- /**
219
- * Load host-global user skills from the developer machine.
220
- * Default false. Scenario `allowUserSkills` wins when both are set.
221
- */
222
- allowUserSkills?: boolean;
223
- }
224
- export interface AgentSuiteFile {
225
- name: string;
226
- description?: string;
227
- /**
228
- * Host matrix for this suite (Playwright-style projects).
229
- * When set, a run expands once per host. `--host` then filters the list.
230
- */
231
- hosts?: AgentHost[];
232
- defaults?: AgentSuiteDefaults;
233
- scenarios: AgentScenario[];
234
- }
235
- export interface AssertionFailure {
236
- matcher: string;
237
- message: string;
238
- /** Normalized failure class for console, bundles, and CI consumers. */
239
- category: FailureCategory;
240
- /** Optional diagnostic detail (printed in --debug). */
241
- evidence?: string;
242
- }
243
- export type FailureCategory = "rubric_miss" | "judge_infra" | "judge_parse" | "agent_runtime" | "worktree_leak" | "recording_error";
244
- export interface JudgeVerdictResult {
245
- id: string;
246
- question: string;
247
- pass: boolean;
248
- rationale: string;
249
- evidence?: string[];
250
- /** Exact prompt sent to the judge classifier. */
251
- prompt?: string;
252
- /** Exact text returned by the judge classifier. */
253
- response?: string;
254
- infraError?: string;
255
- parseError?: string;
256
- rawSdkStatus?: string;
257
- sdkError?: {
258
- message?: string;
259
- code?: string;
260
- };
261
- attempt?: number;
262
- transcriptChars?: number;
263
- promptChars?: number;
264
- workspaceEvidence?: string[];
265
- usage?: AgentUsage;
266
- }
267
- export type StoryCheckStatus = "pass" | "fail" | "info";
268
- /** One scored rubric or metric line. */
269
- export interface StoryCheck {
270
- text: string;
271
- status: StoryCheckStatus;
272
- }
273
- /** One verdict block. Compare runs use one section per arm. */
274
- export interface StorySection {
275
- title?: string;
276
- description?: string;
277
- checks: StoryCheck[];
278
- /** Trace summary and observational notes. */
279
- notes?: string[];
280
- }
281
- /** CLI and HTML summary of rubric checks and what the run produced. */
282
- export interface ScenarioStory {
283
- criteria: string[];
284
- result: string[];
285
- /** Failures and judge notes. Shown under Result. */
286
- verdict: string[];
287
- /** Scored checks grouped by arm. Theme and HTML prefer this when set. */
288
- sections?: StorySection[];
289
- }
290
- export interface ScenarioResult {
291
- suite: string;
292
- scenario: string;
293
- passed: boolean;
294
- failures: AssertionFailure[];
295
- skipped?: boolean;
296
- durationMs: number;
297
- /** Total live attempts including announce-stop retries (omit or 1 when no retry). */
298
- attempts?: number;
299
- /** LLM judge verdicts when judge criteria were evaluated. */
300
- judgeVerdicts?: JudgeVerdictResult[];
301
- /** Agent + judge + total token usage when reported. */
302
- usage?: ScenarioUsageBreakdown;
303
- /** Denormalized agent-run usage. */
304
- agentUsage?: AgentUsage;
305
- /** Denormalized judge usage (sum of criteria). */
306
- judgeUsage?: AgentUsage;
307
- /** Scenario prompt sent to the host (for HTML conversation). */
308
- prompt?: string;
309
- /** Whether workspace instructions used host discovery or a runner-built preamble. */
310
- contextMode?: ContextMode;
311
- /** Preamble files this run sent to the host. */
312
- contextFiles?: ScenarioContextFile[];
313
- /** Exact initial user input submitted through a builtin host adapter. */
314
- hostInput?: string;
315
- /** Plain-language note. Says what this scenario tests. */
316
- description?: string;
317
- /** Full agent transcript when available (for HTML reports / debug bundles). */
318
- trace?: AgentTrace;
319
- /** Compare arms when this scenario is a compare run. */
320
- compare?: ScenarioCompareResult;
321
- /** Plain-language summary of the check, the agent run, and the verdict. */
322
- story?: ScenarioStory;
323
- /** Absolute path to the debug bundle directory when --debug wrote one. */
324
- debugBundleDir?: string;
325
- /** Internal handoff for parent-owned compare judging; omitted from reports. */
326
- judgeWorkspace?: {
327
- name: string;
328
- path: string;
329
- cleanup: () => Promise<void>;
330
- };
331
- }
332
- /** Aggregate token usage across scenarios that reported it. */
333
- export interface UsageStats {
334
- scenariosWithUsage: number;
335
- sumTotalTokens?: number;
336
- p50TotalTokens?: number;
337
- p95TotalTokens?: number;
338
- maxTotalTokens?: number;
339
- sumInputTokens?: number;
340
- sumOutputTokens?: number;
341
- }
342
- export interface RunSummary {
343
- infraFailures: number;
344
- rubricFailures: number;
345
- agentRuntimeFailures: number;
346
- worktreeLeaks: number;
347
- recordingErrors: number;
348
- judgeParseFailures: number;
349
- /** Scenarios where the LLM judge used more than one attempt. */
350
- retriedScenarios: number;
351
- /** Scenarios where announce-stop scenario retry re-ran the agent. */
352
- scenarioRetriedScenarios: number;
353
- usage?: UsageStats;
354
- }
355
- export interface SuiteRunReport {
356
- suite: string;
357
- host: AgentHost;
358
- passed: number;
359
- failed: number;
360
- skipped: number;
361
- results: ScenarioResult[];
362
- summary?: RunSummary;
363
- }
364
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- export interface SeedValidationIssue {
2
- suite: string;
3
- scenario: string;
4
- seedPatch: string;
5
- message: string;
6
- }
7
- export interface SeedValidationReport {
8
- ok: boolean;
9
- issues: SeedValidationIssue[];
10
- checked: number;
11
- }
12
- /** Apply each seedPatch in a sealed workspace to verify hunks match the current baseline. */
13
- export declare function validateSeedPatches(options: {
14
- cwd: string;
15
- suitesDir: string;
16
- rubricsDir?: string;
17
- filter?: string;
18
- }): Promise<SeedValidationReport>;
19
- export declare function formatSeedValidationReport(report: SeedValidationReport): string;
20
- //# sourceMappingURL=validate-seeds.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-seeds.d.ts","sourceRoot":"","sources":["../src/validate-seeds.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,6FAA6F;AAC7F,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsChC;AA6BD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQ/E"}
@@ -1,72 +0,0 @@
1
- import { resolve } from "node:path";
2
- import { createSealedWorkspace, defaultSealedOverlayPaths, isCallerHeadWorkspace, } from "@post-print/agent-harness";
3
- import { discoverSuites } from "./discover-suites.js";
4
- import { loadSuiteFile } from "./load-suite.js";
5
- import { seedScenarioWorktree } from "./scenario-seed.js";
6
- import { resolveScenarioWorkspaceRel } from "./validate-suite.js";
7
- /** Apply each seedPatch in a sealed workspace to verify hunks match the current baseline. */
8
- export async function validateSeedPatches(options) {
9
- const suitesDir = resolve(options.cwd, options.suitesDir);
10
- const suitePaths = await discoverSuites(suitesDir);
11
- const filtered = options.filter
12
- ? suitePaths.filter((path) => path.includes(`/${options.filter}/`) ||
13
- path.endsWith(`/${options.filter}/scenarios.json`))
14
- : suitePaths;
15
- const issues = [];
16
- let checked = 0;
17
- for (const suitePath of filtered) {
18
- const suite = await loadSuiteFile(suitePath, { rubricsDir: options.rubricsDir });
19
- for (const scenario of suite.scenarios) {
20
- if (!scenario.seedPatch) {
21
- continue;
22
- }
23
- checked++;
24
- try {
25
- await validateOneSeed(options.cwd, scenario.seedPatch, {
26
- stageOnly: scenario.seedStageOnly,
27
- workspace: resolveScenarioWorkspaceRel(suite, scenario),
28
- });
29
- }
30
- catch (error) {
31
- issues.push({
32
- suite: suite.name,
33
- scenario: scenario.name,
34
- seedPatch: scenario.seedPatch,
35
- message: error instanceof Error ? error.message : String(error),
36
- });
37
- }
38
- }
39
- }
40
- return { ok: issues.length === 0, issues, checked };
41
- }
42
- async function validateOneSeed(repoRoot, seedPatch, options) {
43
- let cleanup;
44
- let applyPath;
45
- try {
46
- const sealed = await createSealedWorkspace({
47
- callerCwd: repoRoot,
48
- workspace: options.workspace,
49
- overlayPaths: isCallerHeadWorkspace(options.workspace)
50
- ? defaultSealedOverlayPaths()
51
- : undefined,
52
- });
53
- cleanup = sealed.cleanup;
54
- applyPath = sealed.path;
55
- await seedScenarioWorktree(repoRoot, applyPath, seedPatch, {
56
- stageOnly: options.stageOnly,
57
- });
58
- }
59
- finally {
60
- if (cleanup) {
61
- await cleanup().catch(() => undefined);
62
- }
63
- }
64
- }
65
- export function formatSeedValidationReport(report) {
66
- if (report.ok) {
67
- return `Validated ${report.checked} seed patch(es): OK`;
68
- }
69
- const lines = report.issues.map((issue) => ` - ${issue.suite}/${issue.scenario} (${issue.seedPatch}): ${issue.message}`);
70
- return [`Seed validation failed (${report.issues.length} issue(s)):`, ...lines].join("\n");
71
- }
72
- //# sourceMappingURL=validate-seeds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-seeds.js","sourceRoot":"","sources":["../src/validate-seeds.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { AgentScenario, AgentSuiteFile } from "./types.js";
2
- export interface SuiteValidationIssue {
3
- suitePath: string;
4
- scenario?: string;
5
- field: string;
6
- message: string;
7
- }
8
- export interface SuiteValidationReport {
9
- ok: boolean;
10
- issues: SuiteValidationIssue[];
11
- suitesChecked: number;
12
- scenariosChecked: number;
13
- }
14
- /** Semantic validation beyond structural loadSuiteFile checks. */
15
- export declare function validateSuiteFile(suitePath: string, suite: AgentSuiteFile): SuiteValidationIssue[];
16
- export declare function validateSuitePaths(suitePaths: string[], options?: {
17
- validatePaths?: boolean;
18
- repoRoot?: string;
19
- rubricsDir?: string;
20
- }): Promise<SuiteValidationReport>;
21
- export declare function formatValidationReport(report: SuiteValidationReport): string;
22
- /** Scenario workspace wins over suite defaults. Caller HEAD when omit or `"."`. */
23
- export declare function resolveScenarioWorkspaceRel(suite: Pick<AgentSuiteFile, "defaults">, scenario: Pick<AgentScenario, "workspace">): string | undefined;
24
- //# sourceMappingURL=validate-suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-suite.d.ts","sourceRoot":"","sources":["../src/validate-suite.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EAKd,MAAM,YAAY,CAAC;AAiEpB,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAspBD,kEAAkE;AAClE,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,cAAc,GACnB,oBAAoB,EAAE,CAsCxB;AAED,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3E,OAAO,CAAC,qBAAqB,CAAC,CAyHhC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAY5E;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EACvC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACxC,MAAM,GAAG,SAAS,CAIpB"}