Expand the vision doc#1055
Conversation
Complete the core-concept definitions (tool, source, connection, secret, scope, policy, plugin, manager/invoker) and add: the core/first-party/one-seam/ surfaces model; composition via artifacts x surfaces and the kind/lifetime/ origin/surface/delivery axes; scope merging (ordered merged scopes, three fixed rules, org|user as the two-element case, dimension-vs-indirection); connections, secrets and the tool-proxy invariant; source kinds and the normalized manifest; policies attached to source and connection (connection overrides source, scope authority layered, toolkits carry no policy); toolkits as pure curation; the capability membrane; surfaces (MCP meta-tools, MCP apps with RSC UI, MCP channels, authoring tools); the two authoring paths (file+deploy and tool over MCP) with promotion; the two-substrate storage split (git/Cloudflare Artifacts for authored artifacts, KV/SQLite/FS for agent state); the Run model; human-in-the-loop; sandbox/runtime; distribution/CLI/remotes; cloud plugins; principles; the build discipline (evolve not rewrite, the wedge, vision-vs-build mode); north-star scenarios; and open questions.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | 6827896 | Commit Preview URL Branch Preview URL |
Jun 20 2026, 06:35 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | 6827896 | Jun 20 2026, 06:36 PM |
Cloudflare previewTorn down — the PR is closed. |
| - **Policy** — gates execution (allow / require-approval / block). Attached to sources and | ||
| connections (see *Policies*). |
There was a problem hiding this comment.
Policy value naming conflict between sections
The "Core concepts" bullet defines the policy values as allow / require-approval / block (with a hyphen), but the "Policies" section below uses code-formatted literals approve / require_approval / block (different verb, underscore). These appear to describe the same discriminated enum, but "allow" ≠ "approve" and "require-approval" ≠ "require_approval". Any implementation driven from this doc will have to pick one set, and the inconsistency creates real ambiguity about what the canonical value names are — especially since the Policies section uses backtick formatting that signals actual code values.
| - **Tool** — an id, an optional input schema, and an optional output schema (JSON Schema today; | ||
| may grow richer types). The unit of capability. Addressed as | ||
| `<source>.<scope>.<connection>.<tool>`. |
There was a problem hiding this comment.
<connection> in the address format is ambiguous
The tool address is defined as <source>.<scope>.<connection>.<tool>, but "connection" as a concept is identified by (scope, source, name) — three fields, two of which (scope and source) already appear in the address. The <connection> segment here almost certainly means the name field (the account handle: work, personal, prod), but that isn't stated. Renaming the segment to <name> and adding a one-line note tying it to the connection's name field would remove the ambiguity.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| - **In-process** — `execute`, the SDK path. No server. | ||
| - **MCP** — a scoped endpoint (`/mcp?toolkit=...`) over a *scoped executor*; the host | ||
| authenticates → resolves the toolkit → `scope()` → hands the narrowed executor to the MCP | ||
| server, which never sees a toolkit. Default shape is **meta-tools** (`search` + `describe` + | ||
| `execute` + `run_code`) so a huge catalog doesn't blow context, with a direct-tools opt-out. | ||
| **Authoring tools** (`render`, `create_workflow`, `author_tool`, `skills.create`) appear only | ||
| when the scope grants the matching meta-capability. |
There was a problem hiding this comment.
run_code meta-tool has no corresponding meta-capability entry
The MCP default shape lists four meta-tools: search, describe, execute, and run_code. The Authorization & capabilities section enumerates meta-capability kinds that gate access (author-tools, generate-UI, allocate-storage, deploy, trigger-register, egress), but run_code — which triggers the sandbox runtime — has no corresponding capability kind listed. The authoring tools are gated on author-tools, so the omission of a run-code or sandbox capability may be an oversight rather than intentional "always available".
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
Expands
vision.mdfrom the original sketch into the full product vision — the destination the codebase evolves toward incrementally, not a rewrite plan.What this adds
org | useras the two-element case; placement as a direct property (dimension, not indirection).scope()-narrowed executor membrane (transitive).Docs-only change — no code or runtime behavior touched.