pi-forge 1.4.5 → 1.4.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 (46) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeMirrorEditor-BjMj50k4.js → CodeMirrorEditor-Bh9qbZER.js} +2 -2
  3. package/dist/client/assets/{CodeMirrorEditor-BjMj50k4.js.map → CodeMirrorEditor-Bh9qbZER.js.map} +1 -1
  4. package/dist/client/assets/{index-B6JMmroY.js → index-2HJdevJu.js} +10 -10
  5. package/dist/client/assets/index-2HJdevJu.js.map +1 -0
  6. package/dist/client/assets/index-CRmysLou.css +1 -0
  7. package/dist/client/index.html +2 -2
  8. package/dist/client/sw.js +1 -1
  9. package/dist/client/sw.js.map +1 -1
  10. package/dist/server/agent-tool-overrides.js +13 -3
  11. package/dist/server/agent-tool-overrides.js.map +1 -1
  12. package/dist/server/auth.js +19 -1
  13. package/dist/server/auth.js.map +1 -1
  14. package/dist/server/cli.js +49 -1
  15. package/dist/server/cli.js.map +1 -1
  16. package/dist/server/config.js +38 -1
  17. package/dist/server/config.js.map +1 -1
  18. package/dist/server/file-manager.js +54 -51
  19. package/dist/server/file-manager.js.map +1 -1
  20. package/dist/server/git-clone.js +30 -8
  21. package/dist/server/git-clone.js.map +1 -1
  22. package/dist/server/git-runner.js +7 -1
  23. package/dist/server/git-runner.js.map +1 -1
  24. package/dist/server/index.js +43 -3
  25. package/dist/server/index.js.map +1 -1
  26. package/dist/server/logo-cache.js +174 -0
  27. package/dist/server/logo-cache.js.map +1 -0
  28. package/dist/server/mcp/config.js +31 -2
  29. package/dist/server/mcp/config.js.map +1 -1
  30. package/dist/server/mcp/manager.js +3 -2
  31. package/dist/server/mcp/manager.js.map +1 -1
  32. package/dist/server/mcp/tool-bridge.js +20 -3
  33. package/dist/server/mcp/tool-bridge.js.map +1 -1
  34. package/dist/server/project-manager.js +9 -0
  35. package/dist/server/project-manager.js.map +1 -1
  36. package/dist/server/routes/health.js +16 -1
  37. package/dist/server/routes/health.js.map +1 -1
  38. package/dist/server/routes/mcp.js +45 -11
  39. package/dist/server/routes/mcp.js.map +1 -1
  40. package/dist/server/sandbox-permissions.js +90 -0
  41. package/dist/server/sandbox-permissions.js.map +1 -0
  42. package/dist/server/sandbox-startup-permissions.js +11 -14
  43. package/dist/server/sandbox-startup-permissions.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/client/assets/index-B6JMmroY.js.map +0 -1
  46. package/dist/client/assets/index-DLafQw4G.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-permissions.js","sourceRoot":"","sources":["../src/sandbox-permissions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { lchown, lstat, readdir } from "node:fs/promises";
1
+ import { lstat, readdir } from "node:fs/promises";
2
2
  import { relative, resolve, sep } from "node:path";
3
3
  import { config } from "./config.js";
4
+ import { applySandboxPathHandoff, sandboxHandoffDescription } from "./sandbox-permissions.js";
4
5
  const PI_CONFIG_RESOURCE_DIRS = ["skills", "npm", "git", "extensions", "prompts", "themes"];
5
6
  function isSameOrInside(parent, candidate) {
6
7
  const rel = relative(parent, candidate);
@@ -22,33 +23,29 @@ function assertAllowedSandboxChownPath(path) {
22
23
  throw new Error(`sandbox startup chown path ${abs} is outside allowed roots. ` +
23
24
  `Allowed roots: ${describeAllowedSandboxChownPaths()}`);
24
25
  }
25
- async function chownRecursiveNoFollow(path, uid, gid) {
26
+ async function chownRecursiveNoFollow(path) {
26
27
  const st = await lstat(path);
27
28
  if (st.isDirectory()) {
28
29
  const entries = await readdir(path);
29
30
  for (const entry of entries) {
30
- await chownRecursiveNoFollow(resolve(path, entry), uid, gid);
31
+ await chownRecursiveNoFollow(resolve(path, entry));
31
32
  }
32
33
  }
33
- if (st.uid === uid && st.gid === gid)
34
- return;
35
- await lchown(path, uid, gid);
34
+ await applySandboxPathHandoff(path);
36
35
  }
37
36
  export async function applySandboxStartupChowns() {
38
- const paths = config.agentToolSandbox.chownPaths;
39
- if (paths.length === 0)
40
- return;
41
37
  if (!config.agentToolSandbox.enabled) {
42
- console.warn("[sandbox-startup] AGENT_TOOL_SANDBOX_CHOWN_PATHS is set but sandbox mode is disabled; skipping chown");
38
+ if (config.agentToolSandbox.chownPaths.length > 0) {
39
+ console.warn("[sandbox-startup] AGENT_TOOL_SANDBOX_CHOWN_PATHS is set but sandbox mode is disabled; skipping chown");
40
+ }
43
41
  return;
44
42
  }
45
- const uid = config.agentToolSandbox.uid;
46
- const gid = config.agentToolSandbox.gid;
43
+ const paths = [...new Set([config.workspacePath, ...config.agentToolSandbox.chownPaths])];
47
44
  for (const path of paths) {
48
45
  const abs = resolve(path);
49
46
  assertAllowedSandboxChownPath(abs);
50
- await chownRecursiveNoFollow(abs, uid, gid);
51
- console.log(`[sandbox-startup] chowned ${abs} to ${uid}:${gid}`);
47
+ await chownRecursiveNoFollow(abs);
48
+ console.log(`[sandbox-startup] prepared ${abs} for sandbox handoff ${sandboxHandoffDescription()}`);
52
49
  }
53
50
  }
54
51
  export const sandboxStartupPermissionsInternals = Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-startup-permissions.js","sourceRoot":"","sources":["../src/sandbox-startup-permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-startup-permissions.js","sourceRoot":"","sources":["../src/sandbox-startup-permissions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-forge",
3
- "version": "1.4.5",
3
+ "version": "1.4.6",
4
4
  "description": "Browser UI for the pi coding agent — embedded HTTP server with a React workbench (chat, file browser, terminal, git, MCP).",
5
5
  "keywords": [
6
6
  "pi",