@madarco/agentbox 0.1.0 → 0.2.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.
- package/dist/{chunk-O5HS3QHW.js → chunk-3NIZKZPJ.js} +67 -16
- package/dist/chunk-3NIZKZPJ.js.map +1 -0
- package/dist/{chunk-RWJE6AER.js → chunk-3NU4PS5W.js} +3 -3
- package/dist/{chunk-OOOKFFR5.js → chunk-3OPLNXQ5.js} +3 -3
- package/dist/{create-LSSO7H4I-GWNALUMF.js → create-SE6H4B5U-ESNDTXAI.js} +3 -3
- package/dist/index.js +150 -10
- package/dist/index.js.map +1 -1
- package/dist/{lifecycle-P4FSKGR2-3466P54Y.js → lifecycle-A4QHFADW-4DREGGAE.js} +3 -3
- package/package.json +3 -3
- package/runtime/docker/apps/cli/share/agentbox-setup/SKILL.md +8 -4
- package/share/agentbox-setup/SKILL.md +8 -4
- package/dist/chunk-O5HS3QHW.js.map +0 -1
- /package/dist/{chunk-RWJE6AER.js.map → chunk-3NU4PS5W.js.map} +0 -0
- /package/dist/{chunk-OOOKFFR5.js.map → chunk-3OPLNXQ5.js.map} +0 -0
- /package/dist/{create-LSSO7H4I-GWNALUMF.js.map → create-SE6H4B5U-ESNDTXAI.js.map} +0 -0
- /package/dist/{lifecycle-P4FSKGR2-3466P54Y.js.map → lifecycle-A4QHFADW-4DREGGAE.js.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
volumeExists
|
|
10
10
|
} from "./chunk-SOMIKEN2.js";
|
|
11
11
|
|
|
12
|
-
// ../../packages/sandbox-docker/dist/chunk-
|
|
12
|
+
// ../../packages/sandbox-docker/dist/chunk-DVEY57YJ.js
|
|
13
13
|
import { spawnSync } from "child_process";
|
|
14
14
|
import { mkdir, mkdtemp, readdir, readFile, rm, stat, writeFile } from "fs/promises";
|
|
15
15
|
import { homedir, tmpdir } from "os";
|
|
@@ -41,7 +41,7 @@ var RELAY_NETWORK_NAME = "agentbox-net";
|
|
|
41
41
|
var RELAY_IMAGE_REF = "agentbox/relay:dev";
|
|
42
42
|
var MAX_BODY_BYTES = 1024 * 1024;
|
|
43
43
|
|
|
44
|
-
// ../../packages/sandbox-docker/dist/chunk-
|
|
44
|
+
// ../../packages/sandbox-docker/dist/chunk-DVEY57YJ.js
|
|
45
45
|
function isHostPathHookCommand(command, hostHome) {
|
|
46
46
|
if (typeof command !== "string" || command.length === 0) return false;
|
|
47
47
|
if (hostHome.length === 0) return false;
|
|
@@ -384,6 +384,10 @@ function buildClaudeMounts(spec, hostEnv) {
|
|
|
384
384
|
};
|
|
385
385
|
}
|
|
386
386
|
var PLUGIN_INSTALLED_MARKER = ".agentbox-installed";
|
|
387
|
+
var PLUGIN_FAILED_MARKER = ".agentbox-install-failed";
|
|
388
|
+
var PLUGIN_INSTALL_BACKOFF_MS = 6 * 60 * 60 * 1e3;
|
|
389
|
+
var PLUGIN_INSTALL_BACKOFF_MIN = Math.round(PLUGIN_INSTALL_BACKOFF_MS / 6e4);
|
|
390
|
+
var NPM_CACHE_DIR = "/home/vscode/.claude/.agentbox-npm-cache";
|
|
387
391
|
async function isFile(p) {
|
|
388
392
|
try {
|
|
389
393
|
return (await stat(p)).isFile();
|
|
@@ -391,6 +395,14 @@ async function isFile(p) {
|
|
|
391
395
|
return false;
|
|
392
396
|
}
|
|
393
397
|
}
|
|
398
|
+
async function isRecentFailMarker(p) {
|
|
399
|
+
try {
|
|
400
|
+
const st = await stat(p);
|
|
401
|
+
return Date.now() - st.mtimeMs < PLUGIN_INSTALL_BACKOFF_MS;
|
|
402
|
+
} catch {
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
394
406
|
async function isDir(p) {
|
|
395
407
|
try {
|
|
396
408
|
return (await stat(p)).isDirectory();
|
|
@@ -428,6 +440,7 @@ async function scanPluginCacheForRebuild(cacheRoot) {
|
|
|
428
440
|
const vPath = join(pPath, v.name);
|
|
429
441
|
if (!await isFile(join(vPath, "package.json"))) continue;
|
|
430
442
|
if (await isFile(join(vPath, PLUGIN_INSTALLED_MARKER))) continue;
|
|
443
|
+
if (await isRecentFailMarker(join(vPath, PLUGIN_FAILED_MARKER))) continue;
|
|
431
444
|
return true;
|
|
432
445
|
}
|
|
433
446
|
}
|
|
@@ -448,28 +461,66 @@ async function rebuildPluginNativeDeps(container, opts = {}) {
|
|
|
448
461
|
}
|
|
449
462
|
const script = `set -u
|
|
450
463
|
PLUGINS_DIR=/home/vscode/.claude/plugins/cache
|
|
451
|
-
MARKER
|
|
452
|
-
|
|
464
|
+
MARKER=${PLUGIN_INSTALLED_MARKER}
|
|
465
|
+
FAILMARKER=${PLUGIN_FAILED_MARKER}
|
|
466
|
+
NPM_CACHE=${NPM_CACHE_DIR}
|
|
467
|
+
BACKOFF_MIN=${PLUGIN_INSTALL_BACKOFF_MIN}
|
|
468
|
+
MAX=4
|
|
469
|
+
[ -d "$PLUGINS_DIR" ] || exit 0
|
|
470
|
+
mkdir -p "$NPM_CACHE"
|
|
471
|
+
WORK=$(mktemp -d)
|
|
472
|
+
relkey() { printf '%s' "\${1#$PLUGINS_DIR/}" | tr '/' '_'; }
|
|
473
|
+
# Run one plugin's install. $1 is frozen by value at call time, so it's safe
|
|
474
|
+
# to read from the backgrounded subshell; the rest are set-once constants.
|
|
475
|
+
do_one() {
|
|
476
|
+
d=$1
|
|
477
|
+
key=$(relkey "$d")
|
|
478
|
+
if (cd "$d" && \\
|
|
479
|
+
if [ -f package-lock.json ]; then \\
|
|
480
|
+
npm ci --no-audit --no-fund --silent --prefer-offline --cache "$NPM_CACHE"; \\
|
|
481
|
+
else \\
|
|
482
|
+
npm install --no-audit --no-fund --silent --no-package-lock --prefer-offline --cache "$NPM_CACHE"; \\
|
|
483
|
+
fi) >"$WORK/$key.out" 2>"$WORK/$key.err"; then
|
|
484
|
+
touch "$d/$MARKER"
|
|
485
|
+
rm -f "$d/$FAILMARKER"
|
|
486
|
+
printf 'OK\\n' > "$WORK/$key.res"
|
|
487
|
+
else
|
|
488
|
+
: > "$d/$FAILMARKER"
|
|
489
|
+
printf 'FAIL\\n' > "$WORK/$key.res"
|
|
490
|
+
fi
|
|
491
|
+
}
|
|
492
|
+
n=0
|
|
453
493
|
for dir in "$PLUGINS_DIR"/*/*/*/; do
|
|
454
494
|
[ -d "$dir" ] || continue
|
|
455
495
|
[ -f "$dir/package.json" ] || continue
|
|
456
496
|
[ -f "$dir/$MARKER" ] && continue
|
|
457
|
-
|
|
458
|
-
echo "REBUILD_START
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
497
|
+
[ -n "$(find "$dir" -maxdepth 1 -name "$FAILMARKER" -mmin -$BACKOFF_MIN 2>/dev/null)" ] && continue
|
|
498
|
+
echo "REBUILD_START \${dir#$PLUGINS_DIR/}"
|
|
499
|
+
n=$((n+1))
|
|
500
|
+
printf '%s\\n' "$dir" >> "$WORK/dirs"
|
|
501
|
+
done
|
|
502
|
+
if [ "$n" -eq 0 ]; then rm -rf "$WORK"; exit 0; fi
|
|
503
|
+
running=0
|
|
504
|
+
while IFS= read -r dir; do
|
|
505
|
+
do_one "$dir" &
|
|
506
|
+
running=$((running+1))
|
|
507
|
+
if [ "$running" -ge "$MAX" ]; then wait; running=0; fi
|
|
508
|
+
done < "$WORK/dirs"
|
|
509
|
+
wait
|
|
510
|
+
while IFS= read -r dir; do
|
|
511
|
+
key=$(relkey "$dir")
|
|
512
|
+
rel=\${dir#$PLUGINS_DIR/}
|
|
513
|
+
[ -f "$WORK/$key.res" ] || continue
|
|
514
|
+
read -r st < "$WORK/$key.res"
|
|
515
|
+
if [ "$st" = OK ]; then
|
|
466
516
|
echo "REBUILD_OK $rel"
|
|
467
517
|
else
|
|
468
518
|
echo "REBUILD_FAIL $rel"
|
|
469
|
-
sed 's/^/ /'
|
|
519
|
+
sed 's/^/ /' "$WORK/$key.err"
|
|
470
520
|
echo "REBUILD_FAIL_END"
|
|
471
521
|
fi
|
|
472
|
-
done
|
|
522
|
+
done < "$WORK/dirs"
|
|
523
|
+
rm -rf "$WORK"
|
|
473
524
|
`;
|
|
474
525
|
const result = await execa(
|
|
475
526
|
"docker",
|
|
@@ -2161,4 +2212,4 @@ export {
|
|
|
2161
2212
|
ConfigError,
|
|
2162
2213
|
loadConfig
|
|
2163
2214
|
};
|
|
2164
|
-
//# sourceMappingURL=chunk-
|
|
2215
|
+
//# sourceMappingURL=chunk-3NIZKZPJ.js.map
|