@ctlflow/fleet 0.1.1 → 0.1.3
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 +5 -0
- package/dist/bin/fleet.mjs +5 -4
- package/docs/operations.md +21 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -37,6 +37,11 @@ saved history; only `--fresh-history` requests replacement. Read-only commands
|
|
|
37
37
|
never start a controller or wake a native session. `fleet test FLEET` checks
|
|
38
38
|
actual listener/authentication/native readiness without a model turn.
|
|
39
39
|
|
|
40
|
+
`fleet enroll FLEET` reviews a stopped registered fleet without starting sessions.
|
|
41
|
+
Use it for additional agents or proposed public names while retaining histories.
|
|
42
|
+
Only the human owner approves the exact roster/code; immutable instance keys and
|
|
43
|
+
workareas remain unchanged. See [enrollment operations](docs/operations.md#enroll-without-starting).
|
|
44
|
+
|
|
40
45
|
Startup creates no chats. Private owner DMs open on first contact, visible output
|
|
41
46
|
or native permission request; additional room membership is explicit.
|
|
42
47
|
|
package/dist/bin/fleet.mjs
CHANGED
|
@@ -4187,7 +4187,7 @@ var target = object({ kind: choice("fleet", "agent", "daemon"), fleetId: optiona
|
|
|
4187
4187
|
var operationFields = {
|
|
4188
4188
|
operationId: identifier,
|
|
4189
4189
|
target,
|
|
4190
|
-
action: choice("start", "stop", "reset", "update"),
|
|
4190
|
+
action: choice("enroll", "start", "stop", "reset", "update"),
|
|
4191
4191
|
expectedRevision: integer(),
|
|
4192
4192
|
releaseDirectory: optional(releaseDirectory)
|
|
4193
4193
|
};
|
|
@@ -5685,7 +5685,7 @@ fleet daemon start [--name NAME] [--root DIRECTORY]
|
|
|
5685
5685
|
fleet daemon status|stop|restart --root DIRECTORY
|
|
5686
5686
|
fleet remote add NAME --ssh USER@HOST --root DIRECTORY
|
|
5687
5687
|
fleet [--root DIRECTORY | --remote NAME] add DIRECTORY
|
|
5688
|
-
fleet [--root DIRECTORY | --remote NAME] list|show|test|start|stop|remove [FLEET]
|
|
5688
|
+
fleet [--root DIRECTORY | --remote NAME] list|show|test|enroll|start|stop|remove [FLEET]
|
|
5689
5689
|
fleet [--root DIRECTORY | --remote NAME] start FLEET [--fresh-history] [--operation-id UUID]
|
|
5690
5690
|
fleet [--root DIRECTORY | --remote NAME] stop FLEET [--operation-id UUID]
|
|
5691
5691
|
fleet [--root DIRECTORY | --remote NAME] update FLEET [--operation-id UUID] [--release-directory DIRECTORY]
|
|
@@ -5734,7 +5734,7 @@ async function run(argv, signal) {
|
|
|
5734
5734
|
...positionals[0] === "daemon" && positionals[1] === "start" ? ["name"] : [],
|
|
5735
5735
|
...positionals[0] === "agent" && positionals[1] === "add" ? ["definition"] : [],
|
|
5736
5736
|
...positionals[0] === "agent" && positionals[1] === "attach" ? ["context"] : [],
|
|
5737
|
-
...["start", "stop", "update"].includes(positionals[0] ?? "") || positionals[0] === "agent" && ["start", "stop", "update"].includes(positionals[1] ?? "") ? ["operation-id"] : [],
|
|
5737
|
+
...["enroll", "start", "stop", "update"].includes(positionals[0] ?? "") || positionals[0] === "agent" && ["start", "stop", "update"].includes(positionals[1] ?? "") ? ["operation-id"] : [],
|
|
5738
5738
|
...positionals[0] === "update" || positionals[0] === "agent" && positionals[1] === "update" ? ["release-directory"] : [],
|
|
5739
5739
|
...positionals[0] === "start" || positionals[0] === "agent" && positionals[1] === "start" ? ["fresh-history"] : [],
|
|
5740
5740
|
...positionals[0] === "message" ? ["text", "message-id"] : []
|
|
@@ -5852,7 +5852,8 @@ async function run(argv, signal) {
|
|
|
5852
5852
|
process.stdout.write(pointer.command + "\n");
|
|
5853
5853
|
return;
|
|
5854
5854
|
}
|
|
5855
|
-
if (command
|
|
5855
|
+
if (command === "enroll" && agentCommand) throw new Error("Use fleet enroll for the stopped whole fleet");
|
|
5856
|
+
if (command !== "enroll" && command !== "start" && command !== "stop" && command !== "update") throw new Error(usage);
|
|
5856
5857
|
if (command === "update" && remote && !values["release-directory"]) throw new Error("Remote update requires --release-directory with the installed fleetd artifact directory on its computer, or run its installed fleet CLI over SSH");
|
|
5857
5858
|
const request = {
|
|
5858
5859
|
operationId: value2(identifier(values["operation-id"] ?? randomUUID3())),
|
package/docs/operations.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Fleet operations
|
|
2
2
|
|
|
3
|
+
## Enroll without starting
|
|
4
|
+
|
|
5
|
+
`fleet enroll FLEET` reviews the complete roster of an already registered,
|
|
6
|
+
stopped fleet. It uses the same enrollment and owner-approval flow as start,
|
|
7
|
+
but never starts/resets native sessions or enables message delivery. An active
|
|
8
|
+
fleet or per-agent enrollment target is rejected. Inspect `fleet show FLEET`
|
|
9
|
+
after completion; starting later remains a separate explicit resume.
|
|
10
|
+
|
|
11
|
+
Change an instance's `name` in `runtime.toml` to propose a new registered name.
|
|
12
|
+
Keep its immutable `key`, workarea and saved credentials. The approval page shows
|
|
13
|
+
the old and requested names. Only that active human owner can approve; collision,
|
|
14
|
+
rejection or expiry cannot replace the current name/account. Approved names replace
|
|
15
|
+
old names without aliases. Matrix IDs, grants, rooms and native histories remain
|
|
16
|
+
the same. Existing automatically named owner DMs follow the new display name;
|
|
17
|
+
human conversation titles stay unchanged. No new conversations are created.
|
|
18
|
+
|
|
19
|
+
Local Crossfire profiles and unread cursors use the immutable instance key.
|
|
20
|
+
The owning storage migration moves previously display-name-keyed state once,
|
|
21
|
+
with an identity-checked durable journal, exclusive listener lock checks and no
|
|
22
|
+
history merging, overwrite or alternate runtime reader. Back up before upgrading.
|
|
23
|
+
|
|
3
24
|
## Update and deploy
|
|
4
25
|
|
|
5
26
|
Use an exact verified public package release after human consent. Before changing
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ctlflow/fleet",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": { "access": "public" },
|
|
6
6
|
"type": "module",
|
|
7
|
-
"devDependencies": { "@ctlflow/crossfire-test-support": "0.1.
|
|
7
|
+
"devDependencies": { "@ctlflow/crossfire-test-support": "0.1.3" },
|
|
8
8
|
"bin": { "fleet": "./dist/bin/fleet.mjs" },
|
|
9
9
|
"files": ["dist/bin", "docs", "README.md"],
|
|
10
10
|
"exports": { "./executable": "./dist/bin/fleet.mjs", "./package.json": "./package.json" },
|
|
11
|
-
"dependencies": { "@ctlflow/fleetd": "0.1.
|
|
11
|
+
"dependencies": { "@ctlflow/fleetd": "0.1.3" },
|
|
12
12
|
"engines": {
|
|
13
13
|
"node": ">=26.0.0",
|
|
14
14
|
"npm": ">=11.17.0"
|