@kdonev/termscape 0.1.1 → 0.1.2
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 +50 -81
- package/dist/agents/profiles.d.ts +9 -2
- package/dist/agents/profiles.d.ts.map +1 -1
- package/dist/agents/profiles.js +9 -4
- package/dist/agents/profiles.js.map +1 -1
- package/dist/agents/templates.d.ts +15 -0
- package/dist/agents/templates.d.ts.map +1 -1
- package/dist/agents/templates.js +32 -0
- package/dist/agents/templates.js.map +1 -1
- package/dist/agents/wiring.d.ts.map +1 -1
- package/dist/agents/wiring.js +3 -0
- package/dist/agents/wiring.js.map +1 -1
- package/dist/cli.js +21 -11
- package/dist/cli.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +18 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/store.d.ts +12 -1
- package/dist/db/store.d.ts.map +1 -1
- package/dist/db/store.js +46 -6
- package/dist/db/store.js.map +1 -1
- package/dist/hub.d.ts +38 -1
- package/dist/hub.d.ts.map +1 -1
- package/dist/hub.js +46 -1
- package/dist/hub.js.map +1 -1
- package/dist/hub.tgz +0 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/protocol/domain.d.ts +1 -0
- package/dist/protocol/domain.d.ts.map +1 -1
- package/dist/protocol/domain.js +10 -0
- package/dist/protocol/domain.js.map +1 -1
- package/dist/protocol/mcp-tools.d.ts +13 -0
- package/dist/protocol/mcp-tools.d.ts.map +1 -1
- package/dist/protocol/mcp-tools.js +15 -0
- package/dist/protocol/mcp-tools.js.map +1 -1
- package/dist/protocol/peer.d.ts +2 -1
- package/dist/protocol/peer.d.ts.map +1 -1
- package/dist/protocol/peer.js +6 -1
- package/dist/protocol/peer.js.map +1 -1
- package/dist/protocol/ws.d.ts +5 -0
- package/dist/protocol/ws.d.ts.map +1 -1
- package/dist/protocol/ws.js +9 -0
- package/dist/protocol/ws.js.map +1 -1
- package/dist/remote/deployer.d.ts.map +1 -1
- package/dist/remote/deployer.js +15 -2
- package/dist/remote/deployer.js.map +1 -1
- package/dist/remote/join-script.d.ts.map +1 -1
- package/dist/remote/join-script.js +34 -2
- package/dist/remote/join-script.js.map +1 -1
- package/dist/remote/lan.d.ts +45 -22
- package/dist/remote/lan.d.ts.map +1 -1
- package/dist/remote/lan.js +95 -30
- package/dist/remote/lan.js.map +1 -1
- package/dist/remote/peer-serve.d.ts.map +1 -1
- package/dist/remote/peer-serve.js +1 -0
- package/dist/remote/peer-serve.js.map +1 -1
- package/dist/remote/registry.d.ts +1 -0
- package/dist/remote/registry.d.ts.map +1 -1
- package/dist/remote/registry.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +16 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +37 -7
- package/dist/session/manager.js.map +1 -1
- package/dist/session/pty.d.ts +19 -0
- package/dist/session/pty.d.ts.map +1 -1
- package/dist/session/pty.js +84 -1
- package/dist/session/pty.js.map +1 -1
- package/package.json +1 -1
- package/web/assets/{index-Bq_Y0JcC.js → index-9Z_8xZqk.js} +8 -4
- package/web/assets/index-DheUm5dl.css +1 -0
- package/web/index.html +2 -2
- package/web/assets/index-DQYDkOwJ.css +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@ from one agent is delivered by typing it into the other's terminal, immediately.
|
|
|
10
10
|
|
|
11
11
|
Local-first: the hub runs on your machine and the UI is a browser tab. It binds
|
|
12
12
|
every interface, so the canvas opens on your phone or a second screen as well —
|
|
13
|
-
with its token
|
|
13
|
+
with its token — and another machine can attach itself from the join page.
|
|
14
|
+
`--listen loopback` keeps the whole thing to this machine. Other machines run
|
|
14
15
|
the same hub as a daemon and appear on the same canvas.
|
|
15
16
|
|
|
16
17
|
## Getting started
|
|
@@ -25,9 +26,10 @@ installed system-wide: state lives in `~/.termscape`, and deleting that
|
|
|
25
26
|
directory is the uninstall.
|
|
26
27
|
|
|
27
28
|
The hub is reachable from your network, so the same URL — token and all — opens
|
|
28
|
-
the canvas on a phone or a second screen
|
|
29
|
-
|
|
30
|
-
the hub to this
|
|
29
|
+
the canvas on a phone or a second screen, and the **+ machine** dialog already
|
|
30
|
+
has a join link in it for the second machine; see
|
|
31
|
+
[Adding another machine](#adding-another-machine). To keep the hub to this
|
|
32
|
+
machine entirely — no join page, nothing off 127.0.0.1:
|
|
31
33
|
|
|
32
34
|
```bash
|
|
33
35
|
npx @kdonev/termscape --listen loopback
|
|
@@ -81,23 +83,18 @@ next window.
|
|
|
81
83
|
|
|
82
84
|
## Adding another machine
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
being enrollable are kept as two separate permissions. Turn the second one on,
|
|
88
|
-
then let the other machine come to you:
|
|
86
|
+
Nothing to turn on: a hub started with no flags at all hands out join links.
|
|
87
|
+
The startup banner prints an `enroll:` URL alongside the usual one, and the
|
|
88
|
+
**+ machine** dialog shows the same URL with a copy button.
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
That is a deliberate trade and worth knowing about, because `/join` is the one
|
|
91
|
+
page served without your token — it has to be typed by hand on a machine that
|
|
92
|
+
has nothing yet. So on a network you do not trust, anyone who can reach this
|
|
93
|
+
hub can pull the installer and put a machine on your canvas. `--listen
|
|
94
|
+
loopback` is how you say no, and it turns off the network entirely.
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
workspace directly — npm needs the `--` to hand flags to the hub rather than
|
|
97
|
-
reading them itself.)
|
|
98
|
-
|
|
99
|
-
The hub prints an `enroll:` URL alongside the usual one. Open it **on the
|
|
100
|
-
machine you want to add** and run the command it shows:
|
|
96
|
+
Open the join URL **on the machine you want to add** and run the command it
|
|
97
|
+
shows:
|
|
101
98
|
|
|
102
99
|
```bash
|
|
103
100
|
curl -fsSL http://studio:7777/join.sh | sh # macOS, Linux
|
|
@@ -152,10 +149,12 @@ have actually changed, and checks that tree really loads before trusting it.
|
|
|
152
149
|
|
|
153
150
|
Two things worth knowing:
|
|
154
151
|
|
|
155
|
-
- The **join page**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
152
|
+
- The **join page** answers by default, on the same interfaces the canvas does.
|
|
153
|
+
Anyone who can reach your hub can load that page and attach a machine to your
|
|
154
|
+
canvas; every *other* route still requires the token. It was opt-in once, and
|
|
155
|
+
the reason it is not any more is that the add-machine dialog had nothing to
|
|
156
|
+
show but an instruction to restart the hub with a flag — a feature reachable
|
|
157
|
+
only that way is a feature nobody uses. `--listen loopback` is the way back.
|
|
159
158
|
- Each download carries a single-use key that expires in 15 minutes. Once a
|
|
160
159
|
machine has joined it keeps a durable token in `~/.termscape/host-token` and
|
|
161
160
|
rejoins by itself after a reboot or a dropped link — its agents keep running
|
|
@@ -172,6 +171,7 @@ tunnel. Same protocol, opposite direction.
|
|
|
172
171
|
|---|---|
|
|
173
172
|
| `whoami` | your address, workspace and working directory |
|
|
174
173
|
| `list_agents` | everyone on the canvas, across every host, and whether they are busy |
|
|
174
|
+
| `list_templates` | the saved ways of starting an agent, and what each one runs |
|
|
175
175
|
| `send_message` | type a message into another agent's terminal, right now |
|
|
176
176
|
| `spawn_agent` | start a helper in your workspace, with an optional first task |
|
|
177
177
|
| `read_screen` | look at another agent's terminal without interrupting it |
|
|
@@ -179,6 +179,11 @@ tunnel. Same protocol, opposite direction.
|
|
|
179
179
|
| `stop_agent` | stop an agent you spawned |
|
|
180
180
|
| `propose_template` | ask the human to save a way of starting an agent, under a name |
|
|
181
181
|
|
|
182
|
+
`list_templates` is what makes `spawn_agent` usable for anything but a bare
|
|
183
|
+
CLI: its `profile` takes a template id, and this is how an agent finds out
|
|
184
|
+
which ids exist. It reports the *names* of the environment variables a template
|
|
185
|
+
sets and never their values, which are credentials more often than not.
|
|
186
|
+
|
|
182
187
|
`propose_template` is the only one that asks rather than does. A template
|
|
183
188
|
changes how *future* agents are launched, on every machine, with nobody
|
|
184
189
|
necessarily watching — so the canvas shows it to a human, who can edit it
|
|
@@ -272,6 +277,10 @@ agent = "claude"
|
|
|
272
277
|
model = "opus"
|
|
273
278
|
effort = "high"
|
|
274
279
|
prompt = "Review the diff on this branch for correctness bugs. Report, do not fix."
|
|
280
|
+
|
|
281
|
+
# Set for the agents this template starts, on top of what the CLI already gets.
|
|
282
|
+
[template.reviewer.env]
|
|
283
|
+
ANTHROPIC_BASE_URL = "https://proxy.internal"
|
|
275
284
|
```
|
|
276
285
|
|
|
277
286
|
- Templates made in the panel are stored in `state.db`, the same place
|
|
@@ -309,6 +318,18 @@ instance with an address and a window.
|
|
|
309
318
|
afterwards.
|
|
310
319
|
- **Starting an agent on another machine sends values, not a template name.**
|
|
311
320
|
The two machines do not share config, so the name is resolved here first.
|
|
321
|
+
- **A template can set environment variables**, in the panel as `NAME=value`
|
|
322
|
+
lines or as a `[template.<name>.env]` table in the file. They are set for the
|
|
323
|
+
agents that template starts, on top of whatever the CLI would inherit
|
|
324
|
+
anyway, and they win over what the agent profile sets on the rare name both
|
|
325
|
+
name. This is where an API key, a base URL or a feature flag that
|
|
326
|
+
distinguishes two otherwise identical templates belongs — before it, the
|
|
327
|
+
difference could only live in whichever shell the hub happened to be started
|
|
328
|
+
from, which is not a per-template answer at all. Like the model, they are
|
|
329
|
+
recorded on the session, so a resumed agent comes back in the environment it
|
|
330
|
+
was launched in. An agent proposing a template cannot ask for any: choosing
|
|
331
|
+
what the next agent's credentials are is not something to review one dialog
|
|
332
|
+
at a time.
|
|
312
333
|
|
|
313
334
|
### What is actually installed
|
|
314
335
|
|
|
@@ -375,8 +396,9 @@ could be talked into sending an attacker's text to a peer.
|
|
|
375
396
|
the network can read. `--listen loopback` narrows it to this machine.
|
|
376
397
|
- A hub running `--headless` — one that joined a canvas, or was deployed over
|
|
377
398
|
ssh and is reached through its tunnel — stays on `127.0.0.1` regardless.
|
|
378
|
-
- `/join` is the only route served without the token, and it
|
|
379
|
-
|
|
399
|
+
- `/join` is the only route served without the token, and it answers by
|
|
400
|
+
default on every interface the hub bound. `--listen loopback` turns it off,
|
|
401
|
+
along with the rest of the network.
|
|
380
402
|
- Every agent gets its own bearer token. The sender of a message is taken from
|
|
381
403
|
that token, never from the arguments, so attribution cannot be forged.
|
|
382
404
|
- Messages are length-capped, rate-limited per sender, and always arrive with a
|
|
@@ -388,63 +410,10 @@ could be talked into sending an attacker's text to a peer.
|
|
|
388
410
|
- An agent may only stop agents it spawned.
|
|
389
411
|
- `--dangerously-skip-permissions` is never a default.
|
|
390
412
|
|
|
391
|
-
##
|
|
392
|
-
|
|
393
|
-
From a clone, rather than the published package:
|
|
394
|
-
|
|
395
|
-
```bash
|
|
396
|
-
git clone https://github.com/kdonev/termscape.git
|
|
397
|
-
cd termscape
|
|
398
|
-
npm install
|
|
399
|
-
npm run build
|
|
400
|
-
npm run dev # hub with the built UI
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
If `npm install` or `npm ci` tries to compile `better-sqlite3` and fails for
|
|
404
|
-
want of a C++ toolchain, install this way instead:
|
|
405
|
-
|
|
406
|
-
```bash
|
|
407
|
-
npm ci --ignore-scripts && npm rebuild node-pty
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
Any install that reads `package-lock.json` misses better-sqlite3's
|
|
411
|
-
`gypfile: false` and runs `node-gyp` on a module that already ships working
|
|
412
|
-
prebuilds. Skipping install scripts avoids that; the rebuild puts back the one
|
|
413
|
-
native build that is real, which is a no-op except on Linux. This is what CI
|
|
414
|
-
does. It does not affect anyone installing the published package.
|
|
415
|
-
|
|
416
|
-
```bash
|
|
417
|
-
npm test # unit + integration, no LLM required
|
|
418
|
-
npm run typecheck
|
|
419
|
-
npm run dev:web # vite dev server, expects a hub on :7777
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
The integration tests spawn real PTYs and drive the real MCP endpoint, so
|
|
423
|
-
`npm test` genuinely exercises message delivery and cross-host routing.
|
|
424
|
-
|
|
425
|
-
### Known quirks
|
|
426
|
-
|
|
427
|
-
- On Windows, node-pty prints `AttachConsole failed` to stderr when killing a
|
|
428
|
-
PTY from a process with no console attached (notably under the test runner).
|
|
429
|
-
It is noise from a helper process and does not affect behaviour.
|
|
430
|
-
|
|
431
|
-
### Releasing
|
|
432
|
-
|
|
433
|
-
The repo is a workspace of three private packages; what gets published is a
|
|
434
|
-
single package assembled by `packages/hub/scripts/pack-npm.mjs` — the hub,
|
|
435
|
-
the built UI it serves, and `@termscape/protocol` bundled inside it.
|
|
436
|
-
|
|
437
|
-
```bash
|
|
438
|
-
npm run pack:npm # build everything, then stage and pack the tarball
|
|
439
|
-
```
|
|
413
|
+
## Contributing
|
|
440
414
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
tarball on macOS, Windows and Linux and checks each one starts and serves the
|
|
444
|
-
canvas, and only then publishes to npm with provenance. Bump the version in
|
|
445
|
-
`packages/hub/package.json` **and** `HUB_VERSION` in `packages/hub/src/hub.ts`
|
|
446
|
-
together — peer compatibility is gated on the constant, and a test fails if
|
|
447
|
-
the two drift.
|
|
415
|
+
Building from a clone, running the tests and cutting a release:
|
|
416
|
+
see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
448
417
|
|
|
449
418
|
## License
|
|
450
419
|
|
|
@@ -100,8 +100,15 @@ export interface AgentProfile {
|
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
102
|
* Built-in profiles. All Claude Code flags here are verified against the CLI:
|
|
103
|
-
* --mcp-config, --
|
|
104
|
-
* --
|
|
103
|
+
* --mcp-config, --session-id, --settings, --append-system-prompt-file,
|
|
104
|
+
* --resume.
|
|
105
|
+
*
|
|
106
|
+
* `--mcp-config` deliberately arrives *without* `--strict-mcp-config`. Strict
|
|
107
|
+
* mode makes the named file the whole of the agent's MCP configuration, which
|
|
108
|
+
* silently drops every server the user set up for themselves — an agent
|
|
109
|
+
* started here would be missing the tools it has everywhere else, with nothing
|
|
110
|
+
* on screen to say why. Without it the hub's server is one more entry beside
|
|
111
|
+
* theirs, which is the only version of "wired to the hub" worth having.
|
|
105
112
|
*
|
|
106
113
|
* Codex and Gemini are wired too, and every flag and key below was verified
|
|
107
114
|
* against the CLI actually installed - codex-cli 0.153.4 and gemini 0.58.0 -
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,GAAG,EAAE,OAAO,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAIlB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAOD
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,GAAG,EAAE,OAAO,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAIlB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAkNzD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAEpE;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA+B;gBAEnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAInD,oEAAoE;IACpE,MAAM,CAAC,IAAI,IAAI,eAAe;IAyC9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAMjC,IAAI,IAAI,YAAY,EAAE;IAItB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAIjC;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAElF"}
|
package/dist/agents/profiles.js
CHANGED
|
@@ -9,8 +9,15 @@ function defaultShell() {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Built-in profiles. All Claude Code flags here are verified against the CLI:
|
|
12
|
-
* --mcp-config, --
|
|
13
|
-
* --
|
|
12
|
+
* --mcp-config, --session-id, --settings, --append-system-prompt-file,
|
|
13
|
+
* --resume.
|
|
14
|
+
*
|
|
15
|
+
* `--mcp-config` deliberately arrives *without* `--strict-mcp-config`. Strict
|
|
16
|
+
* mode makes the named file the whole of the agent's MCP configuration, which
|
|
17
|
+
* silently drops every server the user set up for themselves — an agent
|
|
18
|
+
* started here would be missing the tools it has everywhere else, with nothing
|
|
19
|
+
* on screen to say why. Without it the hub's server is one more entry beside
|
|
20
|
+
* theirs, which is the only version of "wired to the hub" worth having.
|
|
14
21
|
*
|
|
15
22
|
* Codex and Gemini are wired too, and every flag and key below was verified
|
|
16
23
|
* against the CLI actually installed - codex-cli 0.153.4 and gemini 0.58.0 -
|
|
@@ -47,7 +54,6 @@ export const BUILTIN_PROFILES = {
|
|
|
47
54
|
args: [
|
|
48
55
|
'--mcp-config',
|
|
49
56
|
'{{mcp_config_path}}',
|
|
50
|
-
'--strict-mcp-config',
|
|
51
57
|
'--session-id',
|
|
52
58
|
'{{session_uuid}}',
|
|
53
59
|
'--settings',
|
|
@@ -78,7 +84,6 @@ export const BUILTIN_PROFILES = {
|
|
|
78
84
|
resumeArgs: [
|
|
79
85
|
'--mcp-config',
|
|
80
86
|
'{{mcp_config_path}}',
|
|
81
|
-
'--strict-mcp-config',
|
|
82
87
|
'--resume',
|
|
83
88
|
'{{session_uuid}}',
|
|
84
89
|
'--settings',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA4GpC,SAAS,YAAY;IACnB,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACzE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;AAC1C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,12 @@ export interface AgentTemplate {
|
|
|
33
33
|
* lands before the program is reading.
|
|
34
34
|
*/
|
|
35
35
|
prompt?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Extra environment for the agent process, merged over what its profile
|
|
38
|
+
* sets. Values only — no expansion of any kind, so a value containing
|
|
39
|
+
* `{{...}}` reaches the process as typed.
|
|
40
|
+
*/
|
|
41
|
+
env: Record<string, string>;
|
|
36
42
|
/**
|
|
37
43
|
* Why this template cannot be used, when it cannot.
|
|
38
44
|
*
|
|
@@ -65,6 +71,15 @@ export interface AgentTemplate {
|
|
|
65
71
|
* that would otherwise be discovered at launch.
|
|
66
72
|
*/
|
|
67
73
|
export declare function validate(t: AgentTemplate, profiles: ProfileRegistry): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* What a process will actually accept as a variable name.
|
|
76
|
+
*
|
|
77
|
+
* Deliberately strict rather than permissive: a name with a space or an `=` in
|
|
78
|
+
* it is silently dropped by some shells and rejected by others, and finding
|
|
79
|
+
* that out at launch — as a missing key rather than an error — is exactly the
|
|
80
|
+
* kind of thing templates are validated at load to avoid.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isEnvName(name: string): boolean;
|
|
68
83
|
export declare class TemplateRegistry {
|
|
69
84
|
private readonly templates;
|
|
70
85
|
constructor(templates: Record<string, AgentTemplate>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/agents/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,MAAM,EAAE,cAAc,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/agents/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,MAAM,EAAE,cAAc,CAAC;CACxB;AA2BD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,eAAe,GACxB,MAAM,GAAG,IAAI,CAaf;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAmBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;gBAE9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAIpD;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,gBAAgB;IA4DvE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAIrC,IAAI,IAAI,aAAa,EAAE;IAIvB,0DAA0D;IAC1D,IAAI,IAAI,iBAAiB,EAAE;CAa5B"}
|
package/dist/agents/templates.js
CHANGED
|
@@ -7,6 +7,7 @@ function bare(profile) {
|
|
|
7
7
|
id: profile.id,
|
|
8
8
|
description: profile.description,
|
|
9
9
|
agent: profile.id,
|
|
10
|
+
env: {},
|
|
10
11
|
source: 'derived',
|
|
11
12
|
};
|
|
12
13
|
}
|
|
@@ -19,6 +20,7 @@ function fromStored(t, profiles) {
|
|
|
19
20
|
model: t.model ?? undefined,
|
|
20
21
|
effort: t.effort ?? undefined,
|
|
21
22
|
prompt: t.prompt ?? undefined,
|
|
23
|
+
env: t.env,
|
|
22
24
|
source: 'stored',
|
|
23
25
|
};
|
|
24
26
|
}
|
|
@@ -40,8 +42,36 @@ export function validate(t, profiles) {
|
|
|
40
42
|
if (t.effort !== undefined && !agent.effortArgs) {
|
|
41
43
|
return `${t.agent} has no effort setting`;
|
|
42
44
|
}
|
|
45
|
+
for (const name of Object.keys(t.env)) {
|
|
46
|
+
if (!isEnvName(name))
|
|
47
|
+
return `"${name}" is not a usable environment variable name`;
|
|
48
|
+
}
|
|
43
49
|
return null;
|
|
44
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* What a process will actually accept as a variable name.
|
|
53
|
+
*
|
|
54
|
+
* Deliberately strict rather than permissive: a name with a space or an `=` in
|
|
55
|
+
* it is silently dropped by some shells and rejected by others, and finding
|
|
56
|
+
* that out at launch — as a missing key rather than an error — is exactly the
|
|
57
|
+
* kind of thing templates are validated at load to avoid.
|
|
58
|
+
*/
|
|
59
|
+
export function isEnvName(name) {
|
|
60
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* `[template.x.env]` out of the TOML file, keeping only string values.
|
|
64
|
+
*
|
|
65
|
+
* A number or a boolean in that table is a mistake worth ignoring rather than
|
|
66
|
+
* coercing: `PORT = 8080` reaching the process as the string "8080" is
|
|
67
|
+
* probably what was meant, but `DEBUG = false` reaching it as "false" — which
|
|
68
|
+
* every program reads as set — is the opposite.
|
|
69
|
+
*/
|
|
70
|
+
function envTable(v) {
|
|
71
|
+
if (typeof v !== 'object' || v === null || Array.isArray(v))
|
|
72
|
+
return {};
|
|
73
|
+
return Object.fromEntries(Object.entries(v).filter((e) => typeof e[1] === 'string'));
|
|
74
|
+
}
|
|
45
75
|
export class TemplateRegistry {
|
|
46
76
|
templates;
|
|
47
77
|
constructor(templates) {
|
|
@@ -94,6 +124,7 @@ export class TemplateRegistry {
|
|
|
94
124
|
model: typeof t.model === 'string' ? t.model : undefined,
|
|
95
125
|
effort: typeof t.effort === 'string' ? t.effort : undefined,
|
|
96
126
|
prompt: typeof t.prompt === 'string' ? t.prompt : undefined,
|
|
127
|
+
env: envTable(t.env),
|
|
97
128
|
source: 'file',
|
|
98
129
|
};
|
|
99
130
|
}
|
|
@@ -125,6 +156,7 @@ export class TemplateRegistry {
|
|
|
125
156
|
model: t.model ?? null,
|
|
126
157
|
effort: t.effort ?? null,
|
|
127
158
|
prompt: t.prompt ?? null,
|
|
159
|
+
env: t.env,
|
|
128
160
|
error: t.error ?? null,
|
|
129
161
|
source: t.source,
|
|
130
162
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/agents/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/agents/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAgD5D;AAwID;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAgD5D;AAwID;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CA0EtD"}
|
package/dist/agents/wiring.js
CHANGED
|
@@ -196,6 +196,9 @@ on the ending rather than looking for the exact name below:
|
|
|
196
196
|
- \`list_agents\` — who else exists, and whether they are idle or busy.
|
|
197
197
|
- \`send_message\` — send text to another agent. It is typed directly into
|
|
198
198
|
their terminal, as if a user had pasted it.
|
|
199
|
+
- \`list_templates\` — the saved ways of starting an agent: what CLI each one
|
|
200
|
+
runs, on what model, with what opening instruction. A template id is what
|
|
201
|
+
\`spawn_agent\` takes as its \`profile\`.
|
|
199
202
|
- \`spawn_agent\` — start a new agent in your workspace and optionally give it
|
|
200
203
|
a first instruction. Use this to delegate work you want done in parallel.
|
|
201
204
|
- \`read_screen\` — look at another agent's terminal without interrupting it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/agents/wiring.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -61,9 +61,10 @@ async function main() {
|
|
|
61
61
|
--port <n> port to bind; 0 lets the OS pick. Default: the first
|
|
62
62
|
free memorable port (7777, 4242, ...)
|
|
63
63
|
--listen <addr> bind address. Default: every interface, so the canvas is
|
|
64
|
-
reachable from your network with its token
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
reachable from your network with its token and another
|
|
65
|
+
machine can attach from the join page - the one page
|
|
66
|
+
served *without* the token. "loopback" keeps the hub to
|
|
67
|
+
this machine, and turns that page off with it
|
|
67
68
|
--headless serve no web UI; used when running as a remote hub
|
|
68
69
|
--token <t> client token to use instead of generating one
|
|
69
70
|
--open open the UI in the browser even when not on a terminal
|
|
@@ -102,10 +103,14 @@ Joining another machine's canvas:
|
|
|
102
103
|
console.log(`termscape hub ${HUB_VERSION} listening on ${origin}`);
|
|
103
104
|
console.log(`TERMSCAPE_PORT=${port}`);
|
|
104
105
|
/*
|
|
105
|
-
* Binding wide is the default now, which makes
|
|
106
|
-
* confirmation - so it is said first, before the URLs,
|
|
107
|
-
* costs before it says what it buys. The old banner put
|
|
108
|
-
* read as an acknowledgement of something the operator
|
|
106
|
+
* Binding wide and answering the join page is the default now, which makes
|
|
107
|
+
* it news rather than a confirmation - so it is said first, before the URLs,
|
|
108
|
+
* and it says what it costs before it says what it buys. The old banner put
|
|
109
|
+
* this last, where it read as an acknowledgement of something the operator
|
|
110
|
+
* had just typed.
|
|
111
|
+
*
|
|
112
|
+
* The way out is printed on the enrolling path too, not only the other one.
|
|
113
|
+
* It is the branch where somebody might want it.
|
|
109
114
|
*/
|
|
110
115
|
if (!values.headless && lanOrigin) {
|
|
111
116
|
const where = lanOrigin.replace(/^http:\/\//, '');
|
|
@@ -114,6 +119,7 @@ Joining another machine's canvas:
|
|
|
114
119
|
console.log(` anyone who can reach it can load the join page and`);
|
|
115
120
|
console.log(` attach a machine to this canvas. Everything else`);
|
|
116
121
|
console.log(` needs the token below.`);
|
|
122
|
+
console.log(` --listen loopback keeps the hub to this machine.`);
|
|
117
123
|
}
|
|
118
124
|
else {
|
|
119
125
|
console.log(` the canvas needs the token below, so this is worth`);
|
|
@@ -137,10 +143,14 @@ Joining another machine's canvas:
|
|
|
137
143
|
console.log(` or ${enrollAltOrigin}/join`);
|
|
138
144
|
}
|
|
139
145
|
else if (!values.headless) {
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
|
|
146
|
+
// Only two ways to get here now that the default enrolls: the operator
|
|
147
|
+
// asked for loopback, or this machine has no address anyone could reach it
|
|
148
|
+
// on. Saying which is the difference between a setting they chose and a
|
|
149
|
+
// network they need to go and look at.
|
|
150
|
+
const why = values.listen === undefined
|
|
151
|
+
? 'this machine has no address another machine could reach it on'
|
|
152
|
+
: 'this hub is bound to loopback';
|
|
153
|
+
console.log(`\n no join page: ${why}`);
|
|
144
154
|
}
|
|
145
155
|
if (!values.headless)
|
|
146
156
|
console.log('');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,EAoOjC,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CA+BlD;AAED,eAAO,MAAM,cAAc,QAG1B,CAAC"}
|
package/dist/db/migrations.js
CHANGED
|
@@ -208,6 +208,24 @@ export const MIGRATIONS = [
|
|
|
208
208
|
);
|
|
209
209
|
`,
|
|
210
210
|
},
|
|
211
|
+
{
|
|
212
|
+
version: 7,
|
|
213
|
+
name: 'template_env',
|
|
214
|
+
up: `
|
|
215
|
+
-- Extra environment a template sets for the agent it launches.
|
|
216
|
+
--
|
|
217
|
+
-- JSON rather than a side table: it is a small map read and written
|
|
218
|
+
-- whole, exactly like the argv and env already on the session row, and a
|
|
219
|
+
-- table would buy queries nobody makes.
|
|
220
|
+
ALTER TABLE template ADD COLUMN env_json TEXT;
|
|
221
|
+
|
|
222
|
+
-- And the copy that belongs to the session, for the same reason model
|
|
223
|
+
-- and effort are recorded there: a template is editable, and a session
|
|
224
|
+
-- resumed a week later has to come back in the environment it was
|
|
225
|
+
-- launched in rather than whatever the template says today.
|
|
226
|
+
ALTER TABLE session ADD COLUMN template_env_json TEXT;
|
|
227
|
+
`,
|
|
228
|
+
},
|
|
211
229
|
];
|
|
212
230
|
export function runMigrations(db) {
|
|
213
231
|
db.exec(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,SAAS;QACf,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuFH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE;;;;;;;;;;;;;;;;;;;KAmBH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE;;;;;;;;;;;;;;KAcH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE;;;;;;;;;;;;;;KAcH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE;;;;;;;;;;;;;;;;;;KAkBH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BH;KACF;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,MAAM,OAAO,GAET,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAG5D,CAAC,CAAC,IAAI,CAAC,CAAC;IAEX,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAChC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAC3E,CAAC,CAAC,OAAO,EACT,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EACpC,CAAC,CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,SAAS;QACf,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuFH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE;;;;;;;;;;;;;;;;;;;KAmBH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE;;;;;;;;;;;;;;KAcH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE;;;;;;;;;;;;;;KAcH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE;;;;;;;;;;;;;;;;;;KAkBH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BH;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE;;;;;;;;;;;;;KAaH;KACF;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,MAAM,OAAO,GAET,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAG5D,CAAC,CAAC,IAAI,CAAC,CAAC;IAEX,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAChC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAChC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAC3E,CAAC,CAAC,OAAO,EACT,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EACpC,CAAC,CACF,CAAC"}
|