@madarco/agentbox 0.14.0 → 0.15.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 (40) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/{_cloud-attach-GUBB5RH2.js → _cloud-attach-R6TRWG5L.js} +3 -3
  3. package/dist/{chunk-BYCLD6D6.js → chunk-43Q5GWP6.js} +98 -54
  4. package/dist/chunk-43Q5GWP6.js.map +1 -0
  5. package/dist/{chunk-VATTS2MR.js → chunk-72CJTXN6.js} +2 -2
  6. package/dist/{chunk-TBSIJVSN.js → chunk-E7CHS7ZR.js} +21 -13
  7. package/dist/chunk-E7CHS7ZR.js.map +1 -0
  8. package/dist/{chunk-LDMYHWUS.js → chunk-MCOU6CZS.js} +2 -2
  9. package/dist/{chunk-TCS5HXJX.js → chunk-MLMFNN4T.js} +396 -324
  10. package/dist/chunk-MLMFNN4T.js.map +1 -0
  11. package/dist/{dist-J2IHD5T7.js → dist-AGTIA7AD.js} +3 -3
  12. package/dist/{dist-3IMQNTTV.js → dist-FIFEFKJ7.js} +3 -3
  13. package/dist/{dist-34RKQ74M.js → dist-JZ3XO6EB.js} +4 -4
  14. package/dist/{dist-4DPOL5A7.js → dist-OGJGZETZ.js} +2 -2
  15. package/dist/{dist-57M6ZA7H.js → dist-S4XR4ACV.js} +4 -4
  16. package/dist/index.js +868 -300
  17. package/dist/index.js.map +1 -1
  18. package/package.json +5 -5
  19. package/runtime/docker/apps/cli/share/agentbox-setup/SKILL.md +30 -0
  20. package/runtime/docker/packages/ctl/dist/bin.cjs +321 -27
  21. package/runtime/e2b/agentbox-setup-skill.md +30 -0
  22. package/runtime/e2b/ctl.cjs +321 -27
  23. package/runtime/hetzner/agentbox-setup-skill.md +30 -0
  24. package/runtime/hetzner/ctl.cjs +321 -27
  25. package/runtime/relay/bin.cjs +83 -5
  26. package/runtime/vercel/agentbox-setup-skill.md +30 -0
  27. package/runtime/vercel/ctl.cjs +321 -27
  28. package/share/agentbox-setup/SKILL.md +30 -0
  29. package/share/host-skills/agentbox-info/SKILL.md +21 -1
  30. package/dist/chunk-BYCLD6D6.js.map +0 -1
  31. package/dist/chunk-TBSIJVSN.js.map +0 -1
  32. package/dist/chunk-TCS5HXJX.js.map +0 -1
  33. /package/dist/{_cloud-attach-GUBB5RH2.js.map → _cloud-attach-R6TRWG5L.js.map} +0 -0
  34. /package/dist/{chunk-VATTS2MR.js.map → chunk-72CJTXN6.js.map} +0 -0
  35. /package/dist/{chunk-LDMYHWUS.js.map → chunk-MCOU6CZS.js.map} +0 -0
  36. /package/dist/{dist-J2IHD5T7.js.map → dist-AGTIA7AD.js.map} +0 -0
  37. /package/dist/{dist-3IMQNTTV.js.map → dist-FIFEFKJ7.js.map} +0 -0
  38. /package/dist/{dist-34RKQ74M.js.map → dist-JZ3XO6EB.js.map} +0 -0
  39. /package/dist/{dist-4DPOL5A7.js.map → dist-OGJGZETZ.js.map} +0 -0
  40. /package/dist/{dist-57M6ZA7H.js.map → dist-S4XR4ACV.js.map} +0 -0
@@ -26,6 +26,7 @@ import {
26
26
  hashProjectPath,
27
27
  hostClaudeBackupExpired,
28
28
  isRealAgentCredential,
29
+ loadEffectiveConfig,
29
30
  portlessAlias,
30
31
  portlessGetUrl,
31
32
  portlessUnalias,
@@ -42,7 +43,7 @@ import {
42
43
  stageOpencodeStateForUpload,
43
44
  stageOpencodeStaticForUpload,
44
45
  syncClaudeCredentials
45
- } from "./chunk-TCS5HXJX.js";
46
+ } from "./chunk-MLMFNN4T.js";
46
47
  import {
47
48
  DEFAULT_BOX_IMAGE,
48
49
  allocateProjectIndex,
@@ -686,7 +687,8 @@ async function uploadOneEntry(args) {
686
687
  const isDir = entry.kind === "dir";
687
688
  const parentDir = isDir ? boxDest : dirnameUnix(boxDest);
688
689
  const localTar = join4(args.stageDir, `carry-${String(args.index)}.tar`);
689
- const tarArgs = isDir ? ["-C", entry.absSrc, "-cf", localTar, "."] : ["-C", dirnameUnix(entry.absSrc), "-cf", localTar, basenameUnix(entry.absSrc)];
690
+ const excludeArgs = isDir ? (entry.exclude ?? []).map((p) => `--exclude=${p}`) : [];
691
+ const tarArgs = isDir ? ["-C", entry.absSrc, "-cf", localTar, ...excludeArgs, "."] : ["-C", dirnameUnix(entry.absSrc), "-cf", localTar, basenameUnix(entry.absSrc)];
690
692
  const packed = await execa3("tar", tarArgs, { reject: false });
691
693
  if (packed.exitCode !== 0) {
692
694
  throw new Error(`tar pack failed: ${String(packed.stderr).slice(0, 300)}`);
@@ -770,7 +772,7 @@ function isPlainObject(v) {
770
772
  }
771
773
  var REMOTE_UP_TAR = "/tmp/agentbox-cp-up.tar.gz";
772
774
  var REMOTE_DOWN_TAR = "/tmp/agentbox-cp-down.tar.gz";
773
- async function uploadToCloudBox(backend, handle, hostSrc, boxDst) {
775
+ async function uploadToCloudBox(backend, handle, hostSrc, boxDst, exclude) {
774
776
  const srcAbs = hostResolve(hostSrc);
775
777
  if (!existsSync(srcAbs)) throw new Error(`source not found: ${hostSrc}`);
776
778
  const srcBasename = hostBasename(srcAbs);
@@ -788,7 +790,8 @@ async function uploadToCloudBox(backend, handle, hostSrc, boxDst) {
788
790
  const stage = await mkdtemp4(hostJoin(tmpdir4(), "agentbox-cp-up-"));
789
791
  const localTar = hostJoin(stage, "payload.tar.gz");
790
792
  try {
791
- await execa4("tar", ["-C", srcParent, "-czf", localTar, srcBasename], {
793
+ const excludeArgs = (exclude ?? []).map((p) => `--exclude=${p}`);
794
+ await execa4("tar", ["-C", srcParent, "-czf", localTar, ...excludeArgs, srcBasename], {
792
795
  env: { ...process.env, COPYFILE_DISABLE: "1" }
793
796
  });
794
797
  await backend.uploadFile(handle, localTar, REMOTE_UP_TAR);
@@ -842,7 +845,7 @@ async function pullCloudDirContents(backend, handle, boxSrcDir, hostDstDir) {
842
845
  }
843
846
  return { finalPath: dstAbs };
844
847
  }
845
- async function downloadFromCloudBox(backend, handle, boxSrc, hostDst) {
848
+ async function downloadFromCloudBox(backend, handle, boxSrc, hostDst, exclude) {
846
849
  const srcBasename = posix.basename(boxSrc);
847
850
  const srcParent = posix.dirname(boxSrc);
848
851
  const dstAbs = hostResolve(hostDst);
@@ -861,10 +864,11 @@ async function downloadFromCloudBox(backend, handle, boxSrc, hostDst) {
861
864
  const stage = await mkdtemp4(hostJoin(tmpdir4(), "agentbox-cp-down-"));
862
865
  const localTar = hostJoin(stage, "payload.tar.gz");
863
866
  try {
867
+ const excludeArgs = (exclude ?? []).map((p) => `--exclude=${quoteShellArg(p)}`).join(" ");
864
868
  const packScript = [
865
869
  `set -euo pipefail`,
866
870
  `cd ${quoteShellArg(srcParent)}`,
867
- `tar -czf ${quoteShellArg(REMOTE_DOWN_TAR)} ${quoteShellArg(srcBasename)}`
871
+ `tar -czf ${quoteShellArg(REMOTE_DOWN_TAR)} ${excludeArgs} ${quoteShellArg(srcBasename)}`
868
872
  ].join("\n");
869
873
  const r = await backend.exec(handle, bashScript(packScript));
870
874
  if (r.exitCode !== 0) {
@@ -1428,7 +1432,8 @@ function createCloudProvider(backend, opts = {}) {
1428
1432
  previewToken: relayPreview.token,
1429
1433
  bridgeToken: box.cloud.bridgeToken,
1430
1434
  createdAt: box.createdAt,
1431
- projectIndex: box.projectIndex
1435
+ projectIndex: box.projectIndex,
1436
+ autoApproveHostActions: box.autoApproveHostActions
1432
1437
  });
1433
1438
  } catch {
1434
1439
  }
@@ -1686,6 +1691,7 @@ function createCloudProvider(backend, opts = {}) {
1686
1691
  }
1687
1692
  const state = await readState();
1688
1693
  const projectIndex = req.projectRoot ? allocateProjectIndex(state, req.projectRoot) : void 0;
1694
+ const autoApproveHostActions = (await loadEffectiveConfig(req.projectRoot ?? req.workspacePath)).effective.box.autoApproveHostActions;
1689
1695
  if (relayPreview) {
1690
1696
  try {
1691
1697
  await registerBoxWithRelay({
@@ -1698,7 +1704,8 @@ function createCloudProvider(backend, opts = {}) {
1698
1704
  previewUrl: relayPreview.url,
1699
1705
  previewToken: relayPreview.token,
1700
1706
  bridgeToken,
1701
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
1707
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
1708
+ autoApproveHostActions
1702
1709
  });
1703
1710
  } catch (err) {
1704
1711
  log(
@@ -1724,6 +1731,7 @@ function createCloudProvider(backend, opts = {}) {
1724
1731
  relayToken,
1725
1732
  withPlaywright: req.withPlaywright,
1726
1733
  withEnv: req.withEnv,
1734
+ autoApproveHostActions: autoApproveHostActions ? true : void 0,
1727
1735
  carry: carrySummary,
1728
1736
  portlessAlias: portlessAliasName,
1729
1737
  portlessUrl: portlessUrlResolved,
@@ -1874,11 +1882,11 @@ function createCloudProvider(backend, opts = {}) {
1874
1882
  } : void 0;
1875
1883
  return { argv: fullArgv, cleanup };
1876
1884
  },
1877
- async uploadPath(box, hostSrc, boxDst) {
1878
- return uploadToCloudBox(backend, handleFor(box), hostSrc, boxDst);
1885
+ async uploadPath(box, hostSrc, boxDst, exclude) {
1886
+ return uploadToCloudBox(backend, handleFor(box), hostSrc, boxDst, exclude);
1879
1887
  },
1880
- async downloadPath(box, boxSrc, hostDst) {
1881
- return downloadFromCloudBox(backend, handleFor(box), boxSrc, hostDst);
1888
+ async downloadPath(box, boxSrc, hostDst, exclude) {
1889
+ return downloadFromCloudBox(backend, handleFor(box), boxSrc, hostDst, exclude);
1882
1890
  },
1883
1891
  async downloadDirContents(box, boxSrc, hostDst) {
1884
1892
  return pullCloudDirContents(backend, handleFor(box), boxSrc, hostDst);
@@ -2057,4 +2065,4 @@ export {
2057
2065
  createCloudProvider,
2058
2066
  renderInnerCommand
2059
2067
  };
2060
- //# sourceMappingURL=chunk-TBSIJVSN.js.map
2068
+ //# sourceMappingURL=chunk-E7CHS7ZR.js.map