@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/doctor.js DELETED
@@ -1,272 +0,0 @@
1
- import { accessSync, constants } from "node:fs";
2
- import { createRequire } from "node:module";
3
- import { dirname, join } from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import { CLAUDE_AUTH_MODE_ENV, CURSOR_AUTH_MODE_ENV, CURSOR_SDK_LOGIN_HINT, DEFAULT_HOST_AUTH_MODE, getHealthStatus, getProcessAuthMode, getRegisteredAdapter, HEALTH_CHECK_PATH, hasCursorSdkAuthFile, isBuiltinAgentHost, OPENAI_AUTH_MODE_ENV, resolveClaudeAuthMode, resolveCursorAuthMode, resolveOpenaiAuthMode, } from "@post-print/agent-harness";
6
- function binOnPath(override, names) {
7
- if (override) {
8
- try {
9
- accessSync(override, constants.X_OK);
10
- return true;
11
- }
12
- catch {
13
- try {
14
- accessSync(override, constants.R_OK);
15
- return true;
16
- }
17
- catch {
18
- return false;
19
- }
20
- }
21
- }
22
- const pathEnv = process.env.PATH ?? "";
23
- const sep = process.platform === "win32" ? ";" : ":";
24
- for (const dir of pathEnv.split(sep)) {
25
- if (!dir) {
26
- continue;
27
- }
28
- for (const name of names) {
29
- try {
30
- accessSync(join(dir, name), constants.X_OK);
31
- return true;
32
- }
33
- catch {
34
- try {
35
- accessSync(join(dir, name), constants.R_OK);
36
- return true;
37
- }
38
- catch {
39
- // continue
40
- }
41
- }
42
- }
43
- }
44
- return false;
45
- }
46
- function claudeBinOnPath() {
47
- return binOnPath(process.env.CLAUDE_CODE_BIN?.trim(), process.platform === "win32" ? ["claude.exe", "claude.cmd", "claude"] : ["claude"]);
48
- }
49
- /** Local diagnostics for agent-test install and live-run readiness. */
50
- export function runDoctor(options) {
51
- const messages = [];
52
- const nodeMajor = Number(process.versions.node.split(".")[0] ?? 0);
53
- const nodeOk = nodeMajor >= 22;
54
- if (!nodeOk) {
55
- messages.push(`Node ${process.versions.node} is below the required >=22`);
56
- }
57
- else {
58
- messages.push(`Node ${process.versions.node}: OK`);
59
- }
60
- const cliPath = options?.cliPath ?? join(dirname(fileURLToPath(import.meta.url)), "cli.js");
61
- const cliCandidates = [cliPath];
62
- if (cliPath.endsWith(".js")) {
63
- cliCandidates.push(`${cliPath.slice(0, -3)}.ts`);
64
- }
65
- let cliPresent = false;
66
- let resolvedCli = cliPath;
67
- for (const candidate of cliCandidates) {
68
- try {
69
- accessSync(candidate, constants.R_OK);
70
- cliPresent = true;
71
- resolvedCli = candidate;
72
- break;
73
- }
74
- catch {
75
- // try next
76
- }
77
- }
78
- if (cliPresent) {
79
- messages.push(`CLI entry: ${resolvedCli}`);
80
- }
81
- else {
82
- messages.push(`CLI entry missing at ${cliPath} (run bun run build)`);
83
- }
84
- const require = createRequire(import.meta.url);
85
- try {
86
- require.resolve("@post-print/agent-harness");
87
- messages.push("@post-print/agent-harness: resolvable");
88
- }
89
- catch {
90
- messages.push("@post-print/agent-harness not resolvable");
91
- }
92
- let cursorSdkPresent = false;
93
- try {
94
- require.resolve("@cursor/sdk");
95
- cursorSdkPresent = true;
96
- messages.push("@cursor/sdk: installed (direct Cursor runs ready)");
97
- }
98
- catch {
99
- messages.push("@cursor/sdk not installed — required for Cursor runs (npm i -D @cursor/sdk)");
100
- }
101
- const cursorApiKeySet = Boolean(process.env.CURSOR_API_KEY?.trim());
102
- if (cursorApiKeySet) {
103
- messages.push("CURSOR_API_KEY: set");
104
- }
105
- else {
106
- messages.push("CURSOR_API_KEY unset (required for --auth-mode api-key)");
107
- }
108
- const cursorSdkAuthFilePresent = hasCursorSdkAuthFile();
109
- if (cursorSdkAuthFilePresent) {
110
- messages.push("Cursor SDK login file: present (~/.cursor/sdk/auth.json)");
111
- }
112
- else {
113
- messages.push(`Cursor SDK login file: missing (${CURSOR_SDK_LOGIN_HINT})`);
114
- }
115
- const cursorAuthMode = process.env[CURSOR_AUTH_MODE_ENV]?.trim();
116
- if (cursorAuthMode === "api-key" || cursorAuthMode === "subscription") {
117
- messages.push(`${CURSOR_AUTH_MODE_ENV}: ${cursorAuthMode}`);
118
- }
119
- else if (cursorAuthMode) {
120
- messages.push(`${CURSOR_AUTH_MODE_ENV}="${cursorAuthMode}" invalid (api-key or subscription)`);
121
- }
122
- else {
123
- const processMode = getProcessAuthMode();
124
- messages.push(processMode
125
- ? `auth mode: ${processMode} (--auth-mode)`
126
- : `auth mode: ${DEFAULT_HOST_AUTH_MODE} (default; pass --auth-mode api-key to use a key)`);
127
- }
128
- const anthropicApiKeySet = Boolean(process.env.ANTHROPIC_API_KEY?.trim());
129
- if (anthropicApiKeySet) {
130
- messages.push("ANTHROPIC_API_KEY: set");
131
- }
132
- else {
133
- messages.push("ANTHROPIC_API_KEY unset (required for CLAUDE_AUTH_MODE=api-key)");
134
- }
135
- const claudeAuthMode = process.env[CLAUDE_AUTH_MODE_ENV]?.trim();
136
- if (claudeAuthMode === "api-key" || claudeAuthMode === "subscription") {
137
- messages.push(`${CLAUDE_AUTH_MODE_ENV}: ${claudeAuthMode}`);
138
- }
139
- else if (claudeAuthMode) {
140
- messages.push(`${CLAUDE_AUTH_MODE_ENV}="${claudeAuthMode}" invalid (api-key or subscription)`);
141
- }
142
- else {
143
- const processMode = getProcessAuthMode();
144
- messages.push(processMode
145
- ? `auth mode: ${processMode} (--auth-mode)`
146
- : `auth mode: ${DEFAULT_HOST_AUTH_MODE} (default; pass --auth-mode api-key to use ANTHROPIC_API_KEY)`);
147
- }
148
- const claudeBinPresent = claudeBinOnPath();
149
- if (claudeBinPresent) {
150
- messages.push(process.env.CLAUDE_CODE_BIN?.trim()
151
- ? `Claude Code binary: ${process.env.CLAUDE_CODE_BIN.trim()}`
152
- : "Claude Code binary: claude (on PATH)");
153
- }
154
- else {
155
- messages.push("Claude Code binary not found (install Claude Code CLI or set CLAUDE_CODE_BIN for --host claude)");
156
- }
157
- const openaiApiKeySet = Boolean(process.env.OPENAI_API_KEY?.trim() || process.env.CODEX_API_KEY?.trim());
158
- if (openaiApiKeySet) {
159
- messages.push("OPENAI_API_KEY or CODEX_API_KEY: set");
160
- }
161
- else {
162
- messages.push("OPENAI_API_KEY and CODEX_API_KEY unset (required for OPENAI_AUTH_MODE=api-key)");
163
- }
164
- const openaiAuthMode = process.env[OPENAI_AUTH_MODE_ENV]?.trim();
165
- if (openaiAuthMode === "api-key" || openaiAuthMode === "subscription") {
166
- messages.push(`${OPENAI_AUTH_MODE_ENV}: ${openaiAuthMode}`);
167
- }
168
- else if (openaiAuthMode) {
169
- messages.push(`${OPENAI_AUTH_MODE_ENV}="${openaiAuthMode}" invalid (api-key or subscription)`);
170
- }
171
- else {
172
- const processMode = getProcessAuthMode();
173
- messages.push(processMode
174
- ? `auth mode: ${processMode} (--auth-mode)`
175
- : `auth mode: ${DEFAULT_HOST_AUTH_MODE} (default; pass --auth-mode api-key to use a Codex key)`);
176
- }
177
- const openaiBinPresent = binOnPath(process.env.CODEX_BIN?.trim(), process.platform === "win32" ? ["codex.exe", "codex.cmd", "codex"] : ["codex"]);
178
- if (openaiBinPresent) {
179
- messages.push(process.env.CODEX_BIN?.trim()
180
- ? `OpenAI Codex binary: ${process.env.CODEX_BIN.trim()}`
181
- : "OpenAI Codex binary: codex (on PATH)");
182
- }
183
- else {
184
- messages.push("OpenAI Codex binary not found (install Codex CLI or set CODEX_BIN for --host openai)");
185
- }
186
- const cursorLiveReady = missingAgentAuth("cursor") === undefined;
187
- const claudeLiveReady = missingAgentAuth("claude") === undefined;
188
- const openaiLiveReady = missingAgentAuth("openai") === undefined;
189
- const liveReady = cursorLiveReady || claudeLiveReady || openaiLiveReady;
190
- const health = getHealthStatus();
191
- const ok = nodeOk && cliPresent && health.ok;
192
- if (ok) {
193
- messages.push(`doctor ${HEALTH_CHECK_PATH}: package-ready`);
194
- }
195
- if (liveReady) {
196
- messages.push("doctor host: ready for at least one host");
197
- }
198
- else {
199
- messages.push("doctor host: not ready (no host credentials)");
200
- }
201
- return {
202
- ok,
203
- nodeMajor,
204
- nodeOk,
205
- cliPresent,
206
- cursorApiKeySet,
207
- cursorSdkAuthFilePresent,
208
- cursorSdkPresent,
209
- anthropicApiKeySet,
210
- claudeBinPresent,
211
- openaiApiKeySet,
212
- openaiBinPresent,
213
- liveReady,
214
- health: HEALTH_CHECK_PATH,
215
- messages,
216
- };
217
- }
218
- /** Missing credential or binary for a live host adapter. Undefined when that host can run. */
219
- export function missingAgentAuth(host) {
220
- if (!isBuiltinAgentHost(host)) {
221
- const adapter = getRegisteredAdapter(host);
222
- if (!adapter) {
223
- return `Unknown host "${host}". Register it with registerHostAdapter() or --adapter.`;
224
- }
225
- return adapter.missingAuth?.();
226
- }
227
- if (host === "claude") {
228
- try {
229
- const authMode = resolveClaudeAuthMode();
230
- if (authMode === "api-key" && !process.env.ANTHROPIC_API_KEY?.trim()) {
231
- return "--auth-mode api-key requires ANTHROPIC_API_KEY";
232
- }
233
- }
234
- catch (error) {
235
- return error instanceof Error ? error.message : String(error);
236
- }
237
- if (!claudeBinOnPath()) {
238
- return "Claude Code binary not found (install Claude Code CLI or set CLAUDE_CODE_BIN for --host claude)";
239
- }
240
- return undefined;
241
- }
242
- if (host === "openai") {
243
- try {
244
- resolveOpenaiAuthMode();
245
- }
246
- catch (error) {
247
- return error instanceof Error ? error.message : String(error);
248
- }
249
- if (!binOnPath(process.env.CODEX_BIN?.trim(), process.platform === "win32" ? ["codex.exe", "codex.cmd", "codex"] : ["codex"])) {
250
- return "OpenAI Codex binary not found (install Codex CLI or set CODEX_BIN for --host openai)";
251
- }
252
- return undefined;
253
- }
254
- try {
255
- const authMode = resolveCursorAuthMode();
256
- if (authMode === "subscription" && !hasCursorSdkAuthFile()) {
257
- return CURSOR_SDK_LOGIN_HINT;
258
- }
259
- }
260
- catch (error) {
261
- return error instanceof Error ? error.message : String(error);
262
- }
263
- const require = createRequire(import.meta.url);
264
- try {
265
- require.resolve("@cursor/sdk");
266
- }
267
- catch {
268
- return "@cursor/sdk not installed — required for Cursor runs (npm i -D @cursor/sdk)";
269
- }
270
- return undefined;
271
- }
272
- //# sourceMappingURL=doctor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/dist/expect.d.ts DELETED
@@ -1,59 +0,0 @@
1
- import { type AgentTrace, type SkillContextMode } from "@post-print/agent-harness";
2
- import type { AssertionFailure, ScenarioRubric } from "./types.js";
3
- export interface RubricAssertOptions {
4
- /** How skills were loaded for this run — affects mustInvokeSkill strictness. */
5
- skillsMode?: SkillContextMode;
6
- }
7
- export declare class TraceAssertion {
8
- private readonly trace;
9
- private failures;
10
- constructor(trace: AgentTrace, _options?: RubricAssertOptions);
11
- get ok(): boolean;
12
- get errors(): AssertionFailure[];
13
- private messageText;
14
- /** Assistant reply text only. Tool results, commands, and artifacts do not count. */
15
- private replyHaystack;
16
- private assertionHaystack;
17
- /** mustNot ignores tool results so a required Read of a source file does not fail. */
18
- private mustNotHaystack;
19
- private patternHaystack;
20
- private push;
21
- toHaveTier(tier: ScenarioRubric["tier"]): this;
22
- /** Hands-on chat: tier from structured routing or one-line announce in transcript. */
23
- toHaveHandsOnTier(tier: ScenarioRubric["tier"]): this;
24
- toHaveReviewDepth(depth: ScenarioRubric["reviewDepth"]): this;
25
- toHaveRunCommand(fragment: string): this;
26
- toHaveRunCommandSuccessfully(fragment: string): this;
27
- /** When set, every shell statement must match one allowlist fragment. */
28
- toHaveAllowedCommands(allowlist: string[] | undefined): this;
29
- /**
30
- * Assert a tool was called. Spec is a name substring, or `name:fragment`
31
- * where fragment must appear in JSON args or the tool result.
32
- */
33
- toHaveCalledTool(spec: string): this;
34
- toHaveCalledToolsInOrder(specs: string[]): this;
35
- toHaveNotCalledTool(spec: string): this;
36
- /** Substring must appear in Read-family args or a Shell/Bash path access. */
37
- toHaveReadPath(fragment: string): this;
38
- /**
39
- * Forbidden path fragment must not appear in a *successful* Read-family tool
40
- * call. Miss / ENOENT attempts do not fail — null-arm forage seals delete
41
- * answer keys, and agents often probe the path after seeing it in suite JSON.
42
- */
43
- toHaveNotReadPath(fragment: string): this;
44
- toIncludeRoutingBlock(): this;
45
- /** Hands-off PR: ## Routing must appear before the first tool call. */
46
- toHaveRoutingBlockBeforeTools(): this;
47
- /** Hands-on chat: tier announce must appear before the first tool call. */
48
- toHaveHandsOnTierBeforeTools(tier: ScenarioRubric["tier"]): this;
49
- toHaveInvokedSkill(skillName: string): this;
50
- private skillWasInvoked;
51
- /** Which full-mode fallback pattern matched (for mustNotInvokeSkill evidence). */
52
- private skillMatchHint;
53
- toHaveNotInvokedSkill(skillName: string): this;
54
- mustInclude(text: string): this;
55
- mustNotInclude(text: string): this;
56
- }
57
- export declare function expectTrace(trace: AgentTrace, options?: RubricAssertOptions): TraceAssertion;
58
- export declare function assertRubric(trace: AgentTrace, rubric: ScenarioRubric, options?: RubricAssertOptions): AssertionFailure[];
59
- //# sourceMappingURL=expect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,UAAU,EAMf,KAAK,gBAAgB,EACrB,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IACnC,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAqDD,qBAAa,cAAc;IAIzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHvB,OAAO,CAAC,QAAQ,CAA0B;IAE1C,YACkB,KAAK,EAAE,UAAU,EAClC,QAAQ,GAAE,mBAAwB,EAC/B;IAEJ,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAE/B;IAED,OAAO,CAAC,WAAW;IAInB,qFAAqF;IACrF,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;IAezB,sFAAsF;IACtF,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,IAAI;IAIZ,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAe7C;IAED,sFAAsF;IACtF,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAgBpD;IAED,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAe5D;IAED,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBvC;IAED,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAyBnD;IAED,yEAAyE;IACzE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAiB3D;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKnC;IAED,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAoB9C;IAED,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKtC;IAED,6EAA6E;IAC7E,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAYrC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CASxC;IAED,qBAAqB,IAAI,IAAI,CAe5B;IAED,uEAAuE;IACvE,6BAA6B,IAAI,IAAI,CASpC;IAED,2EAA2E;IAC3E,4BAA4B,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAY/D;IAED,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAW1C;IAED,OAAO,CAAC,eAAe;IASvB,kFAAkF;IAClF,OAAO,CAAC,cAAc;IAatB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU7C;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAW9B;IAED,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUjC;CACD;AAmKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAE5F;AAED,wBAAgB,YAAY,CAC3B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,gBAAgB,EAAE,CAkDpB"}