@excitedjs/dreamux 0.9.5 → 0.9.7

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.
@@ -0,0 +1,297 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { chmod, mkdir, rename, rm, stat, writeFile, } from 'node:fs/promises';
3
+ import { basename, resolve } from 'node:path';
4
+ export const FEISHU_SKILL_FALLBACK_NOTE = 'Parser note: message text may be incomplete. Use the Feishu skill with the chat_id and message_id above to fetch the original message when needed.';
5
+ const DEFAULT_MAX_RESOURCE_BYTES = 25 * 1024 * 1024;
6
+ const DEFAULT_RESOURCE_TIMEOUT_MS = 20_000;
7
+ export async function formatFeishuMessageForCodex(event, options = {}) {
8
+ const attachments = await resolveAttachments(event, options);
9
+ const attrs = [
10
+ ['chat_id', event.chatId],
11
+ ['chat_type', event.chatType],
12
+ ['message_id', event.messageId],
13
+ ['sender_id', event.senderId],
14
+ ['sender_name', event.senderName],
15
+ ['create_time', formatFeishuCreateTime(event.createTime)],
16
+ ];
17
+ const body = renderMessageBody(event);
18
+ const fallback = shouldAddFallbackNote(event)
19
+ ? `\n\n${FEISHU_SKILL_FALLBACK_NOTE}`
20
+ : '';
21
+ const attachmentBlock = renderAttachments(event.messageId, attachments);
22
+ const groupBots = renderGroupBots(options.trustedBots ?? []);
23
+ const attrLines = attrs.map(([key, value]) => ` ${key}="${escapeXmlAttribute(value)}"`);
24
+ attrLines[attrLines.length - 1] = `${attrLines[attrLines.length - 1]}>`;
25
+ return {
26
+ formattedText: [
27
+ '<feishu_message',
28
+ ...attrLines,
29
+ `${body}${fallback}${attachmentBlock}${groupBots}`,
30
+ '</feishu_message>',
31
+ ].join('\n'),
32
+ attachments,
33
+ diagnostics: attachments
34
+ .filter((attachment) => attachment.status === 'not_downloaded')
35
+ .map((attachment) => `attachment ${attachment.type} was not downloaded: ${attachment.reason ?? 'api_error'}`),
36
+ };
37
+ }
38
+ function renderGroupBots(trustedBots) {
39
+ if (trustedBots.length === 0)
40
+ return '';
41
+ const lines = trustedBots.map((bot) => {
42
+ const name = bot.name ?? '';
43
+ return ` <bot name="${escapeXmlAttribute(name)}" open_id="${escapeXmlAttribute(bot.openId)}" />`;
44
+ });
45
+ return [
46
+ '\n\n<group_bots note="trusted bots in this group; a bot speaks without @-mentioning us">',
47
+ ...lines,
48
+ '</group_bots>',
49
+ ].join('\n');
50
+ }
51
+ export function formatFeishuCreateTime(value) {
52
+ const trimmed = value.trim();
53
+ if (trimmed === '')
54
+ return '';
55
+ const numeric = Number(trimmed);
56
+ if (Number.isFinite(numeric)) {
57
+ const epochMs = Math.abs(numeric) < 1_000_000_000_000
58
+ ? numeric * 1000
59
+ : numeric;
60
+ const date = new Date(epochMs);
61
+ if (!Number.isNaN(date.getTime()))
62
+ return date.toISOString();
63
+ }
64
+ const date = new Date(trimmed);
65
+ if (!Number.isNaN(date.getTime()))
66
+ return date.toISOString();
67
+ return trimmed;
68
+ }
69
+ function renderMessageBody(event) {
70
+ const rawText = extractRawText(event);
71
+ if (rawText !== null) {
72
+ return renderTextWithMentions(rawText, event.mentions);
73
+ }
74
+ return escapeXmlText(event.parsedText);
75
+ }
76
+ function extractRawText(event) {
77
+ if (event.messageType !== 'text')
78
+ return null;
79
+ let parsed;
80
+ try {
81
+ parsed = JSON.parse(event.rawContent);
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
87
+ return null;
88
+ }
89
+ const text = parsed['text'];
90
+ return typeof text === 'string' ? text : null;
91
+ }
92
+ function renderTextWithMentions(text, mentions) {
93
+ let out = escapeXmlText(text);
94
+ for (const mention of mentions) {
95
+ const id = mention.id?.open_id ?? mention.id?.union_id ?? mention.id?.user_id;
96
+ if (mention.key === '' || id === undefined || mention.name === undefined) {
97
+ continue;
98
+ }
99
+ out = out.split(escapeXmlText(mention.key)).join(`<at id="${escapeXmlAttribute(id)}">${escapeXmlText(mention.name)}</at>`);
100
+ }
101
+ return out;
102
+ }
103
+ function shouldAddFallbackNote(event) {
104
+ if (event.parsedText === '(unparseable message)')
105
+ return true;
106
+ if (event.messageType === 'text' && extractRawText(event) === null)
107
+ return true;
108
+ return event.parsedText === `(${event.messageType} message)`;
109
+ }
110
+ async function resolveAttachments(event, options) {
111
+ const resources = event.resources ?? [];
112
+ const out = [];
113
+ for (const resource of resources) {
114
+ out.push(await resolveAttachment(event.messageId, resource, options));
115
+ }
116
+ return out;
117
+ }
118
+ async function resolveAttachment(messageId, resource, options) {
119
+ const base = {
120
+ type: resource.type,
121
+ ...(resource.name !== undefined ? { name: resource.name } : {}),
122
+ ...(resource.key !== undefined ? { key: resource.key } : {}),
123
+ status: 'not_downloaded',
124
+ };
125
+ if (resource.key === undefined || resource.key === '') {
126
+ return { ...base, reason: 'no_key' };
127
+ }
128
+ if (options.cacheDir === undefined || options.resourceFetcher === undefined) {
129
+ return { ...base, reason: 'unsupported_type' };
130
+ }
131
+ try {
132
+ const cacheRoot = resolve(options.cacheDir);
133
+ const path = attachmentPath(cacheRoot, resource);
134
+ if (await fileExists(path))
135
+ return { ...base, status: 'downloaded', path };
136
+ await mkdir(cacheRoot, { recursive: true, mode: 0o700 });
137
+ const response = await options.resourceFetcher.fetchMessageResource({
138
+ messageId,
139
+ fileKey: resource.key,
140
+ type: resource.type,
141
+ });
142
+ const bytes = await readStreamWithLimit(response.stream, options.maxBytes ?? DEFAULT_MAX_RESOURCE_BYTES, options.timeoutMs ?? DEFAULT_RESOURCE_TIMEOUT_MS);
143
+ const tmpPath = `${path}.tmp-${globalThis.process.pid}-${Date.now()}`;
144
+ try {
145
+ await writeFile(tmpPath, bytes, { mode: 0o600 });
146
+ await chmod(tmpPath, 0o600);
147
+ await rename(tmpPath, path);
148
+ }
149
+ catch (err) {
150
+ await rm(tmpPath, { force: true });
151
+ throw err;
152
+ }
153
+ return { ...base, status: 'downloaded', path };
154
+ }
155
+ catch (err) {
156
+ return { ...base, reason: reasonFromError(err) };
157
+ }
158
+ }
159
+ function renderAttachments(messageId, attachments) {
160
+ if (attachments.length === 0)
161
+ return '';
162
+ return attachments.map((attachment) => renderAttachment(messageId, attachment)).join('');
163
+ }
164
+ function renderAttachment(messageId, attachment) {
165
+ const attrs = [
166
+ ['type', attachment.type],
167
+ ...(attachment.name !== undefined ? [['name', attachment.name]] : []),
168
+ ...(attachment.key !== undefined ? [['key', attachment.key]] : []),
169
+ ...(attachment.path !== undefined ? [['path', attachment.path]] : []),
170
+ ['status', attachment.status],
171
+ ...(attachment.reason !== undefined ? [['reason', attachment.reason]] : []),
172
+ ];
173
+ const attrText = attrs
174
+ .map(([key, value]) => `${key}="${escapeXmlAttribute(value)}"`)
175
+ .join(' ');
176
+ if (attachment.status === 'downloaded') {
177
+ return `\n\n<attachment ${attrText} />`;
178
+ }
179
+ const key = attachment.key ?? `${attachment.type.toUpperCase()}_KEY`;
180
+ const outputName = attachment.type === 'image'
181
+ ? 'feishu-attachment-image'
182
+ : 'feishu-attachment-file';
183
+ const command = [
184
+ 'lark-cli im +messages-resources-download',
185
+ `--message-id ${shellArg(messageId)}`,
186
+ `--file-key ${shellArg(key)}`,
187
+ `--type ${attachment.type}`,
188
+ `--output ./${outputName}`,
189
+ ].join(' ');
190
+ return [
191
+ `\n\n<attachment ${attrText}>`,
192
+ 'Use lark-cli to fetch it if needed:',
193
+ escapeXmlText(command),
194
+ '</attachment>',
195
+ ].join('\n');
196
+ }
197
+ function attachmentPath(cacheRoot, resource) {
198
+ const key = resource.key ?? 'missing-key';
199
+ const digest = createHash('sha256').update(key).digest('hex').slice(0, 16);
200
+ const displayName = sanitizeFileName(resource.name ?? `${resource.type}.bin`);
201
+ const path = resolve(cacheRoot, `${resource.type}-${digest}-${displayName}`);
202
+ if (!isInside(cacheRoot, path))
203
+ throw new CachePathError();
204
+ return path;
205
+ }
206
+ function sanitizeFileName(value) {
207
+ const safeBase = basename(value)
208
+ .replace(/[\u0000-\u001f\u007f]/g, '')
209
+ .replace(/[^A-Za-z0-9._-]+/g, '_')
210
+ .replace(/^[-.]+/, '')
211
+ .slice(0, 80);
212
+ return safeBase === '' ? 'attachment.bin' : safeBase;
213
+ }
214
+ function isInside(root, path) {
215
+ return path === root || path.startsWith(`${root}/`);
216
+ }
217
+ async function fileExists(path) {
218
+ try {
219
+ const info = await stat(path);
220
+ return info.isFile();
221
+ }
222
+ catch {
223
+ return false;
224
+ }
225
+ }
226
+ async function readStreamWithLimit(stream, maxBytes, timeoutMs) {
227
+ const chunks = [];
228
+ let total = 0;
229
+ let timedOut = false;
230
+ const timer = setTimeout(() => {
231
+ timedOut = true;
232
+ stream.destroy(new DownloadTimeoutError());
233
+ }, timeoutMs);
234
+ try {
235
+ for await (const chunk of stream) {
236
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
237
+ total += bytes.byteLength;
238
+ if (total > maxBytes) {
239
+ stream.destroy(new DownloadTooLargeError());
240
+ throw new DownloadTooLargeError();
241
+ }
242
+ chunks.push(bytes);
243
+ }
244
+ }
245
+ catch (err) {
246
+ if (timedOut)
247
+ throw new DownloadTimeoutError();
248
+ throw err;
249
+ }
250
+ finally {
251
+ clearTimeout(timer);
252
+ }
253
+ return Buffer.concat(chunks, total);
254
+ }
255
+ function reasonFromError(err) {
256
+ if (err instanceof DownloadTooLargeError)
257
+ return 'too_large';
258
+ if (err instanceof DownloadTimeoutError)
259
+ return 'timeout';
260
+ if (err instanceof CachePathError)
261
+ return 'cache_error';
262
+ if (err instanceof Error && looksLikeMissingScope(err))
263
+ return 'missing_scope';
264
+ return 'api_error';
265
+ }
266
+ function looksLikeMissingScope(err) {
267
+ const message = err.message.toLowerCase();
268
+ return message.includes('scope') || message.includes('permission');
269
+ }
270
+ class DownloadTooLargeError extends Error {
271
+ constructor() {
272
+ super('Feishu resource exceeds configured byte cap');
273
+ }
274
+ }
275
+ class DownloadTimeoutError extends Error {
276
+ constructor() {
277
+ super('Feishu resource download timed out');
278
+ }
279
+ }
280
+ class CachePathError extends Error {
281
+ constructor() {
282
+ super('Feishu resource cache path escaped cache root');
283
+ }
284
+ }
285
+ function escapeXmlAttribute(value) {
286
+ return escapeXmlText(value).replaceAll('"', '&quot;');
287
+ }
288
+ function shellArg(value) {
289
+ return `'${value.replaceAll("'", "'\\''")}'`;
290
+ }
291
+ function escapeXmlText(value) {
292
+ return value
293
+ .replaceAll('&', '&amp;')
294
+ .replaceAll('<', '&lt;')
295
+ .replaceAll('>', '&gt;');
296
+ }
297
+ //# sourceMappingURL=feishu-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu-message.js","sourceRoot":"","sources":["../../src/channel/feishu-message.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -12,11 +12,11 @@
12
12
  * drops in-flight inbound submissions instead of replaying them.
13
13
  */
14
14
  import { DispatcherRuntime } from './dispatcher/runtime.js';
15
- import { formatFeishuMessageForCodex } from '@excitedjs/feishu-channel';
16
15
  import { channelOutboundToFeishuTarget, createFeishuBot, } from './feishu/bot.js';
17
16
  import { isBotSenderType } from '@excitedjs/feishu-transport';
18
17
  import { dreamuxFeishuGate, loadDispatcherAccess, saveDispatcherAccess, } from './channel/feishu-gate.js';
19
18
  import { detectIntroduce, introduceAckText, introduceDenyReason, introducedPeers, } from './channel/introduce.js';
19
+ import { formatFeishuMessageForCodex } from './channel/feishu-message.js';
20
20
  import { clearBaselineIfCurrent, listChatBots, observeKnownBot, pendingBaseline, recordBotAdded, trustIntroducedBots, trustedBotIds, } from './channel/chat-bots-store.js';
21
21
  import { parseCodexArgs, codexArgsToCli } from './runtime/codex-args.js';
22
22
  import { feishuMcpCodexArgs } from './codex/mcp-config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excitedjs/dreamux",
3
- "version": "0.9.5",
3
+ "version": "0.9.7",
4
4
  "description": "Codex-host server — single-session MVP. One node process hosts N dispatchers, each binding 1 Feishu bot + 1 Codex thread.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,8 +33,7 @@
33
33
  "execa": "^9.6.1",
34
34
  "pino": "^9.5.0",
35
35
  "plist": "^5.0.0",
36
- "@excitedjs/feishu-transport": "0.2.2",
37
- "@excitedjs/feishu-channel": "0.0.0"
36
+ "@excitedjs/feishu-transport": "0.2.2"
38
37
  },
39
38
  "devDependencies": {
40
39
  "@types/node": "^22.10.0",
@@ -1,28 +1,51 @@
1
1
  ---
2
2
  name: dispatcher
3
- description: Use from a Dreamux dispatcher thread when bounded repository work should be delegated to a tm-managed Codex teammate. Applies to spawning, sending, waiting, checking status, resuming, or summarizing teammate work through the tm CLI exposed by the Dreamux package.
3
+ description: Use from a Dreamux dispatcher thread when bounded repository work should be delegated to a tm-managed teammate. Applies to spawning, sending, waiting, checking status, resuming, recovering, or summarizing teammate work through the tm CLI exposed by the Dreamux package.
4
4
  ---
5
5
 
6
6
  # Dispatcher
7
7
 
8
8
  Use this skill only from a Dreamux dispatcher session. Dreamux hosts the
9
- dispatcher Codex app-server and exposes `tm` on the dispatcher `PATH`; `tm`
10
- owns teammate lifecycle, history, and repository worktrees.
9
+ dispatcher Codex app-server and exposes `tm` on the dispatcher `PATH`. `tm`
10
+ owns teammate lifecycle, history, and repository worktrees; Dreamux does not.
11
+
12
+ ## Router Posture
13
+
14
+ The dispatcher routes repository work to a teammate that lives in the target
15
+ repo. It does not investigate that repo itself.
16
+
17
+ - Hand the teammate the symptom and any concrete evidence, not your diagnosis.
18
+ Skip `grep`, file reads, and `git -C <repo>` probes done "to understand the
19
+ bug first". The teammate has the repo's own context and conventions;
20
+ pre-investigation burns dispatcher context and anchors the teammate to a
21
+ conclusion you drew before delegating.
22
+ - Treat the user's framing adversarially. A request like "find which commit
23
+ broke X" embeds claims ("X is broken", "it is a regression") that may be
24
+ false. Pass such claims into the teammate brief as things to verify, not as
25
+ settled premises.
26
+ - Keep repo-local instructions, git state, and tool output inside the teammate
27
+ context instead of mixing them into the dispatcher thread.
11
28
 
12
29
  ## Boundaries
13
30
 
14
- - Use `tm` from the dispatcher environment `PATH`. Dreamux injects its package
15
- `bin/` directory into the dispatcher Codex app-server PATH.
16
- - Pass `--engine codex` on every `tm spawn`; do not rely on version-specific
17
- defaults.
31
+ - Invoke bare `tm` from the dispatcher environment `PATH`. Dreamux injects its
32
+ package `bin/` directory into the dispatcher app-server PATH.
18
33
  - Do not use `npx`, `npm exec --package @excitedjs/tm`, or a version-qualified
19
34
  `@excitedjs/tm`; the Dreamux package owns the compatible tm version.
20
- - Do not call dreamux admin APIs to create teammate state.
35
+ - Choose the teammate engine deliberately. `tm spawn` takes `--engine`; the
36
+ engines it supports are listed in `tm spawn --help`. Pick by task shape and
37
+ by what the dispatcher environment actually provides -- a persistent,
38
+ resumable Codex daemon suits ongoing repo work; an engine whose CLI is not
39
+ installed or authenticated in this environment is not a usable choice. State
40
+ `--engine` explicitly so the selection is intentional rather than inherited
41
+ from a tm version default.
42
+ - Do not call dreamux admin APIs to create or recover teammate state. The
43
+ server hosts the dispatcher; tm owns teammates.
21
44
  - Do not infer the target repository from the dispatcher cwd unless the user or
22
45
  operator explicitly made that cwd the requested repo.
23
46
  - Do not ask a tm-managed teammate to spawn another tm teammate.
24
47
 
25
- ## Before Delegating
48
+ ## When To Delegate
26
49
 
27
50
  Delegate when the request is bounded and can be completed by one teammate:
28
51
  running tests, inspecting a code path, drafting a narrow patch, or collecting a
@@ -38,79 +61,44 @@ Resolve the repo path in this order:
38
61
  Use an absolute repo path for `tm spawn`. If the user gives a relative path,
39
62
  make it absolute only when its base is explicit.
40
63
 
41
- ## Command Shape
64
+ ## Command Contract
42
65
 
43
- Preflight once per dispatcher session and trust live help for flags:
66
+ `tm --help` is the top-level synopsis. `tm <verb> --help` owns each verb's
67
+ flags, accepted arguments, exit codes, and exact stdout/stderr contract. This
68
+ skill and its references own operational semantics and scenario selection; the
69
+ live help owns the executable contract. Read the verb's own help before relying
70
+ on a flag -- do not infer one verb's flags from another.
44
71
 
45
- ```bash
46
- tm --help
47
- ```
72
+ ## Scenario Routing
48
73
 
49
- ## First-Turn Delegation
74
+ Read the matching reference before reaching for the verb:
50
75
 
51
- 1. Pick a flat teammate name: lowercase letters, digits, and hyphens; keep it
52
- short and tied to the task, such as `tests-api` or `scan-auth`.
53
- 2. Spawn with the repo path, Codex engine, intent, timeout, and full task
54
- prompt:
76
+ | Intent | Reference |
77
+ |---|---|
78
+ | Spawn a teammate, compose its prompt, send follow-up, collect the result | `references/dispatch-task.md` |
79
+ | Look up, re-read, or resume a prior or dead teammate session | `references/inspect-and-resume.md` |
55
80
 
56
- ```bash
57
- tm spawn /absolute/repo \
58
- --name tests-api \
59
- --engine codex \
60
- --timeout 180 \
61
- --intent "Run focused API tests and summarize failures" \
62
- --prompt "Run the focused API tests. Report commands, failures, and the smallest next fix."
63
- ```
81
+ For multi-teammate review, design negotiation, merge, or unblock coordination,
82
+ use the `team-dev-workflow` skill, which layers methodology on top of this one.
64
83
 
65
- 3. If `tm spawn` exits `0`, use its printed reply as the teammate result. If it
66
- exits `124`, the Codex turn did not finish within the sync window; wait
67
- without `--fresh`:
84
+ ## Verified Reports
68
85
 
69
- ```bash
70
- tm wait tests-api --timeout 180
71
- ```
86
+ A reply to the source chat that asserts an outcome must be verifiable from this
87
+ turn's tool calls.
72
88
 
73
- 4. Reply to the source chat with the teammate result, including the command
74
- summary and any explicit failure.
89
+ - Report only what `tm` returned. Do not invent a teammate result that was not
90
+ printed by a `tm` verb.
91
+ - Verify any command, flag, or path before naming it; if you cannot verify it
92
+ this turn, say so rather than guessing a name.
93
+ - Translate dispatcher-internal identifiers into plain language before the
94
+ message goes out. Issue and PR numbers the user can look up are shared
95
+ vocabulary; ad-hoc internal labels are not.
96
+ - For public target repos, forbid internal domains, tokens, private
97
+ identifiers, and machine-local paths in commits, PRs/MRs, and comments in the
98
+ teammate brief.
75
99
 
76
- ## Follow-Up Delegation
77
-
78
- If a teammate name already exists for the same task, send a follow-up instead
79
- of spawning a duplicate:
80
-
81
- ```bash
82
- tm send tests-api \
83
- --prompt "Use the previous context. Re-run the focused test after the latest fix and summarize only changed results."
84
- tm wait tests-api --timeout 180
85
- ```
86
-
87
- ## Status And Readback
88
-
89
- - Use `tm status <name>` when a teammate appears stuck.
90
- - Use `tm wait <name> --timeout <seconds>` to collect the next completed reply.
91
- - Use `tm last <name>` or `tm history` when recovering a prior result.
92
- - Report the command outcome, the teammate name, the repository path, and any
93
- explicit failure. Do not invent a result that was not returned by `tm`.
94
-
95
- ## Failure Reporting
96
-
97
- When a tm command fails, stop the delegation sequence and report:
98
-
99
- - which `tm` verb failed
100
- - the teammate name and repo path
101
- - the exit status if available
102
- - the first useful stderr/stdout lines
103
- - whether retrying the same teammate is safe
104
-
105
- Known early startup failure to report verbatim:
106
-
107
- ```text
108
- codex daemon (pid N) exited before binding <socket path>
109
- ```
110
-
111
- That means the Codex app-server daemon did not become reachable. Do not retry
112
- silently; report the environment failure and ask the operator to run Dreamux
113
- diagnostics in the dispatcher environment.
100
+ ## State Boundary
114
101
 
115
102
  Do not say the Dreamux server lost or recovered teammate state. The server does
116
- not own that state.
103
+ not own that state. Teammate liveness, history, and recovery flow through `tm`
104
+ (see `references/inspect-and-resume.md`).
@@ -0,0 +1,140 @@
1
+ # Dispatch A Task
2
+
3
+ ## Trigger
4
+
5
+ You are pushing bounded work into a target repo: bringing up a new teammate
6
+ with its first task, or handing follow-up work to one that already owns the
7
+ task. Skip this when you only need to recover or re-read a prior session
8
+ (`inspect-and-resume.md`).
9
+
10
+ ## Steps
11
+
12
+ 1. Resolve the absolute repo path and the engine. Read `tm spawn --help` for
13
+ the supported engines and current flags; state `--engine` explicitly so the
14
+ choice is intentional.
15
+ 2. Choose the verb:
16
+ - New teammate plus first task in one call: `tm spawn <path> --prompt "..."`.
17
+ - New teammate, no task yet: `tm spawn <path>`.
18
+ - Existing teammate, new turn: `tm send <name> --prompt "..."`.
19
+ Reuse an existing teammate that already owns this task instead of spawning a
20
+ duplicate.
21
+ 3. Pick a flat teammate name: lowercase letters, digits, and hyphens, short and
22
+ tied to the task, such as `tests-api` or `scan-auth`. Pass
23
+ `--intent "short subject"` for work worth finding later; tm records it as a
24
+ queryable field in `tm history`.
25
+ 4. Compose the prompt against the two checklists below before sending.
26
+ 5. Run the blocking verb and wait for the reply (see "Wait phase").
27
+ 6. Report the verified result to the source chat (see "Closeout").
28
+
29
+ ```bash
30
+ tm spawn /absolute/repo \
31
+ --name tests-api \
32
+ --engine <engine> \
33
+ --intent "Run focused API tests and summarize failures" \
34
+ --prompt "The API suite is reported failing after the latest auth change. Run the focused API tests, report the commands you ran, the failures, and the smallest next fix."
35
+ ```
36
+
37
+ ## Composing The Prompt
38
+
39
+ Aim for roughly the length and shape the user would type if they dispatched the
40
+ task themselves: a one-line business request plus only the conventions the
41
+ teammate cannot infer. The failure mode is either omitting a fact the teammate
42
+ cannot derive, or adding noise that anchors and misleads it.
43
+
44
+ ### Include
45
+
46
+ The pieces a teammate cannot derive from its own checkout:
47
+
48
+ 1. **Intent.** The goal and why it matters, not a step-by-step recipe. The
49
+ teammate plans the steps; a recipe anchors it to your preconception and
50
+ stops it from finding a better path.
51
+ 2. **Branch and any PR/MR anchor.** Name the branch you expect it to work on,
52
+ stated as an expectation ("work on `feat/foo`"), not a pre-fetched
53
+ observation -- the teammate's own `git status` is the ground truth, and a
54
+ snapshot in the prompt may already be stale. Name the related PR/MR number
55
+ when one is relevant.
56
+ 3. **Hard context.** Boundary conditions the user actually stated, prior
57
+ decisions that bound the search space, and the symptom you observed --
58
+ load-bearing facts only.
59
+ 4. **Deliverable shape.** The artifact you want back: a verdict, a PR/MR, a
60
+ patch, a written report, or a one-line answer. Without this, teammates
61
+ sometimes return the wrong shape.
62
+
63
+ ### Keep Out
64
+
65
+ 1. **Noise.** Sub-question checklists, reminders of default behavior (read
66
+ before edit, do not fabricate), and generic exhortations ("be careful").
67
+ If the draft exceeds about ten lines, audit each line against "would the
68
+ teammate not otherwise know this".
69
+ 2. **Invented restrictions.** Do not add "don't open a new branch" / "don't
70
+ grep X" unless the action has a concrete cost the teammate cannot see, has
71
+ demonstrably caused a foot-gun on this task, or the user said so. Restating
72
+ a worry just removes the teammate's escalation room.
73
+ 3. **Fabricated user decisions.** Never write "the user decided X" when the
74
+ user did not say it. Vague input ("explore it", "go ahead") does not let you
75
+ pick an option on the user's behalf -- pass the open question through and let
76
+ the teammate raise it or report back.
77
+ 4. **Your theory of the cause.** Hand the symptom and any concrete evidence (a
78
+ stack trace, a log line, a diff fragment), not the conclusion you drew from
79
+ it. An unverified hypothesis injected as a premise is exactly what the
80
+ teammate has to detox before it can think.
81
+ 5. **Stale path hints.** When the target repo loads its own context (its
82
+ `CLAUDE.md` / `AGENTS.md` / knowledge base), write the prompt in the repo's
83
+ product terms rather than pasting file paths or "Read X first" hints. The
84
+ repo's own disclosure is more current than any snapshot the dispatcher
85
+ carries. Referencing a current session artifact you just produced, such as a
86
+ PR or issue number, is fine -- that is live state, not a stale knowledge
87
+ path. Keep any reference to a private or scratch location to the teammate's
88
+ own prompt; never let it reach a public commit, PR, or comment.
89
+
90
+ ## Wait Phase
91
+
92
+ `tm spawn --prompt`, `tm send`, and `tm wait` can block for a full model turn.
93
+ Use a `--timeout` and read the exit code:
94
+
95
+ - **`0`** -- the reply landed within the timeout; stdout carries the reply text.
96
+ - **`124`** -- the sync wait expired and the teammate is still running. Do not
97
+ respawn; the name is still taken. Collect the late result with
98
+ `tm wait <name> --timeout <seconds>`.
99
+ - **`1`** -- true failure: no such teammate, broken send path, invalid repo or
100
+ name, or the command was rejected. Read stderr before deciding the next step.
101
+
102
+ ```bash
103
+ tm wait tests-api --timeout 180
104
+ ```
105
+
106
+ If a teammate looks hung mid-turn rather than simply slow, `tm status <name>`
107
+ shows its pane and process ground truth so you can tell a stuck teammate from
108
+ one still working.
109
+
110
+ A second `tm send` to a teammate while an earlier send is still waiting steers
111
+ it: the earlier send returns early with a note, and only the latest send keeps
112
+ waiting. Use this to guide a running teammate. Confirm the verb's current
113
+ behavior in `tm send --help`.
114
+
115
+ When you build any wait loop, match expected result keywords (`merged`,
116
+ `done`, an anticipated error code), never words from the prompt you just sent --
117
+ the prompt text appears in the teammate's own turn and a prompt-word match
118
+ returns instantly.
119
+
120
+ ## Failure Reporting
121
+
122
+ When a `tm` command fails, stop the delegation sequence and report:
123
+
124
+ - which `tm` verb failed
125
+ - the teammate name and repo path
126
+ - the exit status if available
127
+ - the first useful stderr/stdout lines
128
+ - whether retrying the same teammate is safe
129
+
130
+ A startup readiness failure such as a daemon exiting before binding its socket
131
+ means the teammate engine did not become reachable in the dispatcher
132
+ environment. Do not retry silently; report it as an environment failure and
133
+ ask the operator to run Dreamux diagnostics (`dreamux-maintenance` skill).
134
+
135
+ ## Closeout
136
+
137
+ The source chat has the verified teammate result, including the command
138
+ summary and any explicit failure. No duplicate teammate was spawned for a task
139
+ an existing teammate already owned. Nothing was asserted that a `tm` verb did
140
+ not return this turn.
@@ -0,0 +1,79 @@
1
+ # Inspect And Resume
2
+
3
+ ## Trigger
4
+
5
+ You need to see what teammates are doing, re-read a reply, or continue a task
6
+ whose teammate is gone (dispatcher restarted, teammate killed, host rebooted).
7
+ Skip this when you are sending fresh work (`dispatch-task.md`).
8
+
9
+ ## Steps
10
+
11
+ 1. For a live snapshot of who is running and what they last said, read the
12
+ fleet state:
13
+
14
+ ```bash
15
+ tm states
16
+ ```
17
+
18
+ 2. To re-read the last settled reply from a still-live teammate:
19
+
20
+ ```bash
21
+ tm last <name>
22
+ ```
23
+
24
+ 3. To look up past or in-flight sessions for recovery, query history. It is
25
+ the tm-owned index that survives kills; default to a bounded field subset
26
+ for broad scans:
27
+
28
+ ```bash
29
+ tm history --repo /absolute/repo --fields id,engine,name,state,intent,resumeCommand
30
+ tm history --id <full-or-prefix>
31
+ ```
32
+
33
+ 4. To continue a dead session, prefer the row's `resumeCommand` over rebuilding
34
+ the command by hand. The explicit-id form is the reliable one:
35
+
36
+ ```bash
37
+ tm resume --engine <engine> --repo /absolute/repo --id <sid-or-thread-id>
38
+ ```
39
+
40
+ Prefer `resumeCommand` or an explicit `--id` whenever you have one -- that is
41
+ the unambiguous path. The name form `tm resume <name>` without an id does not
42
+ hand the choice to the engine: tm itself probes its live, archived, and history
43
+ state for that name and routes the single matching candidate. When more than one
44
+ candidate matches, it asks for `--engine claude|codex` to break the tie rather
45
+ than guessing. Use the name form only when you lack an id clue, and pass
46
+ `--engine` if tm reports an ambiguous match. Read `tm history --help` and
47
+ `tm resume --help` for current fields and flags.
48
+
49
+ ## When The User Hands You A Session Id
50
+
51
+ If the user supplies a session id with a phrase like "this is the X result,
52
+ take over", do not infer what "X" means from whatever is loudest in the current
53
+ chat. The dispatcher did not witness that session, so its actual content is the
54
+ authority. Verify the subject first -- `tm last <name>`, an independent check on
55
+ the suspected target (e.g. the PR's own reviews/comments), or one short
56
+ clarifying question -- before briefing a downstream teammate.
57
+
58
+ When you send the first turn to a resumed teammate, ask it to summarize its
59
+ existing conclusions rather than asserting the subject yourself. A wrong
60
+ subject then surfaces as a push-back, not as invented compliance.
61
+
62
+ ## Closing Work
63
+
64
+ When a task reaches a terminal state, record queryable close metadata at the
65
+ kill boundary so later history scans can find the outcome:
66
+
67
+ ```bash
68
+ tm kill <name> --status <merged|done|shelved|abandoned|blocked> --note "<short text>"
69
+ ```
70
+
71
+ Confirm the current status values and note semantics in `tm kill --help`. Do
72
+ not maintain a manual dispatcher ledger; `tm history` is the query surface and
73
+ durable outcomes belong in the issue, PR, or repo artifact the teammate already
74
+ worked on.
75
+
76
+ ## Closeout
77
+
78
+ The recovered teammate is on the intended session, its subject is verified
79
+ rather than assumed, and any terminal work carries a queryable close status.
@@ -28,11 +28,15 @@ the `dispatcher` skill.
28
28
 
29
29
  ## Coordinator Posture
30
30
 
31
- - Verify facts from the target repo and platform before deciding.
32
- - Do not edit target repo code from the coordinator context. Delegate repo work
33
- to a teammate in that repo.
31
+ - Verify facts from the target repo and platform before deciding. Treat the
32
+ user's framing adversarially: route embedded claims (a "regression", a review
33
+ comment) into the brief as things to verify, not as settled premises.
34
+ - Do not edit target repo code from the coordinator context, and do not
35
+ investigate it yourself. Hand the teammate the symptom and evidence, not your
36
+ diagnosis. Delegate repo work to a teammate in that repo.
34
37
  - Keep prompts short: intent, coordinates, hard constraints, and requested
35
- artifact.
38
+ artifact. The `dispatcher` skill's `references/dispatch-task.md` has the full
39
+ include / keep-out prompt checklist; reuse it for every brief here.
36
40
  - When the target repo is public, explicitly forbid internal domains, tokens,
37
41
  private identifiers, and machine-local paths in commits, MR/PRs, and comments.
38
42
  - Prefer one accountable teammate per branch or review thread; reuse it for