pi-agent-browser-native 0.8.3 → 0.9.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 (48) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +12 -11
  3. package/dist/extensions/agent-browser/index.js +96 -320
  4. package/dist/extensions/agent-browser/lib/argv-descriptor.js +1 -1
  5. package/dist/extensions/agent-browser/lib/argv-grammar.js +3 -3
  6. package/dist/extensions/agent-browser/lib/browser-journal.js +33 -12
  7. package/dist/extensions/agent-browser/lib/browser-transcript.js +1 -1
  8. package/dist/extensions/agent-browser/lib/command-taxonomy.js +0 -3
  9. package/dist/extensions/agent-browser/lib/config-policy.js +0 -13
  10. package/dist/extensions/agent-browser/lib/config.js +3 -48
  11. package/dist/extensions/agent-browser/lib/electron/launch.js +4 -4
  12. package/dist/extensions/agent-browser/lib/execution-cwd.js +0 -16
  13. package/dist/extensions/agent-browser/lib/input-modes/params.js +2 -3
  14. package/dist/extensions/agent-browser/lib/input-modes/script.js +28 -6
  15. package/dist/extensions/agent-browser/lib/input-modes/types.js +2 -2
  16. package/dist/extensions/agent-browser/lib/managed-session-restore.js +1 -4
  17. package/dist/extensions/agent-browser/lib/native-output.js +46 -0
  18. package/dist/extensions/agent-browser/lib/orchestration/batch-stdin.js +0 -9
  19. package/dist/extensions/agent-browser/lib/orchestration/browser-run/artifact-merge.js +22 -0
  20. package/dist/extensions/agent-browser/lib/orchestration/browser-run/diagnostics.js +1 -1
  21. package/dist/extensions/agent-browser/lib/orchestration/browser-run/final-result.js +2 -2
  22. package/dist/extensions/agent-browser/lib/orchestration/browser-run/prepare.js +1 -1
  23. package/dist/extensions/agent-browser/lib/orchestration/execution-queue.js +86 -0
  24. package/dist/extensions/agent-browser/lib/pi-tool-rendering.js +31 -17
  25. package/dist/extensions/agent-browser/lib/process.js +0 -3
  26. package/dist/extensions/agent-browser/lib/prompt-policy.js +16 -12
  27. package/dist/extensions/agent-browser/lib/results/artifact-manifest.js +2 -2
  28. package/dist/extensions/agent-browser/lib/results/network-routes.js +1 -1
  29. package/dist/extensions/agent-browser/lib/results/network.js +1 -1
  30. package/dist/extensions/agent-browser/lib/results/presentation/batch.js +1 -1
  31. package/dist/extensions/agent-browser/lib/results/presentation/content.js +4 -0
  32. package/dist/extensions/agent-browser/lib/results/presentation/diagnostics.js +1 -1
  33. package/dist/extensions/agent-browser/lib/results/presentation/large-output.js +15 -8
  34. package/dist/extensions/agent-browser/lib/results/presentation/semantic-action.js +2 -2
  35. package/dist/extensions/agent-browser/lib/results/selector-recovery.js +1 -1
  36. package/dist/extensions/agent-browser/lib/runtime.js +4 -2
  37. package/dist/extensions/agent-browser/lib/session-page-state.js +1 -1
  38. package/dist/extensions/agent-browser/lib/tool-surface.js +39 -11
  39. package/dist/extensions/agent-browser/lib/web-search.js +100 -79
  40. package/docs/ARCHITECTURE.md +17 -19
  41. package/docs/COMMAND_REFERENCE.md +6 -2
  42. package/docs/RELEASE.md +26 -20
  43. package/docs/REQUIREMENTS.md +5 -5
  44. package/docs/SESSION_STORAGE.md +4 -4
  45. package/docs/SUPPORT_MATRIX.md +15 -13
  46. package/docs/TOOL_CONTRACT.md +12 -8
  47. package/package.json +6 -6
  48. package/scripts/doctor.mjs +12 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-agent-browser-native",
3
- "version": "0.8.3",
3
+ "version": "0.9.1",
4
4
  "description": "pi extension that exposes agent-browser as a native tool for browser automation",
5
5
  "type": "module",
6
6
  "author": "Mitch Fultz (https://github.com/fitchmultz)",
@@ -68,11 +68,11 @@
68
68
  "typebox": "*"
69
69
  },
70
70
  "devDependencies": {
71
- "@earendil-works/pi-ai": "0.99.2",
72
- "@earendil-works/pi-coding-agent": "0.99.2",
73
- "@earendil-works/pi-tui": "0.99.2",
71
+ "@earendil-works/pi-ai": "1.0.0",
72
+ "@earendil-works/pi-coding-agent": "1.0.0",
73
+ "@earendil-works/pi-tui": "1.0.0",
74
74
  "@types/cross-spawn": "6.0.6",
75
- "@types/node": "24.19.0",
75
+ "@types/node": "24.19.1",
76
76
  "@types/which": "2.0.2",
77
77
  "tsx": "4.23.15",
78
78
  "typebox": "1.3.27",
@@ -98,7 +98,7 @@
98
98
  "startup-profile": "node ./scripts/profile-startup.mjs",
99
99
  "prepare": "node ./scripts/prepare.mjs"
100
100
  },
101
- "packageManager": "npm@12.1.0",
101
+ "packageManager": "npm@12.2.0",
102
102
  "peerDependenciesMeta": {
103
103
  "@earendil-works/pi-ai": {
104
104
  "optional": true
@@ -26,7 +26,7 @@ const EXTENSION_ENTRYPOINTS = Object.freeze([
26
26
  "dist/extensions/agent-browser/index.js",
27
27
  ]);
28
28
  const RECOMMENDED_VERSION = TARGET_AGENT_BROWSER_VERSION;
29
- export const MINIMUM_PI_VERSION = "0.87.0";
29
+ export const MINIMUM_PI_VERSION = "1.0.0";
30
30
  const DEFAULT_AGENT_DIR = resolve(homedir(), ".pi/agent");
31
31
  const THIS_PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
32
32
 
@@ -44,7 +44,7 @@ function parseVersionParts(version) {
44
44
  return match.slice(1).map((part) => Number.parseInt(part, 10));
45
45
  }
46
46
 
47
- function versionAtLeast(actual, minimum) {
47
+ export function versionAtLeast(actual, minimum) {
48
48
  const actualParts = parseVersionParts(actual);
49
49
  const minimumParts = parseVersionParts(minimum);
50
50
  if (!actualParts || !minimumParts) return undefined;
@@ -124,15 +124,23 @@ export function parseCliArgs(argv = process.argv.slice(2)) {
124
124
  }
125
125
 
126
126
  async function defaultRunAgentBrowser(args) {
127
- const { stdout, stderr } = await execFile("agent-browser", args, { maxBuffer: 1024 * 1024 });
127
+ const { stdout, stderr } = await execFile("agent-browser", args, { maxBuffer: 1024 * 1024, ...buildNpmShimExecOptions(process.platform) });
128
128
  return `${stdout}${stderr}`;
129
129
  }
130
130
 
131
131
  async function defaultRunPi(args) {
132
- const { stdout, stderr } = await execFile("pi", args, { maxBuffer: 1024 * 1024 });
132
+ const { stdout, stderr } = await execFile("pi", args, { maxBuffer: 1024 * 1024, ...buildNpmShimExecOptions(process.platform) });
133
133
  return `${stdout}${stderr}`;
134
134
  }
135
135
 
136
+ /**
137
+ * npm's global bin shims on Windows are `.cmd` files that `execFile` cannot launch without a
138
+ * shell. Doctor only passes fixed flag arrays here, so shell composition stays safe.
139
+ */
140
+ export function buildNpmShimExecOptions(platform = process.platform) {
141
+ return platform === "win32" ? { shell: true } : {};
142
+ }
143
+
136
144
  async function defaultPathExists(path) {
137
145
  try {
138
146
  await access(path);