teamshare-bridge 0.8.0 → 0.9.1

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 (60) hide show
  1. package/dist/cli/commands/build.js +37 -2
  2. package/dist/cli/commands/build.js.map +1 -1
  3. package/dist/cli/commands/chat.js +4 -2
  4. package/dist/cli/commands/chat.js.map +1 -1
  5. package/dist/cli/commands/cleanup.d.ts +1 -0
  6. package/dist/cli/commands/cleanup.js +79 -0
  7. package/dist/cli/commands/cleanup.js.map +1 -0
  8. package/dist/cli/commands/doc.js +4 -2
  9. package/dist/cli/commands/doc.js.map +1 -1
  10. package/dist/cli/commands/harness.d.ts +8 -0
  11. package/dist/cli/commands/harness.js +31 -0
  12. package/dist/cli/commands/harness.js.map +1 -1
  13. package/dist/cli/commands/run.js +80 -20
  14. package/dist/cli/commands/run.js.map +1 -1
  15. package/dist/cli/commands/worker.js +216 -18
  16. package/dist/cli/commands/worker.js.map +1 -1
  17. package/dist/cli/index.js +4 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/utils.d.ts +6 -0
  20. package/dist/cli/utils.js +9 -0
  21. package/dist/cli/utils.js.map +1 -1
  22. package/dist/lib/chat-reply.d.ts +8 -3
  23. package/dist/lib/chat-reply.js +58 -9
  24. package/dist/lib/chat-reply.js.map +1 -1
  25. package/dist/lib/config.d.ts +15 -0
  26. package/dist/lib/config.js +7 -0
  27. package/dist/lib/config.js.map +1 -1
  28. package/dist/lib/doc-reply.d.ts +2 -0
  29. package/dist/lib/doc-reply.js +22 -1
  30. package/dist/lib/doc-reply.js.map +1 -1
  31. package/dist/lib/git-auth.d.ts +2 -0
  32. package/dist/lib/git-auth.js +7 -0
  33. package/dist/lib/git-auth.js.map +1 -1
  34. package/dist/lib/git-auto.d.ts +28 -0
  35. package/dist/lib/git-auto.js +135 -0
  36. package/dist/lib/git-auto.js.map +1 -0
  37. package/dist/lib/git-pipeline.d.ts +55 -0
  38. package/dist/lib/git-pipeline.js +250 -0
  39. package/dist/lib/git-pipeline.js.map +1 -0
  40. package/dist/lib/harness-adapter.js +10 -2
  41. package/dist/lib/harness-adapter.js.map +1 -1
  42. package/dist/lib/llm.d.ts +4 -2
  43. package/dist/lib/llm.js +8 -5
  44. package/dist/lib/llm.js.map +1 -1
  45. package/dist/lib/models.d.ts +4 -0
  46. package/dist/lib/models.js +14 -2
  47. package/dist/lib/models.js.map +1 -1
  48. package/dist/lib/orchestrator/client.js +11 -55
  49. package/dist/lib/orchestrator/client.js.map +1 -1
  50. package/dist/lib/pr-create.d.ts +30 -0
  51. package/dist/lib/pr-create.js +83 -0
  52. package/dist/lib/pr-create.js.map +1 -0
  53. package/dist/lib/retry.d.ts +17 -0
  54. package/dist/lib/retry.js +55 -0
  55. package/dist/lib/retry.js.map +1 -0
  56. package/dist/lib/run-report.d.ts +41 -0
  57. package/dist/lib/run-report.js +103 -0
  58. package/dist/lib/run-report.js.map +1 -0
  59. package/package.json +49 -49
  60. package/skills/teamshare-cdd/SKILL.md +8 -4
@@ -1,18 +1,62 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.cmdWorker = cmdWorker;
4
37
  exports.cmdMerge = cmdMerge;
5
38
  /**
6
39
  * `worker` command: IMP-810 — work the orchestrator's multi-agent queue.
7
40
  * Polls `GET /agents/:id/orchestrator-work` for assigned tasks, claims
8
- * and works them, then lets the backend verify+merge.
41
+ * and works them via a real harness/LLM session, then lets the backend
42
+ * verify+merge. Completion of the source Task drives the OrchestratorTask
43
+ * lifecycle server-side (IMP-743 completion hook).
9
44
  */
45
+ const node_fs_1 = require("node:fs");
10
46
  const api_1 = require("../../lib/api");
11
47
  const brief_1 = require("../../lib/brief");
48
+ const llm_1 = require("../../lib/llm");
12
49
  const lock_1 = require("../../lib/lock");
50
+ const session_stream_1 = require("../../lib/session-stream");
13
51
  const utils_1 = require("../utils");
52
+ const harness_1 = require("./harness");
53
+ const shared_1 = require("./shared");
14
54
  const config_1 = require("../../lib/config");
55
+ const run_report_1 = require("../../lib/run-report");
56
+ const utils_2 = require("../utils");
57
+ const git_pipeline_1 = require("../../lib/git-pipeline");
15
58
  const POLL_INTERVAL_MS = 8_000;
59
+ const DONE_STATUSES = new Set(['in_review', 'resolved', 'closed']);
16
60
  async function cmdWorker(flags) {
17
61
  const agentId = (0, utils_1.need)(flags, 'agent');
18
62
  const key = (0, utils_1.need)(flags, 'key');
@@ -21,20 +65,32 @@ async function cmdWorker(flags) {
21
65
  const once = flags.has('once');
22
66
  const log = (0, utils_1.makeLog)(null);
23
67
  log(`[worker:${agentId.slice(0, 8)}] Worker loop started` + (once ? ' (once)' : ''));
68
+ const settings = await (0, utils_1.fetchAgentSettings)(api, agentId, log);
69
+ const harness = (0, utils_1.harnessOf)(flags, settings);
70
+ let selfMode = flags.get('self') === 'true';
71
+ const modelSpec = (0, utils_1.modelOf)(flags, settings);
72
+ const modelResolved = (await Promise.resolve().then(() => __importStar(require('../../lib/models')))).resolveModel(modelSpec, process.env.LLM_BASE_URL);
73
+ if (modelResolved.harnessOnly && selfMode) {
74
+ log(`[model] "${modelSpec}" is harness-native - switching from --self to harness mode`);
75
+ selfMode = false;
76
+ }
24
77
  const lock = await (0, lock_1.acquireLock)(agentId, 'orchestrator');
25
78
  if (!lock) {
26
79
  console.error(`[error] Agent ${agentId.slice(0, 8)} is busy (lock held by another session). Use --agent to target a different agent.`);
27
80
  process.exitCode = 1;
28
81
  return;
29
82
  }
83
+ const stream = new session_stream_1.SessionStream({ sessionId: flags.get('session') ?? (0, session_stream_1.newSessionId)(), agentId, mode: 'run' });
84
+ stream.connect((process.env.TEAMSHARE_WS_URL ?? '').replace(/\/$/, '') + '/agents', key);
30
85
  try {
31
- await (0, brief_1.reportStatus)(api, agentId, 'online');
86
+ (0, utils_1.applyOpenCodeKey)(agentId, log, settings);
87
+ await (0, brief_1.reportStatus)(api, agentId, 'online', undefined, stream.sessionId);
32
88
  while (true) {
33
89
  const work = await api.getOrchestratorWork(agentId).catch((err) => {
34
90
  log(`[worker] Failed to fetch work queue: ${(0, config_1.msg)(err)}`);
35
91
  return [];
36
92
  });
37
- const queued = work.filter((w) => w.attemptCount === 0 || w.attemptCount < w.maxAttempts);
93
+ const queued = work.filter((w) => w.attemptCount < w.maxAttempts);
38
94
  if (queued.length === 0) {
39
95
  if (once) {
40
96
  log('[worker] No work available, exiting (--once)');
@@ -46,7 +102,7 @@ async function cmdWorker(flags) {
46
102
  const item = queued[0];
47
103
  log(`[worker] Working: ${item.title} (${item.orchestratorTaskId.slice(0, 8)})`);
48
104
  try {
49
- await workItem(api, agentId, item, flags, log);
105
+ await workItem(api, agentId, item, flags, { settings, harness, selfMode, stream, log });
50
106
  }
51
107
  catch (err) {
52
108
  log(`[worker] Failed to work ${item.orchestratorTaskId.slice(0, 8)}: ${(0, config_1.msg)(err)}`);
@@ -57,25 +113,167 @@ async function cmdWorker(flags) {
57
113
  }
58
114
  finally {
59
115
  (0, lock_1.releaseLock)(agentId);
116
+ await stream.end(0);
60
117
  }
61
118
  }
62
- async function workItem(api, agentId, item, flags, log) {
63
- await (0, brief_1.reportStatus)(api, agentId, 'working', item.taskId ?? undefined);
119
+ async function workItem(api, agentId, item, flags, ctx) {
120
+ const { settings, harness, selfMode, stream, log } = ctx;
121
+ const taskId = item.taskId;
122
+ const cwdRaw = (0, shared_1.resolveWorkingDir)(flags, item.projectId, log);
123
+ const cwd = item.worktreePath || cwdRaw;
124
+ if (!cwd) {
125
+ log(`[worker] no working folder - cannot execute "${item.title}"`, 'stderr');
126
+ return;
127
+ }
128
+ if (!taskId) {
129
+ log(`[worker] orchestrator item has no source task - nothing to claim/complete`, 'stderr');
130
+ return;
131
+ }
132
+ let claimed = false;
64
133
  try {
65
- const brief = item.taskId
66
- ? await (0, brief_1.fetchTaskBrief)(api, item.taskId).catch(() => null)
67
- : null;
68
- const briefText = brief
69
- ? `# ${item.title}\n\n${brief}`
70
- : `# ${item.title}\n\n${item.description ?? 'No description'}`;
71
- log(`[worker] Brief: ${briefText.slice(0, 200)}...`);
72
- log(`[worker] Session placeholder — task ${item.orchestratorTaskId.slice(0, 8)} acknowledged. Real execution via harness or --self mode.`);
73
- await (0, brief_1.reportStatus)(api, agentId, 'online');
74
- log(`[worker] Completed: ${item.title}`);
134
+ const claim = await api.claimTask(taskId);
135
+ claimed = true;
136
+ log(`[claim] task ${taskId} claimed`);
75
137
  }
76
138
  catch (err) {
77
- log(`[worker] Error: ${(0, config_1.msg)(err)}`);
78
- await (0, brief_1.reportStatus)(api, agentId, 'online');
139
+ const e = err;
140
+ log(`[claim] cannot work task ${taskId}: ${e.message ?? e.code}`, 'stderr');
141
+ return;
142
+ }
143
+ await (0, brief_1.reportStatus)(api, agentId, 'working', taskId, stream.sessionId);
144
+ try {
145
+ const brief = await (0, brief_1.fetchTaskBrief)(api, taskId);
146
+ const briefPath = require('node:os').tmpdir() + `/teamshare-worker-${taskId}.md`;
147
+ (0, node_fs_1.writeFileSync)(briefPath, brief, 'utf8');
148
+ log(`[brief] written (${brief.length} chars)`);
149
+ // Part D: always-try-commit prep. Orchestrator path ONLY (never build
150
+ // mode). Worktree runs are owned by the daemon's verify/commit/merge
151
+ // pipeline - skip our layer there. No branching here: the orchestrator
152
+ // owns the branch layout, we work on the checked-out branch.
153
+ const isWorktree = Boolean(item.worktreePath) && cwd === item.worktreePath;
154
+ const gitPrepared = isWorktree
155
+ ? { active: false, skipReason: 'worktree-managed' }
156
+ : (0, git_pipeline_1.prepareRunGit)(cwd, {
157
+ taskId,
158
+ agentName: agentId,
159
+ projectId: item.projectId ?? null,
160
+ branch: false,
161
+ log,
162
+ });
163
+ let summary = '';
164
+ let harnessFailed = false;
165
+ if (selfMode) {
166
+ const llmApiKey = (0, utils_1.sessionLlmApiKey)(settings);
167
+ if (!llmApiKey) {
168
+ log('--self requires a provider API key', 'stderr');
169
+ return;
170
+ }
171
+ const endpoint = (0, utils_1.llmEndpoint)(flags, settings, item.preferredModel);
172
+ const result = await (0, llm_1.runLlmSession)(api, taskId, brief, {
173
+ baseUrl: endpoint.baseUrl, apiKey: llmApiKey, model: endpoint.model,
174
+ agentName: agentId, systemPrompt: (0, utils_1.systemPromptOf)(flags, settings),
175
+ temperature: (0, utils_1.temperatureOf)(flags, settings), maxTokens: (0, utils_1.maxTokensOf)(flags, settings),
176
+ continue: flags.get('continue') === 'true', agentUserId: settings.userId ?? undefined,
177
+ }, item.projectId);
178
+ summary = result.summary || `Agent run finished after ${result.iterations} iterations.`;
179
+ }
180
+ else {
181
+ const prompt = `You are executing an ORCHESTRATOR-managed task (orchestrator id ${item.orchestratorTaskId}${item.branchName ? `, branch ${item.branchName}` : ''}). Work on the TeamShare task described in ${briefPath} using teamshare MCP tools, inside the current working directory. A previous session may have left partial work - inspect the existing code first and build on it instead of restarting. Break the remaining work into subtasks and check them off as you go. The brief includes a "Verification Checklist" — verify each criterion (update_checklist_item, done: true) before finishing. When the work is complete and verified: (1) call update_project_context to refresh the project context's structure/architecture/workflows sections for any structural changes you made (new folders, modules, entrypoints), then (2) post a summary comment and resolve the task.`;
182
+ const exitCode = await (0, harness_1.spawnHarness)(harness, prompt, log, {
183
+ model: (0, utils_1.modelOf)(flags, settings, item.preferredModel), temperature: (0, utils_1.temperatureOf)(flags, settings),
184
+ cwd, timeoutMin: (0, utils_1.sessionTimeoutMin)(flags), title: `Orchestrator task ${item.orchestratorTaskId.slice(0, 8)}`,
185
+ agentKey: api.apiKey, apiBaseUrl: api.baseUrl, sessionMode: 'run',
186
+ });
187
+ if (exitCode !== 0) {
188
+ // Harness crashed - report immediately instead of hanging on the
189
+ // completion poll (the task will never reach a done state).
190
+ harnessFailed = true;
191
+ const hint = exitCode === 124 ? `timed out after ${(0, utils_1.sessionTimeoutMin)(flags)} min` : `exited with code ${exitCode}`;
192
+ await (0, brief_1.postClosingComment)(api, taskId, `[question] Worker harness ${hint} on "${item.title}". Model: ${(0, utils_1.modelOf)(flags, settings, item.preferredModel)}. Check the agent machine's opencode logs (~/.local/share/opencode/log) and retry.`).catch(() => undefined);
193
+ // Mandatory run report - even failed orchestrator runs get one.
194
+ await (0, run_report_1.saveRunReport)({
195
+ api, projectId: item.projectId, taskId, agentId,
196
+ taskTitle: item.title, kind: 'orchestrator',
197
+ status: `harness_failed (${hint})`,
198
+ summary: `The worker harness did not finish: ${hint}. See task comments and the agent machine's harness logs.`,
199
+ details: [
200
+ `Orchestrator task: ${item.orchestratorTaskId}`,
201
+ `Model: ${(0, utils_1.modelOf)(flags, settings, item.preferredModel)}`,
202
+ `Attempt: ${item.attemptCount + 1}/${item.maxAttempts}`,
203
+ `Working folder: ${cwd}`,
204
+ ],
205
+ llm: (0, utils_2.reportLlmOf)(flags, settings) ?? undefined,
206
+ log,
207
+ });
208
+ log(`[worker] harness ${hint} - reported to task, skipping completion wait`, 'stderr');
209
+ return;
210
+ }
211
+ summary = `Worker finished.`;
212
+ }
213
+ // Part D: always-try-commit (orchestrator only). Local commit guaranteed,
214
+ // push best-effort (with PAT auth), no PR - the backend opens it after
215
+ // verify+merge on the orchestrator branch.
216
+ const gitResult = await (0, git_pipeline_1.finalizeRunGit)(cwd, gitPrepared, {
217
+ taskId,
218
+ taskTitle: item.title,
219
+ agentName: agentId,
220
+ projectId: item.projectId ?? null,
221
+ openPr: false,
222
+ log,
223
+ });
224
+ const gitLine = gitResult.gitLine;
225
+ if (flags.get('no-report') !== 'true' && !harnessFailed) {
226
+ const gitNote = gitResult.lines.length > 0 ? `${summary}\n\n${gitResult.lines.join('\n')}` : summary;
227
+ await (0, brief_1.postClosingComment)(api, taskId, gitNote);
228
+ }
229
+ const final = await (0, brief_1.waitForTaskCompletion)(api, taskId, 15_000, 15 * 60_000, (s) => log(`[status] ${s}`));
230
+ log(`[done] task ${taskId} final: ${final.status}`);
231
+ // Mandatory run report: every orchestrator run lands a document in
232
+ // Documents > agents/<agent>/tasks/<taskId>.
233
+ const report = await (0, run_report_1.saveRunReport)({
234
+ api, projectId: item.projectId, taskId, agentId,
235
+ taskTitle: item.title, kind: 'orchestrator',
236
+ status: final.status,
237
+ summary,
238
+ gitLine: gitLine || undefined,
239
+ details: [
240
+ `Orchestrator task: ${item.orchestratorTaskId}`,
241
+ ...(item.branchName ? [`Branch: ${item.branchName}`] : []),
242
+ `Attempt: ${item.attemptCount + 1}/${item.maxAttempts}`,
243
+ `Working folder: ${cwd}`,
244
+ ],
245
+ llm: (0, utils_2.reportLlmOf)(flags, settings) ?? undefined,
246
+ log,
247
+ });
248
+ if (!report) {
249
+ await (0, brief_1.postClosingComment)(api, taskId, '[question] The run report could not be saved to Documents (agent console has the error). The task itself completed - mention the agent to regenerate the report.').catch(() => undefined);
250
+ }
251
+ if (!DONE_STATUSES.has(final.status))
252
+ log(`[worker] task did not reach a done state - orchestrator will retry (${item.attemptCount + 1}/${item.maxAttempts})`, 'stderr');
253
+ }
254
+ catch (err) {
255
+ log(`[worker] Error: ${(0, config_1.msg)(err)}`, 'stderr');
256
+ await (0, brief_1.postClosingComment)(api, taskId, `[question] Worker failed on "${item.title}": ${(0, config_1.msg)(err)}`).catch(() => undefined);
257
+ // Mandatory run report - errored sessions get one too.
258
+ await (0, run_report_1.saveRunReport)({
259
+ api, projectId: item.projectId, taskId, agentId,
260
+ taskTitle: item.title, kind: 'orchestrator',
261
+ status: 'session_error',
262
+ summary: `The worker session errored: ${(0, config_1.msg)(err)}`,
263
+ details: [
264
+ `Orchestrator task: ${item.orchestratorTaskId}`,
265
+ `Attempt: ${item.attemptCount + 1}/${item.maxAttempts}`,
266
+ ],
267
+ llm: (0, utils_2.reportLlmOf)(flags, settings) ?? undefined,
268
+ log,
269
+ });
270
+ }
271
+ finally {
272
+ if (claimed) {
273
+ await api.releaseTask(taskId).catch(() => undefined);
274
+ log(`[claim] task ${taskId} released`);
275
+ }
276
+ await (0, brief_1.reportStatus)(api, agentId, 'online', undefined, stream.sessionId);
79
277
  }
80
278
  }
81
279
  function sleep(ms) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/cli/commands/worker.ts"],"names":[],"mappings":";;AAkBA,8BAgDC;AAoCD,4BAmBC;AAzHD;;;;GAIG;AACH,uCAAwE;AACxE,2CAA+D;AAC/D,yCAA0D;AAC1D,oCAIkB;AAElB,6CAAuC;AAEvC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAExB,KAAK,UAAU,SAAS,CAAC,KAA0B;IACxD,MAAM,OAAO,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,CAAC;IAChG,MAAM,GAAG,GAAG,IAAI,kBAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;IAE1B,GAAG,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErF,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAW,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,mFAAmF,CAAC,CAAC;QACvI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChE,GAAG,CAAC,wCAAwC,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,OAAO,EAA4B,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;YAE1F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,IAAI,EAAE,CAAC;oBAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBACzE,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,qBAAqB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhF,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,2BAA2B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,IAAI;gBAAE,MAAM;QAClB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAiB,EACjB,OAAe,EACf,IAA0B,EAC1B,KAA0B,EAC1B,GAAU;IAEV,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;YACvB,CAAC,CAAC,MAAM,IAAA,sBAAc,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,SAAS,GAAG,KAAK;YACrB,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,OAAO,KAAK,EAAE;YAC/B,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,WAAW,IAAI,gBAAgB,EAAE,CAAC;QAEjE,GAAG,CAAC,mBAAmB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAErD,GAAG,CAAC,uCAAuC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,2DAA2D,CAAC,CAAC;QAE3I,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,GAAG,CAAC,uBAAuB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,mBAAmB,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAA0B;IACvD,MAAM,OAAO,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAA,YAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACzG,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,CAAC;IAChG,MAAM,GAAG,GAAG,IAAI,kBAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/cli/commands/worker.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -25,6 +25,7 @@ const usage_1 = require("./commands/usage");
25
25
  const skills_1 = require("./commands/skills");
26
26
  const key_1 = require("./commands/key");
27
27
  const worker_1 = require("./commands/worker");
28
+ const cleanup_1 = require("./commands/cleanup");
28
29
  const audit_1 = require("./commands/audit");
29
30
  const scaffold_1 = require("./commands/scaffold");
30
31
  const context_1 = require("./commands/context");
@@ -47,6 +48,7 @@ function usage() {
47
48
  ' teamshare-agent build --project <projectId> --agent <agentId> --key <ts_...> [options]',
48
49
  ' teamshare-agent worker --agent <agentId> --key <ts_...> [--once] [--self]',
49
50
  ' teamshare-agent merge --task <otId> --agent <agentId> --key <ts_...>',
51
+ ' teamshare-agent cleanup --agent <agentId> tree-kill stuck session + clear its lock',
50
52
  ' teamshare-agent usage [--day YYYY-MM-DD] [--agent <agentId>]',
51
53
  ' teamshare-agent skills install|list|uninstall',
52
54
  ' teamshare-agent audit --path <folder> [--type auto|web|backend|mobile] [--existing] [--report <path>]',
@@ -121,6 +123,8 @@ async function main() {
121
123
  await (0, worker_1.cmdWorker)(flags);
122
124
  else if (command === 'merge')
123
125
  await (0, worker_1.cmdMerge)(flags);
126
+ else if (command === 'cleanup')
127
+ await (0, cleanup_1.cmdCleanup)(flags);
124
128
  else if (command === 'usage')
125
129
  await (0, usage_1.cmdUsage)(flags);
126
130
  else if (command === 'skills')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,12 @@ export declare function makeLog(stream: SessionStream | null): LogFn;
22
22
  export declare function harnessOf(flags: Map<string, string>, agent?: AgentSettings): 'auto' | 'opencode' | 'claude' | 'codex' | 'gemini' | 'antigravity' | 'copilot' | 'goose' | 'openhands' | 'aider' | 'none';
23
23
  /** LLM provider key for self-loop / chat / doc sessions. */
24
24
  export declare function sessionLlmApiKey(agent?: AgentSettings): string;
25
+ /** Provider creds for model-written run reports (null when no key set). */
26
+ export declare function reportLlmOf(flags: Map<string, string>, agent?: AgentSettings): {
27
+ baseUrl: string;
28
+ apiKey: string;
29
+ model: string;
30
+ } | null;
25
31
  /** Phase D settings resolution: CLI flag > agent settings > env > default. */
26
32
  export declare function modelOf(flags: Map<string, string>, agent?: AgentSettings, overrideModel?: string | null): string;
27
33
  /** Model spec -> { baseUrl, model } via the catalog. */
package/dist/cli/utils.js CHANGED
@@ -5,6 +5,7 @@ exports.fetchAgentSettings = fetchAgentSettings;
5
5
  exports.makeLog = makeLog;
6
6
  exports.harnessOf = harnessOf;
7
7
  exports.sessionLlmApiKey = sessionLlmApiKey;
8
+ exports.reportLlmOf = reportLlmOf;
8
9
  exports.modelOf = modelOf;
9
10
  exports.llmEndpoint = llmEndpoint;
10
11
  exports.applyOpenCodeKey = applyOpenCodeKey;
@@ -59,6 +60,14 @@ function harnessOf(flags, agent) {
59
60
  function sessionLlmApiKey(agent) {
60
61
  return agent?.providerKey ?? (0, config_1.chatKey)() ?? '';
61
62
  }
63
+ /** Provider creds for model-written run reports (null when no key set). */
64
+ function reportLlmOf(flags, agent) {
65
+ const apiKey = sessionLlmApiKey(agent);
66
+ if (!apiKey)
67
+ return null;
68
+ const endpoint = llmEndpoint(flags, agent);
69
+ return { baseUrl: endpoint.baseUrl, apiKey, model: endpoint.model };
70
+ }
62
71
  /** Phase D settings resolution: CLI flag > agent settings > env > default. */
63
72
  function modelOf(flags, agent, overrideModel) {
64
73
  return (flags.get('model') ??
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,12 @@
6
6
  *
7
7
  * Generation uses the configured harness (opencode/claude/codex/gemini/
8
8
  * copilot/goose/openhands/aider) or the `--self` LLM completion.
9
- * Phase C (IMP-530): `--self` replies stream token-by-token into the
10
- * channel as `message:partial` frames when a stream socket is provided;
11
- * the final message is still posted via POST /chat/messages.
9
+ * Phase C (IMP-530): replies stream into the channel as `message:partial`
10
+ * frames when a stream socket is provided - `--self` streams its live
11
+ * tokens, while harness replies arrive as one complete string and are
12
+ * replayed through the partial stream in paced chunks so viewers see the
13
+ * same live-typing draft; the final message is still posted via
14
+ * POST /chat/messages.
12
15
  */
13
16
  import { TeamshareApi } from './api';
14
17
  import { type HarnessName } from './harness-adapter';
@@ -35,6 +38,8 @@ export interface ChatReplyOptions {
35
38
  projectId?: string;
36
39
  /** API client for the tool loop (required when selfMode is true). */
37
40
  api?: import('./api').TeamshareApi;
41
+ /** Optional logger for retry/give-up lines (wired to the CLI's log). */
42
+ onLog?: (text: string) => void;
38
43
  }
39
44
  /**
40
45
  * Runs the chat reply loop. Heartbeats working/online around the work and
@@ -37,6 +37,7 @@ exports.runChatReply = runChatReply;
37
37
  const harness_1 = require("./harness");
38
38
  const llm_1 = require("./llm");
39
39
  const partial_stream_1 = require("./partial-stream");
40
+ const retry_1 = require("./retry");
40
41
  const harness_adapter_1 = require("./harness-adapter");
41
42
  const CONTEXT_WINDOW = 10;
42
43
  /** Generates a reply via the harness (non-interactive) or headless LLM. */
@@ -47,17 +48,16 @@ async function generateReply(agentName, target, prompt, projectId, opts, project
47
48
  onToken(reply);
48
49
  return reply;
49
50
  }
50
- // Check if the model is harness-only (opencode-go) — cannot use --self
51
- const { resolveModel, HARNESS_NATIVE_PROVIDERS, getHarnessFallbackModel } = await Promise.resolve().then(() => __importStar(require('./models')));
51
+ // Check if the model is harness-native (opencode-go / opencode) — cannot use --self
52
+ const { resolveModel } = await Promise.resolve().then(() => __importStar(require('./models')));
52
53
  const resolved = resolveModel(opts.llm?.model ?? '');
53
54
  if (resolved.harnessOnly) {
54
- const fallbackModel = getHarnessFallbackModel(opts.llm?.model);
55
- console.log(`[chat-reply] harness-only model detected - using harness with fallback: ${fallbackModel}`);
55
+ console.log(`[chat-reply] harness-native model "${opts.llm?.model}" - routing through the configured harness`);
56
56
  // Try the configured harness, then fall back to any available
57
57
  const harnessName = (0, harness_adapter_1.resolveHarness)(opts.harness);
58
58
  if (harnessName !== 'none' && (0, harness_1.hasBin)((0, harness_adapter_1.getAdapter)(harnessName).binary)) {
59
59
  return (0, harness_1.runHarnessTtyAware)((0, harness_adapter_1.getAdapter)(harnessName).binary, (0, harness_adapter_1.getAdapter)(harnessName).headlessArgs(prompt, {
60
- model: fallbackModel,
60
+ model: opts.llm?.model,
61
61
  title: `TeamShare chat ${projectId}`,
62
62
  agentKey: opts.api?.apiKey,
63
63
  apiBaseUrl: opts.api?.baseUrl,
@@ -85,12 +85,14 @@ async function generateReply(agentName, target, prompt, projectId, opts, project
85
85
  onToken(reply);
86
86
  return reply;
87
87
  }
88
- // Resolve the harness and spawn it
88
+ // Resolve the harness and spawn it - the agent's own model spec goes
89
+ // through so chat honors the model set on the dashboard (same as task runs).
89
90
  const harnessName = (0, harness_adapter_1.resolveHarness)(opts.harness);
90
91
  if (harnessName !== 'none') {
91
92
  const adapter = (0, harness_adapter_1.getAdapter)(harnessName);
92
93
  if ((0, harness_1.hasBin)(adapter.binary)) {
93
94
  return (0, harness_1.runHarnessTtyAware)(adapter.binary, adapter.headlessArgs(prompt, {
95
+ model: opts.llm?.model,
94
96
  title: `TeamShare chat ${projectId}`,
95
97
  agentKey: opts.api?.apiKey,
96
98
  apiBaseUrl: opts.api?.baseUrl,
@@ -119,13 +121,37 @@ function mentionPrompt(agentName, target, context, projectId, projectName, agent
119
121
  ...(agentUserId
120
122
  ? [`Your TeamShare user id is ${agentUserId} - when asked to assign a task to yourself, pass assigneeId "me" (resolves to your user id).`]
121
123
  : []),
122
- 'Reply to that message directly. Address the person by name if known. Be concise and useful.',
124
+ 'Reply to that message directly. Address the person by name if known.',
125
+ 'Post exactly ONE final message and never narrate your process - no "let me check", "let me search", "I am reviewing", or step-by-step commentary. Run tools silently and report only results.',
126
+ 'Be direct and structured: open with the answer itself, then short bullets or numbered points where helpful. No filler, no hedging.',
123
127
  'If the person asks you to do something actionable (create a task, list items, search, etc.), use your tools.',
124
128
  'Do NOT browse, reference, or claim to work on any local repository or folder on disk.',
125
129
  'Never mention local folder names or repo names (e.g. teamshare-bridge, frontend, teamshare-backend).',
126
130
  'If asked about code work, mention tasks or documents in TeamShare, not local folders.',
127
131
  ].join('\n');
128
132
  }
133
+ const REPLAY_CHUNK_CHARS = 24;
134
+ const REPLAY_MAX_DELAY_MS = 40;
135
+ const REPLAY_MIN_DELAY_MS = 10;
136
+ const REPLAY_TARGET_REVEAL_MS = 3_000;
137
+ /** Grace so PartialStream's coalescing timer can flush the tail before end(). */
138
+ const REPLAY_FLUSH_GRACE_MS = 200;
139
+ /**
140
+ * Harness replies come back as one complete string - replay them through
141
+ * the partial stream in small paced chunks so viewers see the same
142
+ * live-typing draft they get from --self sessions. Total reveal lands
143
+ * near ~3s regardless of reply length.
144
+ */
145
+ async function replayAsPartial(stream, text) {
146
+ const chunks = Math.max(1, Math.ceil(text.length / REPLAY_CHUNK_CHARS));
147
+ const delay = Math.min(REPLAY_MAX_DELAY_MS, Math.max(REPLAY_MIN_DELAY_MS, Math.floor(REPLAY_TARGET_REVEAL_MS / chunks)));
148
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
149
+ for (let i = 0; i < text.length; i += REPLAY_CHUNK_CHARS) {
150
+ stream.token(text.slice(i, i + REPLAY_CHUNK_CHARS));
151
+ await sleep(delay);
152
+ }
153
+ await sleep(REPLAY_FLUSH_GRACE_MS);
154
+ }
129
155
  /**
130
156
  * Runs the chat reply loop. Heartbeats working/online around the work and
131
157
  * replies to at most ONE mentioning message:
@@ -172,8 +198,11 @@ async function runChatReply(api, agentId, projectId, mentionToken, opts, targetI
172
198
  const agentUserId = settings?.userId ?? undefined;
173
199
  const prompt = mentionPrompt(selfName, target, context, projectId, projectName, agentUserId);
174
200
  const draftId = `draft_${target.id}`;
201
+ // --self/echo stream their tokens while generating; harness runs return
202
+ // the full text at once and get the paced replay below instead.
203
+ const streamsLive = opts.selfMode || opts.harness === 'none' || opts.echo;
175
204
  let stream = null;
176
- if (opts.stream && (opts.selfMode || opts.harness === 'none' || opts.echo)) {
205
+ if (opts.stream) {
177
206
  stream = new partial_stream_1.PartialStream({
178
207
  wsBase: opts.stream.wsBase,
179
208
  apiKey: opts.stream.apiKey,
@@ -182,11 +211,31 @@ async function runChatReply(api, agentId, projectId, mentionToken, opts, targetI
182
211
  }, draftId);
183
212
  stream.connect();
184
213
  }
185
- const reply = await generateReply(selfName, target, prompt, projectId, { ...opts, api }, projectName, (delta) => stream?.token(delta), agentUserId);
214
+ let reply = null;
215
+ try {
216
+ reply = await (0, retry_1.withProviderRetry)(() => generateReply(selfName, target, prompt, projectId, { ...opts, api }, projectName, (delta) => stream?.token(delta), agentUserId), opts.onLog);
217
+ }
218
+ catch (err) {
219
+ // All retries dead - close the draft bubble and leave a visible trace
220
+ // in the channel so the mention is never silently ignored.
221
+ stream?.end();
222
+ const detail = String(err?.message ?? err ?? '').slice(0, 160);
223
+ opts.onLog?.(`[chat-reply] giving up after retries: ${detail}`);
224
+ try {
225
+ await api.postChatMessage(projectId, `@${target.author?.name ?? 'there'} — I couldn't generate a reply just now (provider error: ${detail}). Mention me again in a bit.`);
226
+ }
227
+ catch {
228
+ /* best-effort - the channel notice is optional */
229
+ }
230
+ return { replied: 0, skipped: 1 };
231
+ }
186
232
  if (!reply) {
187
233
  stream?.end();
188
234
  return { replied: 0, skipped: 1 };
189
235
  }
236
+ if (stream && !streamsLive) {
237
+ await replayAsPartial(stream, reply);
238
+ }
190
239
  const posted = await api.postChatMessage(projectId, reply);
191
240
  stream?.end(posted?.id ??
192
241
  posted?.message?.id);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"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"}