@te-river/opencode-team-mode 1.5.12 → 1.5.13

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.
Files changed (65) hide show
  1. package/README.md +27 -6
  2. package/README.zh-CN.md +25 -4
  3. package/dist/agents.d.ts +5 -1
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/agents.js +20 -0
  6. package/dist/agents.js.map +1 -1
  7. package/dist/host-hooks.d.ts +115 -0
  8. package/dist/host-hooks.d.ts.map +1 -0
  9. package/dist/host-hooks.js +270 -0
  10. package/dist/host-hooks.js.map +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +68 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/prompts/lead.d.ts +1 -1
  15. package/dist/prompts/lead.d.ts.map +1 -1
  16. package/dist/prompts/lead.js +71 -8
  17. package/dist/prompts/lead.js.map +1 -1
  18. package/dist/prompts/shared.d.ts +1 -1
  19. package/dist/prompts/shared.d.ts.map +1 -1
  20. package/dist/prompts/shared.js +51 -2
  21. package/dist/prompts/shared.js.map +1 -1
  22. package/dist/prompts/specialists.d.ts +1 -1
  23. package/dist/prompts/specialists.d.ts.map +1 -1
  24. package/dist/prompts/specialists.js +38 -17
  25. package/dist/prompts/specialists.js.map +1 -1
  26. package/dist/tm/args-schema.d.ts +7 -1
  27. package/dist/tm/args-schema.d.ts.map +1 -1
  28. package/dist/tm/args-schema.js +9 -3
  29. package/dist/tm/args-schema.js.map +1 -1
  30. package/dist/tm/bash-timeout.d.ts +72 -0
  31. package/dist/tm/bash-timeout.d.ts.map +1 -0
  32. package/dist/tm/bash-timeout.js +100 -0
  33. package/dist/tm/bash-timeout.js.map +1 -0
  34. package/dist/tm/browser.d.ts +66 -5
  35. package/dist/tm/browser.d.ts.map +1 -1
  36. package/dist/tm/browser.js +476 -89
  37. package/dist/tm/browser.js.map +1 -1
  38. package/dist/tm/config.d.ts +68 -0
  39. package/dist/tm/config.d.ts.map +1 -1
  40. package/dist/tm/config.js +62 -0
  41. package/dist/tm/config.js.map +1 -1
  42. package/dist/tm/dispatch.d.ts +95 -0
  43. package/dist/tm/dispatch.d.ts.map +1 -0
  44. package/dist/tm/dispatch.js +369 -0
  45. package/dist/tm/dispatch.js.map +1 -0
  46. package/dist/tm/index.d.ts +27 -4
  47. package/dist/tm/index.d.ts.map +1 -1
  48. package/dist/tm/index.js +38 -3
  49. package/dist/tm/index.js.map +1 -1
  50. package/dist/tm/pty.d.ts +70 -0
  51. package/dist/tm/pty.d.ts.map +1 -0
  52. package/dist/tm/pty.js +242 -0
  53. package/dist/tm/pty.js.map +1 -0
  54. package/dist/tm/search.d.ts +51 -7
  55. package/dist/tm/search.d.ts.map +1 -1
  56. package/dist/tm/search.js +151 -37
  57. package/dist/tm/search.js.map +1 -1
  58. package/dist/tm/webfetch.d.ts +4 -0
  59. package/dist/tm/webfetch.d.ts.map +1 -1
  60. package/dist/tm/webfetch.js +33 -5
  61. package/dist/tm/webfetch.js.map +1 -1
  62. package/dist/types.d.ts +16 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/docs/installation.md +216 -17
  65. package/package.json +2 -2
@@ -0,0 +1,369 @@
1
+ /**
2
+ * tm_dispatch / tm_join — ASYNC sub-agent dispatch (issue #7 of 2026-09-18).
3
+ *
4
+ * Why this exists: the host's built-in `task` tool blocks the CALLING
5
+ * session until the child agent returns, so "the team runs in parallel" was
6
+ * only half true — the lead stood still for the sum of every dispatch, and
7
+ * each child's full reply landed in the lead's context whether it needed it
8
+ * there or not. OpenCode hands plugins its own client (`input.client`), and
9
+ * the official session API has `create` + `promptAsync` — "start if needed
10
+ * and return IMMEDIATELY" — so a plugin-owned dispatcher gets real overlap
11
+ * without touching a line of host code. If a future host ever removes that
12
+ * surface, both tools degrade with an explicit instruction to fall back to
13
+ * `task`, rather than failing the round.
14
+ *
15
+ * Contract kept from T3 (no sub-agent spawns a sub-agent):
16
+ * - `tm_dispatch` executes ONLY for the team lead (ctx.agent check here,
17
+ * plus an explicit deny for the five specialists in agents.ts — the
18
+ * tm_* wildcard would otherwise hand it to everyone);
19
+ * - children are the five named specialists, never "team";
20
+ * - the child session is parented to the lead session (parentID), so the
21
+ * host's own session tree, cancellation and UI still make sense.
22
+ *
23
+ * Context economy (design goal #4): tm_join renders each child's reply
24
+ * through the SAME governance pipeline as every other tm_* tool, so five
25
+ * long sub-agent reports become five handles + 80-token previews that the
26
+ * lead can page through with tm_fetch — not 5×N kilotokens dumped inline.
27
+ */
28
+ import { tmError, toToolResult } from "./result.js";
29
+ import { unwrapClientResult } from "./client-unwrap.js";
30
+ import { detectContentType } from "./preview.js";
31
+ import { shorten } from "./config.js";
32
+ /** The five dispatchable specialists — "team" is deliberately NOT in the
33
+ * list: a lead spawning a lead is the nesting T3 closed. */
34
+ export const DISPATCH_TARGETS = ["architect", "implementer", "reviewer", "tester", "researcher"];
35
+ /** Resolve the host session API defensively — a missing namespace means the
36
+ * host does not speak this protocol, and the caller must degrade. */
37
+ export function sessionApiOf(client) {
38
+ const session = client?.session;
39
+ if (!session || typeof session !== "object")
40
+ return null;
41
+ const api = session;
42
+ if (typeof api.create !== "function" || typeof api.promptAsync !== "function")
43
+ return null;
44
+ return api;
45
+ }
46
+ /**
47
+ * Pull the assistant reply text out of a `session.messages` payload.
48
+ * Shapes accepted (host has renamed things before): {info,parts} pairs or a
49
+ * bare Part[] — the LAST assistant message is the answer, everything earlier
50
+ * is that agent's own working transcript.
51
+ */
52
+ export function lastAssistantText(messages) {
53
+ const list = Array.isArray(messages) ? messages : [];
54
+ for (let i = list.length - 1; i >= 0; i--) {
55
+ const entry = list[i];
56
+ const info = entry?.info;
57
+ const role = typeof info?.role === "string" ? String(info.role).toLowerCase() : "";
58
+ if (role && role !== "assistant")
59
+ continue;
60
+ const parts = entry?.parts;
61
+ if (!Array.isArray(parts)) {
62
+ // a bare message list (no {info,parts} envelope) — take any text part
63
+ const one = entry ?? {};
64
+ if (one.type === "text" && typeof one.text === "string")
65
+ return one.text;
66
+ continue;
67
+ }
68
+ const texts = parts
69
+ .filter((p) => {
70
+ const pp = p;
71
+ return pp && pp.type === "text" && typeof pp.text === "string" && pp.text.trim() !== "";
72
+ })
73
+ .map((p) => String(p.text));
74
+ if (texts.length)
75
+ return texts.join("\n");
76
+ }
77
+ return "";
78
+ }
79
+ /** One child's status line — the lead reads these, so keep them terse. */
80
+ export function renderChildLine(c, elapsedMs) {
81
+ const secs = Math.round(elapsedMs / 1000);
82
+ const tag = c.state === "running" ? `运行中 ${secs}s` : c.state === "error" ? `失败:${shorten(c.error ?? "", 80)}` : `已完成 ${secs}s`;
83
+ return `${c.sessionID} · ${c.agent} · "${c.label}" · ${tag}`;
84
+ }
85
+ /** Verdicts tm_join can actually observe (issue #7's "leader keeps control"). */
86
+ export function summarizeStates(children) {
87
+ let running = 0;
88
+ let idle = 0;
89
+ let error = 0;
90
+ for (const c of children) {
91
+ if (c.state === "running")
92
+ running++;
93
+ else if (c.state === "error")
94
+ error++;
95
+ else
96
+ idle++;
97
+ }
98
+ return { running, idle, error };
99
+ }
100
+ /**
101
+ * Sleep used only by tm_join's bounded wait. Deliberately a plain timer:
102
+ * it never holds the event loop (the wait is awaited, not spun) and it is
103
+ * capped by `maxWaitMs` so a hung child cannot hang the lead.
104
+ */
105
+ function sleep(ms) {
106
+ return new Promise((res) => {
107
+ const t = setTimeout(res, ms);
108
+ t.unref?.();
109
+ });
110
+ }
111
+ export function buildDispatchTools(deps) {
112
+ const leadAgent = deps.leadAgent ?? "team";
113
+ const targets = deps.targets ?? DISPATCH_TARGETS;
114
+ const maxWaitMs = deps.maxWaitMs ?? 300_000;
115
+ const now = deps.now ?? (() => Date.now());
116
+ const store = deps.pipelines.store;
117
+ const log = (e) => store.appendTrajectory({ tool: "tm_dispatch", ...e });
118
+ const children = new Map();
119
+ const api = sessionApiOf(deps.client);
120
+ /** Refresh a child's state from the host's own status map (the event bus
121
+ * is the fast path; this is the belt when an event was missed — a child
122
+ * dispatched before a plugin restart, or a session.idle that never
123
+ * arrived). */
124
+ async function refreshFromStatus(directory) {
125
+ const statusApi = api?.status;
126
+ if (typeof statusApi !== "function")
127
+ return;
128
+ let un;
129
+ try {
130
+ un = unwrapClientResult(await statusApi(directory ? { query: { directory } } : {}));
131
+ }
132
+ catch {
133
+ return;
134
+ }
135
+ if (!un.ok || !un.data || typeof un.data !== "object")
136
+ return;
137
+ const map = un.data;
138
+ for (const [sid, st] of Object.entries(map)) {
139
+ const rec = children.get(sid);
140
+ if (!rec || rec.state !== "running")
141
+ continue;
142
+ const type = String(st?.type ?? "").toLowerCase();
143
+ if (type === "idle") {
144
+ rec.state = "idle";
145
+ rec.finishedAt = now();
146
+ }
147
+ else if (type === "busy" || type === "retry") {
148
+ rec.state = "running";
149
+ }
150
+ }
151
+ }
152
+ function fetchReply(sid, directory) {
153
+ return (async () => {
154
+ const messages = api?.messages;
155
+ if (typeof messages !== "function")
156
+ return "";
157
+ try {
158
+ const un = unwrapClientResult(await messages({ path: { id: sid }, ...(directory ? { query: { directory } } : {}) }));
159
+ return un.ok ? lastAssistantText(un.data) : "";
160
+ }
161
+ catch {
162
+ return "";
163
+ }
164
+ })();
165
+ }
166
+ const dispatch = {
167
+ description: `Fire-and-continue sub-agent dispatch — the lead's parallelism lever (the built-in task tool BLOCKS you until the child finishes; this one does not).
168
+ - { agent: ${targets.join("|")} , task: "<self-contained brief>", label: "<short slug>" } → starts the specialist in its OWN child session (parented to yours) and returns the child session id IMMEDIATELY. You keep working the same round: plan the next step, do a cheap read of your own, or fire more dispatches — independent work runs concurrently instead of serially.
169
+ - The brief must stand alone: the child has not seen this conversation, does not know what you tried, and cannot ask you mid-run. Say what to do, WHY it matters, which files/paths are its territory, what "done" looks like, and how much thoroughness you expect — the child still answers the mandatory STATUS/CHANGES/FINDINGS/EVIDENCE/HANDOFF skeleton.
170
+ - Collect with tm_join (no wait = status snapshot, waitMs = bounded wait). Collected replies ride the offload pipeline: a long report arrives as a handle + preview, not a context flood.
171
+ - Division of labour: bulk reading / searching / aggregation burns the CHILD's context and comes back as a skeleton; your own context is the scarce resource — keep it for routing, decisions and the final merge.
172
+ - Only the team lead may call this; a child never dispatches (no nested teams). If the host exposes no async session API the call fails with an explicit "use the built-in task tool" directive.`,
173
+ args: {
174
+ agent: { descriptor: `agent: ${targets.join("|")} (required)` },
175
+ task: { descriptor: "task: string (required — the full self-contained brief the child works from)" },
176
+ label: { descriptor: "label: string (optional short slug for this dispatch, ≤40 chars)" },
177
+ },
178
+ execute: async (rawArgs, ctx) => {
179
+ const tool = "tm_dispatch";
180
+ try {
181
+ const args = (rawArgs ?? {});
182
+ const c = (ctx ?? {});
183
+ const caller = String(c.agent ?? "").trim();
184
+ if (caller && caller !== leadAgent) {
185
+ return toToolResult(tmError(tool, "governance", `只有 ${leadAgent} 可以派发子代理(当前 agent="${shorten(caller, 24)}")。T3 规则:子代理不再派子代理——把需要并行的工作交给 lead 编排。`));
186
+ }
187
+ const agent = String(args.agent ?? "").trim().toLowerCase();
188
+ if (!targets.includes(agent)) {
189
+ return toToolResult(tmError(tool, "args", `未知派发目标 "${shorten(agent, 30)}"——可用: ${targets.join(", ")}`));
190
+ }
191
+ const task = typeof args.task === "string" ? args.task.trim() : "";
192
+ if (task.length < 20) {
193
+ return toToolResult(tmError(tool, "args", "task 太短:子代理看不到本会话,派发说明必须自包含(目标、涉及文件、完成判据、期望深度)。"));
194
+ }
195
+ const parent = String(c.sessionID ?? "").trim();
196
+ if (!parent) {
197
+ return toToolResult(tmError(tool, "client", "缺少 sessionID(宿主未把会话上下文传给插件),无法建立父子会话。"));
198
+ }
199
+ if (!api) {
200
+ return toToolResult(tmError(tool, "client", `此宿主未暴露异步会话 API(client.session.create/promptAsync),tm_dispatch 不可用——改用内置 task 工具(会阻塞你,但功能等价)。`));
201
+ }
202
+ const label = (typeof args.label === "string" && args.label.trim() ? args.label.trim() : task.split(/\s+/).slice(0, 4).join(" ")).slice(0, 40);
203
+ const createApi = api?.create;
204
+ const promptApi = api?.promptAsync;
205
+ if (typeof createApi !== "function" || typeof promptApi !== "function") {
206
+ return toToolResult(tmError(tool, "client", "此宿主的 client.session 缺少 create/promptAsync——改用内置 task 工具。"));
207
+ }
208
+ const created = unwrapClientResult(await createApi({ body: { parentID: parent, title: `tm:${agent}:${label}` } }));
209
+ if (!created.ok)
210
+ return toToolResult(tmError(tool, "client", `创建子会话失败:${shorten(created.message ?? "", 120)}`));
211
+ const sid = String(created.data?.id ?? "").trim();
212
+ if (!sid)
213
+ return toToolResult(tmError(tool, "client", "子会话创建后未返回 id"));
214
+ const promptBody = {
215
+ agent,
216
+ noReply: false,
217
+ parts: [{ type: "text", text: task }],
218
+ };
219
+ const directory = typeof c.directory === "string" && c.directory ? c.directory : undefined;
220
+ const sent = unwrapClientResult(await promptApi({ path: { id: sid }, ...(directory ? { query: { directory } } : {}), body: promptBody }));
221
+ if (!sent.ok) {
222
+ return toToolResult(tmError(tool, "client", `子会话 ${sid} 已创建但提示未能启动:${shorten(sent.message ?? "", 120)}——可对该 id 直接用内置 task,或本次改用 task 工具。`));
223
+ }
224
+ const rec = { sessionID: sid, agent, label, parentSessionID: parent, startedAt: now(), state: "running" };
225
+ children.set(sid, rec);
226
+ deps.onChildSession?.(sid, agent);
227
+ log({ step_id: "dispatch", event: "start", child: sid, parent: parent, agent, label });
228
+ return toToolResult([
229
+ `已派发(非阻塞):${agent} · "${label}" · 子会话 ${sid}`,
230
+ `你现在可以继续:编排下一步、做廉价检查、或继续派发其它独立任务。`,
231
+ `收集结果:tm_join(立即看状态)或 tm_join { waitMs: 60000 }。所有派发完成前不要提交结论。`,
232
+ ].join("\n"));
233
+ }
234
+ catch (err) {
235
+ const e = err;
236
+ return toToolResult(tmError(tool, "execute", `tm_dispatch 失败:${shorten(e?.message ?? err, 160)}`));
237
+ }
238
+ },
239
+ };
240
+ const join = {
241
+ description: `Collect what the async dispatches (tm_dispatch) have produced.
242
+ - No args: status snapshot of every open child of THIS session — running / idle(done) / error, with elapsed seconds. Cheap and non-blocking: use it to decide whether to keep working or start merging.
243
+ - { waitMs: 30000 }: bounded wait (capped at ${Math.round(maxWaitMs / 1000)}s) until every child settles, then returns each one's reply skeleton. Never wait for a child whose result you do not need — abort it instead ({ cancel: true }).
244
+ - { ids: [...] }: restrict to those child sessions; { cancel: true }: abort still-running ones (a runaway child is yours to stop, not the user's problem).
245
+ - Replies come back through the offload pipeline: a long sub-agent report arrives as a handle + ≤80-token preview (page it with tm_fetch), so five parallel dispatches do not multiply your context. STATUS: blocked/failed children are surfaced first, always.`,
246
+ args: {
247
+ ids: { descriptor: "ids: string[] (optional — only these child sessions)" },
248
+ waitMs: { descriptor: "waitMs: number (optional 0..300000 — bounded wait before collecting)" },
249
+ cancel: { descriptor: "cancel: true (abort the still-running children in this set)" },
250
+ includeText: { descriptor: "includeText: false to get only the status table (default true)" },
251
+ },
252
+ execute: async (rawArgs, ctx) => {
253
+ const tool = "tm_join";
254
+ try {
255
+ const args = (rawArgs ?? {});
256
+ const c = (ctx ?? {});
257
+ const caller = String(c.agent ?? "").trim();
258
+ if (caller && caller !== leadAgent) {
259
+ return toToolResult(tmError(tool, "governance", `只有 ${leadAgent} 能收集派发结果。`));
260
+ }
261
+ const parent = String(c.sessionID ?? "").trim();
262
+ const directory = typeof c.directory === "string" && c.directory ? c.directory : undefined;
263
+ const idFilter = Array.isArray(args.ids)
264
+ ? new Set(args.ids.map((x) => String(x ?? "").trim()).filter(Boolean))
265
+ : null;
266
+ const mine = [...children.values()].filter((r) => (!parent || r.parentSessionID === parent) && (!idFilter || idFilter.has(r.sessionID)));
267
+ if (!mine.length) {
268
+ return toToolResult(`没有待收集的派发${idFilter ? "(ids 未匹配到本会话的子代理)" : ""}。刚派发过却看不到?说明那次派发没成功——回到 tm_dispatch 的返回值检查。`);
269
+ }
270
+ const waitMs = Math.max(0, Math.min(maxWaitMs, Number(args.waitMs) || 0));
271
+ const deadline = now() + waitMs;
272
+ let settled = false;
273
+ for (;;) {
274
+ await refreshFromStatus(directory);
275
+ const open = mine.filter((r) => r.state === "running");
276
+ if (!open.length || now() >= deadline) {
277
+ settled = !open.length;
278
+ break;
279
+ }
280
+ await sleep(Math.min(1000, Math.max(100, deadline - now())));
281
+ }
282
+ const stillRunning = mine.filter((r) => r.state === "running");
283
+ const abortApi = api?.abort;
284
+ if (args.cancel === true || args.cancel === "true") {
285
+ for (const r of stillRunning) {
286
+ if (typeof abortApi === "function") {
287
+ const un = unwrapClientResult(await abortApi({ path: { id: r.sessionID } }));
288
+ r.error = un.ok ? "aborted on request" : `abort failed: ${shorten(un.message ?? "", 60)}`;
289
+ }
290
+ else {
291
+ r.error = "宿主无 abort 接口,未取消";
292
+ }
293
+ r.state = "error";
294
+ r.finishedAt = now();
295
+ log({ step_id: "join", event: "cancel", child: r.sessionID, agent: r.agent, ok: r.error.startsWith("aborted") });
296
+ }
297
+ }
298
+ const sums = summarizeStates(mine);
299
+ const header = [
300
+ `派发汇总:${sums.idle} 完成 / ${sums.running} 运行中 / ${sums.error} 失败${settled ? "(全部已结算)" : "(未等到全部结算,可再次 tm_join)"}`,
301
+ ...mine.map((r) => renderChildLine(r, (r.finishedAt ?? now()) - r.startedAt)),
302
+ ];
303
+ const wantText = !(args.includeText === false || args.includeText === "false");
304
+ const collectible = mine.filter((r) => r.state !== "running");
305
+ const blocks = [];
306
+ if (wantText) {
307
+ for (const r of collectible) {
308
+ const text = await fetchReply(r.sessionID, directory);
309
+ blocks.push(`--- ${r.agent} "${r.label}" (${r.sessionID}) ---\n${text.trim() || "(该子会话没有可读的助手回复——用内置 read/tm_read 检查其会话,或重新派发)"}`);
310
+ }
311
+ }
312
+ const body = [...header, ...(blocks.length ? ["", blocks.join("\n")] : [])].join("\n");
313
+ const stepId = deps.pipelines.nextStepId();
314
+ return toToolResult(await deps.pipelines.govern(stepId, tool, body, {
315
+ contentType: detectContentType(body),
316
+ clue: `join parent=${shorten(parent, 24)} idle=${sums.idle} running=${sums.running} error=${sums.error}`,
317
+ }));
318
+ }
319
+ catch (err) {
320
+ const e = err;
321
+ return toToolResult(tmError(tool, "execute", `tm_join 失败:${shorten(e?.message ?? err, 160)}`));
322
+ }
323
+ },
324
+ };
325
+ const observeEvent = (event) => {
326
+ const type = String(event?.type ?? "");
327
+ if (!type.startsWith("session."))
328
+ return;
329
+ const props = event?.properties;
330
+ const sid = String(props?.sessionID ?? "").trim();
331
+ if (!sid)
332
+ return;
333
+ const rec = children.get(sid);
334
+ if (!rec)
335
+ return;
336
+ if (type === "session.idle") {
337
+ if (rec.state === "running") {
338
+ rec.state = "idle";
339
+ rec.finishedAt = now();
340
+ log({ step_id: "events", event: "idle", child: sid, agent: rec.agent, ms: (rec.finishedAt ?? 0) - rec.startedAt });
341
+ }
342
+ return;
343
+ }
344
+ if (type === "session.error") {
345
+ rec.state = "error";
346
+ rec.finishedAt = now();
347
+ rec.error = shorten(props?.error?.message ?? props?.error ?? "session.error", 120);
348
+ log({ step_id: "events", event: "error", child: sid, agent: rec.agent, reason: rec.error });
349
+ return;
350
+ }
351
+ if (type === "session.status") {
352
+ const st = String(props?.status?.type ?? "").toLowerCase();
353
+ if (st === "idle" && rec.state === "running") {
354
+ rec.state = "idle";
355
+ rec.finishedAt = now();
356
+ }
357
+ else if (st === "busy") {
358
+ rec.state = "running";
359
+ }
360
+ }
361
+ };
362
+ return {
363
+ tm_dispatch: dispatch,
364
+ tm_join: join,
365
+ observeEvent,
366
+ children: () => [...children.values()],
367
+ };
368
+ }
369
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/tm/dispatch.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,17 @@
14
14
  * T0.4-verified shape: `{ tool: { tm_read: { description, args,
15
15
  * execute(args, ctx) } } }`).
16
16
  */
17
- import type { PluginInput, ToolDefinition } from "../types.js";
17
+ import type { HostEvent, PluginInput, ToolDefinition } from "../types.js";
18
18
  import { type EnvProtectMode } from "../envprotect.js";
19
19
  import { type TmConfig } from "./config.js";
20
20
  import { RunStore } from "./store.js";
21
21
  export { rmForceSafe } from "../fs-safe.js";
22
22
  export { buildTmMemoryTool, MEMORY_CATEGORIES, MEMORY_CONTENT_MAX, MEMORY_TITLE_MAX, projectSlug, scoreMemory, parseMemoryMarkdown, renderMemoryMarkdown, } from "./memory.js";
23
- export { buildTmBrowserTool, defaultBrowserExecutable, findBrowserExecutable, isChromiumFamily, parseDesktopExec, parseProgId, parseRegCommand, resolveHeadless, } from "./browser.js";
23
+ export { buildTmBrowserTool, defaultBrowserExecutable, findBrowserExecutable, isChromiumFamily, isPassiveResource, normalizeResourceType, parseDesktopExec, parseProgId, parseRegCommand, playwrightLaunchTarget, rememberSite, resolveHeadless, siteOf, subresourcePass, } from "./browser.js";
24
+ export { ptyCommandLine, ptyCommandBlocked, ptyVerdictLine } from "./pty.js";
25
+ export type { PtyRecord, PtyDeps } from "./pty.js";
26
+ export { buildDispatchTools, DISPATCH_TARGETS, lastAssistantText, renderChildLine, sessionApiOf, summarizeStates, } from "./dispatch.js";
27
+ export type { ChildRecord, DispatchDeps } from "./dispatch.js";
24
28
  export interface TmRuntime {
25
29
  runId: string;
26
30
  config: TmConfig;
@@ -28,14 +32,33 @@ export interface TmRuntime {
28
32
  /** The ONE main pipeline instance (exposed for tests + tool builders). */
29
33
  pipelines: ReturnType<typeof import("./pipelines.js").buildPipelines>;
30
34
  tools: Record<string, ToolDefinition>;
31
- /** Kill any long-lived session the tools own (tm_browser child process). */
32
- dispose: () => void;
35
+ /** Kill any long-lived session the tools own (tm_browser child process).
36
+ * ASYNC because the host's dispose hook awaits it — a fire-and-forget
37
+ * browser close could lose the window. */
38
+ dispose: () => Promise<void>;
39
+ /** Host event bus slice the async dispatcher needs (session.idle /
40
+ * .error / .status settle the lead's children). */
41
+ observeDispatchEvent: (event: HostEvent) => void;
42
+ /** Open async dispatches this plugin started (tests + observability). */
43
+ dispatches: () => Array<{
44
+ sessionID: string;
45
+ agent: string;
46
+ label: string;
47
+ state: string;
48
+ }>;
33
49
  }
34
50
  export interface CreateTmToolsOptions {
35
51
  /** R6 mode — pass the plugin-level resolved value to keep ONE source. */
36
52
  mode?: EnvProtectMode;
37
53
  /** R6 extra deny rules — same single-source rule. */
38
54
  extra?: RegExp[];
55
+ /** Best-effort user notification (the host toast) — tm_browser's idle
56
+ * reaper uses it so an auto-closed window is announced, not silent. */
57
+ notify?: (message: string) => void;
58
+ /** A tm_dispatch child session was created — let the approval gate
59
+ * register it so the sub-agent's own protected read opens the official
60
+ * dialog instead of hard-throwing in an unregistered session. */
61
+ onChildSession?: (sessionID: string, agent: string) => void;
39
62
  }
40
63
  export declare function createTmTools(input: PluginInput, opts?: CreateTmToolsOptions): Promise<TmRuntime>;
41
64
  export { DEFAULT_BASH_READONLY_ALLOWED, DEFAULT_WEBFETCH_DOMAINS, estimateTokens, parseAllowlistEnv, parseWebfetchAllowlistEnv, resolveTmConfig, shouldOffload, shorten, TM_CONFIG_DEFAULTS, } from "./config.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"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"}
package/dist/tm/index.js CHANGED
@@ -31,9 +31,13 @@ import { buildTmWebfetchTool } from "./webfetch.js";
31
31
  import { buildTmSearchTool } from "./search.js";
32
32
  export { rmForceSafe } from "../fs-safe.js";
33
33
  export { buildTmMemoryTool, MEMORY_CATEGORIES, MEMORY_CONTENT_MAX, MEMORY_TITLE_MAX, projectSlug, scoreMemory, parseMemoryMarkdown, renderMemoryMarkdown, } from "./memory.js";
34
- export { buildTmBrowserTool, defaultBrowserExecutable, findBrowserExecutable, isChromiumFamily, parseDesktopExec, parseProgId, parseRegCommand, resolveHeadless, } from "./browser.js";
34
+ export { buildTmBrowserTool, defaultBrowserExecutable, findBrowserExecutable, isChromiumFamily, isPassiveResource, normalizeResourceType, parseDesktopExec, parseProgId, parseRegCommand, playwrightLaunchTarget, rememberSite, resolveHeadless, siteOf, subresourcePass, } from "./browser.js";
35
35
  import { buildTmMemoryTool } from "./memory.js";
36
36
  import { buildTmBrowserTool } from "./browser.js";
37
+ import { buildDispatchTools } from "./dispatch.js";
38
+ import { buildTmPtyTool } from "./pty.js";
39
+ export { ptyCommandLine, ptyCommandBlocked, ptyVerdictLine } from "./pty.js";
40
+ export { buildDispatchTools, DISPATCH_TARGETS, lastAssistantText, renderChildLine, sessionApiOf, summarizeStates, } from "./dispatch.js";
37
41
  export async function createTmTools(input, opts = {}) {
38
42
  const cfg = resolveTmConfig(process.env);
39
43
  const directory = typeof input?.directory === "string" && input.directory.length > 0
@@ -134,7 +138,12 @@ export async function createTmTools(input, opts = {}) {
134
138
  // Network role tool: team + researcher carry the allow; the other four
135
139
  // hold an explicit deny (overrides the tm_* wildcard). dispose() kills
136
140
  // the browser child when the host tears the plugin down.
137
- const browserTool = buildTmBrowserTool({ pipelines, cfg, args: await buildBrowserArgsSchema() });
141
+ const browserTool = buildTmBrowserTool({
142
+ pipelines,
143
+ cfg,
144
+ args: await buildBrowserArgsSchema(),
145
+ notify: opts.notify,
146
+ });
138
147
  tools.tm_browser = browserTool;
139
148
  // M3: build tm_ptc_run using a separate pipeline instance (governance
140
149
  // reused verbatim). Its step counter starts at s0001 again — the
@@ -191,7 +200,33 @@ export async function createTmTools(input, opts = {}) {
191
200
  webTools: ptcWebTools,
192
201
  });
193
202
  tools.tm_ptc_run = ptcTool;
194
- return { runId, config: cfg, store, pipelines, tools, dispose: () => browserTool.dispose() };
203
+ // tm_dispatch / tm_join — ASYNC sub-agent dispatch for the lead (issue #7:
204
+ // the host's `task` tool blocks the calling session, so "parallel team"
205
+ // really meant "serial with extra steps"). Built on the official client
206
+ // session API; both tools self-gate to the lead agent, and the five
207
+ // specialists carry an explicit deny in agents.ts.
208
+ const dispatch = buildDispatchTools({
209
+ client: input?.client,
210
+ pipelines,
211
+ onChildSession: opts.onChildSession,
212
+ });
213
+ tools.tm_dispatch = dispatch.tm_dispatch;
214
+ tools.tm_join = dispatch.tm_join;
215
+ // tm_pty — non-blocking command execution on the host's own terminal
216
+ // sessions (issue #6: three serial 120 s test suites are minutes of dead
217
+ // air inside one bash call). Every start passes the R6 classifier AND the
218
+ // official dialog, so this is an async lever, not a bypass channel.
219
+ tools.tm_pty = buildTmPtyTool({ client: input?.client, pipelines, mode, max: cfg.ptyMax });
220
+ return {
221
+ runId,
222
+ config: cfg,
223
+ store,
224
+ pipelines,
225
+ tools,
226
+ dispose: () => browserTool.dispose(),
227
+ observeDispatchEvent: dispatch.observeEvent,
228
+ dispatches: () => dispatch.children().map((c) => ({ sessionID: c.sessionID, agent: c.agent, label: c.label, state: c.state })),
229
+ };
195
230
  }
196
231
  // ---------- re-exports (stable import surface for tests + plugin entry) ----------
197
232
  export { DEFAULT_BASH_READONLY_ALLOWED, DEFAULT_WEBFETCH_DOMAINS, estimateTokens, parseAllowlistEnv, parseWebfetchAllowlistEnv, resolveTmConfig, shouldOffload, shorten, TM_CONFIG_DEFAULTS, } from "./config.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EACL,cAAc,EACd,qBAAqB,GAEtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACpJ,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAuC,MAAM,aAAa,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAoBjD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAkB,EAClB,OAA6B,EAAE;IAE/B,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACxC,MAAM,SAAS,GACb,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7C,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,qEAAqE;IACrE,iCAAiC;IACjC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpD,MAAM,SAAS,GACb,MAAM,KAAK,IAAI;QACf,CAAC,GAAG,EAAE;YACJ,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAgB,EAAE,eAAe,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAA;IAC3C,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAChH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;QACzB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;QACtE,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;QACtE,KAAK;QACL,OAAO,EAAE,GAAG,CAAC,iBAAiB;KAC/B,CAAC,CAAA;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,KAAK,CAAC,YAAY,EAAE,CAAA;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,kEAAkE;IAClE,2BAA2B;IAC3B,8DAA8D;IAC9D,MAAM,WAAW,GAAY,KAAK,EAAE,CAAC,IAAK,UAAkB,CAAC,CAAC,IAAK,UAAkB,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,KAAK,EAAE,MAAM;QACrB,CAAC,EAAE,WAAW;QACd,GAAG;QACH,KAAK;QACL,KAAK;QACL,OAAO;QACP,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,uEAAuE;QACvE,6DAA6D;QAC7D,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,wEAAwE;IACxE,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACjD,sEAAsE;IACtE,yEAAyE;IACzE,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,uBAAuB,EAAE,CAAA;IACpD,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;IAC/E,sEAAsE;IACtE,sEAAsE;IACtE,sEAAsE;IACtE,iEAAiE;IACjE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,qBAAqB,EAAE,EAAE,CAAC,CAAA;IAC5F,yEAAyE;IACzE,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,UAAU,GAAG,MAAM,qBAAqB,EAAE,CAAA;IAChD,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAClC,SAAS;QACT,UAAU,EAAE,iBAAiB;QAC7B,SAAS;QACT,GAAG;QACH,SAAS;QACT,IAAI,EAAE,UAAU;KACjB,CAAC,CAAA;IACF,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,yDAAyD;IACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,sBAAsB,EAAE,EAAE,CAAC,CAAA;IAChG,KAAK,CAAC,UAAU,GAAG,WAAW,CAAA;IAC9B,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,qEAAqE;IACrE,sEAAsE;IACtE,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,MAAM;QACrB,CAAC,EAAE,WAAW;QACd,GAAG;QACH,KAAK;QACL,KAAK;QACL,OAAO;QACP,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5C,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,WAAW,GACf,GAAG,CAAC,YAAY,KAAK,IAAI;QACvB,CAAC,CAAC;YACE,SAAS,EAAE,iBAAiB,CAAC;gBAC3B,SAAS,EAAE,YAAY;gBACvB,GAAG;gBACH,IAAI,EAAE,MAAM,qBAAqB,EAAE;aACpC,CAAC;YACF,WAAW,EAAE,mBAAmB,CAAC;gBAC/B,SAAS,EAAE,YAAY;gBACvB,GAAG;gBACH,IAAI,EAAE,MAAM,uBAAuB,EAAE;aACtC,CAAC;SACH;QACH,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,GAAG;QACH,KAAK;QACL,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,wEAAwE;QACxE,gEAAgE;QAChE,GAAG,EAAE,EAAE,SAAS,EAAE;QAClB,WAAW;QACX,IAAI,EAAE,MAAM,kBAAkB,EAAE;QAChC,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAA;IACF,KAAK,CAAC,UAAU,GAAG,OAAO,CAAA;IAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAA;AAC9F,CAAC;AAED,oFAAoF;AAEpF,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,kBAAkB,GACnB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACrG,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE3E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,4BAA4B,EAC5B,WAAW,EACX,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,mCAAmC;AACnC,yEAAyE;AACzE,sEAAsE;AACtE,uEAAuE;AACvE,uDAAuD;AACvD,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,EACN,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAA;AACvB,wEAAwE;AACxE,sEAAsE;AACtE,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"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"}