@plasm_lang/vercel-agent 0.3.63
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.
- package/README.md +235 -0
- package/agent/.plasm/archives/runs/runs/pr2d5c4a99707b4c19b650553d50229a1d600d28e3d98a9c58f18e5026cecc86ca.json +64 -0
- package/agent/.plasm/archives/runs/runs/pr2e0c0d8ad443c63c82da7435ee1a002b0e0fa718b640263c0a9d3e6e5944812f.json +64 -0
- package/agent/.plasm/archives/runs/runs/pr2faedb8354f40ee6d828e3af07b421fda9ccda973a4f7347fce3639f03a0a869.json +64 -0
- package/agent/.plasm/archives/runs/runs/pr586b47c55547b0702c572bce4255558b22dbe5e682d6359169577e0ea75fe98f.json +64 -0
- package/agent/.plasm/archives/runs/runs/pr76212356445e3b00fcf256835aaec18bac68576324b90d0be92d47f0b4a862a7.json +56 -0
- package/agent/.plasm/archives/runs/runs/pr9ec805d689e00db9270a9539858f2fb7216c24acbfea943d450e37b641149da1.json +64 -0
- package/agent/.plasm/archives/runs/runs/prc3c0c4ba2e28fc94ed6d37b6796e277a7997d9cb3184640d14c35c98bc6d136f.json +64 -0
- package/agent/.plasm/archives/runs/runs/prf04de32522f2fdcb17818907d91bccce7dcaecbd1259041cc448d447b6993244.json +64 -0
- package/agent/.plasm/archives/traces/traces/local/00000000000000000000000000000000/records.ndjson +1 -0
- package/agent/.plasm/archives/traces/traces/local/00000000000000000000000000000000/summary.json +13 -0
- package/agent/.plasm/discovery/manifest.json +126 -0
- package/agent/.plasm/sessions/TGlzdCBwcm9kdWN0cyBmcm9tIHRoZSBleGVjdXRlX3RpbnkgY2F0YWxvZw.json +44 -0
- package/agent/.plasm/sessions/TGlzdCBwcm9kdWN0cyBmcm9tIHRoZSBleGVjdXRlX3RpbnkgY2F0YWxvZw.teaching.tsv +23 -0
- package/agent/.plasm/sessions/bGlzdCBleGVjdXRlX3RpbnkgcHJvZHVjdHM.json +151 -0
- package/agent/.plasm/sessions/bGlzdCBleGVjdXRlX3RpbnkgcHJvZHVjdHM.teaching.tsv +131 -0
- package/agent/.plasm/sessions/bGlzdCBleGVjdXRlX3RpbnkgcHJvZHVjdHMgYXN5bmMgdHJhbnNwb3J0.json +44 -0
- package/agent/.plasm/sessions/bGlzdCBleGVjdXRlX3RpbnkgcHJvZHVjdHMgYXN5bmMgdHJhbnNwb3J0.teaching.tsv +23 -0
- package/agent/.plasm/stubs/.gitkeep +0 -0
- package/agent/.plasm/stubs/execute_tiny.ts +107 -0
- package/agent/agent.ts +52 -0
- package/agent/catalogs/README.md +15 -0
- package/agent/channels/.gitkeep +0 -0
- package/agent/channels/execute-tiny-webhook.ts +59 -0
- package/agent/channels/health.ts +16 -0
- package/agent/hooks/.gitkeep +0 -0
- package/agent/hooks/trace-log.ts +10 -0
- package/agent/instructions.md +25 -0
- package/agent/schedules/.gitkeep +0 -0
- package/agent/schedules/ping.ts +13 -0
- package/agent/skills/.gitkeep +0 -0
- package/agent/skills/plasm-authoring.md +8 -0
- package/agent/subagents/.gitkeep +0 -0
- package/agent/subagents/tiny/agent.ts +28 -0
- package/bin/plasm-agent.mjs +18 -0
- package/package.json +77 -0
- package/scripts/plasm-node.mjs +19 -0
- package/scripts/resolve-ts-extension.mjs +18 -0
- package/src/archive/adapters.ts +27 -0
- package/src/archive/index.ts +99 -0
- package/src/archive/local-run-archive.ts +90 -0
- package/src/archive/local-trace-archive.ts +91 -0
- package/src/archive/paths.ts +15 -0
- package/src/archive/postgres-kv-adapter.ts +72 -0
- package/src/archive/prod-archive-store.ts +143 -0
- package/src/archive/resolve-backend.ts +60 -0
- package/src/archive/run-id.ts +23 -0
- package/src/archive/types.ts +75 -0
- package/src/archive/vercel-blob-adapter.ts +21 -0
- package/src/archive/vercel-kv-adapter.ts +24 -0
- package/src/authoring/channel-dispatch.ts +44 -0
- package/src/authoring/context.ts +34 -0
- package/src/authoring/define-channel.ts +83 -0
- package/src/authoring/define-hook.ts +51 -0
- package/src/authoring/define-schedule.ts +64 -0
- package/src/authoring/define-skill.ts +38 -0
- package/src/authoring/hook-runner.ts +18 -0
- package/src/authoring/schedule-manager.ts +118 -0
- package/src/authoring/slot-loader.ts +253 -0
- package/src/authoring/subagent-loader.ts +121 -0
- package/src/catalog/loader.ts +71 -0
- package/src/cli/build.ts +54 -0
- package/src/cli/dev.ts +60 -0
- package/src/cli/info.ts +12 -0
- package/src/cli/init.ts +372 -0
- package/src/cli/link.ts +68 -0
- package/src/cli/project-root.ts +57 -0
- package/src/define-agent.ts +150 -0
- package/src/dev/client/ansi.ts +36 -0
- package/src/dev/client/http-session.ts +180 -0
- package/src/dev/client/repl.ts +92 -0
- package/src/dev/client/slash.ts +119 -0
- package/src/dev/dev-session.ts +153 -0
- package/src/dev/http.ts +29 -0
- package/src/dev/server.ts +147 -0
- package/src/dev/session-routes.ts +185 -0
- package/src/discovery/project-walker.ts +272 -0
- package/src/engine/connect-auth.ts +135 -0
- package/src/engine/create-host-transport.ts +7 -0
- package/src/engine/fixture-mock-transport.ts +54 -0
- package/src/engine/host-transport-bridge.ts +32 -0
- package/src/engine/host-transport.ts +84 -0
- package/src/engine/napi-binding.ts +265 -0
- package/src/evals/define-eval.ts +56 -0
- package/src/evals/run-eval.ts +136 -0
- package/src/gateway-model.ts +43 -0
- package/src/index.ts +296 -0
- package/src/instrumentation.ts +56 -0
- package/src/load-env.ts +63 -0
- package/src/operator/routes.ts +287 -0
- package/src/operator/types.ts +63 -0
- package/src/operator/ui-shell.ts +134 -0
- package/src/project-info.ts +229 -0
- package/src/runtime/agent-runtime.ts +469 -0
- package/src/runtime/compaction.ts +81 -0
- package/src/runtime/logical-session.ts +72 -0
- package/src/runtime/plasm-agent.ts +199 -0
- package/src/server/plasm-handler.ts +331 -0
- package/src/session-state.ts +135 -0
- package/src/state/define-state.ts +57 -0
- package/src/state/fs-state-adapter.ts +72 -0
- package/src/state/kv-state-adapter.ts +62 -0
- package/src/state/postgres-state-adapter.ts +116 -0
- package/src/stubs/capability-invoke-shape.ts +135 -0
- package/src/stubs/catalog-client.ts +170 -0
- package/src/stubs/catalog-hash.ts +11 -0
- package/src/stubs/catalog-introspection.ts +121 -0
- package/src/stubs/cgs-ts-types.ts +164 -0
- package/src/stubs/domain-parser.ts +203 -0
- package/src/stubs/generator.ts +390 -0
- package/src/stubs/input-type-to-ts.ts +233 -0
- package/src/stubs/plasm-value-emitter.ts +162 -0
- package/src/stubs/program-builder.ts +82 -0
- package/src/stubs/stub-symbols.ts +89 -0
- package/src/symbol-registry.ts +74 -0
- package/src/telemetry/plasm-spans.ts +83 -0
- package/src/tools/descriptions.ts +94 -0
- package/src/tools/format.ts +29 -0
- package/src/tools/harness-tools.ts +65 -0
- package/src/tools/plasm-tools.ts +104 -0
- package/src/workflow/world-bootstrap.ts +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# @plasm_lang/vercel-agent
|
|
2
|
+
|
|
3
|
+
Catalog-native TypeScript agent framework for plasm-oss. Capability is authored once as **CGS/CML catalogs**; the framework projects two surfaces from that single source:
|
|
4
|
+
|
|
5
|
+
- **Model surface** — Plasm language tools (`discover` → `plasm_context` → `plasm` → `plasm_run`) with teaching TSV in tool results
|
|
6
|
+
- **Code surface** — generated TypeScript stubs under `agent/.plasm/stubs/` (CGS-typed params + return types; `npm run build:stubs`)
|
|
7
|
+
|
|
8
|
+
There is **no `tools/` directory**. See the architecture plan (`.cursor/plans/eve_plasm_language_layer_*.plan.md` in the parent monorepo) for full thesis.
|
|
9
|
+
|
|
10
|
+
## Layout
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
packages/plasm-agent/
|
|
14
|
+
src/ # framework library
|
|
15
|
+
agent/ # example / template agent project
|
|
16
|
+
agent.ts # model + runtime config (AI Gateway slugs)
|
|
17
|
+
instructions.md # always-on system prompt
|
|
18
|
+
catalogs/ # authored domain.yaml + mappings.yaml
|
|
19
|
+
.plasm/stubs/ # generated TS clients (build artifact)
|
|
20
|
+
skills/ channels/ schedules/ subagents/ hooks/
|
|
21
|
+
evals/ # native eval harness (*.eval.ts)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Core modules
|
|
25
|
+
|
|
26
|
+
| Module | Role |
|
|
27
|
+
|--------|------|
|
|
28
|
+
| `runtime/plasm-agent.ts` | `PlasmAgent` — AI SDK `generateText` tool loop, AI Gateway model slug, OTEL |
|
|
29
|
+
| `tools/plasm-tools.ts` | Four MCP-shaped language tools (Zod + `tool()`) |
|
|
30
|
+
| `runtime/agent-runtime.ts` | Engine + session orchestration for tool handlers |
|
|
31
|
+
| `session-state.ts` | Durable session mirror (`agent/.plasm/sessions/`, teaching.tsv) |
|
|
32
|
+
| `symbol-registry.ts` | Agent-global monotonic `e#/m#/p#/r#` mirror |
|
|
33
|
+
| `catalog/loader.ts` | Filesystem catalog discovery |
|
|
34
|
+
| `engine/napi-binding.ts` | `NapiPlasmEngine` / `StubPlasmEngine` |
|
|
35
|
+
| `instrumentation.ts` | `@ai-sdk/otel` on every model call |
|
|
36
|
+
| `operator/routes.ts` | Nitro operator stubs |
|
|
37
|
+
|
|
38
|
+
## Tool loop (production-shaped)
|
|
39
|
+
|
|
40
|
+
MCP parity, Vercel AI SDK v6:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
discover_capabilities → plasm_context → plasm → plasm_run
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- Teaching TSV returned as **tool result markdown** (history-resident)
|
|
47
|
+
- Stable `intent` per goal → deterministic `logical_session_ref` (`l_<token>`)
|
|
48
|
+
- `plasm` dry-run registers `pcN` in the NAPI engine; `plasm_run` validates it
|
|
49
|
+
- **Live HTTP execute** still requires `HostTransportFn` (Vercel Connect) — next phase
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { PlasmAgent } from "@plasm_lang/vercel-agent";
|
|
53
|
+
import { createPlasmAgent } from "@plasm_lang/vercel-agent/agent";
|
|
54
|
+
|
|
55
|
+
const agent = await createPlasmAgent();
|
|
56
|
+
const result = await agent.generate("List products and summarize");
|
|
57
|
+
console.log(result.text);
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
PLASM_AGENT_MODEL=anthropic/claude-sonnet-4.6 npm run agent -- "list products"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Engine
|
|
65
|
+
|
|
66
|
+
Rust **plasm-core / plasm-agent-core / plasm-runtime** via NAPI (`@plasm_lang/engine`).
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Build native addon (required for NAPI mode)
|
|
70
|
+
cd packages/plasm-engine && npm install && npm run build
|
|
71
|
+
|
|
72
|
+
cd ../plasm-agent && npm install
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`createEngine()` loads `@plasm_lang/engine` when the `.node` binary is present; otherwise falls back to `StubPlasmEngine`.
|
|
76
|
+
|
|
77
|
+
| Class | Role |
|
|
78
|
+
|-------|------|
|
|
79
|
+
| `NapiPlasmEngine` | `loadCatalog`, `discover`, `exposeSeeds`, `dryRun` → `pcN`, `runPlan` (validates `pcN`) |
|
|
80
|
+
| `StubPlasmEngine` | Placeholder when native binding unavailable |
|
|
81
|
+
|
|
82
|
+
**Host transport:** env bearer → Vercel Connect `getToken()` → `fetch`. Fixture mock when `PLASM_AGENT_MOCK_HTTP=1` or no bearer and no connector configured.
|
|
83
|
+
|
|
84
|
+
## Phased next steps
|
|
85
|
+
|
|
86
|
+
1. ~~**NAPI binding crate**~~ — `plasm-node` + `@plasm_lang/engine`
|
|
87
|
+
2. ~~**AI SDK tool loop**~~ — four language tools + `PlasmAgent` + session persistence
|
|
88
|
+
3. ~~**Live execute**~~ — Promise host transport + Connect broker
|
|
89
|
+
4. ~~**Prod durability**~~ — `defineState` (fs/kv/postgres) + Blob/KV archive adapters + Workflow bootstrap
|
|
90
|
+
5. ~~**TS stub generator**~~ — CGS introspection + deterministic `e#` programs
|
|
91
|
+
6. ~~**eve devx scaffold**~~ — `defineChannel` / `defineSchedule` / `defineHook` / `defineSkill` loaders, hot-reload dev server, native `evals/`, **`plasm-agent` CLI** (`init` / `info` / `link` / `build` / `dev`), session SSE
|
|
92
|
+
7. ~~**Terminal client**~~ — TypeScript TUI over `/plasm/v1/session` + stream (`plasm-agent dev` TTY, `plasm-agent chat`)
|
|
93
|
+
8. **Operator UI** — React panes (plan-ui / run-explorer embed)
|
|
94
|
+
9. **Channels (Connect)** — `authorization.required` stream events
|
|
95
|
+
|
|
96
|
+
## Storage (`defineState` + archives)
|
|
97
|
+
|
|
98
|
+
| Concern | Dev (`fs`) | Prod |
|
|
99
|
+
|---------|------------|------|
|
|
100
|
+
| Sessions / symbols | `agent/.plasm/` | `PLASM_STATE_BACKEND=kv` or `postgres` |
|
|
101
|
+
| Run/trace archives | local dirs | `BLOB_READ_WRITE_TOKEN` + `KV_REST_API_*` |
|
|
102
|
+
|
|
103
|
+
See **Connect / state / archive env** below.
|
|
104
|
+
|
|
105
|
+
Parent monorepo references:
|
|
106
|
+
|
|
107
|
+
- [docs/oss-core-trace-artifacts.md](../../../docs/oss-core-trace-artifacts.md) — local trace/run archive env vars
|
|
108
|
+
- [docs/oss-core-ui-surface.md](../../../docs/oss-core-ui-surface.md) — OSS HTTP surfaces the operator UI can proxy
|
|
109
|
+
|
|
110
|
+
## Operator UI
|
|
111
|
+
|
|
112
|
+
Route stubs under `src/operator/routes.ts` (`GET /operator/catalogs`, `/sessions`, `/plans`, `/runs`, `/traces`, `/archives`). Mount via Nitro:
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
import { nitroOperatorHandler } from "@plasm_lang/vercel-agent/operator";
|
|
116
|
+
|
|
117
|
+
export default nitroOperatorHandler({ agentRoot: "./agent" });
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Full UI is out of scope for this scaffold; reuse patterns from `apps/plan-ui/` and `apps/run-explorer-ui/` in the parent monorepo where appropriate.
|
|
121
|
+
|
|
122
|
+
## CLI (`plasm-agent`)
|
|
123
|
+
|
|
124
|
+
TypeScript bootstrap for this framework — **not** the Rust `plasm-server` Ratatui TUI.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npm run plasm-agent -- init ./my-agent # scaffold agent/, catalogs/, evals/
|
|
128
|
+
npm run plasm-agent -- info [--json] # project + stub diagnostics
|
|
129
|
+
npm run plasm-agent -- link # vercel link + env pull (AI Gateway key)
|
|
130
|
+
npm run plasm-agent -- build # stubs + agent/.plasm/discovery/manifest.json
|
|
131
|
+
npm run plasm-agent -- dev [--no-tui] # server + TUI when TTY
|
|
132
|
+
npm run plasm-agent -- chat --url URL # attach to running server
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Installed globally or via `npx`: `plasm-agent <command>` (bin entry in package.json).
|
|
136
|
+
|
|
137
|
+
## Scripts
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
cd packages/plasm-agent
|
|
141
|
+
npm install
|
|
142
|
+
npm run build:stubs
|
|
143
|
+
npm run typecheck
|
|
144
|
+
npm run dev # hot-reload dev server + operator + channel routes
|
|
145
|
+
npm run eval # live LLM evals (AI Gateway required)
|
|
146
|
+
npm run eval:catalog # plasm-eval bridge (OPENROUTER_API_KEY)
|
|
147
|
+
npm run smoke:hot-reload
|
|
148
|
+
npm run smoke:sessions
|
|
149
|
+
npm run smoke:tui-async
|
|
150
|
+
npm run smoke:stubs
|
|
151
|
+
npm run smoke:stubs:matrix
|
|
152
|
+
npm run agent -- "your prompt" # requires AI_GATEWAY_API_KEY (Vercel AI Gateway)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Dev server (`npm run dev` / `plasm-agent dev`)
|
|
156
|
+
|
|
157
|
+
When stdin is a TTY, `plasm-agent dev` starts the server **and** opens an interactive terminal client (eve-style). Use `--no-tui` or `PLASM_DEV_NO_TUI=1` for headless mode. Attach later with `plasm-agent chat --url http://127.0.0.1:3000`.
|
|
158
|
+
|
|
159
|
+
Slash commands in the TUI: `/help`, `/info`, `/model`, `/channels`, `/catalogs`, `/new`, `/quit`.
|
|
160
|
+
|
|
161
|
+
- `GET /plasm/v1/info` — discovery + `loadedSlots` summary (`dev` field for routes/model)
|
|
162
|
+
- `POST /plasm/v1/session` — agent turn; `wait: false` returns 202 immediately (attach SSE)
|
|
163
|
+
- `POST /plasm/v1/session/:id` — continue (requires `continuationToken` + `message`)
|
|
164
|
+
- `GET /plasm/v1/session/:id/stream` — SSE (`turn:start`, `turn:step`, `turn:finish` / `turn:error`)
|
|
165
|
+
- `GET /operator` — read-only operator shell
|
|
166
|
+
- Channel routes from `agent/channels/*.ts` (e.g. `GET /channel/health`, `POST /channel/execute-tiny/products`)
|
|
167
|
+
|
|
168
|
+
Hot reload watches `catalogs/`, `skills/`, `channels/`, `schedules/`, `hooks/`, and `instructions.md`.
|
|
169
|
+
|
|
170
|
+
### Authoring slots
|
|
171
|
+
|
|
172
|
+
| Slot | Helper | Notes |
|
|
173
|
+
|------|--------|-------|
|
|
174
|
+
| `skills/` | markdown or `defineSkill()` | Progressive index + `read_skill` tool (`experimental.skills: "inline"` for full inject) |
|
|
175
|
+
| `channels/` | `defineChannel()` | HTTP ingress; call stubs, not `plasm_context` |
|
|
176
|
+
| `schedules/` | `defineSchedule()` | Dev: `*/N * * * *` timers; prod: `GET /internal/cron/:name` + Vercel Cron manifest in `/plasm/v1/info` |
|
|
177
|
+
| `hooks/` | `defineHook()` | `agent:start`, `plan:commit`, `run:complete`, … |
|
|
178
|
+
| `subagents/` | `defineAgent()` in `subagents/<name>/agent.ts` | `delegate_subagent` harness tool |
|
|
179
|
+
|
|
180
|
+
### Evals
|
|
181
|
+
|
|
182
|
+
**`npm run eval`** — live LLM evals only (requires `AI_GATEWAY_API_KEY`). Fixture-only tool-chain evals were removed.
|
|
183
|
+
|
|
184
|
+
**`npm run eval:catalog`** — bridge to `plasm-eval` + `apis/<api>/eval/cases.yaml` (OpenRouter + BAML expression eval).
|
|
185
|
+
|
|
186
|
+
### Vercel AI Gateway (local + deploy)
|
|
187
|
+
|
|
188
|
+
This framework uses the [Vercel AI SDK `gateway()`](https://ai-sdk.dev/providers/ai-sdk-providers/ai-gateway) provider only — no direct OpenRouter/OpenAI keys in the agent layer.
|
|
189
|
+
|
|
190
|
+
1. **Vercel team billing** — AI Gateway returns `customer_verification_required` until a valid payment method is on the team. Add a card under [Vercel → AI](https://vercel.com/docs/ai-gateway) (unlocks free credits).
|
|
191
|
+
2. **API key** — Vercel dashboard → **AI** → **Gateway** → **API Keys** → create key.
|
|
192
|
+
3. **Local env** — put in `plasm-oss/.env` (shell `export` lines are supported):
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
export AI_GATEWAY_API_KEY=vck_...
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Aliases `AI_API_GATEWAY_KEY` / `AI_GATEWAY_KEY` are mapped automatically. Or link the project and run `vercel env pull .env.local`.
|
|
199
|
+
4. **Run:**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npm run smoke:tools
|
|
203
|
+
npm run smoke:async-transport
|
|
204
|
+
npm run agent -- "list products from execute_tiny"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Vercel Connect (outbound catalog HTTP)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
export PLASM_CONNECTOR_<ENTRY>=provider/connector-uid # e.g. PLASM_CONNECTOR_GITHUB
|
|
211
|
+
export PLASM_CONNECT_SUBJECT_TYPE=app # or user + PLASM_CONNECT_USER_ID
|
|
212
|
+
# Local: vercel link && vercel env pull → VERCEL_OIDC_TOKEN
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Production state + Workflow
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
export PLASM_STATE_BACKEND=kv|postgres|fs
|
|
219
|
+
export PLASM_ARCHIVE_BACKEND=vercel|postgres|local
|
|
220
|
+
export BLOB_READ_WRITE_TOKEN=...
|
|
221
|
+
export KV_REST_API_URL=...
|
|
222
|
+
export KV_REST_API_TOKEN=...
|
|
223
|
+
|
|
224
|
+
# Workflow (agent.ts experimental.workflow.world.type)
|
|
225
|
+
export PLASM_WORKFLOW_WORLD=postgres
|
|
226
|
+
export WORKFLOW_POSTGRES_URL=postgres://...
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Prod fallback (future):** sidecar `plasm-server` accepting resolved plans over HTTP `/execute`.
|
|
230
|
+
|
|
231
|
+
## Open decisions
|
|
232
|
+
|
|
233
|
+
- ~~Package publish name~~ — **`@plasm_lang/vercel-agent`** (resolved)
|
|
234
|
+
- Prod execution default: force-bundled NAPI vs Vercel Rust Function sidecar
|
|
235
|
+
- Catalog wire format: raw YAML vs precompiled `catalog.cgs.json` IR at build time
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr2d5c4a99707b4c19b650553d50229a1d600d28e3d98a9c58f18e5026cecc86ca",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_ckAW2uHtX26s8qO9v7kcOQ",
|
|
7
|
+
"intent": "list execute_tiny products",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T16:53:54.793Z"
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr2e0c0d8ad443c63c82da7435ee1a002b0e0fa718b640263c0a9d3e6e5944812f",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_ckAW2uHtX26s8qO9v7kcOQ",
|
|
7
|
+
"intent": "list execute_tiny products",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T16:32:16.250Z"
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr2faedb8354f40ee6d828e3af07b421fda9ccda973a4f7347fce3639f03a0a869",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_ckAW2uHtX26s8qO9v7kcOQ",
|
|
7
|
+
"intent": "list execute_tiny products",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T16:37:13.073Z"
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr586b47c55547b0702c572bce4255558b22dbe5e682d6359169577e0ea75fe98f",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_HfEmAKdjUTqgzZdXHWtTLg",
|
|
7
|
+
"intent": "list execute_tiny products async transport",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T16:37:13.423Z"
|
|
64
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr76212356445e3b00fcf256835aaec18bac68576324b90d0be92d47f0b4a862a7",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_IqBV8aJcW1OgFiGUTvJzVg",
|
|
7
|
+
"intent": "List products from the execute_tiny catalog",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\np1\tWidget\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"id": "p1",
|
|
13
|
+
"name": "Widget"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"_meta": {
|
|
17
|
+
"plasm": {
|
|
18
|
+
"steps": [
|
|
19
|
+
{
|
|
20
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr10e73bfbb267c52eb4a712839bbbbfdd27d9620b498654885cda683f36f4f584",
|
|
21
|
+
"artifact_uri": "plasm://r/2",
|
|
22
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr10e73bfbb267c52eb4a712839bbbbfdd27d9620b498654885cda683f36f4f584",
|
|
23
|
+
"column_schema": {
|
|
24
|
+
"columns": [
|
|
25
|
+
{
|
|
26
|
+
"kind": "field",
|
|
27
|
+
"name": "id",
|
|
28
|
+
"wire_type": "string"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"kind": "field",
|
|
32
|
+
"name": "name",
|
|
33
|
+
"wire_type": "string"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"entity_type": "Product",
|
|
37
|
+
"entry_id": "execute_tiny"
|
|
38
|
+
},
|
|
39
|
+
"display": "plan.compute(return_1)",
|
|
40
|
+
"node_id": "return_1",
|
|
41
|
+
"request_fingerprints": [
|
|
42
|
+
"plan-compute:6056f27fd7a062a84d059e22048a7e27c6d33059fa71af44bd210c05e3300370"
|
|
43
|
+
],
|
|
44
|
+
"return_label": "return_1",
|
|
45
|
+
"row_count": 1,
|
|
46
|
+
"run_id": "pr10e73bfbb267c52eb4a712839bbbbfdd27d9620b498654885cda683f36f4f584",
|
|
47
|
+
"run_step": 1
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"request_fingerprints": [
|
|
51
|
+
"plan-compute:6056f27fd7a062a84d059e22048a7e27c6d33059fa71af44bd210c05e3300370"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"archived_at": "2026-06-21T16:32:33.480Z"
|
|
56
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "pr9ec805d689e00db9270a9539858f2fb7216c24acbfea943d450e37b641149da1",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_ckAW2uHtX26s8qO9v7kcOQ",
|
|
7
|
+
"intent": "list execute_tiny products",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T18:46:29.552Z"
|
|
64
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "prc3c0c4ba2e28fc94ed6d37b6796e277a7997d9cb3184640d14c35c98bc6d136f",
|
|
3
|
+
"plan_commit_ref": "pc0",
|
|
4
|
+
"catalog_cgs_hash": "unknown",
|
|
5
|
+
"entry_id": "execute_tiny",
|
|
6
|
+
"logical_session_ref": "l_HfEmAKdjUTqgzZdXHWtTLg",
|
|
7
|
+
"intent": "list execute_tiny products async transport",
|
|
8
|
+
"ok": true,
|
|
9
|
+
"message": "## return_1 (1 rows)\n\n```tsv\nid\tname\tcategory_id\np1\tWidget\tc1\n```\n",
|
|
10
|
+
"results": [
|
|
11
|
+
{
|
|
12
|
+
"category_id": "c1",
|
|
13
|
+
"id": "p1",
|
|
14
|
+
"name": "Widget"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"_meta": {
|
|
18
|
+
"plasm": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"artifact_path": "/execute/plasm_node/agent/artifacts/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
22
|
+
"artifact_uri": "plasm://r/1",
|
|
23
|
+
"canonical_artifact_uri": "plasm://execute/plasm_node/agent/run/pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
24
|
+
"column_schema": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"kind": "field",
|
|
28
|
+
"name": "id",
|
|
29
|
+
"wire_type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "field",
|
|
33
|
+
"name": "name",
|
|
34
|
+
"wire_type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "field",
|
|
38
|
+
"name": "category_id",
|
|
39
|
+
"wire_type": "entity_ref"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"entity_type": "Product",
|
|
43
|
+
"entry_id": "execute_tiny"
|
|
44
|
+
},
|
|
45
|
+
"display": "Query(Product all) cap=product_list",
|
|
46
|
+
"node_id": "return_1",
|
|
47
|
+
"request_fingerprints": [
|
|
48
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
49
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
50
|
+
],
|
|
51
|
+
"return_label": "return_1",
|
|
52
|
+
"row_count": 1,
|
|
53
|
+
"run_id": "pr618fa533cbea0347b2851027f5f8c10ba0e917720f1092e10ef883317588e747",
|
|
54
|
+
"run_step": 1
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"request_fingerprints": [
|
|
58
|
+
"82a7cf2c3c0a53508da7d4ecdfc7bb81bbbe64f4f97aaadf5cc3ecf37eab2eeb",
|
|
59
|
+
"ae0d94da47e504b2d3366a4ae791d69911d1611f1f6fdb7266bc8d088f949b8e"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"archived_at": "2026-06-21T16:53:55.895Z"
|
|
64
|
+
}
|