pi-forge 1.3.7 → 1.4.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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeMirrorEditor-BklpCqAo.js → CodeMirrorEditor-UkZexOVi.js} +2 -2
  3. package/dist/client/assets/{CodeMirrorEditor-BklpCqAo.js.map → CodeMirrorEditor-UkZexOVi.js.map} +1 -1
  4. package/dist/client/assets/index-BIo72Bz6.css +1 -0
  5. package/dist/client/assets/{index-EU82nCUh.js → index-BnOWCOqe.js} +13 -13
  6. package/dist/client/assets/index-BnOWCOqe.js.map +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-bash-operations.js +49 -0
  11. package/dist/server/agent-bash-operations.js.map +1 -0
  12. package/dist/server/agent-tool-overrides.js +98 -0
  13. package/dist/server/agent-tool-overrides.js.map +1 -0
  14. package/dist/server/agent-tool-policy.js +104 -0
  15. package/dist/server/agent-tool-policy.js.map +1 -0
  16. package/dist/server/cli.js +46 -1
  17. package/dist/server/cli.js.map +1 -1
  18. package/dist/server/config.js +31 -2
  19. package/dist/server/config.js.map +1 -1
  20. package/dist/server/extensions-discovery.js +7 -0
  21. package/dist/server/extensions-discovery.js.map +1 -1
  22. package/dist/server/file-references.js +11 -5
  23. package/dist/server/file-references.js.map +1 -1
  24. package/dist/server/git-clone.js +17 -2
  25. package/dist/server/git-clone.js.map +1 -1
  26. package/dist/server/git-runner.js +58 -3
  27. package/dist/server/git-runner.js.map +1 -1
  28. package/dist/server/mcp/manager.js +20 -0
  29. package/dist/server/mcp/manager.js.map +1 -1
  30. package/dist/server/mcp/tool-bridge.js +36 -5
  31. package/dist/server/mcp/tool-bridge.js.map +1 -1
  32. package/dist/server/processes/manager.js +2 -0
  33. package/dist/server/processes/manager.js.map +1 -1
  34. package/dist/server/processes/tool.js +4 -1
  35. package/dist/server/processes/tool.js.map +1 -1
  36. package/dist/server/pty-manager.js +4 -0
  37. package/dist/server/pty-manager.js.map +1 -1
  38. package/dist/server/routes/exec.js +2 -56
  39. package/dist/server/routes/exec.js.map +1 -1
  40. package/dist/server/routes/git.js +38 -4
  41. package/dist/server/routes/git.js.map +1 -1
  42. package/dist/server/routes/projects.js +3 -1
  43. package/dist/server/routes/projects.js.map +1 -1
  44. package/dist/server/routes/quick-actions.js +2 -0
  45. package/dist/server/routes/quick-actions.js.map +1 -1
  46. package/dist/server/session-registry.js +48 -13
  47. package/dist/server/session-registry.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/client/assets/index-CfPBiBJW.css +0 -1
  50. package/dist/client/assets/index-EU82nCUh.js.map +0 -1
@@ -26,8 +26,8 @@
26
26
  <link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192.png" />
27
27
  <link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512.png" />
28
28
  <title>pi-forge</title>
29
- <script type="module" crossorigin src="/assets/index-EU82nCUh.js"></script>
30
- <link rel="stylesheet" crossorigin href="/assets/index-CfPBiBJW.css">
29
+ <script type="module" crossorigin src="/assets/index-BnOWCOqe.js"></script>
30
+ <link rel="stylesheet" crossorigin href="/assets/index-BIo72Bz6.css">
31
31
  <link rel="manifest" href="/manifest.webmanifest"></head>
32
32
  <body class="bg-neutral-950 text-neutral-100 antialiased">
33
33
  <div id="root"></div>
package/dist/client/sw.js CHANGED
@@ -1,3 +1,3 @@
1
- if(!self.define){let e,i={};const n=(n,s)=>(n=new URL(n+".js",s).href,i[n]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=i,document.head.appendChild(e)}else e=n,importScripts(n),i()}).then(()=>{let e=i[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(s,o)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(i[c])return;let r={};const l=e=>n(e,c),f={module:{uri:c},exports:r,require:l};i[c]=Promise.all(s.map(e=>f[e]||l(e))).then(e=>(o(...e),r))}}define(["./workbox-6d7155ed"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"offline.html",revision:"e4f087b40040ff045a6fd572b5fed726"},{url:"manifest.webmanifest",revision:"aef9cb4935c3fba2754da10580256c9e"},{url:"index.html",revision:"11a3c2f3e0b742413804405e176afa16"},{url:"icons/icon.svg",revision:"549b462207e763a57c9dfbae214afc31"},{url:"icons/icon-maskable-512.png",revision:"734c73b2ee3cc3856c67bed196e7557f"},{url:"icons/icon-512.png",revision:"c1b37dbf870c852577dbb4733f45c9c2"},{url:"icons/icon-192.png",revision:"54082a8d4e49f4e5c2ad5646b7fb7551"},{url:"assets/workbox-window.prod.es5-Bd17z0YL.js",revision:null},{url:"assets/index-EU82nCUh.js",revision:null},{url:"assets/index-CfPBiBJW.css",revision:null},{url:"assets/CodeMirrorEditor-BklpCqAo.js",revision:null},{url:"offline.html",revision:"e4f087b40040ff045a6fd572b5fed726"},{url:"icons/icon-192.png",revision:"54082a8d4e49f4e5c2ad5646b7fb7551"},{url:"icons/icon-512.png",revision:"c1b37dbf870c852577dbb4733f45c9c2"},{url:"icons/icon-maskable-512.png",revision:"734c73b2ee3cc3856c67bed196e7557f"},{url:"icons/icon.svg",revision:"549b462207e763a57c9dfbae214afc31"},{url:"manifest.webmanifest",revision:"aef9cb4935c3fba2754da10580256c9e"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]})),e.registerRoute(({url:e})=>e.pathname.startsWith("/api/v1/"),new e.NetworkOnly,"GET"),e.registerRoute(({request:e})=>"navigate"===e.mode,new e.NetworkFirst({cacheName:"pi-navigation",networkTimeoutSeconds:3,plugins:[new e.PrecacheFallbackPlugin({fallbackURL:"/offline.html"})]}),"GET")});
1
+ if(!self.define){let e,i={};const n=(n,s)=>(n=new URL(n+".js",s).href,i[n]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=i,document.head.appendChild(e)}else e=n,importScripts(n),i()}).then(()=>{let e=i[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(s,o)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(i[c])return;let r={};const l=e=>n(e,c),f={module:{uri:c},exports:r,require:l};i[c]=Promise.all(s.map(e=>f[e]||l(e))).then(e=>(o(...e),r))}}define(["./workbox-6d7155ed"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"offline.html",revision:"e4f087b40040ff045a6fd572b5fed726"},{url:"manifest.webmanifest",revision:"aef9cb4935c3fba2754da10580256c9e"},{url:"index.html",revision:"aa5b50f914ab4f14b660995c21b76435"},{url:"icons/icon.svg",revision:"549b462207e763a57c9dfbae214afc31"},{url:"icons/icon-maskable-512.png",revision:"734c73b2ee3cc3856c67bed196e7557f"},{url:"icons/icon-512.png",revision:"c1b37dbf870c852577dbb4733f45c9c2"},{url:"icons/icon-192.png",revision:"54082a8d4e49f4e5c2ad5646b7fb7551"},{url:"assets/workbox-window.prod.es5-Bd17z0YL.js",revision:null},{url:"assets/index-BnOWCOqe.js",revision:null},{url:"assets/index-BIo72Bz6.css",revision:null},{url:"assets/CodeMirrorEditor-UkZexOVi.js",revision:null},{url:"offline.html",revision:"e4f087b40040ff045a6fd572b5fed726"},{url:"icons/icon-192.png",revision:"54082a8d4e49f4e5c2ad5646b7fb7551"},{url:"icons/icon-512.png",revision:"c1b37dbf870c852577dbb4733f45c9c2"},{url:"icons/icon-maskable-512.png",revision:"734c73b2ee3cc3856c67bed196e7557f"},{url:"icons/icon.svg",revision:"549b462207e763a57c9dfbae214afc31"},{url:"manifest.webmanifest",revision:"aef9cb4935c3fba2754da10580256c9e"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]})),e.registerRoute(({url:e})=>e.pathname.startsWith("/api/v1/"),new e.NetworkOnly,"GET"),e.registerRoute(({request:e})=>"navigate"===e.mode,new e.NetworkFirst({cacheName:"pi-navigation",networkTimeoutSeconds:3,plugins:[new e.PrecacheFallbackPlugin({fallbackURL:"/offline.html"})]}),"GET")});
2
2
  //# sourceMappingURL=sw.js.map
3
3
  //# sourceMappingURL=sw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sw.js","sources":["../../../../../../../tmp/42de779202f77f76f95a8836f1546dd4/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkOnly as workbox_strategies_NetworkOnly} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-strategies/NetworkOnly.mjs';\nimport {PrecacheFallbackPlugin as workbox_precaching_PrecacheFallbackPlugin} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/PrecacheFallbackPlugin.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\nself.skipWaiting();\nworkbox_core_clientsClaim();\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"offline.html\",\n \"revision\": \"e4f087b40040ff045a6fd572b5fed726\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"aef9cb4935c3fba2754da10580256c9e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"11a3c2f3e0b742413804405e176afa16\"\n },\n {\n \"url\": \"icons/icon.svg\",\n \"revision\": \"549b462207e763a57c9dfbae214afc31\"\n },\n {\n \"url\": \"icons/icon-maskable-512.png\",\n \"revision\": \"734c73b2ee3cc3856c67bed196e7557f\"\n },\n {\n \"url\": \"icons/icon-512.png\",\n \"revision\": \"c1b37dbf870c852577dbb4733f45c9c2\"\n },\n {\n \"url\": \"icons/icon-192.png\",\n \"revision\": \"54082a8d4e49f4e5c2ad5646b7fb7551\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-Bd17z0YL.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-EU82nCUh.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CfPBiBJW.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CodeMirrorEditor-BklpCqAo.js\",\n \"revision\": null\n },\n {\n \"url\": \"offline.html\",\n \"revision\": \"e4f087b40040ff045a6fd572b5fed726\"\n },\n {\n \"url\": \"icons/icon-192.png\",\n \"revision\": \"54082a8d4e49f4e5c2ad5646b7fb7551\"\n },\n {\n \"url\": \"icons/icon-512.png\",\n \"revision\": \"c1b37dbf870c852577dbb4733f45c9c2\"\n },\n {\n \"url\": \"icons/icon-maskable-512.png\",\n \"revision\": \"734c73b2ee3cc3856c67bed196e7557f\"\n },\n {\n \"url\": \"icons/icon.svg\",\n \"revision\": \"549b462207e763a57c9dfbae214afc31\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"aef9cb4935c3fba2754da10580256c9e\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();workbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n denylist: [/^\\/api\\//],}));\nworkbox_routing_registerRoute(({ url }) => url.pathname.startsWith(\"/api/v1/\"), new workbox_strategies_NetworkOnly(), 'GET');\nworkbox_routing_registerRoute(({ request }) => request.mode === \"navigate\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"pi-navigation\",\"networkTimeoutSeconds\":3, plugins: [new workbox_precaching_PrecacheFallbackPlugin({ fallbackURL: '/offline.html' })] }), 'GET');\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_routing_NavigationRoute","workbox_precaching_createHandlerBoundToURL","denylist","pathname","startsWith","workbox_strategies_NetworkOnly","request","mode","workbox_strategies_NetworkFirst","cacheName","networkTimeoutSeconds","plugins","workbox_precaching_PrecacheFallbackPlugin","fallbackURL"],"mappings":"inBAuBAA,KAAKC,cACLC,EAAAA,eAMAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAA,GACHC,EAAAA,wBAA2CC,EAAAA,cAA8B,IAAIC,EAAAA,gBAAgCC,0BAA2C,eAAgB,CACpKC,SAAU,CAAC,eACfH,EAAAA,cAA8B,EAAGH,SAAUA,EAAIO,SAASC,WAAW,YAAa,IAAIC,EAAAA,YAAkC,OACtHN,EAAAA,cAA8B,EAAGO,aAA+B,aAAjBA,EAAQC,KAAqB,IAAIC,EAAAA,aAAgC,CAAEC,UAAY,gBAAgBC,sBAAwB,EAAGC,QAAS,CAAC,IAAIC,yBAA0C,CAAEC,YAAa,qBAAwB"}
1
+ {"version":3,"file":"sw.js","sources":["../../../../../../../tmp/f02064c44b43957171576042df6e1679/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkOnly as workbox_strategies_NetworkOnly} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-strategies/NetworkOnly.mjs';\nimport {PrecacheFallbackPlugin as workbox_precaching_PrecacheFallbackPlugin} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/PrecacheFallbackPlugin.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/pi-forge/pi-forge/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\nself.skipWaiting();\nworkbox_core_clientsClaim();\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"offline.html\",\n \"revision\": \"e4f087b40040ff045a6fd572b5fed726\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"aef9cb4935c3fba2754da10580256c9e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"aa5b50f914ab4f14b660995c21b76435\"\n },\n {\n \"url\": \"icons/icon.svg\",\n \"revision\": \"549b462207e763a57c9dfbae214afc31\"\n },\n {\n \"url\": \"icons/icon-maskable-512.png\",\n \"revision\": \"734c73b2ee3cc3856c67bed196e7557f\"\n },\n {\n \"url\": \"icons/icon-512.png\",\n \"revision\": \"c1b37dbf870c852577dbb4733f45c9c2\"\n },\n {\n \"url\": \"icons/icon-192.png\",\n \"revision\": \"54082a8d4e49f4e5c2ad5646b7fb7551\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-Bd17z0YL.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-BnOWCOqe.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-BIo72Bz6.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CodeMirrorEditor-UkZexOVi.js\",\n \"revision\": null\n },\n {\n \"url\": \"offline.html\",\n \"revision\": \"e4f087b40040ff045a6fd572b5fed726\"\n },\n {\n \"url\": \"icons/icon-192.png\",\n \"revision\": \"54082a8d4e49f4e5c2ad5646b7fb7551\"\n },\n {\n \"url\": \"icons/icon-512.png\",\n \"revision\": \"c1b37dbf870c852577dbb4733f45c9c2\"\n },\n {\n \"url\": \"icons/icon-maskable-512.png\",\n \"revision\": \"734c73b2ee3cc3856c67bed196e7557f\"\n },\n {\n \"url\": \"icons/icon.svg\",\n \"revision\": \"549b462207e763a57c9dfbae214afc31\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"aef9cb4935c3fba2754da10580256c9e\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();workbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n denylist: [/^\\/api\\//],}));\nworkbox_routing_registerRoute(({ url }) => url.pathname.startsWith(\"/api/v1/\"), new workbox_strategies_NetworkOnly(), 'GET');\nworkbox_routing_registerRoute(({ request }) => request.mode === \"navigate\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"pi-navigation\",\"networkTimeoutSeconds\":3, plugins: [new workbox_precaching_PrecacheFallbackPlugin({ fallbackURL: '/offline.html' })] }), 'GET');\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_routing_NavigationRoute","workbox_precaching_createHandlerBoundToURL","denylist","pathname","startsWith","workbox_strategies_NetworkOnly","request","mode","workbox_strategies_NetworkFirst","cacheName","networkTimeoutSeconds","plugins","workbox_precaching_PrecacheFallbackPlugin","fallbackURL"],"mappings":"inBAuBAA,KAAKC,cACLC,EAAAA,eAMAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAA,GACHC,EAAAA,wBAA2CC,EAAAA,cAA8B,IAAIC,EAAAA,gBAAgCC,0BAA2C,eAAgB,CACpKC,SAAU,CAAC,eACfH,EAAAA,cAA8B,EAAGH,SAAUA,EAAIO,SAASC,WAAW,YAAa,IAAIC,EAAAA,YAAkC,OACtHN,EAAAA,cAA8B,EAAGO,aAA+B,aAAjBA,EAAQC,KAAqB,IAAIC,EAAAA,aAAgC,CAAEC,UAAY,gBAAgBC,sBAAwB,EAAGC,QAAS,CAAC,IAAIC,yBAA0C,CAAEC,YAAa,qBAAwB"}
@@ -0,0 +1,49 @@
1
+ import { spawn } from "node:child_process";
2
+ import { config } from "./config.js";
3
+ import { scrubbedEnv } from "./pty-manager.js";
4
+ export function sandboxSpawnIdentity() {
5
+ if (!config.agentToolSandbox.enabled)
6
+ return {};
7
+ return { uid: config.agentToolSandbox.uid, gid: config.agentToolSandbox.gid };
8
+ }
9
+ export function createForgeBashOperations(workspacePath) {
10
+ return {
11
+ exec: (command, _cwd, options) => {
12
+ return new Promise((resolve, reject) => {
13
+ const proc = spawn("/bin/sh", ["-c", command], {
14
+ cwd: workspacePath,
15
+ env: scrubbedEnv(),
16
+ stdio: ["ignore", "pipe", "pipe"],
17
+ ...sandboxSpawnIdentity(),
18
+ });
19
+ const onAbort = () => {
20
+ try {
21
+ proc.kill("SIGTERM");
22
+ }
23
+ catch {
24
+ // best-effort
25
+ }
26
+ setTimeout(() => {
27
+ try {
28
+ proc.kill("SIGKILL");
29
+ }
30
+ catch {
31
+ // best-effort
32
+ }
33
+ }, 2000);
34
+ };
35
+ if (options.signal !== undefined) {
36
+ if (options.signal.aborted)
37
+ onAbort();
38
+ else
39
+ options.signal.addEventListener("abort", onAbort, { once: true });
40
+ }
41
+ proc.stdout?.on("data", (data) => options.onData(data));
42
+ proc.stderr?.on("data", (data) => options.onData(data));
43
+ proc.on("error", (err) => reject(err));
44
+ proc.on("close", (code) => resolve({ exitCode: code }));
45
+ });
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=agent-bash-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-bash-operations.js","sourceRoot":"","sources":["../src/agent-bash-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAChD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAI,EAAE,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAI,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,aAAqB;IAC7D,OAAO;QACL,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,OAAO,IAAI,OAAO,CAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;oBAC7C,GAAG,EAAE,aAAa;oBAClB,GAAG,EAAE,WAAW,EAAE;oBAClB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;oBACjC,GAAG,oBAAoB,EAAE;iBAC1B,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,IAAI,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvB,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;oBACD,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC;4BACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACvB,CAAC;wBAAC,MAAM,CAAC;4BACP,cAAc;wBAChB,CAAC;oBACH,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC;gBACF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;wBAAE,OAAO,EAAE,CAAC;;wBACjC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { access, mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { glob } from "glob";
4
+ import { createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from "@earendil-works/pi-coding-agent";
5
+ import { createForgeBashOperations } from "./agent-bash-operations.js";
6
+ import { assertAgentToolPathAllowed, resolveAgentToolPath } from "./agent-tool-policy.js";
7
+ function guard(workspacePath, absolutePath) {
8
+ return resolveAgentToolPath(workspacePath, absolutePath);
9
+ }
10
+ export function createSandboxedToolDefinitions(workspacePath) {
11
+ const readOps = {
12
+ readFile: async (absolutePath) => readFile(guard(workspacePath, absolutePath)),
13
+ access: async (absolutePath) => access(guard(workspacePath, absolutePath)),
14
+ detectImageMimeType: async () => undefined,
15
+ };
16
+ const grepOps = {
17
+ isDirectory: async (absolutePath) => (await stat(guard(workspacePath, absolutePath))).isDirectory(),
18
+ readFile: async (absolutePath) => readFile(guard(workspacePath, absolutePath), "utf8"),
19
+ };
20
+ const findOps = {
21
+ exists: async (absolutePath) => {
22
+ try {
23
+ await access(guard(workspacePath, absolutePath));
24
+ return true;
25
+ }
26
+ catch (err) {
27
+ const e = err;
28
+ if (e.code === "ENOENT")
29
+ return false;
30
+ throw err;
31
+ }
32
+ },
33
+ glob: async (pattern, cwd, options) => {
34
+ const safeCwd = guard(workspacePath, cwd);
35
+ const results = await glob(pattern, {
36
+ cwd: safeCwd,
37
+ absolute: true,
38
+ nodir: false,
39
+ dot: true,
40
+ ignore: options.ignore,
41
+ });
42
+ const allowed = [];
43
+ for (const result of results) {
44
+ assertAgentToolPathAllowed(workspacePath, result);
45
+ allowed.push(result);
46
+ if (allowed.length >= options.limit)
47
+ break;
48
+ }
49
+ return allowed;
50
+ },
51
+ };
52
+ const lsOps = {
53
+ exists: async (absolutePath) => {
54
+ try {
55
+ await access(guard(workspacePath, absolutePath));
56
+ return true;
57
+ }
58
+ catch (err) {
59
+ const e = err;
60
+ if (e.code === "ENOENT")
61
+ return false;
62
+ throw err;
63
+ }
64
+ },
65
+ stat: async (absolutePath) => stat(guard(workspacePath, absolutePath)),
66
+ readdir: async (absolutePath) => readdir(guard(workspacePath, absolutePath)),
67
+ };
68
+ const editOps = {
69
+ readFile: async (absolutePath) => readFile(guard(workspacePath, absolutePath)),
70
+ writeFile: async (absolutePath, content) => {
71
+ await writeFile(guard(workspacePath, absolutePath), content);
72
+ },
73
+ access: async (absolutePath) => access(guard(workspacePath, absolutePath)),
74
+ };
75
+ const writeOps = {
76
+ writeFile: async (absolutePath, content) => {
77
+ await writeFile(guard(workspacePath, absolutePath), content);
78
+ },
79
+ mkdir: async (dir) => {
80
+ await mkdir(guard(workspacePath, dir), { recursive: true });
81
+ },
82
+ };
83
+ return [
84
+ createReadToolDefinition(workspacePath, { operations: readOps }),
85
+ createGrepToolDefinition(workspacePath, { operations: grepOps }),
86
+ createFindToolDefinition(workspacePath, { operations: findOps }),
87
+ createLsToolDefinition(workspacePath, { operations: lsOps }),
88
+ createEditToolDefinition(workspacePath, { operations: editOps }),
89
+ createWriteToolDefinition(workspacePath, { operations: writeOps }),
90
+ createBashToolDefinition(workspacePath, {
91
+ operations: createForgeBashOperations(workspacePath),
92
+ }),
93
+ ];
94
+ }
95
+ export function resolveSandboxedAgentPath(workspacePath, requestedPath) {
96
+ return guard(workspacePath, join(workspacePath, requestedPath));
97
+ }
98
+ //# sourceMappingURL=agent-tool-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tool-overrides.js","sourceRoot":"","sources":["../src/agent-tool-overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { existsSync, realpathSync } from "node:fs";
2
+ import { dirname, isAbsolute, resolve, sep, relative } from "node:path";
3
+ import { config } from "./config.js";
4
+ const PROTECTED_PI_CONFIG_FILES = new Set(["auth.json", "models.json", "settings.json"]);
5
+ const HOME_SECRET_DIRS = new Set([".ssh", ".aws", ".kube", ".gnupg"]);
6
+ const DENIED_PREFIXES = ["/proc", "/etc", "/run/secrets", "/var/run/secrets"];
7
+ export class AgentToolPathDeniedError extends Error {
8
+ constructor(message) {
9
+ super(`agent_tool_path_denied: ${message}`);
10
+ this.name = "AgentToolPathDeniedError";
11
+ }
12
+ }
13
+ function pathWithin(child, parent) {
14
+ const rel = relative(parent, child);
15
+ return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
16
+ }
17
+ function realpathExistingOrParent(abs) {
18
+ let cur = abs;
19
+ while (!existsSync(cur)) {
20
+ const parent = dirname(cur);
21
+ if (parent === cur)
22
+ break;
23
+ cur = parent;
24
+ }
25
+ return realpathSync.native(cur);
26
+ }
27
+ function firstSegment(rel) {
28
+ return rel.split(/[\\/]/)[0] ?? "";
29
+ }
30
+ function piConfigRelativePath(baseResolved, resolvedReal, piConfigReal) {
31
+ const candidate = pathWithin(baseResolved, piConfigReal) ? baseResolved : resolvedReal;
32
+ const rel = relative(piConfigReal, candidate).split(sep).join("/");
33
+ if (rel === "" || rel.startsWith("../"))
34
+ return undefined;
35
+ return rel;
36
+ }
37
+ function assertPiConfigPathAllowed(baseResolved, resolvedReal, piConfigReal) {
38
+ if (!pathWithin(baseResolved, piConfigReal) && !pathWithin(resolvedReal, piConfigReal)) {
39
+ return false;
40
+ }
41
+ for (const candidate of [baseResolved, resolvedReal]) {
42
+ if (!pathWithin(candidate, piConfigReal))
43
+ continue;
44
+ const rel = relative(piConfigReal, candidate).split(sep).join("/");
45
+ if (!rel.includes("/") && PROTECTED_PI_CONFIG_FILES.has(rel)) {
46
+ throw new AgentToolPathDeniedError(`${rel} is protected pi config`);
47
+ }
48
+ }
49
+ return true;
50
+ }
51
+ function denyIfSensitiveAbsolute(abs, workspaceReal, piConfigReal) {
52
+ for (const prefix of DENIED_PREFIXES) {
53
+ if (abs === prefix || abs.startsWith(`${prefix}/`)) {
54
+ throw new AgentToolPathDeniedError(`${abs} is not available to model tools`);
55
+ }
56
+ }
57
+ if (pathWithin(abs, config.forgeDataDir)) {
58
+ throw new AgentToolPathDeniedError(`${abs} is inside FORGE_DATA_DIR`);
59
+ }
60
+ const home = process.env.HOME;
61
+ if (home !== undefined && home !== "") {
62
+ const homeAbs = resolve(home);
63
+ if (pathWithin(abs, homeAbs)) {
64
+ const seg = firstSegment(relative(homeAbs, abs));
65
+ if (HOME_SECRET_DIRS.has(seg) &&
66
+ !pathWithin(abs, workspaceReal) &&
67
+ !pathWithin(abs, piConfigReal)) {
68
+ throw new AgentToolPathDeniedError(`${abs} is inside a home secret directory`);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ export function resolveAgentToolPath(workspacePath, requestedPath) {
74
+ if (requestedPath.trim() === "") {
75
+ throw new AgentToolPathDeniedError("empty path is not allowed");
76
+ }
77
+ const workspaceReal = realpathExistingOrParent(resolve(config.workspacePath));
78
+ const piConfigReal = realpathExistingOrParent(resolve(config.piConfigDir));
79
+ const forgeDataReal = realpathExistingOrParent(resolve(config.forgeDataDir));
80
+ const baseResolved = isAbsolute(requestedPath)
81
+ ? resolve(requestedPath)
82
+ : resolve(workspacePath, requestedPath);
83
+ const resolvedReal = realpathExistingOrParent(baseResolved);
84
+ denyIfSensitiveAbsolute(baseResolved, workspaceReal, piConfigReal);
85
+ denyIfSensitiveAbsolute(resolvedReal, workspaceReal, piConfigReal);
86
+ if (pathWithin(baseResolved, forgeDataReal) || pathWithin(resolvedReal, forgeDataReal)) {
87
+ throw new AgentToolPathDeniedError(`${baseResolved} is inside FORGE_DATA_DIR`);
88
+ }
89
+ const isPiConfigPath = assertPiConfigPathAllowed(baseResolved, resolvedReal, piConfigReal);
90
+ if (pathWithin(resolvedReal, workspaceReal))
91
+ return baseResolved;
92
+ if (isPiConfigPath) {
93
+ const rel = piConfigRelativePath(baseResolved, resolvedReal, piConfigReal);
94
+ if (rel === undefined) {
95
+ throw new AgentToolPathDeniedError(`${baseResolved} is outside PI_CONFIG_DIR`);
96
+ }
97
+ return baseResolved;
98
+ }
99
+ throw new AgentToolPathDeniedError(`${baseResolved} is outside allowed roots`);
100
+ }
101
+ export function assertAgentToolPathAllowed(workspacePath, requestedPath) {
102
+ resolveAgentToolPath(workspacePath, requestedPath);
103
+ }
104
+ //# sourceMappingURL=agent-tool-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tool-policy.js","sourceRoot":"","sources":["../src/agent-tool-policy.ts"],"names":[],"mappings":"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"}
@@ -317,6 +317,31 @@ const FLAGS = [
317
317
  desc: "Append a secret-hygiene rule to the agent's system prompt",
318
318
  defaultText: "false",
319
319
  },
320
+ // sandbox
321
+ {
322
+ name: "agent-tool-sandbox-enabled",
323
+ env: "AGENT_TOOL_SANDBOX_ENABLED",
324
+ type: "boolean",
325
+ group: "sandbox",
326
+ desc: "Run model/user shell surfaces as restricted UID/GID with path-scoped file tools",
327
+ defaultText: "false",
328
+ },
329
+ {
330
+ name: "agent-tool-uid",
331
+ env: "AGENT_TOOL_UID",
332
+ type: "number",
333
+ group: "sandbox",
334
+ desc: "Numeric UID for sandboxed model/user shell processes",
335
+ defaultText: "(required when sandbox enabled)",
336
+ },
337
+ {
338
+ name: "agent-tool-gid",
339
+ env: "AGENT_TOOL_GID",
340
+ type: "number",
341
+ group: "sandbox",
342
+ desc: "Numeric GID for sandboxed model/user shell processes",
343
+ defaultText: "(required when sandbox enabled)",
344
+ },
320
345
  // rate limits
321
346
  {
322
347
  name: "rate-limit-login-max",
@@ -528,6 +553,17 @@ export function parseCliArgs(argv) {
528
553
  result.errors.push(`Unexpected positional argument(s): ${parsed.positionals.join(", ")}. ` +
529
554
  `pi-forge takes flags only — see --help.`);
530
555
  }
556
+ const sandboxRaw = parsed.values["agent-tool-sandbox-enabled"] ?? process.env.AGENT_TOOL_SANDBOX_ENABLED;
557
+ const sandboxEnabled = sandboxRaw !== undefined && BOOL_TRUE.has(String(sandboxRaw).toLowerCase());
558
+ const ldapBindPasswordRaw = parsed.values["ldap-bind-password"];
559
+ if (sandboxEnabled &&
560
+ typeof ldapBindPasswordRaw === "string" &&
561
+ ldapBindPasswordRaw.startsWith("@")) {
562
+ result.errors.push("LDAP bind password file references are not allowed when AGENT_TOOL_SANDBOX_ENABLED=true. Use an environment variable value or external secret broker.");
563
+ }
564
+ if (sandboxEnabled && parsed.values["ldap-bind-password-file"] !== undefined) {
565
+ result.errors.push("LDAP bind password file references are not allowed when AGENT_TOOL_SANDBOX_ENABLED=true. Use an environment variable value or external secret broker.");
566
+ }
531
567
  for (const f of FLAGS) {
532
568
  const raw = parsed.values[f.name];
533
569
  if (raw === undefined)
@@ -585,6 +621,7 @@ const GROUP_LABELS = {
585
621
  paths: "Paths",
586
622
  auth: "Authentication",
587
623
  features: "Features",
624
+ sandbox: "Agent tool sandbox",
588
625
  "rate-limits": "Rate limits",
589
626
  terminal: "Terminal",
590
627
  };
@@ -599,7 +636,15 @@ export function buildHelpText(version) {
599
636
  out.push("");
600
637
  out.push("Every option below has an equivalent environment variable. Flags win when both are set.");
601
638
  out.push("");
602
- const groups = ["network", "paths", "auth", "features", "rate-limits", "terminal"];
639
+ const groups = [
640
+ "network",
641
+ "paths",
642
+ "auth",
643
+ "features",
644
+ "sandbox",
645
+ "rate-limits",
646
+ "terminal",
647
+ ];
603
648
  for (const group of groups) {
604
649
  const flags = FLAGS.filter((f) => f.group === group);
605
650
  if (flags.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,17 @@ function readInt(key, fallback) {
12
12
  if (v === undefined)
13
13
  return fallback;
14
14
  const n = Number.parseInt(v, 10);
15
- if (!Number.isFinite(n) || n < 0) {
15
+ if (!Number.isFinite(n) || n < 0 || String(n) !== v.trim()) {
16
+ throw new Error(`config: ${key} must be a non-negative integer (got ${v})`);
17
+ }
18
+ return n;
19
+ }
20
+ function readOptionalInt(key) {
21
+ const v = readEnv(key);
22
+ if (v === undefined)
23
+ return undefined;
24
+ const n = Number.parseInt(v, 10);
25
+ if (!Number.isFinite(n) || n < 0 || String(n) !== v.trim()) {
16
26
  throw new Error(`config: ${key} must be a non-negative integer (got ${v})`);
17
27
  }
18
28
  return n;
@@ -128,11 +138,25 @@ const UI_PASSWORD = UI_PASSWORD_FILE
128
138
  const API_KEY = readEnv("API_KEY");
129
139
  const CORS_ORIGIN = readEnv("CORS_ORIGIN");
130
140
  const PASSWORD_HASH_FILE = join(FORGE_DATA_DIR, "password-hash");
141
+ const AGENT_TOOL_SANDBOX_ENABLED = readBool("AGENT_TOOL_SANDBOX_ENABLED", false);
142
+ const AGENT_TOOL_UID = readOptionalInt("AGENT_TOOL_UID");
143
+ const AGENT_TOOL_GID = readOptionalInt("AGENT_TOOL_GID");
144
+ if (AGENT_TOOL_SANDBOX_ENABLED && (AGENT_TOOL_UID === undefined || AGENT_TOOL_GID === undefined)) {
145
+ throw new Error("config: AGENT_TOOL_SANDBOX_ENABLED=true requires numeric AGENT_TOOL_UID and AGENT_TOOL_GID");
146
+ }
147
+ const LDAP_FILE_REFERENCE_ERROR = "LDAP bind password file references are not allowed when AGENT_TOOL_SANDBOX_ENABLED=true. Use an environment variable value or external secret broker.";
131
148
  const LDAP_ENABLED = readBool("LDAP_ENABLED", false);
132
149
  const LDAP_BIND_PASSWORD_FILE = readEnv("LDAP_BIND_PASSWORD_FILE");
150
+ const LDAP_BIND_PASSWORD_ENV = readEnv("LDAP_BIND_PASSWORD");
151
+ if (AGENT_TOOL_SANDBOX_ENABLED && LDAP_BIND_PASSWORD_FILE !== undefined) {
152
+ throw new Error(`config: ${LDAP_FILE_REFERENCE_ERROR}`);
153
+ }
154
+ if (AGENT_TOOL_SANDBOX_ENABLED && LDAP_BIND_PASSWORD_ENV?.startsWith("@")) {
155
+ throw new Error(`config: ${LDAP_FILE_REFERENCE_ERROR}`);
156
+ }
133
157
  const LDAP_BIND_PASSWORD = LDAP_BIND_PASSWORD_FILE
134
158
  ? readSecretFile(LDAP_BIND_PASSWORD_FILE, "LDAP_BIND_PASSWORD_FILE")
135
- : readEnv("LDAP_BIND_PASSWORD");
159
+ : LDAP_BIND_PASSWORD_ENV;
136
160
  /**
137
161
  * Load a JWT signing key from `${FORGE_DATA_DIR}/jwt-secret`, or
138
162
  * generate-and-persist one on first boot. Treated like an SSH host key:
@@ -411,6 +435,11 @@ export const config = Object.freeze({
411
435
  * the same time they meet its caveats.
412
436
  */
413
437
  agentSecretHygieneRule: readBool("AGENT_SECRET_HYGIENE_RULE", false),
438
+ agentToolSandbox: Object.freeze({
439
+ enabled: AGENT_TOOL_SANDBOX_ENABLED,
440
+ uid: AGENT_TOOL_UID,
441
+ gid: AGENT_TOOL_GID,
442
+ }),
414
443
  /**
415
444
  * How long a detached PTY (its WebSocket closed but no replacement
416
445
  * attached yet) is held alive before being reaped. The 10-minute
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,QAAgB;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,wCAAwC,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC/B,kEAAkE;IAClE,gEAAgE;IAChE,+CAA+C;IAC/C,OAAO,CAAC;SACL,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc;IAClD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,cAAc,IAAI,KAAK,OAAO,EAAE,EAAE;YAChF,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,QAAiB;IAC9C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,qCAAqC,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB,EAAE,GAAW,EAAE,GAAW;IAC7E,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,wBAAwB;IAC/B,IAAI,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,iEAAiE;IACjE,mEAAmE;IACnE,sCAAsC;IACtC,OAAO,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AACvB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;IAChC,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;QACvD,kDAAkD;QAClD,oEAAoE;QACpE,6CAA6C,CAChD,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3F,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,cAAc,eAAe,CAAC,CAAC;AACxF;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG,OAAO,CAC9B,OAAO,CAAC,kBAAkB,CAAC;IACzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAC9E,CAAC;AAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,gBAAgB;IAClC,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IACtD,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACrD,MAAM,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACnE,MAAM,kBAAkB,GAAG,uBAAuB;IAChD,CAAC,CAAC,cAAc,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;IACpE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,gEAAgE;QAChE,oEAAoE;QACpE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE;YAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;IAC1B,aAAa,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CACT,mDAAmD,IAAI,IAAI;QACzD,6DAA6D,CAChE,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,GACd,OAAO,CAAC,YAAY,CAAC;IACrB,CAAC,WAAW,KAAK,SAAS,IAAI,YAAY,IAAI,UAAU,CAAC,kBAAkB,CAAC;QAC1E,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEjB,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;IAC3B,gEAAgE;IAChE,iEAAiE;IACjE,iEAAiE;IACjE,mEAAmE;IACnE,8DAA8D;IAC9D,0DAA0D;IAC1D,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW;IACpC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,MAAM;IACxC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM;IAC9C,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAC1C,aAAa,EAAE,cAAc;IAC7B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,WAAW;IACvB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC3C;;;;;;;;OAQG;IACH,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;IACxC;;;;;;;;;;;;OAYG;IACH,oBAAoB,EAAE,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;IAC/D;;;;;OAKG;IACH,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC/C;;;;;;;;;OASG;IACH,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAC/D;;;;;;OAMG;IACH,kBAAkB,EAAE,IAAI,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjE;;;;;;;;OAQG;IACH,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC9D;;;;;;;;;OASG;IACH,mBAAmB,EAAE,IAAI,CAAC,cAAc,EAAE,wBAAwB,CAAC;IACnE;;;;;;;;OAQG;IACH,yBAAyB,EAAE,IAAI,CAAC,cAAc,EAAE,8BAA8B,CAAC;IAC/E;;;;;;;;OAQG;IACH,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC5D;;;;;;OAMG;IACH,oBAAoB,EAAE,wBAAwB,EAAE;IAChD,oCAAoC,EAAE,cAAc,CAClD,0CAA0C,EAC1C,CAAC,EACD,CAAC,EACD,GAAG,CACJ;IACD;;;;;;;;;;OAUG;IACH,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,UAAU,EAAE,WAAW;QACvB,cAAc,EAAE,gBAAgB;QAChC,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;YAC/B,YAAY,EAAE,kBAAkB;YAChC,gBAAgB,EAAE,uBAAuB;YACzC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;YAC/B,UAAU,EACR,OAAO,CAAC,kBAAkB,CAAC;gBAC3B,uEAAuE;YACzE,eAAe,EAAE,OAAO,CAAC,wBAAwB,CAAC;YAClD,cAAc,EAAE,OAAO,CAAC,sBAAsB,CAAC,IAAI,UAAU;YAC7D,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;YAC3C,qBAAqB,EAAE,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC;SACtE,CAAC;QACF,mBAAmB,EAAE,OAAO,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxE,iBAAiB,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;QACtD,sBAAsB,EAAE,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC;QACrE;;;;;;;;;;;;;;;;;WAiBG;QACH,qBAAqB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC;QACjE,2DAA2D;QAC3D,gBAAgB,EAAE,kBAAkB;KACrC,CAAC;IACF;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,SAAS,EAAE,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC/C,cAAc,EAAE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;QAC9D,iEAAiE;QACjE,gDAAgD;QAChD,SAAS,EAAE,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC/C,cAAc,EAAE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;QAC9D,mEAAmE;QACnE,8DAA8D;QAC9D,SAAS,EAAE,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC/C,cAAc,EAAE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;QAC9D,sEAAsE;QACtE,qEAAqE;QACrE,OAAO,EAAE,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC3C,YAAY,EAAE,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC;KAC3D,CAAC;IACF,UAAU,EAAE,WAAW;IACvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACjF;;;;;;;;;;;;;;;;;OAiBG;IACH,sBAAsB,EAAE,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC;IACpE;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CACvD,CAAC,CAAC;AAEZ,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;QAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;QACxB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACzC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,9 @@
38
38
  */
39
39
  import { discoverAndLoadExtensions, DefaultPackageManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
40
40
  import { config } from "./config.js";
41
+ function isDisabledInSandboxPackageSource(source) {
42
+ return config.agentToolSandbox.enabled && source.includes("pi-subagents");
43
+ }
41
44
  /**
42
45
  * Resolve package-contributed resources visible to a session in `cwd`.
43
46
  *
@@ -79,6 +82,8 @@ export async function discoverExtensionResources(cwd) {
79
82
  const src = r.metadata.source;
80
83
  if (typeof src !== "string" || src.length === 0)
81
84
  continue;
85
+ if (isDisabledInSandboxPackageSource(src))
86
+ continue;
82
87
  extensionPathToPackage.set(r.path, src);
83
88
  }
84
89
  skillEntries = [];
@@ -96,6 +101,8 @@ export async function discoverExtensionResources(cwd) {
96
101
  const src = r.metadata.source;
97
102
  if (typeof src !== "string" || src.length === 0)
98
103
  continue;
104
+ if (isDisabledInSandboxPackageSource(src))
105
+ continue;
99
106
  skillEntries.push({ packageSource: src, skillPath: r.path });
100
107
  }
101
108
  }