@post-print/agent-test 2.0.11 → 2.1.0

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 (37) hide show
  1. package/dist/sdk/cli.d.ts +10 -0
  2. package/dist/sdk/cli.d.ts.map +1 -1
  3. package/dist/sdk/cli.js +27 -2
  4. package/dist/sdk/cli.js.map +1 -1
  5. package/dist/sdk/stored-value.d.ts.map +1 -1
  6. package/dist/sdk/stored-value.js +11 -0
  7. package/dist/sdk/stored-value.js.map +1 -1
  8. package/dist/sdk/workspace.d.ts.map +1 -1
  9. package/dist/sdk/workspace.js +14 -1
  10. package/dist/sdk/workspace.js.map +1 -1
  11. package/dist/viewer/client-entry.js +21 -20
  12. package/dist/viewer/main.js +16 -4
  13. package/dist/viewer/main.js.map +1 -1
  14. package/dist/viewer/presentation.d.ts +20 -2
  15. package/dist/viewer/presentation.d.ts.map +1 -1
  16. package/dist/viewer/presentation.js +64 -2
  17. package/dist/viewer/presentation.js.map +1 -1
  18. package/dist/viewer/run-inbox.d.ts +7 -0
  19. package/dist/viewer/run-inbox.d.ts.map +1 -0
  20. package/dist/viewer/run-inbox.js +335 -0
  21. package/dist/viewer/run-inbox.js.map +1 -0
  22. package/dist/viewer/styles.d.ts.map +1 -1
  23. package/dist/viewer/styles.js +5 -0
  24. package/dist/viewer/styles.js.map +1 -1
  25. package/dist/viewer/stylex.css +230 -2
  26. package/dist/viewer/tool-images.d.ts +13 -0
  27. package/dist/viewer/tool-images.d.ts.map +1 -0
  28. package/dist/viewer/tool-images.js +77 -0
  29. package/dist/viewer/tool-images.js.map +1 -0
  30. package/dist/viewer/v2-client.d.ts.map +1 -1
  31. package/dist/viewer/v2-client.js +300 -172
  32. package/dist/viewer/v2-client.js.map +1 -1
  33. package/dist/viewer/viewer-queries.d.ts +26 -0
  34. package/dist/viewer/viewer-queries.d.ts.map +1 -0
  35. package/dist/viewer/viewer-queries.js +31 -0
  36. package/dist/viewer/viewer-queries.js.map +1 -0
  37. package/package.json +2 -2
package/dist/sdk/cli.d.ts CHANGED
@@ -1,3 +1,13 @@
1
1
  export { playwrightCli } from "./playwright-cli.js";
2
2
  export declare function runSdkCli(args: string[]): Promise<number>;
3
+ /**
4
+ * Closing lines after a recorded run. A terminal user gets the command; a non-interactive
5
+ * caller, usually a coding agent, is also told to ask before starting the viewer.
6
+ */
7
+ export declare function viewerHint(input: {
8
+ config: string;
9
+ executionId: string;
10
+ interactive: boolean;
11
+ ci: boolean;
12
+ }): string[];
3
13
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/sdk/cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAwCpD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAe/D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/sdk/cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAwCpD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;CACZ,GAAG,MAAM,EAAE,CAaX"}
package/dist/sdk/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- import { resolve } from "node:path";
1
+ import { relative, resolve } from "node:path";
2
2
  import { startRecordedExecution } from "./execution-runner.js";
3
3
  export { playwrightCli } from "./playwright-cli.js";
4
4
  function runnerArgument(args, index) {
@@ -46,10 +46,35 @@ export async function runSdkCli(args) {
46
46
  const cancel = () => execution.cancel();
47
47
  process.once("SIGINT", cancel);
48
48
  try {
49
- return await execution.completed;
49
+ const code = await execution.completed;
50
+ if (!passThrough.includes("--list"))
51
+ for (const line of viewerHint({
52
+ config,
53
+ executionId: execution.id,
54
+ interactive: process.stdout.isTTY === true,
55
+ ci: process.env.CI === "true",
56
+ }))
57
+ process.stdout.write(`${line}\n`);
58
+ return code;
50
59
  }
51
60
  finally {
52
61
  process.removeListener("SIGINT", cancel);
53
62
  }
54
63
  }
64
+ /**
65
+ * Closing lines after a recorded run. A terminal user gets the command; a non-interactive
66
+ * caller, usually a coding agent, is also told to ask before starting the viewer.
67
+ */
68
+ export function viewerHint(input) {
69
+ if (input.ci)
70
+ return [];
71
+ const configPath = relative(process.cwd(), input.config);
72
+ const command = configPath === "agent-test.config.ts"
73
+ ? "agent-test viewer"
74
+ : `agent-test viewer --config ${configPath}`;
75
+ const lines = [`View run ${input.executionId.slice(0, 8)}: ${command}`];
76
+ if (!input.interactive)
77
+ lines.push("Agent: ask the user whether to open the results viewer; start it only if they agree.");
78
+ return lines;
79
+ }
55
80
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/sdk/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/sdk/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stored-value.d.ts","sourceRoot":"","sources":["../../src/sdk/stored-value.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"stored-value.d.ts","sourceRoot":"","sources":["../../src/sdk/stored-value.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoB5C,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC"}
@@ -3,6 +3,15 @@ const PRIVATE_PATH = /\/(?:Users|home|private|tmp|var\/folders)\/[^\s"']+/g;
3
3
  function redactLocalPath(value) {
4
4
  return value.replace(PRIVATE_PATH, (path) => `<local-path>/${basename(path)}`);
5
5
  }
6
+ /** Base64 can contain `/tmp/`-like runs; path redaction would truncate the image. */
7
+ function isToolImage(value) {
8
+ const record = value;
9
+ return (typeof record.mediaType === "string" &&
10
+ record.mediaType.startsWith("image/") &&
11
+ typeof record.bytes === "number" &&
12
+ (record.data === undefined || typeof record.data === "string") &&
13
+ Object.keys(record).every((key) => key === "mediaType" || key === "bytes" || key === "data"));
14
+ }
6
15
  export function storedValue(value, key) {
7
16
  if (typeof value === "string")
8
17
  return key === "artifact" || key === "root" ? "<local-path>" : redactLocalPath(value);
@@ -10,6 +19,8 @@ export function storedValue(value, key) {
10
19
  return value.map((item) => storedValue(item, key));
11
20
  if (typeof value !== "object" || value === null)
12
21
  return value;
22
+ if (isToolImage(value))
23
+ return value;
13
24
  return Object.fromEntries(Object.entries(value).map(([entryKey, item]) => [
14
25
  entryKey,
15
26
  storedValue(item, entryKey),
@@ -1 +1 @@
1
- {"version":3,"file":"stored-value.js","sourceRoot":"","sources":["../../src/sdk/stored-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,YAAY,GAAG,sDAAsD,CAAC;AAE5E,SAAS,eAAe,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAY;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC5B,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1E,QAAQ;QACR,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;KAC3B,CAAC,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"stored-value.js","sourceRoot":"","sources":["../../src/sdk/stored-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,YAAY,GAAG,sDAAsD,CAAC;AAE5E,SAAS,eAAe,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,qFAAqF;AACrF,SAAS,WAAW,CAAC,KAAa;IACjC,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,CACN,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAChC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,CAC5F,CAAC;AACH,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAY;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC5B,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1E,QAAQ;QACR,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;KAC3B,CAAC,CACF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/sdk/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAmB,KAAK,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAE7F,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AACD,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AACD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AACD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5E;AACD,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,cAAiC,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAI1F;AACD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CActC;AACD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/D;AACD,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AACD,wBAAsB,YAAY,CACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAyB1B;AACD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAG5E;AACD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,iBAG3D"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/sdk/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAmB,KAAK,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAE7F,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AACD,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AACD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AACD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5E;AACD,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,cAAiC,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAI1F;AACD,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CActC;AACD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/D;AACD,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAgBD,wBAAsB,YAAY,CACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAyB1B;AACD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAG5E;AACD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,iBAG3D"}
@@ -58,6 +58,19 @@ export function callerCheckout(baseDir) {
58
58
  });
59
59
  });
60
60
  }
61
+ const UTF8 = new TextDecoder("utf-8", { fatal: true });
62
+ /** Starting context is inlined into a text prompt, so binary files fail instead of arriving garbled. */
63
+ async function readTextContextFile(baseDir, file) {
64
+ const bytes = await readFile(resolve(baseDir, file));
65
+ try {
66
+ if (bytes.includes(0))
67
+ throw new Error("binary");
68
+ return UTF8.decode(bytes);
69
+ }
70
+ catch {
71
+ throw new Error(`Context file ${file} is not UTF-8 text. Starting context is inlined into the prompt; put images and other binary files in the workspace and ask the agent to read them.`);
72
+ }
73
+ }
61
74
  export async function prepareAgent(agent, baseDir, workspace) {
62
75
  const context = {
63
76
  instructions: [...(agent.options.context?.instructions ?? [])],
@@ -66,7 +79,7 @@ export async function prepareAgent(agent, baseDir, workspace) {
66
79
  includeGlobalSkills: agent.options.includeGlobalSkills === true,
67
80
  };
68
81
  for (const file of agent.options.context?.files ?? [])
69
- context.files.push({ path: file, content: await readFile(resolve(baseDir, file), "utf8") });
82
+ context.files.push({ path: file, content: await readTextContextFile(baseDir, file) });
70
83
  for (const skill of agent.options.skills ?? []) {
71
84
  const source = resolve(baseDir, skill);
72
85
  await readFile(join(source, "SKILL.md"), "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/sdk/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/sdk/workspace.ts"],"names":[],"mappings":"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"}