svamp-cli 0.2.324 → 0.2.326
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 +2 -3
- package/bin/skills/crew/SKILL.md +10 -2
- package/dist/{adminCommands-CHE1wq5m.mjs → adminCommands-D1NzA4Hb.mjs} +1 -1
- package/dist/{agentCommands-D7CV6DKL.mjs → agentCommands-DUHUBzrj.mjs} +5 -5
- package/dist/{auth-BfimMIpL.mjs → auth-DogM3PPm.mjs} +3 -3
- package/dist/{cli-Dv0vM2P7.mjs → cli-PWoHWBkF.mjs} +79 -79
- package/dist/cli.mjs +4 -4
- package/dist/{commands-CuyCq5eZ.mjs → commands-B5bC9eXz.mjs} +3 -3
- package/dist/{commands-CQK2nD3o.mjs → commands-CBk4dLUP.mjs} +3 -3
- package/dist/{commands-CdbvHh2p.mjs → commands-Ck4pP86Q.mjs} +4 -4
- package/dist/{commands-BA4LVlQW.mjs → commands-CqqQYRzg.mjs} +2 -2
- package/dist/{commands-GRfwAHgR.mjs → commands-CxfUr2Qr.mjs} +1 -1
- package/dist/{commands-4hjEGB-I.mjs → commands-D-4ry2I6.mjs} +13 -13
- package/dist/{commands-BQ7UFowe.mjs → commands-Dm9KNB-p.mjs} +3 -3
- package/dist/{commands-jaaQooYW.mjs → commands-Dt_MecCB.mjs} +3 -3
- package/dist/{fleet-CSh3MUcM.mjs → fleet-Bzg3YxM4.mjs} +2 -2
- package/dist/{headlessCli-Zl5Yu4CL.mjs → headlessCli-DvJI9DRh.mjs} +4 -4
- package/dist/index.mjs +3 -3
- package/dist/{notifyCommands-BQZXhfLt.mjs → notifyCommands-BpMErHcv.mjs} +1 -1
- package/dist/{package-DgboZg2o.mjs → package-D_BgajkI.mjs} +2 -2
- package/dist/{pinnedClaudeCode-8SZDu7O-.mjs → pinnedClaudeCode-BO0Qs_kE.mjs} +1 -1
- package/dist/{rpc-C1KIoUyz.mjs → rpc-27xBajCe.mjs} +3 -3
- package/dist/{rpc-BIzMNjqC.mjs → rpc-Qcj4M_LQ.mjs} +3 -3
- package/dist/{run-CEp9YpUZ.mjs → run-BBBr4jkI.mjs} +202 -47
- package/dist/{run-DKAROgSg.mjs → run-CocRShOR.mjs} +1 -1
- package/dist/{scheduler-DIYulmdV.mjs → scheduler-DjAVEyn3.mjs} +3 -3
- package/dist/{serveCommands-Bq5Cw3mE.mjs → serveCommands-BK-wWc_i.mjs} +12 -12
- package/dist/{sideband-C83128hf.mjs → sideband-5ck3CDWM.mjs} +3 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -78,7 +78,7 @@ All session commands support `--machine <id>` / `-m <id>` to target a specific m
|
|
|
78
78
|
svamp session list [--active] [--json]
|
|
79
79
|
svamp session machines # List discoverable machines
|
|
80
80
|
svamp session spawn <agent> [-d <path>] [--message <msg>] [--wait]
|
|
81
|
-
svamp session
|
|
81
|
+
svamp session archive <id> # Stop + archive a session
|
|
82
82
|
svamp session info <id> [--json]
|
|
83
83
|
svamp session send <id> <message> [--wait] [--timeout N]
|
|
84
84
|
svamp session wait <id> [--timeout N]
|
|
@@ -148,8 +148,7 @@ svamp service expose <name> --port <port> # Expose local port via frpc
|
|
|
148
148
|
svamp service expose <name> --port <port> --group <g> --group-key <key>
|
|
149
149
|
# Multi-machine load balancing
|
|
150
150
|
svamp service serve <name> [dir] # Static-files tunnel
|
|
151
|
-
svamp service list # List active tunnels
|
|
152
|
-
svamp service info <name> # Show details + health
|
|
151
|
+
svamp service list # List active tunnels (with status)
|
|
153
152
|
svamp service delete <name> # Stop tunnel
|
|
154
153
|
```
|
|
155
154
|
|
package/bin/skills/crew/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: crew
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3.0
|
|
4
4
|
description: Coordinate work as a lead delegating features to managed worktree children — spawn a child per feature on its own branch, run it as a loop until done, and pull finished work back to the base branch with merge-and-close. Use when one session should run a project and farm out features instead of piling many sessions on one working tree.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,14 +15,22 @@ A **crew** is emergent, not a heavy object: it is just plain sessions linked by
|
|
|
15
15
|
`parentSessionId` + a `crew.role`. A **feature child** always (a) has the lead as its
|
|
16
16
|
parent, (b) lives in its own `.dev/worktree/<n>` on its own branch, and (c) runs as a loop
|
|
17
17
|
with `parent: <lead>` — i.e. **the lead is the judge** that decides when the child is done
|
|
18
|
-
(this is the `parent`-routed case of the loop … until gate;
|
|
18
|
+
(this is the `parent`-routed case of the loop … until gate; the loop engine is Claude Code's
|
|
19
|
+
native `/goal`, driven from `svamp session loop`).
|
|
19
20
|
|
|
20
21
|
## The verbs (these are your tools)
|
|
21
22
|
|
|
22
23
|
```
|
|
23
24
|
svamp feature start "<brief>" [--oracle "<test cmd>"] [--base <branch>] [--action nudge|block]
|
|
25
|
+
[--issue <id>] [--max N] [--model <id>]
|
|
24
26
|
# (lead) create a worktree child on a new branch, run it as a loop until done
|
|
25
27
|
# (oracle → parent verdict), and brief it. Prints the child id.
|
|
28
|
+
# --issue <id> links the child to an existing backlog issue: its verdict routes
|
|
29
|
+
# ONTO that issue. This is the seam that joins crew to the backlog the loop
|
|
30
|
+
# oracle (`svamp issue pending`) reads — without it the child's result is
|
|
31
|
+
# invisible to the loop, so pass it whenever the feature came from an issue.
|
|
32
|
+
# --max N bounds the child's loop iterations (a hard stop, unlike the soft
|
|
33
|
+
# progress-based cap); --model <id> picks the child's model.
|
|
26
34
|
svamp feature start "<brief>" --no-worktree --dir <folder>
|
|
27
35
|
# (lead) STANDALONE child: run a child directly IN <folder> (a subdir or sibling
|
|
28
36
|
# project) with NO worktree/branch. Still attached (parentSessionId), shows in
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as connectToHypha, K as computeCollectionConfigUpdate, L as SYSTEM_COLLECTION_CONFIG } from './run-
|
|
1
|
+
import { c as connectToHypha, K as computeCollectionConfigUpdate, L as SYSTEM_COLLECTION_CONFIG } from './run-BBBr4jkI.mjs';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync, renameSync } from '
|
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { requireNotSandboxed } from './sandboxDetect-DNTcbgWD.mjs';
|
|
5
|
-
import { e as shortId } from './run-
|
|
5
|
+
import { e as shortId } from './run-BBBr4jkI.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -96,7 +96,7 @@ async function sessionSetTitle(title) {
|
|
|
96
96
|
}
|
|
97
97
|
async function sessionSetProjectDescription(description) {
|
|
98
98
|
const dir = process.cwd();
|
|
99
|
-
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-
|
|
99
|
+
const { projectName, writeProjectInfo, sanitizeDescription, projectInfoPath } = await import('./run-BBBr4jkI.mjs').then(function (n) { return n.as; });
|
|
100
100
|
const desc = sanitizeDescription(description, 240);
|
|
101
101
|
if (!desc) {
|
|
102
102
|
console.error("Project description is empty.");
|
|
@@ -369,7 +369,7 @@ async function sessionBroadcast(action, args) {
|
|
|
369
369
|
console.log(`Broadcast sent: ${action}`);
|
|
370
370
|
}
|
|
371
371
|
async function connectToMachineService() {
|
|
372
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
372
|
+
const { connectAndGetMachine } = await import('./commands-CxfUr2Qr.mjs');
|
|
373
373
|
return connectAndGetMachine();
|
|
374
374
|
}
|
|
375
375
|
function buildInboxMessage(args) {
|
|
@@ -452,7 +452,7 @@ async function inboxSend(targetSessionId, opts) {
|
|
|
452
452
|
console.error("Message body is required.");
|
|
453
453
|
process.exit(1);
|
|
454
454
|
}
|
|
455
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
455
|
+
const { connectAndResolveSession } = await import('./commands-CxfUr2Qr.mjs');
|
|
456
456
|
let server;
|
|
457
457
|
try {
|
|
458
458
|
const { targetId, messageId } = await inboxSendCore(
|
|
@@ -507,7 +507,7 @@ async function inboxReply(messageId, body, opts) {
|
|
|
507
507
|
console.error("SVAMP_SESSION_ID not set. This command must be run inside a Svamp session.");
|
|
508
508
|
process.exit(1);
|
|
509
509
|
}
|
|
510
|
-
const { connectAndResolveSession } = await import('./commands-
|
|
510
|
+
const { connectAndResolveSession } = await import('./commands-CxfUr2Qr.mjs');
|
|
511
511
|
const { server: localServer, machine: localMachine } = await connectToMachineService();
|
|
512
512
|
let localDisconnected = false;
|
|
513
513
|
const disconnectLocal = async () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a0 as resolveModel } from './run-
|
|
1
|
+
import { a0 as resolveModel } from './run-BBBr4jkI.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -6,14 +6,14 @@ import 'path';
|
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
8
8
|
import 'crypto';
|
|
9
|
-
import 'node:crypto';
|
|
10
9
|
import 'node:fs';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:crypto';
|
|
11
12
|
import 'node:child_process';
|
|
12
13
|
import 'util';
|
|
13
14
|
import 'http';
|
|
14
15
|
import 'net';
|
|
15
16
|
import 'node:os';
|
|
16
|
-
import 'node:path';
|
|
17
17
|
import 'node:events';
|
|
18
18
|
import '@agentclientprotocol/sdk';
|
|
19
19
|
import 'node:util';
|