@stringsync/splates 0.0.56 → 0.0.57
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 +6 -4
- package/index.js +5 -20
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -47,7 +47,8 @@ removes the worktree. A conflict or a failing check goes back to the agent that
|
|
|
47
47
|
made the change, which fixes it and merges again. A check that writes a JUnit
|
|
48
48
|
XML report to `$SPLATES_TEST_REPORT` (`bun test --reporter=junit
|
|
49
49
|
--reporter-outfile="$SPLATES_TEST_REPORT"`) queues a task for each test slower
|
|
50
|
-
than 5 seconds.
|
|
50
|
+
than 5 seconds. A check that appends `{"phase": "<name>", "ms": <n>}` lines to
|
|
51
|
+
`$SPLATES_GATE_PHASES` has those phase times kept in the merge's log entry.
|
|
51
52
|
|
|
52
53
|
**Project notes.** Keep durable conventions, decisions and other project context
|
|
53
54
|
as short Markdown files in `notes/`, one thing per file, edited in place.
|
|
@@ -62,7 +63,8 @@ Keep sensitive information out of them.
|
|
|
62
63
|
**One premerge at a time.** Each merge's gate (`postRewrite` and
|
|
63
64
|
`preMerge`) holds the machine's premerge lock, so merges from several agents
|
|
64
65
|
test one after another rather than run the machine out of memory. A gate
|
|
65
|
-
that runs past 3 minutes is killed, and the agent merges again.
|
|
66
|
+
that runs past 3 minutes is killed, and the agent merges again. A `preLock`
|
|
67
|
+
command, if set, runs before the wait, so checks that need no lock fail first.
|
|
66
68
|
|
|
67
69
|
**Pushing.** With `remote: "origin"` in `splates.config.ts`, each task's
|
|
68
70
|
branch goes to that remote as `splates/<task>`: after every commit an agent
|
|
@@ -254,8 +256,8 @@ serving on this machine.
|
|
|
254
256
|
|
|
255
257
|
This machine's own worker runs agents over a private Unix socket and
|
|
256
258
|
reconnects when the server restarts. Remote workers cannot join.
|
|
257
|
-
|
|
258
|
-
|
|
259
|
+
It runs as many agents at once as are started. Use `splates worker list` to
|
|
260
|
+
inspect it, and `splates worker drain local --undo` to resume it.
|
|
259
261
|
|
|
260
262
|
### Task ports
|
|
261
263
|
|
package/index.js
CHANGED
|
@@ -1252,7 +1252,6 @@ import {
|
|
|
1252
1252
|
FileLogger,
|
|
1253
1253
|
listWorkers,
|
|
1254
1254
|
removeWorker,
|
|
1255
|
-
setWorkerSlots,
|
|
1256
1255
|
workerRun
|
|
1257
1256
|
} from "@stringsync/splates-server/workers";
|
|
1258
1257
|
import { cli as cli13 } from "webappwiz/cmd";
|
|
@@ -1267,8 +1266,8 @@ var DEV = {
|
|
|
1267
1266
|
default: "",
|
|
1268
1267
|
description: "the `splates server` to ask, a URL such as http://localhost:4310; by default the one an agent runs under, from SPLATES_DEV"
|
|
1269
1268
|
};
|
|
1270
|
-
var splatesWaiting = cli12("queue").description("the agents waiting
|
|
1271
|
-
splatesWaiting.command("list").description("list the agents waiting
|
|
1269
|
+
var splatesWaiting = cli12("queue").description("the agents waiting to start on a worker of the running `splates server`: nothing caps how many agents run, so one waits only while what splates starts on its own (the queue, automations, hooks, the groomer) is paused, or while no worker it can run on is up, first come, first served; none is ever failed for waiting. An agent you start waits only while no worker is up");
|
|
1270
|
+
splatesWaiting.command("list").description("list the agents waiting to start, first in line first: position, project, task, conversation, how long each has waited and why (paused, no worker up, or worker draining)").option("dev", z13.string(), DEV).option("json", z13.boolean(), { default: false, description: "emit JSON" }).action((opts, ctx) => listQueue({
|
|
1272
1271
|
dev: opts.dev,
|
|
1273
1272
|
json: opts.json,
|
|
1274
1273
|
log: ctx.log,
|
|
@@ -1276,7 +1275,7 @@ splatesWaiting.command("list").description("list the agents waiting for a slot,
|
|
|
1276
1275
|
ps: ctx.ps,
|
|
1277
1276
|
send: ctx.fetch
|
|
1278
1277
|
}));
|
|
1279
|
-
splatesWaiting.command("move").description("move an agent waiting
|
|
1278
|
+
splatesWaiting.command("move").description("move an agent waiting to start to another place in line, from 1 for the next to start, then list the queue").arg("which", z13.string(), {
|
|
1280
1279
|
description: "the task it works, or its conversation's id"
|
|
1281
1280
|
}).arg("position", z13.coerce.number().int(), {
|
|
1282
1281
|
description: "where in line to put it, from 1"
|
|
@@ -1301,7 +1300,7 @@ splatesWorker.command("run").description("run this machine’s worker until stop
|
|
|
1301
1300
|
description: "the old name for --server, still read for workers installed before it, and passed to a build older than it"
|
|
1302
1301
|
}).option("slots", z14.coerce.number().int().min(0), {
|
|
1303
1302
|
default: 0,
|
|
1304
|
-
description: "how many
|
|
1303
|
+
description: "ignored: nothing caps how many agents a worker runs; still read, since a `splates server` started before it was dropped passes it"
|
|
1305
1304
|
}).option("id", z14.literal("local"), {
|
|
1306
1305
|
default: "local",
|
|
1307
1306
|
description: "what the server knows this worker by, kept across restarts so it picks up where it was; by default local"
|
|
@@ -1310,13 +1309,12 @@ splatesWorker.command("run").description("run this machine’s worker until stop
|
|
|
1310
1309
|
description: "say only what went wrong, not each time it joins or loses its server, as the worker `splates server` starts beside itself does; all of it still goes to worker.log in ~/.splates, the one before it kept as worker.log.1"
|
|
1311
1310
|
}).action((opts, ctx) => workerRun({
|
|
1312
1311
|
coordinator: opts.server || opts.coordinator,
|
|
1313
|
-
slots: opts.slots,
|
|
1314
1312
|
id: opts.id,
|
|
1315
1313
|
log: opts.quiet ? quietLog(ctx) : ctx.log,
|
|
1316
1314
|
ps: ctx.ps,
|
|
1317
1315
|
fs: ctx.fs
|
|
1318
1316
|
}));
|
|
1319
|
-
splatesWorker.command("list").description("list the workers the running `splates server` has: platform, build, protocol,
|
|
1317
|
+
splatesWorker.command("list").description("list the workers the running `splates server` has: platform, build, protocol, health with when it was last heard, and tasks, then any it refused for speaking another protocol").option("dev", z14.string(), {
|
|
1320
1318
|
default: "",
|
|
1321
1319
|
description: "the `splates server` to ask, a URL such as http://localhost:4310; by default the one an agent runs under, from SPLATES_DEV"
|
|
1322
1320
|
}).option("json", z14.boolean(), { default: false, description: "emit JSON" }).action((opts, ctx) => listWorkers({
|
|
@@ -1345,19 +1343,6 @@ splatesWorker.command("drain").description("take no new agents on a worker, lett
|
|
|
1345
1343
|
ps: ctx.ps,
|
|
1346
1344
|
send: ctx.fetch
|
|
1347
1345
|
}));
|
|
1348
|
-
splatesWorker.command("slots").description("set how many agents a worker runs at once, from now on, over what it started with").arg("id", z14.string(), {
|
|
1349
|
-
description: "the worker, as `splates worker list` names it"
|
|
1350
|
-
}).arg("slots", z14.coerce.number().int().min(1), {
|
|
1351
|
-
description: "how many at once"
|
|
1352
|
-
}).option("dev", z14.string(), dev).action((opts, ctx) => setWorkerSlots({
|
|
1353
|
-
id: opts.id,
|
|
1354
|
-
slots: opts.slots,
|
|
1355
|
-
dev: opts.dev,
|
|
1356
|
-
log: ctx.log,
|
|
1357
|
-
fs: ctx.fs,
|
|
1358
|
-
ps: ctx.ps,
|
|
1359
|
-
send: ctx.fetch
|
|
1360
|
-
}));
|
|
1361
1346
|
splatesWorker.command("remove").description("stop this machine’s worker taking agents, letting its agents run to their end; resume it with `splates worker drain local --undo`").arg("id", z14.string(), {
|
|
1362
1347
|
description: "the worker, as `splates worker list` names it"
|
|
1363
1348
|
}).option("force", z14.boolean(), {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stringsync/splates",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.57",
|
|
4
4
|
"description": "Runs several AI coding agents on one repository at once, each in its own git worktree",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "stringsync LLC",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@stringsync/splates-server": "^0.0.
|
|
20
|
+
"@stringsync/splates-server": "^0.0.57",
|
|
21
21
|
"webappwiz": "0.0.47",
|
|
22
22
|
"zod": "^4.4.3"
|
|
23
23
|
},
|