Skip to content

feat(flow): add invocation-scoped external tool registries - #856

Draft
schicaelmott wants to merge 6 commits into
software-mansion:mainfrom
schicaelmott:codex/external-tool-registry
Draft

feat(flow): add invocation-scoped external tool registries#856
schicaelmott wants to merge 6 commits into
software-mansion:mainfrom
schicaelmott:codex/external-tool-registry

Conversation

@schicaelmott

@schicaelmott schicaelmott commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add argent flow run --tool-registry <path>
  • let flows call custom tools from a local TypeScript file
  • load and validate them for one run only

Stack

Stacked on #855 to test custom tools with --json-stream.

Why

Flows can currently call only tools that ship with Argent. This lets projects add local flow steps without changing Argent itself.

Why this is a separate PR

Custom tools need a separate API and safety review. #855 can still merge on its own.

Validation

  • 115 CLI tests passed
  • 24 external-tool tests passed
  • build, lint, typecheck, and Knip passed

@schicaelmott
schicaelmott force-pushed the codex/external-tool-registry branch from e585f31 to 47d17ae Compare August 19, 2026 17:44
filip131311 added a commit that referenced this pull request Aug 21, 2026
## Summary

- add `argent flow run --json-stream`
- stream flow progress as JSON lines
- finish with a JSON result or error

## Why

`--json` prints only after a flow finishes. `--json-stream` lets scripts
and CI see live progress.

## Why this is a separate PR

This is useful without the custom-tools feature in #856.

## Validation

- `npm test -w @argent/cli -- flow.test.ts` — 106 tests passed
- `npm run typecheck:tests -w @argent/cli`
- `npm run build -w @argent/cli`

---------

Co-authored-by: Filip131311 <contact@filipkaminski.com>
Reconciles the branch's NDJSON streaming draft with the version that landed
as software-mansion#855: requireLocalToolServer now returns the refusal (with the external
registry hint appended) and the --tool-registry pre-flight errors go through
fail() so --json-stream emits a structured error event.
@latekvo latekvo closed this Aug 21, 2026
@latekvo latekvo reopened this Aug 21, 2026
@latekvo latekvo closed this Aug 21, 2026
@latekvo latekvo reopened this Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants