@todoforai/edge 0.13.16 → 0.13.18

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 (2) hide show
  1. package/dist/index.js +100 -42
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -48198,7 +48198,10 @@ class ApiClient {
48198
48198
  return this.request("GET", `/api/v1/todos/${todoId}`);
48199
48199
  }
48200
48200
  updateTodoStatus(todoId, status) {
48201
- return this.request("PUT", `/api/v1/todos/${todoId}`, { status });
48201
+ return this.request("PATCH", `/api/v1/todos/${todoId}/status`, { status });
48202
+ }
48203
+ deleteTodo(todoId) {
48204
+ return this.request("DELETE", `/api/v1/todos/${todoId}`);
48202
48205
  }
48203
48206
  listAgentSettings(filters) {
48204
48207
  const params = new URLSearchParams;
@@ -48795,7 +48798,7 @@ var tool_catalog_default = {
48795
48798
  "~/.tiktok/cookies.txt"
48796
48799
  ],
48797
48800
  capabilities: "Upload videos, batch uploads, schedule posts, custom covers, hashtags & mentions",
48798
- description: "Use to upload videos to TikTok (single or batch), schedule posts, set covers/hashtags/mentions. Cookie-based auth: run `npx @todoforai/tiktok-cookie-helper` → log in to tiktok.com → export cookies via 'Get cookies.txt LOCALLY' extension → saved to ~/.tiktok/cookies.txt.",
48801
+ description: "Upload videos to TikTok, schedule posts, set covers and hashtags.",
48799
48802
  versionCmd: "pip show tiktok-uploader 2>/dev/null | grep -oP 'Version: \\K.*'"
48800
48803
  },
48801
48804
  instagrapi: {
@@ -48804,7 +48807,7 @@ var tool_catalog_default = {
48804
48807
  installer: "pip",
48805
48808
  label: "Instagram",
48806
48809
  capabilities: "Upload photos & reels, post stories, send DMs, like & comment, manage followers",
48807
- description: 'Use for Instagram automation: upload photos/reels, post stories, DMs, like/comment, follower management. Python library; call via `python3 -c "from instagrapi import Client; ..."`.',
48810
+ description: "Instagram automation: upload photos/reels, stories, DMs, likes, follower management.",
48808
48811
  versionCmd: "pip show instagrapi 2>/dev/null | grep -oP 'Version: \\K.*'"
48809
48812
  },
48810
48813
  mudslide: {
@@ -48831,7 +48834,7 @@ var tool_catalog_default = {
48831
48834
  "~/.config/telegram-send/telegram-send.conf"
48832
48835
  ],
48833
48836
  capabilities: "Send messages, send files & images, send video & audio, Markdown/HTML formatting, channel & group support",
48834
- description: "Use to send Telegram messages/files from CLI (one-way bot output). Configure once with `telegram-send --configure`. For full Telegram automation use a different tool.",
48837
+ description: "Send Telegram messages and files from CLI via a bot.",
48835
48838
  versionCmd: "telegram-send --version 2>/dev/null | head -1"
48836
48839
  },
48837
48840
  "apollo-api": {
@@ -48850,7 +48853,7 @@ var tool_catalog_default = {
48850
48853
  label: "Meta Ads",
48851
48854
  statusCmd: "meta auth status 2>&1",
48852
48855
  capabilities: "Meta/Facebook & Instagram ad campaigns: campaigns/adsets/ads CRUD, insights & reporting, catalog/product-feed/product-set/product-item, ad creatives, datasets (pixels), pages — Marketing API via the official `meta` CLI.",
48853
- description: "Auth via env vars (no login command): set ACCESS_TOKEN (Meta Marketing API user/system token) and AD_ACCOUNT_ID (e.g. act_123456); optionally BUSINESS_ID for dataset commands. Get a token at https://developers.facebook.com/tools/explorer with scopes ads_management, ads_read, business_management — or use a System User token from Business Manager (no expiry). `meta auth status` only checks if ACCESS_TOKEN is set, not if it's valid; run `meta ads campaign list` to validate. Examples: `meta ads campaign list`, `meta ads insights get --date-preset last_7d`, `meta ads adset get 123456 --output json`. Output: table|json|plain via `-o`.",
48856
+ description: "Manage Meta/Facebook & Instagram ad campaigns, insights, creatives, and catalogs.",
48854
48857
  versionCmd: "meta --version 2>/dev/null | head -1"
48855
48858
  },
48856
48859
  "elevenlabs-api": {
@@ -48868,7 +48871,7 @@ var tool_catalog_default = {
48868
48871
  installer: "npm",
48869
48872
  label: "Image Gen",
48870
48873
  capabilities: "AI image generation & editing via TODOFORAI backend (gpt-image)",
48871
- description: 'Use to generate or edit images. Subcommands: `codex-imagegen-api generate "<prompt>" -o out.png [--size 1024x1024] [--quality low|medium|high]` and `codex-imagegen-api edit "<instruction>" -i in.png -o out.png` (repeat `-i` for multiple reference images).',
48874
+ description: "Generate or edit images with AI.",
48872
48875
  versionCmd: "codex-imagegen-api --version 2>/dev/null | head -1"
48873
48876
  },
48874
48877
  "suno-api": {
@@ -48891,7 +48894,7 @@ var tool_catalog_default = {
48891
48894
  "~/.config/notion"
48892
48895
  ],
48893
48896
  capabilities: "Official Notion CLI: workspace-wide OAuth login, raw API calls (`ntn api <path>`), page/datasource management, file uploads, Workers deploy.",
48894
- description: "Two auth tracks: (1) `ntn login` for Workers/internal commands (`ntn doctor`, `ntn workers`) — workspace OAuth stored in keychain. (2) Public REST API (`ntn api`, `ntn pages`, `ntn datasources`, `ntn files`) requires NOTION_API_TOKEN env var (integration token from https://www.notion.so/my-integrations) — and the target pages must be Connected to that integration via the Notion UI: page `...` → Connections. Examples: `ntn api /v1/users/me`, `ntn api /v1/search -X POST -d '{\"query\":\"...\"}'`, `ntn pages get <id>` (Markdown export), `ntn pages create --parent page:<id> --content '# Title'`, `ntn pages update <id> --content '...'`, `ntn pages trash <id> --yes`. Use `ntn datasources resolve <database-id>` then `ntn datasources query <data-source-id>`.",
48897
+ description: "Read, create, and update Notion pages and databases.",
48895
48898
  versionCmd: "ntn --version 2>/dev/null | head -1"
48896
48899
  },
48897
48900
  "perplexity-api": {
@@ -48900,7 +48903,7 @@ var tool_catalog_default = {
48900
48903
  installer: "npm",
48901
48904
  label: "Perplexity",
48902
48905
  capabilities: "AI-powered web search, chat completions, async chat, embeddings and agent runs",
48903
- description: "Use when you need current web-grounded answers with citations (news, prices, docs released after training cutoff). Prefer over plain LLM when freshness/sources matter. Needs PERPLEXITY_API_KEY.",
48906
+ description: "Web-grounded AI search with citations. Use when you need fresh information beyond training cutoff.",
48904
48907
  versionCmd: "perplexity-api --version 2>/dev/null | head -1"
48905
48908
  },
48906
48909
  gh: {
@@ -49085,8 +49088,8 @@ var tool_catalog_default = {
49085
49088
  pkg: "@todoforai/cli",
49086
49089
  installer: "bun",
49087
49090
  label: "TODOforAI",
49088
- capabilities: "Create & manage TODOs, run workflows, API access",
49089
- description: "Use to programmatically create/list/update TODOs in TODOforAI, kick off workflows, call the platform API.",
49091
+ capabilities: "Create/list/inspect/update TODOs, run templates & workflows, platform API access",
49092
+ description: "Use for the TODOforAI platform — this is how you reach the user's OWN TODOs: `todoai list` (filter with `--status open`) to browse them, `todoai \"prompt\"` to create one, `todoai --inspect <id>` to read a TODO's full chat log, `todoai status/addmessage/delete` to manage them, `--template` to run a registry workflow. Never claim you lack access to platform TODOs — reach them here; run `--help` for details.",
49090
49093
  installCmd: "bun add -g @todoforai/cli",
49091
49094
  versionCmd: "todoai --version 2>/dev/null | head -1",
49092
49095
  internal: true
@@ -49107,7 +49110,7 @@ var tool_catalog_default = {
49107
49110
  label: "Web Request",
49108
49111
  binName: "curl",
49109
49112
  capabilities: "HTTP/HTTPS/FTP client: GET/POST/PUT/DELETE, headers, auth, file upload/download, follow redirects, cookies, TLS.",
49110
- description: "Default tool for any HTTP request: hitting REST APIs, downloading files, testing endpoints. Common flags: `-s` silent, `-L` follow redirects, `-H 'Header: ...'`, `-X POST -d '...'`, `-o file`, `-f` fail on HTTP errors. Pipe into `jq` for JSON.",
49113
+ description: "",
49111
49114
  versionCmd: "curl --version 2>/dev/null | head -1",
49112
49115
  preinstallCloud: true,
49113
49116
  internal: true
@@ -49148,7 +49151,7 @@ var tool_catalog_default = {
49148
49151
  "~/.config/rclone/rclone.conf"
49149
49152
  ],
49150
49153
  capabilities: "Access Google Drive, OneDrive, Dropbox, S3 and 40+ cloud providers. List, copy, sync, move, mount files as virtual filesystem (FUSE). Use 'rclone config create <name> <provider>' to connect (opens browser for OAuth).",
49151
- description: "Use to access cloud storage (Drive/OneDrive/Dropbox/S3/40+). Connect: `rclone config create <name> <provider>` (OAuth via browser). Core ops: `rclone listremotes`, `rclone lsf <remote>:<path>`, `rclone cat <remote>:<file>`, `rclone copy|sync <src> <dst>`. Mount as FUSE (lazy fetch): `rclone mount <remote>: ~/.todoforai/mnt/<remote> --vfs-cache-mode full --daemon`; unmount with `fusermount -u <path>`. Note: FUSE `mount` needs /dev/fuse + CAP_SYS_ADMIN — works on VM sandboxes and bridge devices, but NOT in lite sandboxes; there use `lsf`/`cat`/`copy`/`sync` (HTTPS-only) instead. See `subProviders` for per-provider connect commands.",
49154
+ description: "Access cloud storage (Google Drive, OneDrive, Dropbox, S3, 40+ providers). List, copy, sync, or mount files.",
49152
49155
  subProviders: {
49153
49156
  gdrive: {
49154
49157
  label: "Google Drive",
@@ -49194,7 +49197,7 @@ var tool_catalog_default = {
49194
49197
  installer: "pip",
49195
49198
  label: "PDF",
49196
49199
  capabilities: "PDF text editing, extraction, merge, split",
49197
- description: "Use to programmatically read/edit/merge/split PDFs (text + positions). Call from `python3 -c`. Extract text: `pymupdf.open(p)[i].get_text()`; with bbox/font: `.get_text('dict')`. Replace text in place: `page.add_redact_annot(page.search_for('old')[0], text='new'); page.apply_redactions(); doc.save(out)`.",
49200
+ description: "Read, edit, merge, or split PDFs programmatically. Call via `python3 -c`.",
49198
49201
  versionCmd: "python3 -c 'import pymupdf; print(pymupdf.__version__)' 2>/dev/null",
49199
49202
  preinstallCloud: true
49200
49203
  },
@@ -49205,7 +49208,7 @@ var tool_catalog_default = {
49205
49208
  preinstallCloud: true,
49206
49209
  label: "Browser",
49207
49210
  capabilities: "Headless browser automation, web scraping, accessibility tree snapshots, screenshots, PDF generation",
49208
- description: "Headless browser for JS-rendered pages, automated flows, screenshots, PDF export. **Default browser choice** use this unless the user's own session/cookies are required (then use `todoforai-browser`). Prefer `curl` for plain HTTP. Commands: open <url>, click/type/fill <selector> <text>, snapshot (accessibility tree with @refs — use these for clicking), screenshot [path], pdf <path>, eval <js>, wait <selector|ms>.",
49211
+ description: "Headless browser. Use for JS-rendered pages, scraping, screenshots, PDFs, and automated flows. Default browser — prefer over `todoforai-browser` unless the user's own session is needed.",
49209
49212
  versionCmd: "agent-browser --version 2>/dev/null | head -1"
49210
49213
  },
49211
49214
  "todoforai-browser": {
@@ -49214,7 +49217,7 @@ var tool_catalog_default = {
49214
49217
  installer: "npm",
49215
49218
  label: "Browser (Extension)",
49216
49219
  capabilities: "Browser automation via extension (non-headless), web scraping, accessibility tree snapshots, screenshots, PDF generation",
49217
- description: "Drives the user's real browser via the TODOforAI extension (non-headless). Use when the task needs the user's actual session — logged-in accounts, saved cookies, extensions, MFA. For anything else prefer headless `agent-browser`. Commands: open <url>, click/type/fill <selector> <text>, snapshot (accessibility tree with @refs for clicking), screenshot [path], pdf <path>, eval <js>, wait <selector|ms>. Supports drag/drop, file uploads, form interactions.",
49220
+ description: "Drives the user's real browser via the extension. Use when the task needs the user's actual logged-in session, cookies, or MFA.",
49218
49221
  versionCmd: `node -p "require(require('child_process').execSync('which todoforai-browser',{encoding:'utf8'}).trim().replace(/\\/dist\\/index\\.js$/, '/package.json')).version" 2>/dev/null`,
49219
49222
  internal: true
49220
49223
  },
@@ -49224,7 +49227,7 @@ var tool_catalog_default = {
49224
49227
  installer: "npm",
49225
49228
  label: "Sub-agent",
49226
49229
  capabilities: "Spawn a TODO for AI sub-agent (FluidAgent) from the CLI; pipe stdin in, get an answer out",
49227
- 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).',
49230
+ description: "Spawn a sub-agent for a focused task. Pipe context via stdin.",
49228
49231
  versionCmd: "todoforai-subagent --version 2>/dev/null | head -1",
49229
49232
  installCmd: "bun add -g @todoforai/subagent",
49230
49233
  internal: true
@@ -49235,7 +49238,7 @@ var tool_catalog_default = {
49235
49238
  installer: "npm",
49236
49239
  label: "Summarize (Lite)",
49237
49240
  capabilities: "Summarize files or piped input via a sub-agent",
49238
- description: 'Summarize file contents or stdin. Usage: `todoforai-summary [-f <file>]... [<files...>] [<focus>]` or `cat x | todoforai-summary "focus"`. Wraps `todoforai-subagent --sysmsg :summarize`.',
49241
+ description: "Summarize files or piped content via a sub-agent.",
49239
49242
  versionCmd: "todoforai-summary --version 2>/dev/null | head -1",
49240
49243
  installCmd: "bun add -g @todoforai/summary",
49241
49244
  internal: true
@@ -49246,7 +49249,7 @@ var tool_catalog_default = {
49246
49249
  installer: "npm",
49247
49250
  label: "Explore",
49248
49251
  capabilities: "Explore a codebase as a real TODO: read-only agent maps structure, surfaces relevant files, streams findings to terminal",
49249
- description: 'Codebase exploration as a real TODO with patched permissions (read/grep/bash only) and live streaming. Usage: `tfa-explore [--repo <path>] "<question>"`. Creates a TODO visible in the UI and streams block events to stdout until DONE.',
49252
+ description: "Explore a codebase with a read-only sub-agent. Streams findings live.",
49250
49253
  versionCmd: "tfa-explore --version 2>/dev/null | head -1",
49251
49254
  installCmd: "bun add -g @todoforai/tfa-explore",
49252
49255
  preinstall: true,
@@ -49259,7 +49262,7 @@ var tool_catalog_default = {
49259
49262
  installer: "npm",
49260
49263
  label: "Review",
49261
49264
  capabilities: "Review a git diff as a real TODO: read-only agent assesses goal, finds issues, suggests simpler approaches",
49262
- description: 'Capture `git diff` and ask a read-only sub-agent to review it as a real TODO. Usage: `tfa-review [--repo <path>] [--against <ref>] "<goal>"`. Default diffs uncommitted changes vs HEAD. Streams block events to stdout until DONE.',
49265
+ description: "Review a git diff with a read-only sub-agent.",
49263
49266
  versionCmd: "tfa-review --version 2>/dev/null | head -1",
49264
49267
  installCmd: "bun add -g @todoforai/tfa-review",
49265
49268
  preinstall: true,
@@ -49272,7 +49275,7 @@ var tool_catalog_default = {
49272
49275
  installer: "npm",
49273
49276
  label: "Summarize",
49274
49277
  capabilities: "Summarize files or piped input as a real TODO with no-tools sub-agent",
49275
- description: 'Summarize file contents or stdin as a real TODO. Usage: `tfa-summary [-f <file>]... [<files...>] [<focus>]` or `cat x | tfa-summary "focus"`. No tools (content is inlined); streams block events to stdout until DONE.',
49278
+ description: "Summarize files or piped content as a visible TODO.",
49276
49279
  versionCmd: "tfa-summary --version 2>/dev/null | head -1",
49277
49280
  installCmd: "bun add -g @todoforai/tfa-summary",
49278
49281
  internal: true
@@ -49283,7 +49286,7 @@ var tool_catalog_default = {
49283
49286
  installer: "npm",
49284
49287
  label: "Vault",
49285
49288
  capabilities: "Zero-config TODOforAI vault CLI: put/get/patch/list/rm secrets in the user's KV v2 vault. Reuses bridge credentials (TODOFORAI_API_KEY / ~/.config/todoforai/credentials.json); derives vault URL from backend URL.",
49286
- description: 'Native TODOforAI secret store free, zero-config (reuses bridge credentials; no VAULT_ADDR/VAULT_TOKEN/login). **Default credential source: for any task touching API keys, tokens, service accounts, or third-party auth, check `tfa-vault` before searching repo files, .env, or env vars — unless the user provides another source.** Discover-then-consume pattern: `tfa-vault list accounts/` to find keys, then `KEY=$(tfa-vault get -f api_key accounts/<service>)` in shell. Common paths: `accounts/<service>`, `api/<service>`, `secrets/<service>`. Usage: `tfa-vault put <path> k=v [k=v ...]`, `tfa-vault get [-f <field>] <path>`, `tfa-vault patch <path> k=v ...`, `tfa-vault list [<prefix>]`, `tfa-vault rm <path>`. Values: inline (`k=v`), file (`k=@/path`), stdin (`k=-`). `get -f <field>` writes raw value with no trailing newline — safe in `$(...)`. Exit 2 means "not found" (distinct from network errors).',
49289
+ description: "The user's secret store. Always check here first for API keys, tokens, credentials, bank cards, and private/secret account details before looking elsewhere.",
49287
49290
  versionCmd: "tfa-vault --version 2>/dev/null | head -1",
49288
49291
  statusCmd: "tfa-vault whoami",
49289
49292
  installCmd: "bun add -g @todoforai/vault",
@@ -49296,15 +49299,35 @@ var tool_catalog_default = {
49296
49299
  installer: "binary",
49297
49300
  label: "Search",
49298
49301
  capabilities: "Fast recursive grep with regex, .gitignore-aware, parallel, unicode-correct",
49299
- 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`.",
49302
+ description: "",
49300
49303
  versionCmd: "rg --version 2>/dev/null | head -1",
49301
49304
  preinstallCloud: true,
49302
49305
  binary: {
49303
- "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" },
49304
- "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" },
49305
- "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" },
49306
- "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" },
49307
- "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" }
49306
+ "linux-x86_64": {
49307
+ url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-unknown-linux-musl.tar.gz",
49308
+ archive: "tar.gz",
49309
+ extract: "ripgrep-14.1.1-x86_64-unknown-linux-musl/rg"
49310
+ },
49311
+ "linux-aarch64": {
49312
+ url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-aarch64-unknown-linux-gnu.tar.gz",
49313
+ archive: "tar.gz",
49314
+ extract: "ripgrep-14.1.1-aarch64-unknown-linux-gnu/rg"
49315
+ },
49316
+ "darwin-x86_64": {
49317
+ url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-apple-darwin.tar.gz",
49318
+ archive: "tar.gz",
49319
+ extract: "ripgrep-14.1.1-x86_64-apple-darwin/rg"
49320
+ },
49321
+ "darwin-aarch64": {
49322
+ url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-aarch64-apple-darwin.tar.gz",
49323
+ archive: "tar.gz",
49324
+ extract: "ripgrep-14.1.1-aarch64-apple-darwin/rg"
49325
+ },
49326
+ "windows-x86_64": {
49327
+ url: "https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-pc-windows-msvc.zip",
49328
+ archive: "zip",
49329
+ extract: "ripgrep-14.1.1-x86_64-pc-windows-msvc/rg.exe"
49330
+ }
49308
49331
  },
49309
49332
  binName: "rg",
49310
49333
  internal: true
@@ -49315,15 +49338,35 @@ var tool_catalog_default = {
49315
49338
  installer: "binary",
49316
49339
  label: "Find Files",
49317
49340
  capabilities: "Fast user-friendly find replacement: regex by default, .gitignore-aware, parallel",
49318
- 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.",
49341
+ description: "",
49319
49342
  versionCmd: "fd --version 2>/dev/null | head -1",
49320
49343
  preinstallCloud: true,
49321
49344
  binary: {
49322
- "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" },
49323
- "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" },
49324
- "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" },
49325
- "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" },
49326
- "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" }
49345
+ "linux-x86_64": {
49346
+ url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-unknown-linux-musl.tar.gz",
49347
+ archive: "tar.gz",
49348
+ extract: "fd-v10.2.0-x86_64-unknown-linux-musl/fd"
49349
+ },
49350
+ "linux-aarch64": {
49351
+ url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-aarch64-unknown-linux-gnu.tar.gz",
49352
+ archive: "tar.gz",
49353
+ extract: "fd-v10.2.0-aarch64-unknown-linux-gnu/fd"
49354
+ },
49355
+ "darwin-x86_64": {
49356
+ url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-apple-darwin.tar.gz",
49357
+ archive: "tar.gz",
49358
+ extract: "fd-v10.2.0-x86_64-apple-darwin/fd"
49359
+ },
49360
+ "darwin-aarch64": {
49361
+ url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-aarch64-apple-darwin.tar.gz",
49362
+ archive: "tar.gz",
49363
+ extract: "fd-v10.2.0-aarch64-apple-darwin/fd"
49364
+ },
49365
+ "windows-x86_64": {
49366
+ url: "https://github.com/sharkdp/fd/releases/download/v10.2.0/fd-v10.2.0-x86_64-pc-windows-msvc.zip",
49367
+ archive: "zip",
49368
+ extract: "fd-v10.2.0-x86_64-pc-windows-msvc/fd.exe"
49369
+ }
49327
49370
  },
49328
49371
  binName: "fd",
49329
49372
  internal: true
@@ -49334,15 +49377,30 @@ var tool_catalog_default = {
49334
49377
  installer: "binary",
49335
49378
  label: "JSON",
49336
49379
  capabilities: "Command-line JSON processor: query, filter, transform, format JSON streams",
49337
- 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.",
49380
+ description: "",
49338
49381
  versionCmd: "jq --version 2>/dev/null | head -1",
49339
49382
  preinstallCloud: true,
49340
49383
  binary: {
49341
- "linux-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64", archive: "raw" },
49342
- "linux-aarch64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-arm64", archive: "raw" },
49343
- "darwin-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-amd64", archive: "raw" },
49344
- "darwin-aarch64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-arm64", archive: "raw" },
49345
- "windows-x86_64": { url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe", archive: "raw" }
49384
+ "linux-x86_64": {
49385
+ url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64",
49386
+ archive: "raw"
49387
+ },
49388
+ "linux-aarch64": {
49389
+ url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-arm64",
49390
+ archive: "raw"
49391
+ },
49392
+ "darwin-x86_64": {
49393
+ url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-amd64",
49394
+ archive: "raw"
49395
+ },
49396
+ "darwin-aarch64": {
49397
+ url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-arm64",
49398
+ archive: "raw"
49399
+ },
49400
+ "windows-x86_64": {
49401
+ url: "https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe",
49402
+ archive: "raw"
49403
+ }
49346
49404
  },
49347
49405
  binName: "jq",
49348
49406
  internal: true
@@ -49354,7 +49412,7 @@ var tool_catalog_default = {
49354
49412
  preinstallCloud: true,
49355
49413
  label: "Apply Diff",
49356
49414
  capabilities: "Apply unified/context diff patches to files; reverse, dry-run, fuzzy matching",
49357
- 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.",
49415
+ description: "",
49358
49416
  versionCmd: "patch --version 2>/dev/null | head -1",
49359
49417
  binName: "patch",
49360
49418
  internal: true
@@ -49366,7 +49424,7 @@ var tool_catalog_default = {
49366
49424
  preinstallCloud: true,
49367
49425
  label: "Replace Text",
49368
49426
  capabilities: "Stream editor: in-place text substitution, line filtering, scripted edits",
49369
- description: "Non-interactive text transformation. Usage: `sed 's/old/new/g' file`, `-i` edit in place (`-i ''` on macOS), `-n '5,10p'` print line range, `-E` extended regex. Pair with `rg -l` to bulk-rewrite matched files.",
49427
+ description: "",
49370
49428
  versionCmd: "sed --version 2>/dev/null | head -1",
49371
49429
  binName: "sed",
49372
49430
  internal: true
@@ -49378,7 +49436,7 @@ var tool_catalog_default = {
49378
49436
  preinstallCloud: true,
49379
49437
  label: "Search Text",
49380
49438
  capabilities: "Search plain text for lines matching a regex: recursive, fixed-string, context, invert, count",
49381
- description: "Line-based text search. Usage: `grep <pattern> file`, `-r` recursive, `-i` case-insensitive, `-n` line numbers, `-E` extended regex, `-F` fixed strings, `-v` invert, `-C N` context, `-l` files only. For large code searches prefer `rg`.",
49439
+ description: "",
49382
49440
  versionCmd: "grep --version 2>/dev/null | head -1",
49383
49441
  binName: "grep",
49384
49442
  internal: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@todoforai/edge",
3
- "version": "0.13.16",
3
+ "version": "0.13.18",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "todoforai-edge": "dist/index.js"