executor 1.1.8 → 1.1.10-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +42 -12
  2. package/bin/emscripten-module.wasm +0 -0
  3. package/bin/executor.mjs +367241 -157868
  4. package/bin/impl/edit.js +201 -0
  5. package/bin/impl/format.js +275 -0
  6. package/bin/impl/parser.js +682 -0
  7. package/bin/impl/scanner.js +456 -0
  8. package/bin/impl/string-intern.js +42 -0
  9. package/bin/openapi-extractor-wasm/openapi_extractor_bg.wasm +0 -0
  10. package/package.json +1 -1
  11. package/resources/web/assets/__vite-browser-external-BIHI7g3E.js +1 -0
  12. package/resources/web/assets/{highlighted-body-TPN3WLV5-Cy1EFOo2.js → highlighted-body-TPN3WLV5-CNtoUE2O.js} +1 -1
  13. package/resources/web/assets/{index-3N-BEhR_.js → index-Dyhx5qgf.js} +2 -2
  14. package/resources/web/assets/mermaid-O7DHMXV3-CfqEcqYS.js +658 -0
  15. package/resources/web/assets/mermaid-O7DHMXV3-D1toCiZx.css +1 -0
  16. package/resources/web/assets/openapi_extractor_bg-IMRXzuHp.wasm +0 -0
  17. package/resources/web/index.html +2 -2
  18. package/bin/pglite.data +0 -0
  19. package/bin/pglite.wasm +0 -0
  20. package/resources/migrations/20260306091536_abnormal_martin_li/migration.sql +0 -158
  21. package/resources/migrations/20260306091536_abnormal_martin_li/snapshot.json +0 -1937
  22. package/resources/migrations/20260306094249_large_giant_girl/migration.sql +0 -39
  23. package/resources/migrations/20260306094249_large_giant_girl/snapshot.json +0 -2425
  24. package/resources/migrations/20260307090915_blue_bullseye/migration.sql +0 -70
  25. package/resources/migrations/20260307090915_blue_bullseye/snapshot.json +0 -3122
  26. package/resources/migrations/20260307134000_openapi_tool_identity/migration.sql +0 -37
  27. package/resources/migrations/20260307152000_source_document_text/migration.sql +0 -1
  28. package/resources/migrations/20260308041000_credentials_model/migration.sql +0 -41
  29. package/resources/migrations/20260308120000_search_and_indexes/migration.sql +0 -16
  30. package/resources/migrations/20260308140000_secret_materials_name/migration.sql +0 -1
  31. package/resources/migrations/20260309103000_policy_scope_and_interaction_purpose/migration.sql +0 -17
  32. package/resources/web/assets/mermaid-O7DHMXV3-2oBmyuDr.js +0 -393
  33. package/resources/web/assets/mermaid-O7DHMXV3-DgCU8P81.css +0 -1
  34. package/resources/web/assets/openapi_extractor_bg-DZrbVm4x.wasm +0 -0
package/README.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  It gives an agent a TypeScript runtime, a discoverable tool catalog, and a single local place to connect external systems such as MCP servers, OpenAPI APIs, and GraphQL APIs. Instead of pasting large MCP manifests into every chat or giving an agent broad shell access, you run code inside `executor` and let it call typed `tools.*` functions.
6
6
 
7
+ ## Community
8
+
9
+ Join the Discord community: https://discord.gg/eF29HBHwM6
10
+
7
11
  At runtime, `executor` behaves like one local product:
8
12
 
9
13
  - a CLI for starting the runtime and executing code
@@ -11,7 +15,12 @@ At runtime, `executor` behaves like one local product:
11
15
  - a local web UI for connecting sources, inspecting tools, and managing secrets
12
16
  - an MCP endpoint for hosts that want to drive `executor` through MCP
13
17
 
14
- The current codebase is the v3 rewrite. Older experiments live in `legacy/` and `legacy2/`, but the active architecture is the one in `apps/` and `packages/`.
18
+ The current codebase lives in `apps/` and `packages/`. Older experiments stay in `legacy/` and `legacy2/`.
19
+
20
+ ## Attribution
21
+
22
+ - [Crystian](https://www.linkedin.com/in/crystian/) provided the npm package name `executor`.
23
+ - The `codemode` concept in this project is inspired by Cloudflare's [Code Mode announcement](https://blog.cloudflare.com/code-mode/).
15
24
 
16
25
  ## Why this exists
17
26
 
@@ -105,12 +114,22 @@ For each source you can:
105
114
 
106
115
  ## Quick start
107
116
 
108
- If you are working from this repository, the easiest path is:
117
+ If you want to use this a package distribution, install it via npm:
118
+
119
+ ```bash
120
+ npm install -g executor
121
+ executor up
122
+ ```
123
+
124
+ Then either tell your agent to use the CLI or to open the web UI and copy the MCP CLI install command.
125
+
126
+ Then you can run the CLI as `executor`.
127
+
128
+ If you are working from this repository locally, the easiest path is:
109
129
 
110
130
  ```bash
111
131
  bun install
112
- bun run executor doctor --json
113
- bun run executor up
132
+ bun dev
114
133
  ```
115
134
 
116
135
  That starts the local runtime. The default base URL is:
@@ -194,7 +213,8 @@ return await tools.executor.sources.add({
194
213
  return await tools.executor.sources.add({
195
214
  kind: "openapi",
196
215
  endpoint: "https://api.github.com",
197
- specUrl: "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json",
216
+ specUrl:
217
+ "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json",
198
218
  name: "GitHub",
199
219
  namespace: "github",
200
220
  });
@@ -208,7 +228,7 @@ At a high level, every execution follows the same loop:
208
228
 
209
229
  1. `executor` resolves the current local installation and workspace.
210
230
  2. It builds a tool catalog from built-in tools plus all connected workspace sources.
211
- 3. It runs your TypeScript inside the in-process execution runtime.
231
+ 3. It runs your TypeScript inside the QuickJS sandbox runtime by default.
212
232
  4. Tool calls are dispatched through `executor` rather than directly from your code.
213
233
  5. If a tool needs interaction, the run pauses and records a pending interaction.
214
234
  6. Once the interaction is resolved, the execution continues and eventually completes or fails.
@@ -260,18 +280,16 @@ The server also maintains local PID and log files in its runtime directory.
260
280
 
261
281
  ## Persistence and data
262
282
 
263
- `executor` persists the local control plane to SQL.
264
-
265
- By default it uses embedded PGlite for a local install, which keeps the product self-contained. If you provide a Postgres URL, the persistence layer can target real Postgres instead.
283
+ `executor` persists the local control plane to local files.
266
284
 
267
285
  Persisted concepts include:
268
286
 
269
- - the local installation record
270
- - organizations and workspaces provisioned for that install
287
+ - local installation identity
271
288
  - connected sources
272
289
  - indexed tool artifacts and related metadata
273
290
  - credentials and secret material bindings
274
291
  - source auth sessions
292
+ - execution and interaction state
275
293
  - executions and execution interactions
276
294
  - policies
277
295
 
@@ -299,10 +317,22 @@ If you are exploring the repo, these are the directories that matter most:
299
317
  - `apps/web`: local React web UI
300
318
  - `packages/server`: local HTTP server that serves API, MCP, and UI
301
319
  - `packages/control-plane`: source management, secrets, persistence, execution, and inspection
302
- - `packages/runtime-local-inproc`: in-process TypeScript execution runtime
320
+ - `packages/runtime-quickjs`: default QuickJS sandbox runtime for TypeScript execution
321
+ - `packages/runtime-ses`: optional SES sandbox runtime for TypeScript execution
303
322
  - `packages/executor-mcp`: MCP bridge for `execute` and `resume`
304
323
  - `packages/codemode-*`: core tool abstractions plus MCP and OpenAPI adapters
305
324
 
325
+ ## Releasing
326
+
327
+ - `bun run release:beta` is the simplest beta flow. It bumps `apps/executor/package.json`, runs the local publish dry-run, commits, pushes the branch, pushes the matching tag, and lets GitHub Actions publish it.
328
+ - `bun run release:beta:dry-run` prints the next beta version and the exact git actions without changing anything.
329
+ - `bun run --cwd apps/executor release:publish` is the only supported publish command.
330
+ - One-time npm setup: either configure npm trusted publishing for `RhysSullivan/executor` with the workflow file `.github/workflows/publish-executor-package.yml`, or add a GitHub Actions secret named `NPM_TOKEN` that can publish the `executor` package.
331
+ - Stable releases use a normal semver like `1.2.3` and publish to npm under `latest`.
332
+ - Beta releases use a prerelease semver like `1.3.0-beta.1` and publish to npm under `beta`.
333
+ - Push a matching git tag such as `v1.2.3` or `v1.3.0-beta.1` to trigger `.github/workflows/publish-executor-package.yml`.
334
+ - To build and pack the publish artifact locally without publishing, run `bun run --cwd apps/executor release:publish:dry-run`.
335
+
306
336
  ## Project status
307
337
 
308
338
  This repository is explicitly on its third major architecture iteration.
Binary file