Skip to content

convert list tool to Tool.defineEffect#21899

Merged
kitlangton merged 1 commit intodevfrom
kit/tool-effect-ls
Apr 10, 2026
Merged

convert list tool to Tool.defineEffect#21899
kitlangton merged 1 commit intodevfrom
kit/tool-effect-ls

Conversation

@kitlangton
Copy link
Copy Markdown
Contributor

Summary

  • Convert ListTool in src/tool/ls.ts from Tool.define to Tool.defineEffect for consistency with other tools
  • Wrap Ripgrep.files() async iterable and ctx.ask/assertExternalDirectory calls in Effect.promise
  • Register ListTool in the tool registry (yield* ListTool + Tool.init + builtin array)

Test plan

  • bun run typecheck passes (turbo ran all 13 packages successfully)

Use Ripgrep.Service for file listing via Stream instead of async
generator. Use assertExternalDirectoryEffect. Add Effect.orDie
before runPromise.

Note: ListTool is not registered in the tool registry — it's
only used by the CLI renderer. No registry changes needed.
@kitlangton kitlangton marked this pull request as ready for review April 10, 2026 19:38
@kitlangton kitlangton merged commit f63bdc8 into dev Apr 10, 2026
9 of 10 checks passed
@kitlangton kitlangton deleted the kit/tool-effect-ls branch April 10, 2026 19:38
luke-barge-cko added a commit to luke-barge-cko/opencode-cko that referenced this pull request Apr 10, 2026
* refactor(tool): convert question tool internals to Effect (anomalyco#21808)

* refactor(tool): convert lsp tool internals to Effect (anomalyco#21806)

* chore: generate

* refactor(tool): convert plan tool internals to Effect (anomalyco#21807)

* refactor(tui): switch to global events and start passing workspace param (anomalyco#21719)

* refactor(tool): convert webfetch tool internals to Effect (anomalyco#21809)

* chore: generate

* refactor(tool): convert websearch tool internals to Effect (anomalyco#21810)

* chore: generate

* refactor(tool): convert codesearch tool internals to Effect (anomalyco#21811)

* rector(core,tui): handle workspace state in project context, add workspace status, improve ui (anomalyco#21896)

* refactor(tool): convert bash to defineEffect with ChildProcessSpawner (anomalyco#21895)

* chore: generate

* convert glob tool to Tool.defineEffect (anomalyco#21897)

* chore: generate

* tweak: make it so disabling uv or ruff fmters disables both (anomalyco#21921)

* convert list tool to Tool.defineEffect (anomalyco#21899)

* chore: generate

* refactor(tool): convert write tool to Tool.defineEffect (anomalyco#21901)

* zen: nemotron doc

* chore: generate

* refactor: convert edit tool to Tool.defineEffect (anomalyco#21904)

* chore: generate

---------

Co-authored-by: Kit Langton <kit.langton@gmail.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: James Long <longster@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Frank <frank@anoma.ly>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant