feat(workspaces): launcher-level toolAccess option (MCP vs CLI), merge chat-cli into chat#251
Open
luokerenx4 wants to merge 1 commit into
Open
feat(workspaces): launcher-level toolAccess option (MCP vs CLI), merge chat-cli into chat#251luokerenx4 wants to merge 1 commit into
luokerenx4 wants to merge 1 commit into
Conversation
…e chat-cli into chat
Two config levels for harness launch — this implements the LAUNCHER level:
universal injection knobs that apply to any tool-injectable harness (not
harness-specific options). First knob: `toolAccess` (mcp | cli, default mcp) —
where the agent reaches Alice's data tools.
- resolveInjection(template, toolAccess): a template with `injectMcp: true` is
"tool-injectable, user-choosable" — `cli` → inbox-only MCP + the openalice-cli
skill; `mcp` → full MCP. `injectMcp: false` (no tools) / `'inbox'` (CLI-locked)
ignore toolAccess.
- create() takes CreateOptions {toolAccess}; the route reads body.toolAccess;
the create form gets a Tools dropdown (launcher-level, default MCP).
- chat-cli template DELETED — chat serves both modes now. Its bootstrap was
byte-identical to chat's; the only differences (injectMcp flag + the
openalice-cli skill) are now resolved from toolAccess. chat's instruction is
rewritten mode-neutral.
Harness-LEVEL config (per-harness domain options) is deliberately deferred —
no harness needs it yet; build that schema when 3+ real cases show, not before.
tsc clean; ui tsc -b clean; full suite 1733; creation e2e covers both modes
(mcp → full .mcp.json; cli → inbox-only + openalice-cli skill).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The launcher-level config layer. Config for a harness launch splits two ways: launcher-level (universal injection knobs OpenAlice applies to any tool-injectable harness) and harness-level (per-harness domain options). This PR implements the launcher level, with
toolAccess(MCP vs CLI) as the first knob — and collapses the chat / chat-cli split that motivated it.resolveInjection(template, toolAccess)— a template withinjectMcp: trueis "tool-injectable, user-choosable".toolAccess: 'cli'→ inbox-only MCP + theopenalice-cliskill (tools via thealiceCLI on PATH);'mcp'→ full MCP.injectMcp: false(no tools) and'inbox'(a template locked to CLI) ignoretoolAccess.create()takesCreateOptions { toolAccess }; the POST route readsbody.toolAccess; the create form has a Tools dropdown (default MCP).bootstrap.shwas byte-identical to chat's; the only differences (theinjectMcpvalue + theopenalice-cliskill) are now derived fromtoolAccess. chat's instruction is rewritten mode-neutral (it can't claim "MCP tools available" in CLI mode).Test plan
tsc --noEmitclean;ui && tsc -bcleanresolveInjectionunit tests: mcp / cli / dedup / off / locked)mcp→ full.mcp.json;cli→ inbox-only.mcp.json+openalice-cliskill, clean commit/mcpshows only the inbox server andaliceis the data path (tomorrow)Boundary touch
None — workspace launcher + template content + create-form UI. No trading code, no migrations.
🤖 Generated with Claude Code