seatmesh 1.1.3 → 1.1.5
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/dist/commands/ack-cli.d.ts.map +1 -1
- package/dist/commands/ack-cli.js +32 -14
- package/dist/commands/ack-cli.js.map +1 -1
- package/dist/commands/ack-reply.d.ts +29 -0
- package/dist/commands/ack-reply.d.ts.map +1 -0
- package/dist/commands/ack-reply.js +110 -0
- package/dist/commands/ack-reply.js.map +1 -0
- package/dist/commands/ack-reply.test.d.ts +2 -0
- package/dist/commands/ack-reply.test.d.ts.map +1 -0
- package/dist/commands/ack-reply.test.js +37 -0
- package/dist/commands/ack-reply.test.js.map +1 -0
- package/dist/commands/agent-shorthand.d.ts +27 -0
- package/dist/commands/agent-shorthand.d.ts.map +1 -0
- package/dist/commands/agent-shorthand.js +57 -0
- package/dist/commands/agent-shorthand.js.map +1 -0
- package/dist/commands/agent-shorthand.test.d.ts +2 -0
- package/dist/commands/agent-shorthand.test.d.ts.map +1 -0
- package/dist/commands/agent-shorthand.test.js +36 -0
- package/dist/commands/agent-shorthand.test.js.map +1 -0
- package/dist/commands/checkback-cli.d.ts.map +1 -1
- package/dist/commands/checkback-cli.js +18 -3
- package/dist/commands/checkback-cli.js.map +1 -1
- package/dist/commands/completion.d.ts +20 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +410 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/completion.test.d.ts +2 -0
- package/dist/commands/completion.test.d.ts.map +1 -0
- package/dist/commands/completion.test.js +40 -0
- package/dist/commands/completion.test.js.map +1 -0
- package/dist/commands/gen-commands-md.d.ts +3 -0
- package/dist/commands/gen-commands-md.d.ts.map +1 -0
- package/dist/commands/gen-commands-md.js +50 -0
- package/dist/commands/gen-commands-md.js.map +1 -0
- package/dist/commands/help-text.d.ts +25 -0
- package/dist/commands/help-text.d.ts.map +1 -0
- package/dist/commands/help-text.js +439 -0
- package/dist/commands/help-text.js.map +1 -0
- package/dist/commands/help-text.test.d.ts +2 -0
- package/dist/commands/help-text.test.d.ts.map +1 -0
- package/dist/commands/help-text.test.js +62 -0
- package/dist/commands/help-text.test.js.map +1 -0
- package/dist/commands/notify-cli.d.ts.map +1 -1
- package/dist/commands/notify-cli.js +16 -7
- package/dist/commands/notify-cli.js.map +1 -1
- package/dist/commands/notify-cli.test.d.ts +2 -0
- package/dist/commands/notify-cli.test.d.ts.map +1 -0
- package/dist/commands/notify-cli.test.js +33 -0
- package/dist/commands/notify-cli.test.js.map +1 -0
- package/dist/commands/room-cli.d.ts.map +1 -1
- package/dist/commands/room-cli.js +2 -1
- package/dist/commands/room-cli.js.map +1 -1
- package/dist/commands/seat-cli.d.ts.map +1 -1
- package/dist/commands/seat-cli.js +109 -7
- package/dist/commands/seat-cli.js.map +1 -1
- package/dist/commands/sessions-cli.d.ts +15 -1
- package/dist/commands/sessions-cli.d.ts.map +1 -1
- package/dist/commands/sessions-cli.js +90 -5
- package/dist/commands/sessions-cli.js.map +1 -1
- package/dist/commands/sessions-cli.test.d.ts +2 -0
- package/dist/commands/sessions-cli.test.d.ts.map +1 -0
- package/dist/commands/sessions-cli.test.js +21 -0
- package/dist/commands/sessions-cli.test.js.map +1 -0
- package/dist/commands/target-cli.js +1 -1
- package/dist/commands/todo-give.test.d.ts +2 -0
- package/dist/commands/todo-give.test.d.ts.map +1 -0
- package/dist/commands/todo-give.test.js +20 -0
- package/dist/commands/todo-give.test.js.map +1 -0
- package/dist/main.js +279 -28
- package/dist/main.js.map +1 -1
- package/dist/setup/merge-mesh-config.d.ts +13 -0
- package/dist/setup/merge-mesh-config.d.ts.map +1 -0
- package/dist/setup/merge-mesh-config.js +112 -0
- package/dist/setup/merge-mesh-config.js.map +1 -0
- package/dist/setup/merge-mesh-config.test.d.ts +2 -0
- package/dist/setup/merge-mesh-config.test.d.ts.map +1 -0
- package/dist/setup/merge-mesh-config.test.js +96 -0
- package/dist/setup/merge-mesh-config.test.js.map +1 -0
- package/dist/setup/session-health.d.ts +33 -0
- package/dist/setup/session-health.d.ts.map +1 -0
- package/dist/setup/session-health.js +418 -0
- package/dist/setup/session-health.js.map +1 -0
- package/dist/setup/session-health.test.d.ts +2 -0
- package/dist/setup/session-health.test.d.ts.map +1 -0
- package/dist/setup/session-health.test.js +46 -0
- package/dist/setup/session-health.test.js.map +1 -0
- package/dist/setup/update.d.ts +2 -0
- package/dist/setup/update.d.ts.map +1 -1
- package/dist/setup/update.js +27 -2
- package/dist/setup/update.js.map +1 -1
- package/dist/setup/update.test.js +45 -0
- package/dist/setup/update.test.js.map +1 -1
- package/package.json +6 -6
- package/templates/init/AGENTS.md +40 -21
- package/templates/init/mesh.config.yaml +32 -0
- package/templates/init/roles/common.yaml +6 -2
- package/templates/init/roles/docs/common.md +3 -1
- package/templates/init/roles/docs/manager.md +4 -0
- package/templates/init/roles/docs/secretary.md +2 -0
- package/templates/init/roles/docs/worker.md +3 -0
- package/templates/init/roles/manager.yaml +2 -0
- package/templates/init/roles/secretary.yaml +3 -0
- package/templates/init/roles/worker.yaml +3 -1
- package/dist/agent-context-init.d.ts +0 -5
- package/dist/agent-context-init.d.ts.map +0 -1
- package/dist/agent-context-init.js +0 -41
- package/dist/agent-context-init.js.map +0 -1
- package/dist/banner.d.ts +0 -9
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js +0 -113
- package/dist/banner.js.map +0 -1
- package/dist/chat-cli.d.ts +0 -4
- package/dist/chat-cli.d.ts.map +0 -1
- package/dist/chat-cli.js +0 -162
- package/dist/chat-cli.js.map +0 -1
- package/dist/checkback-cli.d.ts +0 -4
- package/dist/checkback-cli.d.ts.map +0 -1
- package/dist/checkback-cli.js +0 -203
- package/dist/checkback-cli.js.map +0 -1
- package/dist/contract-lock-cli.d.ts +0 -4
- package/dist/contract-lock-cli.d.ts.map +0 -1
- package/dist/contract-lock-cli.js +0 -180
- package/dist/contract-lock-cli.js.map +0 -1
- package/dist/coord-cli.d.ts +0 -3
- package/dist/coord-cli.d.ts.map +0 -1
- package/dist/coord-cli.js +0 -15
- package/dist/coord-cli.js.map +0 -1
- package/dist/discovery-report.d.ts +0 -15
- package/dist/discovery-report.d.ts.map +0 -1
- package/dist/discovery-report.js +0 -42
- package/dist/discovery-report.js.map +0 -1
- package/dist/init.d.ts +0 -23
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -74
- package/dist/init.js.map +0 -1
- package/dist/init.test.d.ts +0 -2
- package/dist/init.test.d.ts.map +0 -1
- package/dist/init.test.js +0 -37
- package/dist/init.test.js.map +0 -1
- package/dist/logo-art.d.ts +0 -4
- package/dist/logo-art.d.ts.map +0 -1
- package/dist/logo-art.js +0 -134
- package/dist/logo-art.js.map +0 -1
- package/dist/logo-cli.d.ts +0 -3
- package/dist/logo-cli.d.ts.map +0 -1
- package/dist/logo-cli.js +0 -30
- package/dist/logo-cli.js.map +0 -1
- package/dist/logo-color.d.ts +0 -16
- package/dist/logo-color.d.ts.map +0 -1
- package/dist/logo-color.js +0 -65
- package/dist/logo-color.js.map +0 -1
- package/dist/migrate-runtime.d.ts +0 -15
- package/dist/migrate-runtime.d.ts.map +0 -1
- package/dist/migrate-runtime.js +0 -67
- package/dist/migrate-runtime.js.map +0 -1
- package/dist/notify-cli.d.ts +0 -4
- package/dist/notify-cli.d.ts.map +0 -1
- package/dist/notify-cli.js +0 -45
- package/dist/notify-cli.js.map +0 -1
- package/dist/preview-cli.d.ts +0 -4
- package/dist/preview-cli.d.ts.map +0 -1
- package/dist/preview-cli.js +0 -39
- package/dist/preview-cli.js.map +0 -1
- package/dist/program-help.d.ts +0 -3
- package/dist/program-help.d.ts.map +0 -1
- package/dist/program-help.js +0 -23
- package/dist/program-help.js.map +0 -1
- package/dist/room-cli.d.ts +0 -5
- package/dist/room-cli.d.ts.map +0 -1
- package/dist/room-cli.js +0 -316
- package/dist/room-cli.js.map +0 -1
- package/dist/room.d.ts +0 -4
- package/dist/room.d.ts.map +0 -1
- package/dist/room.js +0 -149
- package/dist/room.js.map +0 -1
- package/dist/seat-cli.d.ts +0 -3
- package/dist/seat-cli.d.ts.map +0 -1
- package/dist/seat-cli.js +0 -73
- package/dist/seat-cli.js.map +0 -1
- package/dist/sessions-cli.d.ts +0 -11
- package/dist/sessions-cli.d.ts.map +0 -1
- package/dist/sessions-cli.js +0 -178
- package/dist/sessions-cli.js.map +0 -1
- package/dist/status-report.d.ts +0 -22
- package/dist/status-report.d.ts.map +0 -1
- package/dist/status-report.js +0 -231
- package/dist/status-report.js.map +0 -1
- package/dist/update.d.ts +0 -15
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js +0 -89
- package/dist/update.js.map +0 -1
- package/dist/version-nudge.d.ts +0 -20
- package/dist/version-nudge.d.ts.map +0 -1
- package/dist/version-nudge.js +0 -107
- package/dist/version-nudge.js.map +0 -1
- package/dist/version-nudge.test.d.ts +0 -2
- package/dist/version-nudge.test.d.ts.map +0 -1
- package/dist/version-nudge.test.js +0 -16
- package/dist/version-nudge.test.js.map +0 -1
- package/dist/watch-daemon.d.ts +0 -2
- package/dist/watch-daemon.d.ts.map +0 -1
- package/dist/watch-daemon.js +0 -41
- package/dist/watch-daemon.js.map +0 -1
- package/dist/work-daemon.d.ts +0 -2
- package/dist/work-daemon.d.ts.map +0 -1
- package/dist/work-daemon.js +0 -42
- package/dist/work-daemon.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ack-cli.d.ts","sourceRoot":"","sources":["../../src/commands/ack-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAEL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"ack-cli.d.ts","sourceRoot":"","sources":["../../src/commands/ack-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,iBAAiB,CAAC;AAqDzB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CA2KxE"}
|
package/dist/commands/ack-cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { chatRoomConfigForLoaded, formatAckStatusLine, openAcks, } from "@seat-mesh/core";
|
|
2
|
+
import { chatRoomConfigForLoaded, formatAckStatusLine, openAcks, resolveAckRedirectDefaults, } from "@seat-mesh/core";
|
|
3
3
|
import { ensureMeshInbox, meshInboxPort } from "@seat-mesh/tmux";
|
|
4
|
+
import { runAckReply } from "./ack-reply.js";
|
|
4
5
|
function requireMeshInbox(loaded) {
|
|
5
6
|
if (ensureMeshInbox(loaded, { quiet: true }))
|
|
6
7
|
return;
|
|
@@ -44,7 +45,7 @@ async function listAcks(loaded, opts) {
|
|
|
44
45
|
printRow(r);
|
|
45
46
|
}
|
|
46
47
|
export function buildAckCommands(getLoaded) {
|
|
47
|
-
const ack = new Command("ack").description("Unanswered asks ledger —
|
|
48
|
+
const ack = new Command("ack").description("Unanswered asks ledger — close with: ack <id> (note optional; no peer reply required)");
|
|
48
49
|
ack
|
|
49
50
|
.command("list")
|
|
50
51
|
.alias("ls")
|
|
@@ -57,6 +58,23 @@ export function buildAckCommands(getLoaded) {
|
|
|
57
58
|
requireMeshInbox(loaded);
|
|
58
59
|
await listAcks(loaded, opts);
|
|
59
60
|
});
|
|
61
|
+
ack
|
|
62
|
+
.command("reply")
|
|
63
|
+
.description("Peer back to the asker + close ACK in one shot (limits n+1). Default msg: ACK")
|
|
64
|
+
.argument("<id>", "ack id or prefix")
|
|
65
|
+
.argument("[msg...]", "optional peer body (default: ACK)")
|
|
66
|
+
.action(async (id, msgParts) => {
|
|
67
|
+
const loaded = getLoaded();
|
|
68
|
+
requireMeshInbox(loaded);
|
|
69
|
+
try {
|
|
70
|
+
const r = await runAckReply(loaded, id, msgParts.join(" "));
|
|
71
|
+
console.log(`ok ack-reply id=${r.ackId} -> ${r.target} msg=${r.msg}`);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.error(e.message);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
60
78
|
ack
|
|
61
79
|
.command("clear")
|
|
62
80
|
.description("Clear every open ask (optional --seat)")
|
|
@@ -84,11 +102,7 @@ export function buildAckCommands(getLoaded) {
|
|
|
84
102
|
await listAcks(loaded, opts);
|
|
85
103
|
return;
|
|
86
104
|
}
|
|
87
|
-
const note = (noteParts ?? []).join(" ").trim();
|
|
88
|
-
if (!note) {
|
|
89
|
-
console.error('usage: ack <id> "<one line of what you did>"');
|
|
90
|
-
process.exit(2);
|
|
91
|
-
}
|
|
105
|
+
const note = (noteParts ?? []).join(" ").trim() || "closed";
|
|
92
106
|
const data = await fetchJson(`${inboxBase(loaded)}/ack`, {
|
|
93
107
|
method: "POST",
|
|
94
108
|
headers: { "content-type": "application/json" },
|
|
@@ -104,27 +118,31 @@ export function buildAckCommands(getLoaded) {
|
|
|
104
118
|
.command("redirect")
|
|
105
119
|
.description("Arm temp block: ACK-class from <seat> to manager is rewritten to secretary (stops n+1 wrong target)")
|
|
106
120
|
.argument("<from>", "sender seat (mini-1, worker-2, …)")
|
|
107
|
-
.option("--block <target>", "wrong recipient to block
|
|
108
|
-
.option("--to <seat>", "rewrite destination
|
|
109
|
-
.option("--ttl-min <n>", "block lifetime minutes
|
|
121
|
+
.option("--block <target>", "wrong recipient to block (acks.redirect.block)")
|
|
122
|
+
.option("--to <seat>", "rewrite destination (acks.redirect.rewriteTo)")
|
|
123
|
+
.option("--ttl-min <n>", "block lifetime minutes (acks.redirect.ttlMin)")
|
|
110
124
|
.option("--reason <text>", "why armed")
|
|
111
125
|
.action(async (from, opts) => {
|
|
112
126
|
const loaded = getLoaded();
|
|
113
127
|
requireMeshInbox(loaded);
|
|
128
|
+
const redir = resolveAckRedirectDefaults(loaded);
|
|
129
|
+
const blockTarget = (opts.block ?? "").trim() || redir.block;
|
|
130
|
+
const rewriteTo = (opts.to ?? "").trim() || redir.rewriteTo;
|
|
131
|
+
const ttlMin = Number(opts.ttlMin) > 0 ? Number(opts.ttlMin) : redir.ttlMin;
|
|
114
132
|
const data = await fetchJson(`${inboxBase(loaded)}/ack/redirect-block`, {
|
|
115
133
|
method: "POST",
|
|
116
134
|
headers: { "content-type": "application/json" },
|
|
117
135
|
body: JSON.stringify({
|
|
118
136
|
fromSeat: from,
|
|
119
|
-
blockTarget
|
|
120
|
-
rewriteTo
|
|
121
|
-
ttlMin
|
|
137
|
+
blockTarget,
|
|
138
|
+
rewriteTo,
|
|
139
|
+
ttlMin,
|
|
122
140
|
armedBy: "ack-redirect",
|
|
123
141
|
reason: opts.reason,
|
|
124
142
|
}),
|
|
125
143
|
});
|
|
126
144
|
const until = new Date(data.block.untilMs).toISOString();
|
|
127
|
-
console.log(`OK: ack-redirect ${from} block=${
|
|
145
|
+
console.log(`OK: ack-redirect ${from} block=${blockTarget}→${rewriteTo} until=${until} id=${data.block.id}`);
|
|
128
146
|
});
|
|
129
147
|
ack
|
|
130
148
|
.command("redirect-list")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ack-cli.js","sourceRoot":"","sources":["../../src/commands/ack-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAGL,uBAAuB,EACvB,mBAAmB,EACnB,QAAQ,
|
|
1
|
+
{"version":3,"file":"ack-cli.js","sourceRoot":"","sources":["../../src/commands/ack-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Peer + close ACK in one shot (`ack reply` / `peer … --ack`).
|
|
3
|
+
* Limits n+1: answer and clear without a second prompt.
|
|
4
|
+
*/
|
|
5
|
+
import { type AckRow, type LoadedProfile } from "@seat-mesh/core";
|
|
6
|
+
export declare const ACK_REPLY_DEFAULT_MSG = "ACK";
|
|
7
|
+
/** Normalize seat tokens for from↔target match. */
|
|
8
|
+
export declare function normalizeSeatToken(raw: string): string;
|
|
9
|
+
export declare function fromMatchesPeerTarget(from: string | undefined, target: string): boolean;
|
|
10
|
+
/** Pick open ACK to close when peening `target` (prefer matching `from`). */
|
|
11
|
+
export declare function pickAckForPeerTarget(rows: AckRow[], target: string): AckRow | undefined;
|
|
12
|
+
export declare function fetchAckEntries(loaded: LoadedProfile, opts?: {
|
|
13
|
+
all?: boolean;
|
|
14
|
+
seat?: string;
|
|
15
|
+
}): Promise<AckRow[]>;
|
|
16
|
+
/** Resolve --ack / --ended id, or auto-pick for this peer target. */
|
|
17
|
+
export declare function resolvePeerEndedAckId(loaded: LoadedProfile, target: string, endedId: string | undefined): Promise<string | undefined>;
|
|
18
|
+
/**
|
|
19
|
+
* When the peer body is itself an ACK/FYI closing, auto-attach --ack so the
|
|
20
|
+
* open ask clears without a second command.
|
|
21
|
+
*/
|
|
22
|
+
export declare function shouldAutoAckReply(msg: string, endedId: string | undefined): boolean;
|
|
23
|
+
/** `ack reply <id> [msg]` → peer back to asker + close. */
|
|
24
|
+
export declare function runAckReply(loaded: LoadedProfile, id: string, msgRaw?: string): Promise<{
|
|
25
|
+
target: string;
|
|
26
|
+
ackId: string;
|
|
27
|
+
msg: string;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=ack-reply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ack-reply.d.ts","sourceRoot":"","sources":["../../src/commands/ack-reply.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAOnB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQvF;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUvF;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,qEAAqE;AACrE,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGpF;AAED,2DAA2D;AAC3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BzD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Peer + close ACK in one shot (`ack reply` / `peer … --ack`).
|
|
3
|
+
* Limits n+1: answer and clear without a second prompt.
|
|
4
|
+
*/
|
|
5
|
+
import { chatRoomConfigForLoaded, clearAckEndedSync, isAckClassPeer, openAcks, peerTargetFromAgentId, shortAckId, } from "@seat-mesh/core";
|
|
6
|
+
import { runPeer, runWhoami } from "@seat-mesh/tmux";
|
|
7
|
+
export const ACK_REPLY_DEFAULT_MSG = "ACK";
|
|
8
|
+
/** Normalize seat tokens for from↔target match. */
|
|
9
|
+
export function normalizeSeatToken(raw) {
|
|
10
|
+
const t = raw.trim().toLowerCase().replace(/^slot-/, "");
|
|
11
|
+
if (/^worker-(\d+)$/.test(t))
|
|
12
|
+
return t.replace(/^worker-/, "");
|
|
13
|
+
if (t === "master")
|
|
14
|
+
return "manager";
|
|
15
|
+
return t;
|
|
16
|
+
}
|
|
17
|
+
export function fromMatchesPeerTarget(from, target) {
|
|
18
|
+
if (!from?.trim())
|
|
19
|
+
return false;
|
|
20
|
+
const a = normalizeSeatToken(peerTargetFromAgentId(from));
|
|
21
|
+
const b = normalizeSeatToken(target);
|
|
22
|
+
if (a === b)
|
|
23
|
+
return true;
|
|
24
|
+
// mini-1 vs manager-mini-1
|
|
25
|
+
if (a.replace(/^manager-/, "") === b.replace(/^manager-/, ""))
|
|
26
|
+
return true;
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
/** Pick open ACK to close when peening `target` (prefer matching `from`). */
|
|
30
|
+
export function pickAckForPeerTarget(rows, target) {
|
|
31
|
+
const open = openAcks(rows);
|
|
32
|
+
if (!open.length)
|
|
33
|
+
return undefined;
|
|
34
|
+
const matched = open.filter((r) => fromMatchesPeerTarget(r.from, target));
|
|
35
|
+
if (matched.length) {
|
|
36
|
+
matched.sort((a, b) => a.at.localeCompare(b.at));
|
|
37
|
+
return matched[0];
|
|
38
|
+
}
|
|
39
|
+
if (open.length === 1)
|
|
40
|
+
return open[0];
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
export async function fetchAckEntries(loaded, opts = {}) {
|
|
44
|
+
const base = chatRoomConfigForLoaded(loaded).inboxBase.replace(/\/$/, "");
|
|
45
|
+
const q = new URLSearchParams();
|
|
46
|
+
if (opts.all)
|
|
47
|
+
q.set("all", "1");
|
|
48
|
+
if (opts.seat)
|
|
49
|
+
q.set("seat", opts.seat);
|
|
50
|
+
const res = await fetch(`${base}/ack?${q}`);
|
|
51
|
+
const data = (await res.json());
|
|
52
|
+
if (!res.ok)
|
|
53
|
+
throw new Error(data.error ?? `HTTP ${res.status}`);
|
|
54
|
+
return data.entries ?? [];
|
|
55
|
+
}
|
|
56
|
+
/** Resolve --ack / --ended id, or auto-pick for this peer target. */
|
|
57
|
+
export async function resolvePeerEndedAckId(loaded, target, endedId) {
|
|
58
|
+
if (endedId && endedId !== "__auto__")
|
|
59
|
+
return endedId;
|
|
60
|
+
if (!endedId)
|
|
61
|
+
return undefined;
|
|
62
|
+
const w = runWhoami(loaded, "here");
|
|
63
|
+
const rows = openAcks(await fetchAckEntries(loaded));
|
|
64
|
+
const mine = rows.filter((r) => {
|
|
65
|
+
if (w.paneId && r.paneId === w.paneId)
|
|
66
|
+
return true;
|
|
67
|
+
const seat = normalizeSeatToken(r.seat);
|
|
68
|
+
const role = normalizeSeatToken(w.role || "");
|
|
69
|
+
const label = normalizeSeatToken(w.slotLabel || "");
|
|
70
|
+
return seat === role || seat === label || (label && seat === label.replace(/^slot-/, ""));
|
|
71
|
+
});
|
|
72
|
+
const hit = pickAckForPeerTarget(mine.length ? mine : rows, target);
|
|
73
|
+
return hit?.id;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* When the peer body is itself an ACK/FYI closing, auto-attach --ack so the
|
|
77
|
+
* open ask clears without a second command.
|
|
78
|
+
*/
|
|
79
|
+
export function shouldAutoAckReply(msg, endedId) {
|
|
80
|
+
if (endedId)
|
|
81
|
+
return false;
|
|
82
|
+
return isAckClassPeer(msg);
|
|
83
|
+
}
|
|
84
|
+
/** `ack reply <id> [msg]` → peer back to asker + close. */
|
|
85
|
+
export async function runAckReply(loaded, id, msgRaw) {
|
|
86
|
+
const needle = id.trim().toLowerCase().replace(/^ack-/, "");
|
|
87
|
+
const rows = await fetchAckEntries(loaded, { all: true });
|
|
88
|
+
const row = rows.find((r) => r.id.toLowerCase() === `ack-${needle}` ||
|
|
89
|
+
r.id.toLowerCase().startsWith(`ack-${needle}`) ||
|
|
90
|
+
r.id.replace(/^ack-/, "").startsWith(needle) ||
|
|
91
|
+
shortAckId(r.id) === needle);
|
|
92
|
+
if (!row)
|
|
93
|
+
throw new Error(`ack not found: ${id}`);
|
|
94
|
+
if (row.ackedAt)
|
|
95
|
+
throw new Error(`ack already closed: ${shortAckId(row.id)}`);
|
|
96
|
+
const from = row.from?.trim();
|
|
97
|
+
if (!from) {
|
|
98
|
+
throw new Error(`ack ${shortAckId(row.id)} has no from (operator ask) — use: seatmesh agent ack ${shortAckId(row.id)}`);
|
|
99
|
+
}
|
|
100
|
+
const target = peerTargetFromAgentId(from);
|
|
101
|
+
const msg = (msgRaw ?? "").trim() || ACK_REPLY_DEFAULT_MSG;
|
|
102
|
+
runPeer(loaded, target, msg);
|
|
103
|
+
const cfg = chatRoomConfigForLoaded(loaded);
|
|
104
|
+
const res = clearAckEndedSync(cfg.inboxBase, row.id, `ack reply -> ${target}: ${msg}`);
|
|
105
|
+
if (!res.ok) {
|
|
106
|
+
throw new Error(`peer sent but ack close failed: ${res.error ?? "?"}`);
|
|
107
|
+
}
|
|
108
|
+
return { target, ackId: res.id ?? row.id, msg };
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=ack-reply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ack-reply.js","sourceRoot":"","sources":["../../src/commands/ack-reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ack-reply.test.d.ts","sourceRoot":"","sources":["../../src/commands/ack-reply.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { fromMatchesPeerTarget, pickAckForPeerTarget, shouldAutoAckReply, } from "./ack-reply.js";
|
|
3
|
+
function row(partial) {
|
|
4
|
+
return {
|
|
5
|
+
id: "ack-aaaaaa1111",
|
|
6
|
+
at: "2026-09-15T05:00:00.000Z",
|
|
7
|
+
seat: "manager",
|
|
8
|
+
paneId: "%21",
|
|
9
|
+
source: "peer",
|
|
10
|
+
ask: "do the thing",
|
|
11
|
+
reminders: 0,
|
|
12
|
+
...partial,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
describe("ack reply helpers", () => {
|
|
16
|
+
it("matches from seat to peer target", () => {
|
|
17
|
+
expect(fromMatchesPeerTarget("secretary", "secretary")).toBe(true);
|
|
18
|
+
expect(fromMatchesPeerTarget("worker-2", "slot-2")).toBe(true);
|
|
19
|
+
expect(fromMatchesPeerTarget("mini-1", "mini-1")).toBe(true);
|
|
20
|
+
expect(fromMatchesPeerTarget("manager", "secretary")).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
it("picks oldest open ACK from the peer target", () => {
|
|
23
|
+
const hit = pickAckForPeerTarget([
|
|
24
|
+
row({ id: "ack-old", at: "2026-09-15T04:00:00.000Z", from: "secretary" }),
|
|
25
|
+
row({ id: "ack-new", at: "2026-09-15T05:00:00.000Z", from: "secretary" }),
|
|
26
|
+
row({ id: "ack-other", from: "mini-1" }),
|
|
27
|
+
], "secretary");
|
|
28
|
+
expect(hit?.id).toBe("ack-old");
|
|
29
|
+
});
|
|
30
|
+
it("auto-acks ACK-class peer bodies", () => {
|
|
31
|
+
expect(shouldAutoAckReply("ACK received — closing.", undefined)).toBe(true);
|
|
32
|
+
expect(shouldAutoAckReply("FYI chrome+logs: PASS", undefined)).toBe(true);
|
|
33
|
+
expect(shouldAutoAckReply("please fix banner", undefined)).toBe(false);
|
|
34
|
+
expect(shouldAutoAckReply("ACK", "ack-explicit")).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=ack-reply.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ack-reply.test.js","sourceRoot":"","sources":["../../src/commands/ack-reply.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,SAAS,GAAG,CAAC,OAAwB;IACnC,OAAO;QACL,EAAE,EAAE,gBAAgB;QACpB,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,CAAC;QACZ,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,GAAG,GAAG,oBAAoB,CAC9B;YACE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACzE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACzE,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACzC,EACD,WAAW,CACZ,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal agent shorthands — zero flag forest.
|
|
3
|
+
* All seats may run these via `seatmesh agent <shorthand> …`.
|
|
4
|
+
*/
|
|
5
|
+
export declare const AGENT_SHORTHANDS: {
|
|
6
|
+
/** peer <target> "…" — open/send ask */
|
|
7
|
+
readonly ask: "peer";
|
|
8
|
+
readonly msg: "peer";
|
|
9
|
+
readonly tell: "peer";
|
|
10
|
+
/** peer --ack — reply + close open ask */
|
|
11
|
+
readonly ackmsg: "peer-ack";
|
|
12
|
+
readonly answered: "peer-ack";
|
|
13
|
+
/** ack reply <id> [msg] */
|
|
14
|
+
readonly reply: "ack-reply";
|
|
15
|
+
};
|
|
16
|
+
export type AgentShorthand = keyof typeof AGENT_SHORTHANDS;
|
|
17
|
+
export declare function isAgentShorthand(cmd: string): cmd is AgentShorthand;
|
|
18
|
+
/**
|
|
19
|
+
* Rewrite argv for shorthand → canonical verb.
|
|
20
|
+
* Input: rest args after the shorthand verb (target/msg or id/msg).
|
|
21
|
+
* Returns new process.argv-style list starting at the CLI verb (no node/bin).
|
|
22
|
+
*/
|
|
23
|
+
export declare function expandAgentShorthand(shorthand: string, args: string[]): {
|
|
24
|
+
argvRest: string[];
|
|
25
|
+
label: string;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=agent-shorthand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-shorthand.d.ts","sourceRoot":"","sources":["../../src/commands/agent-shorthand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,wCAAwC;;;;IAIxC,0CAA0C;;;IAG1C,2BAA2B;;CAEnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgCvC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal agent shorthands — zero flag forest.
|
|
3
|
+
* All seats may run these via `seatmesh agent <shorthand> …`.
|
|
4
|
+
*/
|
|
5
|
+
export const AGENT_SHORTHANDS = {
|
|
6
|
+
/** peer <target> "…" — open/send ask */
|
|
7
|
+
ask: "peer",
|
|
8
|
+
msg: "peer",
|
|
9
|
+
tell: "peer",
|
|
10
|
+
/** peer --ack — reply + close open ask */
|
|
11
|
+
ackmsg: "peer-ack",
|
|
12
|
+
answered: "peer-ack",
|
|
13
|
+
/** ack reply <id> [msg] */
|
|
14
|
+
reply: "ack-reply",
|
|
15
|
+
};
|
|
16
|
+
export function isAgentShorthand(cmd) {
|
|
17
|
+
return Object.prototype.hasOwnProperty.call(AGENT_SHORTHANDS, cmd.trim().toLowerCase());
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Rewrite argv for shorthand → canonical verb.
|
|
21
|
+
* Input: rest args after the shorthand verb (target/msg or id/msg).
|
|
22
|
+
* Returns new process.argv-style list starting at the CLI verb (no node/bin).
|
|
23
|
+
*/
|
|
24
|
+
export function expandAgentShorthand(shorthand, args) {
|
|
25
|
+
const s = shorthand.trim().toLowerCase();
|
|
26
|
+
const kind = AGENT_SHORTHANDS[s];
|
|
27
|
+
if (!kind) {
|
|
28
|
+
throw new Error(`unknown shorthand: ${shorthand}`);
|
|
29
|
+
}
|
|
30
|
+
if (kind === "peer") {
|
|
31
|
+
if (args.length < 2) {
|
|
32
|
+
throw new Error(`usage: ${s} <target> "<msg>"`);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
argvRest: ["peer", ...args],
|
|
36
|
+
label: `${s} → peer (send)`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (kind === "peer-ack") {
|
|
40
|
+
if (args.length < 2) {
|
|
41
|
+
throw new Error(`usage: ${s} <target> "<msg>" # peer --ack`);
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
argvRest: ["peer", "--ack", ...args],
|
|
45
|
+
label: `${s} → peer --ack (reply+close)`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// ack-reply
|
|
49
|
+
if (args.length < 1) {
|
|
50
|
+
throw new Error(`usage: ${s} <ack-id> [msg]`);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
argvRest: ["ack", "reply", ...args],
|
|
54
|
+
label: `${s} → ack reply`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=agent-shorthand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-shorthand.js","sourceRoot":"","sources":["../../src/commands/agent-shorthand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,wCAAwC;IACxC,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,0CAA0C;IAC1C,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,UAAU;IACpB,2BAA2B;IAC3B,KAAK,EAAE,WAAW;CACV,CAAC;AAIX,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,IAAc;IAEd,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAoB,CAAC;IAC3D,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;YAC3B,KAAK,EAAE,GAAG,CAAC,gBAAgB;SAC5B,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACpC,KAAK,EAAE,GAAG,CAAC,6BAA6B;SACzC,CAAC;IACJ,CAAC;IACD,YAAY;IACZ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACnC,KAAK,EAAE,GAAG,CAAC,cAAc;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-shorthand.test.d.ts","sourceRoot":"","sources":["../../src/commands/agent-shorthand.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { expandAgentShorthand, isAgentShorthand } from "./agent-shorthand.js";
|
|
3
|
+
describe("agent-shorthand", () => {
|
|
4
|
+
it("expands ask/msg/tell to peer", () => {
|
|
5
|
+
expect(expandAgentShorthand("ask", ["manager", "need", "help"]).argvRest).toEqual([
|
|
6
|
+
"peer",
|
|
7
|
+
"manager",
|
|
8
|
+
"need",
|
|
9
|
+
"help",
|
|
10
|
+
]);
|
|
11
|
+
expect(expandAgentShorthand("msg", ["slot-1", "FYI: hi"]).argvRest[0]).toBe("peer");
|
|
12
|
+
expect(expandAgentShorthand("tell", ["secretary", "ping"]).argvRest).toContain("secretary");
|
|
13
|
+
});
|
|
14
|
+
it("expands ackmsg to peer --ack", () => {
|
|
15
|
+
expect(expandAgentShorthand("ackmsg", ["manager", "ACK done"]).argvRest).toEqual([
|
|
16
|
+
"peer",
|
|
17
|
+
"--ack",
|
|
18
|
+
"manager",
|
|
19
|
+
"ACK done",
|
|
20
|
+
]);
|
|
21
|
+
expect(expandAgentShorthand("answered", ["slot-2", "ok"]).argvRest[1]).toBe("--ack");
|
|
22
|
+
});
|
|
23
|
+
it("expands reply to ack reply", () => {
|
|
24
|
+
expect(expandAgentShorthand("reply", ["051b8b", "ACK"]).argvRest).toEqual([
|
|
25
|
+
"ack",
|
|
26
|
+
"reply",
|
|
27
|
+
"051b8b",
|
|
28
|
+
"ACK",
|
|
29
|
+
]);
|
|
30
|
+
});
|
|
31
|
+
it("recognizes shorthand verbs", () => {
|
|
32
|
+
expect(isAgentShorthand("ask")).toBe(true);
|
|
33
|
+
expect(isAgentShorthand("todo")).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=agent-shorthand.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-shorthand.test.js","sourceRoot":"","sources":["../../src/commands/agent-shorthand.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YAChF,MAAM;YACN,SAAS;YACT,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpF,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YAC/E,MAAM;YACN,OAAO;YACP,SAAS;YACT,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACxE,KAAK;YACL,OAAO;YACP,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkback-cli.d.ts","sourceRoot":"","sources":["../../src/commands/checkback-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,KAAK,aAAa,EAWnB,MAAM,iBAAiB,CAAC;AA2DzB,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"checkback-cli.d.ts","sourceRoot":"","sources":["../../src/commands/checkback-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,KAAK,aAAa,EAWnB,MAAM,iBAAiB,CAAC;AA2DzB,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG,OAAO,CA6L9E"}
|
|
@@ -57,7 +57,7 @@ export function buildCheckbackCommands(getLoaded) {
|
|
|
57
57
|
.command("start <duration>")
|
|
58
58
|
.description('Arm checkback — harness shape: start 5m --expect "topic" [--renew 3m] [--here|--slot N|--mini N]')
|
|
59
59
|
.option("--expect <text>", "what to verify when timer fires")
|
|
60
|
-
.option("--renew <dur>", "re-arm interval after fire
|
|
60
|
+
.option("--renew <dur>", "re-arm interval after fire (default: chatRooms.checkback.renew)")
|
|
61
61
|
.option("--here", "target current tmux pane")
|
|
62
62
|
.option("--slot <n>", "target worker slot pane")
|
|
63
63
|
.option("--mini <n>", "target mini pane")
|
|
@@ -94,14 +94,29 @@ export function buildCheckbackCommands(getLoaded) {
|
|
|
94
94
|
console.error(e.message);
|
|
95
95
|
process.exit(1);
|
|
96
96
|
}
|
|
97
|
+
const renewRaw = opts.renew?.trim();
|
|
98
|
+
const renew = renewRaw && parseDurationToSeconds(renewRaw) != null
|
|
99
|
+
? renewRaw
|
|
100
|
+
: cfg.checkbackRenew;
|
|
101
|
+
const who = runWhoami(loaded);
|
|
102
|
+
const ownerLabel = who.role === "worker" && who.slot != null
|
|
103
|
+
? `slot-${who.slot}`
|
|
104
|
+
: who.slotLabel?.startsWith("mini-")
|
|
105
|
+
? who.slotLabel
|
|
106
|
+
: who.role === "mini" && who.slotLabel
|
|
107
|
+
? `mini-${who.slotLabel}`
|
|
108
|
+
: who.role || undefined;
|
|
97
109
|
const res = await armCheckback({
|
|
98
110
|
inboxBase: cfg.inboxBase,
|
|
99
111
|
ownerPane,
|
|
100
112
|
expect,
|
|
101
113
|
duration,
|
|
102
|
-
renew
|
|
114
|
+
renew,
|
|
103
115
|
kind: opts.kind,
|
|
104
|
-
senderPane:
|
|
116
|
+
senderPane: who.paneId ?? ownerPane,
|
|
117
|
+
ownerSlot: who.slot,
|
|
118
|
+
ownerLabel,
|
|
119
|
+
recipientLabel: ownerLabel,
|
|
105
120
|
});
|
|
106
121
|
if (!res.ok) {
|
|
107
122
|
console.error(`checkback start: FAIL ${res.reason ?? "?"}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkback-cli.js","sourceRoot":"","sources":["../../src/commands/checkback-cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checkback-cli.js","sourceRoot":"","sources":["../../src/commands/checkback-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Top-level verbs + aliases (+ completion itself). */
|
|
2
|
+
export declare function listTopLevelCompletionWords(): string[];
|
|
3
|
+
/**
|
|
4
|
+
* Normalize argv for completion: drop leading node/npx/npm-exec wrappers
|
|
5
|
+
* so `npx seatmesh peer` completes like `seatmesh peer`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeCompletionWords(raw: string[]): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Compute completion candidates.
|
|
10
|
+
* @param words full shell words for this command line (may include wrappers)
|
|
11
|
+
* @param cword index of the word being completed (0-based in `words`)
|
|
12
|
+
*/
|
|
13
|
+
export declare function completeArgv(words: string[], cword: number): string[];
|
|
14
|
+
export declare function printCompletionReply(words: string[], cword: number): void;
|
|
15
|
+
export declare function renderBashCompletion(): string;
|
|
16
|
+
export declare function renderZshCompletion(): string;
|
|
17
|
+
export declare function renderFishCompletion(): string;
|
|
18
|
+
export declare function printCompletionInstallHint(): void;
|
|
19
|
+
export declare function runCompletionCommand(args: string[]): void;
|
|
20
|
+
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAwIA,uDAAuD;AACvD,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAUD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmDhE;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsFrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIzE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAyB7C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAqBjD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAsCzD"}
|