@todoforai/edge 0.13.5 → 0.13.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.
- package/dist/index.js +135 -11
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -48974,7 +48974,8 @@ var tool_catalog_default = {
|
|
|
48974
48974
|
capabilities: "Create & manage TODOs, run workflows, API access",
|
|
48975
48975
|
statusCmd: "todoai --help >/dev/null 2>&1",
|
|
48976
48976
|
installCmd: "bun add -g @todoforai/cli",
|
|
48977
|
-
versionCmd: "todoai --version 2>/dev/null | head -1"
|
|
48977
|
+
versionCmd: "todoai --version 2>/dev/null | head -1",
|
|
48978
|
+
preinstall: true
|
|
48978
48979
|
},
|
|
48979
48980
|
newman: {
|
|
48980
48981
|
category: "testing",
|
|
@@ -48985,6 +48986,16 @@ var tool_catalog_default = {
|
|
|
48985
48986
|
capabilities: "Run API test collections, CI/CD integration, HTML reports",
|
|
48986
48987
|
versionCmd: "newman --version 2>/dev/null | head -1"
|
|
48987
48988
|
},
|
|
48989
|
+
curl: {
|
|
48990
|
+
category: "networking",
|
|
48991
|
+
pkg: "curl",
|
|
48992
|
+
installer: "system",
|
|
48993
|
+
label: "curl",
|
|
48994
|
+
statusCmd: "curl --version >/dev/null 2>&1",
|
|
48995
|
+
capabilities: "HTTP/HTTPS/FTP client: GET/POST/PUT/DELETE, headers, auth, file upload/download, follow redirects, cookies, TLS.",
|
|
48996
|
+
versionCmd: "curl --version 2>/dev/null | head -1",
|
|
48997
|
+
preinstall: true
|
|
48998
|
+
},
|
|
48988
48999
|
cloudflared: {
|
|
48989
49000
|
category: "networking",
|
|
48990
49001
|
pkg: "cloudflared",
|
|
@@ -49091,6 +49102,7 @@ var tool_catalog_default = {
|
|
|
49091
49102
|
capabilities: "Spawn a TODO for AI sub-agent (FluidAgent) from the CLI; pipe stdin in, get an answer out",
|
|
49092
49103
|
description: 'Run a sub-agent task from a shell block. Usage: `todoforai-subagent [-m model] [-s :preset|@file|text] [--tools read,grep,bash] "<question>"`. Pipe stdin to include input context. Presets: :review, :explore, :plan, :summarize. Auth via TODOFORAI_API_KEY (auto-injected by edge).',
|
|
49093
49104
|
versionCmd: "todoforai-subagent --version 2>/dev/null | head -1",
|
|
49105
|
+
installCmd: "bun add -g @todoforai/subagent",
|
|
49094
49106
|
preinstall: true
|
|
49095
49107
|
},
|
|
49096
49108
|
"todoforai-review": {
|
|
@@ -49101,6 +49113,7 @@ var tool_catalog_default = {
|
|
|
49101
49113
|
capabilities: "Review a git diff with a sub-agent: assess goal, find issues, suggest simpler approaches",
|
|
49102
49114
|
description: 'Capture `git diff` and ask a read-only sub-agent to review it. Usage: `todoforai-review [--repo <path>] [--against <ref>] "<goal>"`. Default diffs uncommitted changes vs HEAD. Wraps `todoforai-subagent --sysmsg :review --tools read,grep,bash`.',
|
|
49103
49115
|
versionCmd: "todoforai-review --version 2>/dev/null | head -1",
|
|
49116
|
+
installCmd: "bun add -g @todoforai/review",
|
|
49104
49117
|
preinstall: true
|
|
49105
49118
|
},
|
|
49106
49119
|
"todoforai-explore": {
|
|
@@ -49111,6 +49124,7 @@ var tool_catalog_default = {
|
|
|
49111
49124
|
capabilities: "Explore a codebase with a sub-agent: map structure, find patterns, surface relevant files",
|
|
49112
49125
|
description: 'Ask a read-only sub-agent to explore a codebase. Usage: `todoforai-explore [--repo <path>] "<question>"`. Sub-agent uses read/grep/bash to investigate and reports findings with file:line citations. Wraps `todoforai-subagent --sysmsg :explore`.',
|
|
49113
49126
|
versionCmd: "todoforai-explore --version 2>/dev/null | head -1",
|
|
49127
|
+
installCmd: "bun add -g @todoforai/explore",
|
|
49114
49128
|
preinstall: true
|
|
49115
49129
|
},
|
|
49116
49130
|
"todoforai-summary": {
|
|
@@ -49121,7 +49135,71 @@ var tool_catalog_default = {
|
|
|
49121
49135
|
capabilities: "Summarize files or piped input via a sub-agent",
|
|
49122
49136
|
description: 'Summarize file contents or stdin. Usage: `todoforai-summary [-f <file>]... [<files...>] [<focus>]` or `cat x | todoforai-summary "focus"`. Wraps `todoforai-subagent --sysmsg :summarize`.',
|
|
49123
49137
|
versionCmd: "todoforai-summary --version 2>/dev/null | head -1",
|
|
49138
|
+
installCmd: "bun add -g @todoforai/summary",
|
|
49124
49139
|
preinstall: true
|
|
49140
|
+
},
|
|
49141
|
+
ripgrep: {
|
|
49142
|
+
category: "development",
|
|
49143
|
+
pkg: "ripgrep",
|
|
49144
|
+
installer: "binary",
|
|
49145
|
+
label: "ripgrep (rg)",
|
|
49146
|
+
capabilities: "Fast recursive grep with regex, .gitignore-aware, parallel, unicode-correct",
|
|
49147
|
+
description: "Fast code/text search. Usage: `rg <pattern> [path]`, `-i` case-insensitive, `-l` files only, `-t <lang>` filter by language, `-g '<glob>'` filter by glob, `-C N` context. Prefer over `grep -r`.",
|
|
49148
|
+
versionCmd: "rg --version 2>/dev/null | head -1",
|
|
49149
|
+
preinstall: true,
|
|
49150
|
+
binary: {
|
|
49151
|
+
"linux-x86_64": { url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-unknown-linux-musl.tar.gz", archive: "tar.gz", extract: "ripgrep-14.1.1-x86_64-unknown-linux-musl/rg" },
|
|
49152
|
+
"linux-aarch64": { url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-aarch64-unknown-linux-gnu.tar.gz", archive: "tar.gz", extract: "ripgrep-14.1.1-aarch64-unknown-linux-gnu/rg" },
|
|
49153
|
+
"darwin-x86_64": { url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-apple-darwin.tar.gz", archive: "tar.gz", extract: "ripgrep-14.1.1-x86_64-apple-darwin/rg" },
|
|
49154
|
+
"darwin-aarch64": { url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-aarch64-apple-darwin.tar.gz", archive: "tar.gz", extract: "ripgrep-14.1.1-aarch64-apple-darwin/rg" },
|
|
49155
|
+
"windows-x86_64": { url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-pc-windows-msvc.zip", archive: "zip", extract: "ripgrep-14.1.1-x86_64-pc-windows-msvc/rg.exe" }
|
|
49156
|
+
},
|
|
49157
|
+
binName: "rg"
|
|
49158
|
+
},
|
|
49159
|
+
fd: {
|
|
49160
|
+
category: "development",
|
|
49161
|
+
pkg: "fd-find",
|
|
49162
|
+
installer: "binary",
|
|
49163
|
+
label: "fd",
|
|
49164
|
+
capabilities: "Fast user-friendly find replacement: regex by default, .gitignore-aware, parallel",
|
|
49165
|
+
description: "Find files/dirs by name. Usage: `fd <pattern> [path]`, `-e <ext>` filter by extension, `-t f|d` type, `-H` include hidden, `-x <cmd>` exec per match.",
|
|
49166
|
+
versionCmd: "fd --version 2>/dev/null | head -1",
|
|
49167
|
+
preinstall: true,
|
|
49168
|
+
binary: {
|
|
49169
|
+
"linux-x86_64": { url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-unknown-linux-musl.tar.gz", archive: "tar.gz", extract: "fd-v10.2.0-x86_64-unknown-linux-musl/fd" },
|
|
49170
|
+
"linux-aarch64": { url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-aarch64-unknown-linux-gnu.tar.gz", archive: "tar.gz", extract: "fd-v10.2.0-aarch64-unknown-linux-gnu/fd" },
|
|
49171
|
+
"darwin-x86_64": { url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-apple-darwin.tar.gz", archive: "tar.gz", extract: "fd-v10.2.0-x86_64-apple-darwin/fd" },
|
|
49172
|
+
"darwin-aarch64": { url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-aarch64-apple-darwin.tar.gz", archive: "tar.gz", extract: "fd-v10.2.0-aarch64-apple-darwin/fd" },
|
|
49173
|
+
"windows-x86_64": { url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-pc-windows-msvc.zip", archive: "zip", extract: "fd-v10.2.0-x86_64-pc-windows-msvc/fd.exe" }
|
|
49174
|
+
},
|
|
49175
|
+
binName: "fd"
|
|
49176
|
+
},
|
|
49177
|
+
jq: {
|
|
49178
|
+
category: "development",
|
|
49179
|
+
pkg: "jq",
|
|
49180
|
+
installer: "binary",
|
|
49181
|
+
label: "jq",
|
|
49182
|
+
capabilities: "Command-line JSON processor: query, filter, transform, format JSON streams",
|
|
49183
|
+
description: "JSON pipeline tool. Usage: `cat x.json | jq '.field'`, `jq -r` raw output, `jq '.[] | select(.k==\"v\")'`, `jq -s` slurp array. Pairs well with curl/rg.",
|
|
49184
|
+
versionCmd: "jq --version 2>/dev/null | head -1",
|
|
49185
|
+
preinstall: true,
|
|
49186
|
+
binary: {
|
|
49187
|
+
"linux-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64", archive: "raw" },
|
|
49188
|
+
"linux-aarch64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-arm64", archive: "raw" },
|
|
49189
|
+
"darwin-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-amd64", archive: "raw" },
|
|
49190
|
+
"darwin-aarch64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-arm64", archive: "raw" },
|
|
49191
|
+
"windows-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe", archive: "raw" }
|
|
49192
|
+
},
|
|
49193
|
+
binName: "jq"
|
|
49194
|
+
},
|
|
49195
|
+
patch: {
|
|
49196
|
+
category: "development",
|
|
49197
|
+
pkg: "patch",
|
|
49198
|
+
installer: "system",
|
|
49199
|
+
label: "GNU patch",
|
|
49200
|
+
capabilities: "Apply unified/context diff patches to files; reverse, dry-run, fuzzy matching",
|
|
49201
|
+
description: "Apply diffs. Usage: `patch -p1 < changes.diff` (strip 1 leading path component), `--dry-run` to preview, `-R` to reverse, `-N` skip already-applied. Reads unified (`diff -u`) or context diffs.",
|
|
49202
|
+
versionCmd: "patch --version 2>/dev/null | head -1"
|
|
49125
49203
|
}
|
|
49126
49204
|
};
|
|
49127
49205
|
|
|
@@ -49365,6 +49443,30 @@ function installWithNpm(name, pkg) {
|
|
|
49365
49443
|
throw new Error(`npm install failed (exit ${result.status}) | stderr: ${stderr || "(empty)"} | stdout: ${stdout || "(empty)"}`);
|
|
49366
49444
|
}
|
|
49367
49445
|
}
|
|
49446
|
+
function installWithBun(name, pkg) {
|
|
49447
|
+
const TIMEOUT_MS = 120000;
|
|
49448
|
+
log2("info", `Installing ${name} via bun (${pkg})`);
|
|
49449
|
+
fs3.mkdirSync(TOOLS_DIR, { recursive: true });
|
|
49450
|
+
const result = spawnSync("bun", ["add", "--cwd", TOOLS_DIR, pkg], {
|
|
49451
|
+
stdio: "pipe",
|
|
49452
|
+
timeout: TIMEOUT_MS,
|
|
49453
|
+
shell: true
|
|
49454
|
+
});
|
|
49455
|
+
const stderr = result.stderr?.toString().trim() || "";
|
|
49456
|
+
const stdout = result.stdout?.toString().trim() || "";
|
|
49457
|
+
if (result.error) {
|
|
49458
|
+
throw new Error(`bun add failed: ${result.error.message} | stderr: ${stderr || "(empty)"} | stdout: ${stdout || "(empty)"}`);
|
|
49459
|
+
}
|
|
49460
|
+
if (result.signal) {
|
|
49461
|
+
throw new Error(`bun add killed by ${result.signal}${result.signal === "SIGTERM" ? ` (likely timed out after ${TIMEOUT_MS / 1000}s)` : ""} | stderr: ${stderr || "(empty)"}`);
|
|
49462
|
+
}
|
|
49463
|
+
if (result.status === null) {
|
|
49464
|
+
throw new Error(`bun add: null exit code (likely timed out after ${TIMEOUT_MS / 1000}s) | stderr: ${stderr || "(empty)"} | stdout: ${stdout || "(empty)"}`);
|
|
49465
|
+
}
|
|
49466
|
+
if (result.status !== 0) {
|
|
49467
|
+
throw new Error(`bun add failed (exit ${result.status}) | stderr: ${stderr || "(empty)"} | stdout: ${stdout || "(empty)"}`);
|
|
49468
|
+
}
|
|
49469
|
+
}
|
|
49368
49470
|
function installWithPip(name, pkg) {
|
|
49369
49471
|
const venvDir = path3.join(TOOLS_DIR, "venv");
|
|
49370
49472
|
const venvPython = os3.platform() === "win32" ? path3.join(venvDir, "Scripts", "python.exe") : path3.join(venvDir, "bin", "python");
|
|
@@ -49427,9 +49529,13 @@ function installWithPip(name, pkg) {
|
|
|
49427
49529
|
}
|
|
49428
49530
|
var INSTALLERS = {
|
|
49429
49531
|
npm: installWithNpm,
|
|
49532
|
+
bun: installWithBun,
|
|
49430
49533
|
pip: installWithPip,
|
|
49431
49534
|
binary: async (name, _pkg) => {
|
|
49432
49535
|
await installBinary(name);
|
|
49536
|
+
},
|
|
49537
|
+
system: () => {
|
|
49538
|
+
log2("warn", "system-installer tools are not auto-installed; install via apt/brew");
|
|
49433
49539
|
}
|
|
49434
49540
|
};
|
|
49435
49541
|
var installing = new Set;
|
|
@@ -49474,6 +49580,8 @@ function uninstallTool(name) {
|
|
|
49474
49580
|
}
|
|
49475
49581
|
} else if (installerType === "npm") {
|
|
49476
49582
|
spawnSync("npm", ["uninstall", "--prefix", TOOLS_DIR, pkg], { stdio: "pipe", timeout: 30000, shell: true });
|
|
49583
|
+
} else if (installerType === "bun") {
|
|
49584
|
+
spawnSync("bun", ["remove", "--cwd", TOOLS_DIR, pkg], { stdio: "pipe", timeout: 30000, shell: true });
|
|
49477
49585
|
} else if (installerType === "pip") {
|
|
49478
49586
|
const venvPython = os3.platform() === "win32" ? path3.join(TOOLS_DIR, "venv", "Scripts", "python.exe") : path3.join(TOOLS_DIR, "venv", "bin", "python");
|
|
49479
49587
|
const python = fs3.existsSync(venvPython) ? venvPython : "python3";
|
|
@@ -49698,9 +49806,11 @@ import fs4 from "fs";
|
|
|
49698
49806
|
// node_modules/fflate/esm/index.mjs
|
|
49699
49807
|
import { createRequire as createRequire2 } from "module";
|
|
49700
49808
|
var require2 = createRequire2("/");
|
|
49809
|
+
var _a;
|
|
49701
49810
|
var Worker2;
|
|
49811
|
+
var isMarkedAsUntransferable;
|
|
49702
49812
|
try {
|
|
49703
|
-
|
|
49813
|
+
_a = require2("worker_threads"), Worker2 = _a.Worker, isMarkedAsUntransferable = _a.isMarkedAsUntransferable;
|
|
49704
49814
|
} catch (e) {}
|
|
49705
49815
|
var u8 = Uint8Array;
|
|
49706
49816
|
var u16 = Uint16Array;
|
|
@@ -50357,7 +50467,7 @@ var fltn = function(d, p, t, o) {
|
|
|
50357
50467
|
var val = d[k], n = p + k, op = o;
|
|
50358
50468
|
if (Array.isArray(val))
|
|
50359
50469
|
op = mrg(o, val[1]), val = val[0];
|
|
50360
|
-
if (val
|
|
50470
|
+
if (ArrayBuffer.isView(val))
|
|
50361
50471
|
t[n] = [val, op];
|
|
50362
50472
|
else {
|
|
50363
50473
|
t[n += "/"] = [new u8(0), op];
|
|
@@ -50440,14 +50550,28 @@ var slzh = function(d, b) {
|
|
|
50440
50550
|
return b + 30 + b2(d, b + 26) + b2(d, b + 28);
|
|
50441
50551
|
};
|
|
50442
50552
|
var zh = function(d, b, z) {
|
|
50443
|
-
var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl
|
|
50444
|
-
var _a2 =
|
|
50445
|
-
return [b2(d, b + 10), sc, su, fn, es +
|
|
50553
|
+
var fnl = b2(d, b + 28), efl = b2(d, b + 30), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;
|
|
50554
|
+
var _a2 = z64hs(d, es, efl, z, b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)), sc = _a2[0], su = _a2[1], off = _a2[2];
|
|
50555
|
+
return [b2(d, b + 10), sc, su, fn, es + efl + b2(d, b + 32), off];
|
|
50446
50556
|
};
|
|
50447
|
-
var
|
|
50448
|
-
|
|
50449
|
-
|
|
50450
|
-
|
|
50557
|
+
var z64hs = function(d, b, l, z, sc, su, off) {
|
|
50558
|
+
var nsc = sc == 4294967295, nsu = su == 4294967295, noff = off == 4294967295, e = b + l;
|
|
50559
|
+
var nf = nsc + nsu + noff;
|
|
50560
|
+
if (z && nf) {
|
|
50561
|
+
for (;b + 4 < e; b += 4 + b2(d, b + 2)) {
|
|
50562
|
+
if (b2(d, b) == 1) {
|
|
50563
|
+
return [
|
|
50564
|
+
nsc ? b8(d, b + 4 + 8 * nsu) : sc,
|
|
50565
|
+
nsu ? b8(d, b + 4) : su,
|
|
50566
|
+
noff ? b8(d, b + 4 + 8 * (nsu + nsc)) : off,
|
|
50567
|
+
1
|
|
50568
|
+
];
|
|
50569
|
+
}
|
|
50570
|
+
}
|
|
50571
|
+
if (z < 2)
|
|
50572
|
+
err(13);
|
|
50573
|
+
}
|
|
50574
|
+
return [sc, su, off, 0];
|
|
50451
50575
|
};
|
|
50452
50576
|
var exfl = function(ex) {
|
|
50453
50577
|
var le = 0;
|
|
@@ -50561,7 +50685,7 @@ function unzipSync(data, opts) {
|
|
|
50561
50685
|
if (!c)
|
|
50562
50686
|
return {};
|
|
50563
50687
|
var o = b4(data, e + 16);
|
|
50564
|
-
var z =
|
|
50688
|
+
var z = b4(data, e - 20) == 117853008;
|
|
50565
50689
|
if (z) {
|
|
50566
50690
|
var ze = b4(data, e - 12);
|
|
50567
50691
|
z = b4(data, ze) == 101075792;
|