Skip to content

feat(harness): add EffectTS tool layer starting with pluggable bash tool - #6

Merged
sanchitrk merged 3 commits into
experimental/harnessfrom
experimental/harness-tools
Jun 25, 2026
Merged

sanchitrk merged 3 commits into
experimental/harnessfrom
experimental/harness-tools

Conversation

@sanchitrk

Copy link
Copy Markdown
Contributor

No description provided.

chore(harness): bump effect 4.0.0-beta.86

Implement the agent tool layer

- Tool.define/make/implement + Effect Schema as the source of truth;
  toAikitTool derives a provider-safe JSON Schema for the aikit wire
- Executor pipeline: decode -> run (scoped, interruptible) -> encode into
  aikit's content/details; failureMode "return" (tool error result) vs
  "error" (propagates to the error channel); aborted on interrupt; defects
  on undeclared failures; fails fast on duplicate tool names
- ToolShell capability with swappable backends: local (real OS shell on
  Effect's ChildProcessSpawner, with an explicit SIGTERM->SIGKILL escalation
  finalizer so timeout/interrupt is a hard bound) and fromSandboxShell
  (just-bash / remote). forceKillAfter is per-call or adapter default
- ToolProgress service (noop layer); truncate utils ported from pi
- bash tool (buffered variant A) — backend swapped via layer, no tool change
Vercel exec now runs detached and kills the remote process on interrupt/timeout;
adds optional ISandboxExe.stream (Vercel via Command.logs) bridged to ToolShell.stream.
@sanchitrk
sanchitrk merged commit 362bb45 into experimental/harness Jun 25, 2026
@sanchitrk
sanchitrk deleted the experimental/harness-tools branch July 2, 2026 07:59
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.

1 participant