teamshare-bridge 0.1.0 → 0.2.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.
- package/README.md +2 -2
- package/dist/bridge/daemon.js +252 -14
- package/dist/bridge/daemon.js.map +1 -1
- package/dist/bridge/index.js +10 -0
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/local-server.d.ts +6 -1
- package/dist/bridge/local-server.js +24 -0
- package/dist/bridge/local-server.js.map +1 -1
- package/dist/bridge/protocol.js +33 -4
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/spawn.d.ts +30 -4
- package/dist/bridge/spawn.js +93 -29
- package/dist/bridge/spawn.js.map +1 -1
- package/dist/cli/index.js +1103 -65
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/api.d.ts +205 -6
- package/dist/lib/api.js +147 -5
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/chat-reply.d.ts +22 -2
- package/dist/lib/chat-reply.js +139 -67
- package/dist/lib/chat-reply.js.map +1 -1
- package/dist/lib/config.d.ts +103 -0
- package/dist/lib/config.js +273 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/doc-reply.d.ts +11 -0
- package/dist/lib/doc-reply.js +18 -34
- package/dist/lib/doc-reply.js.map +1 -1
- package/dist/lib/harness.d.ts +38 -0
- package/dist/lib/harness.js +140 -0
- package/dist/lib/harness.js.map +1 -0
- package/dist/lib/llm.d.ts +30 -2
- package/dist/lib/llm.js +284 -30
- package/dist/lib/llm.js.map +1 -1
- package/dist/lib/lock.d.ts +1 -1
- package/dist/lib/models.d.ts +11 -0
- package/dist/lib/models.js +30 -1
- package/dist/lib/models.js.map +1 -1
- package/dist/lib/orchestrator/client.d.ts +27 -0
- package/dist/lib/orchestrator/client.js +136 -0
- package/dist/lib/orchestrator/client.js.map +1 -0
- package/dist/lib/orchestrator/index.d.ts +5 -0
- package/dist/lib/orchestrator/index.js +17 -0
- package/dist/lib/orchestrator/index.js.map +1 -0
- package/dist/lib/orchestrator/runner.d.ts +18 -0
- package/dist/lib/orchestrator/runner.js +177 -0
- package/dist/lib/orchestrator/runner.js.map +1 -0
- package/dist/lib/orchestrator/worktree.d.ts +43 -0
- package/dist/lib/orchestrator/worktree.js +243 -0
- package/dist/lib/orchestrator/worktree.js.map +1 -0
- package/dist/lib/session-stream.d.ts +1 -1
- package/dist/lib/skills.d.ts +21 -0
- package/dist/lib/skills.js +80 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/usage.d.ts +52 -0
- package/dist/lib/usage.js +69 -0
- package/dist/lib/usage.js.map +1 -0
- package/package.json +3 -1
- package/skills/teamshare-auth-rbac/SKILL.md +79 -0
- package/skills/teamshare-cdd/SKILL.md +145 -0
- package/skills/teamshare-modularity/SKILL.md +92 -0
- package/tools/usage_report.py +223 -0
package/dist/lib/api.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TeamshareApi = exports.ApiError = exports.DEFAULT_API_URL = void 0;
|
|
4
|
-
exports.DEFAULT_API_URL = '
|
|
3
|
+
exports.TeamshareApi = exports.ApiError = exports.DEFAULT_WS_URL = exports.DEFAULT_API_URL = void 0;
|
|
4
|
+
exports.DEFAULT_API_URL = 'https://teamshare-backend.onrender.com';
|
|
5
|
+
exports.DEFAULT_WS_URL = 'wss://teamshare-backend.onrender.com';
|
|
5
6
|
class ApiError extends Error {
|
|
6
7
|
code;
|
|
7
8
|
status;
|
|
@@ -81,6 +82,16 @@ class TeamshareApi {
|
|
|
81
82
|
inbox(agentId) {
|
|
82
83
|
return this.request(`/agents/${agentId}/inbox`);
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Phase D settings snapshot for sessions spawned outside the daemon /
|
|
87
|
+
* deep-link paths (which inject settings via flags): the CLI fetches this
|
|
88
|
+
* so direct `run`/`chat`/`doc` sessions apply the agent's stored
|
|
89
|
+
* model/temperature/maxTokens/systemPrompt (flag > agent > env > default).
|
|
90
|
+
* The BYOK `providerKey` is only present under the agent's own key auth.
|
|
91
|
+
*/
|
|
92
|
+
getAgentSettings(agentId) {
|
|
93
|
+
return this.request(`/agents/${agentId}/settings`);
|
|
94
|
+
}
|
|
84
95
|
mintRunToken(agentId, taskId) {
|
|
85
96
|
return this.request(`/agents/${agentId}/run-tokens`, {
|
|
86
97
|
method: 'POST',
|
|
@@ -110,6 +121,18 @@ class TeamshareApi {
|
|
|
110
121
|
updateTask(taskId, dto) {
|
|
111
122
|
return this.request(`/tasks/${taskId}`, { method: 'PATCH', body: JSON.stringify(dto) });
|
|
112
123
|
}
|
|
124
|
+
// -- task claims (IMP-560 work guard) --------------------------------------
|
|
125
|
+
/** Claims the task (lease 30 min by default). Errors surface as thrown messages. */
|
|
126
|
+
claimTask(taskId, expiresMinutes) {
|
|
127
|
+
return this.request(`/tasks/${taskId}/claim`, {
|
|
128
|
+
method: 'POST',
|
|
129
|
+
body: JSON.stringify(expiresMinutes ? { expiresMinutes } : {}),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/** Releases the task claim (self-release or owner/admin takeover). */
|
|
133
|
+
releaseTask(taskId) {
|
|
134
|
+
return this.request(`/tasks/${taskId}/release`, { method: 'POST' });
|
|
135
|
+
}
|
|
113
136
|
listComments(taskId) {
|
|
114
137
|
return this.request(`/comments?taskId=${taskId}`);
|
|
115
138
|
}
|
|
@@ -130,6 +153,35 @@ class TeamshareApi {
|
|
|
130
153
|
method: 'PATCH',
|
|
131
154
|
body: JSON.stringify(dto),
|
|
132
155
|
});
|
|
156
|
+
}
|
|
157
|
+
// -- checklist items (task/subtask to-do ticks) ----------------------------
|
|
158
|
+
/** Adds a checklist row to a task or a subtask (pass exactly one id). */
|
|
159
|
+
createChecklistItem(target, title) {
|
|
160
|
+
const taskId = target.taskId;
|
|
161
|
+
const subtaskId = target.subtaskId;
|
|
162
|
+
if (taskId) {
|
|
163
|
+
return this.request(`/tasks/${taskId}/checklist-items`, {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
body: JSON.stringify({ title }),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return this.request(`/subtasks/${subtaskId}/checklist-items`, {
|
|
169
|
+
method: 'POST',
|
|
170
|
+
body: JSON.stringify({ title }),
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** Toggle done / rename a checklist row. */
|
|
174
|
+
updateChecklistItem(checklistItemId, dto) {
|
|
175
|
+
return this.request(`/checklist-items/${checklistItemId}`, {
|
|
176
|
+
method: 'PATCH',
|
|
177
|
+
body: JSON.stringify(dto),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/** Removes a checklist row. */
|
|
181
|
+
deleteChecklistItem(checklistItemId) {
|
|
182
|
+
return this.request(`/checklist-items/${checklistItemId}`, {
|
|
183
|
+
method: 'DELETE',
|
|
184
|
+
});
|
|
133
185
|
} /** Document comment thread (Phase F document assistant). */
|
|
134
186
|
listDocumentComments(documentId) {
|
|
135
187
|
return this.request(`/comments?documentId=${documentId}`);
|
|
@@ -147,6 +199,38 @@ class TeamshareApi {
|
|
|
147
199
|
listDocuments(projectId) {
|
|
148
200
|
return this.request(`/documents?projectId=${projectId}`);
|
|
149
201
|
}
|
|
202
|
+
/** Virtual folder tree of a project (IMP-601). */
|
|
203
|
+
listDocumentFolders(projectId) {
|
|
204
|
+
return this.request(`/documents/folders?projectId=${projectId}`);
|
|
205
|
+
}
|
|
206
|
+
/** Raw markdown body of a note document (IMP-601). */
|
|
207
|
+
getDocumentRaw(documentId) {
|
|
208
|
+
return this.request(`/documents/${documentId}/raw`);
|
|
209
|
+
}
|
|
210
|
+
/** Creates a markdown note document (documents-driven workflow, IMP-601). */
|
|
211
|
+
createNoteDocument(dto) {
|
|
212
|
+
return this.request('/documents/note', {
|
|
213
|
+
method: 'POST',
|
|
214
|
+
body: JSON.stringify(dto),
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Agent-created Word document: the backend renders markdown to a .docx
|
|
219
|
+
* file, uploads it to Cloudinary and records it as a file document.
|
|
220
|
+
*/
|
|
221
|
+
createRenderedDocument(dto) {
|
|
222
|
+
return this.request('/documents/render', {
|
|
223
|
+
method: 'POST',
|
|
224
|
+
body: JSON.stringify(dto),
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/** Replaces the markdown body of a note document (IMP-601). */
|
|
228
|
+
updateDocumentContent(documentId, content) {
|
|
229
|
+
return this.request(`/documents/${documentId}/content`, {
|
|
230
|
+
method: 'PATCH',
|
|
231
|
+
body: JSON.stringify({ content }),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
150
234
|
getDocument(documentId) {
|
|
151
235
|
return this.request(`/documents/${documentId}`);
|
|
152
236
|
}
|
|
@@ -156,9 +240,19 @@ class TeamshareApi {
|
|
|
156
240
|
}
|
|
157
241
|
/**
|
|
158
242
|
* Downloads a document. Link docs return { url }; local files return plain
|
|
159
|
-
* text; Cloudinary-hosted files return { url } (fetchable by the caller)
|
|
243
|
+
* text; Cloudinary-hosted files return { url } (fetchable by the caller);
|
|
244
|
+
* note documents return their markdown body (IMP-601).
|
|
160
245
|
*/
|
|
161
246
|
async getDocumentContent(doc) {
|
|
247
|
+
if (doc.type === 'note') {
|
|
248
|
+
try {
|
|
249
|
+
const raw = await this.getDocumentRaw(doc.id);
|
|
250
|
+
return raw.content;
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return JSON.stringify({ type: 'note', name: doc.name, content: null });
|
|
254
|
+
}
|
|
255
|
+
}
|
|
162
256
|
if (doc.type === 'link')
|
|
163
257
|
return JSON.stringify({ type: 'link', url: doc.urlOrKey });
|
|
164
258
|
try {
|
|
@@ -190,10 +284,58 @@ class TeamshareApi {
|
|
|
190
284
|
const qs = new URLSearchParams({ projectId, page: String(page), pageSize: String(pageSize) });
|
|
191
285
|
return this.request(`/chat/messages?${qs.toString()}`);
|
|
192
286
|
}
|
|
193
|
-
postChatMessage(projectId, body) {
|
|
287
|
+
postChatMessage(projectId, body, channelId) {
|
|
194
288
|
return this.request('/chat/messages', {
|
|
195
289
|
method: 'POST',
|
|
196
|
-
body: JSON.stringify({ projectId, body }),
|
|
290
|
+
body: JSON.stringify({ projectId, body, channelId }),
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
/** Chat channels of a project (used to find/create `#agent-questions`). */
|
|
294
|
+
listChatChannels(projectId) {
|
|
295
|
+
const qs = new URLSearchParams({ projectId });
|
|
296
|
+
return this.request(`/chat/channels?${qs.toString()}`);
|
|
297
|
+
}
|
|
298
|
+
/** Creates a named channel; CHANNEL_NAME_TAKEN when it already exists. */
|
|
299
|
+
createChatChannel(projectId, name, description) {
|
|
300
|
+
return this.request('/chat/channels', {
|
|
301
|
+
method: 'POST',
|
|
302
|
+
body: JSON.stringify({ projectId, name, description }),
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
// -- build mode (IMP-700) ---------------------------------------------------
|
|
306
|
+
/**
|
|
307
|
+
* The build queue of a project: pending ready-for-dev tasks in strict
|
|
308
|
+
* order (sortOrder asc, createdAt asc), blocked tasks awaiting an answer
|
|
309
|
+
* to an agent question, and the build agent (agentId + status).
|
|
310
|
+
*/
|
|
311
|
+
getBuildQueue(projectId) {
|
|
312
|
+
return this.request(`/projects/${projectId}/build/queue`);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Progress of the build run on this machine. Mirrors the whole run onto
|
|
316
|
+
* the backend (bridge state kind 'build' + AgentLog transitions) so the
|
|
317
|
+
* frontend can render live status from any device (IMP-630 pattern).
|
|
318
|
+
*/
|
|
319
|
+
pushBuildProgress(agentId, body) {
|
|
320
|
+
return this.request(`/agents/${agentId}/build-progress`, {
|
|
321
|
+
method: 'POST',
|
|
322
|
+
body: JSON.stringify(body),
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* The task's OPEN agent question, or null when answered/none (thread +
|
|
327
|
+
* #agent-questions channel aware). The build loop polls this to detect
|
|
328
|
+
* answered questions and resume skipped build tasks (IMP-700).
|
|
329
|
+
*/
|
|
330
|
+
getTaskQuestions(taskId) {
|
|
331
|
+
return this.request(`/tasks/${taskId}/build/questions`);
|
|
332
|
+
}
|
|
333
|
+
// -- bridge runtime state (IMP-630) ---------------------------------------
|
|
334
|
+
/** Pushes per-agent busy/queued/kind + linked-project folders to the backend. */
|
|
335
|
+
pushBridgeState(agentId, body) {
|
|
336
|
+
return this.request(`/agents/${agentId}/bridge-state`, {
|
|
337
|
+
method: 'POST',
|
|
338
|
+
body: JSON.stringify(body),
|
|
197
339
|
});
|
|
198
340
|
}
|
|
199
341
|
}
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/chat-reply.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent chat-reply loop (`teamshare-agent chat`): replies to a single
|
|
3
|
+
* mentioning message (the one that triggered the wake). One mention → one
|
|
4
|
+
* reply → go to sleep. When no targetId is given, replies only to the
|
|
5
|
+
* *latest* mention (not all historical ones) as a fallback.
|
|
6
|
+
*
|
|
7
|
+
* Generation uses the configured harness (opencode `run` / `claude -p`,
|
|
8
|
+
* non-interactive, stdout captured) 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.
|
|
12
|
+
*/
|
|
1
13
|
import { TeamshareApi } from './api';
|
|
2
14
|
export interface ChatReplyOptions {
|
|
3
15
|
harness: 'auto' | 'opencode' | 'claude' | 'none';
|
|
@@ -18,12 +30,20 @@ export interface ChatReplyOptions {
|
|
|
18
30
|
projectId: string;
|
|
19
31
|
channelId?: string;
|
|
20
32
|
};
|
|
33
|
+
/** Project this chat belongs to - recorded as the session title for spend attribution. */
|
|
34
|
+
projectId?: string;
|
|
35
|
+
/** API client for the tool loop (required when selfMode is true). */
|
|
36
|
+
api?: import('./api').TeamshareApi;
|
|
21
37
|
}
|
|
22
38
|
/**
|
|
23
39
|
* Runs the chat reply loop. Heartbeats working/online around the work and
|
|
24
|
-
*
|
|
40
|
+
* replies to at most ONE mentioning message:
|
|
41
|
+
* - If `targetId` is given (from the wake event's messageId), reply ONLY
|
|
42
|
+
* to that specific message.
|
|
43
|
+
* - Otherwise, reply to the single LATEST mention (not all of them).
|
|
44
|
+
* One mention → one reply → go to sleep.
|
|
25
45
|
*/
|
|
26
|
-
export declare function runChatReply(api: TeamshareApi, agentId: string, projectId: string, mentionToken: string, opts: ChatReplyOptions): Promise<{
|
|
46
|
+
export declare function runChatReply(api: TeamshareApi, agentId: string, projectId: string, mentionToken: string, opts: ChatReplyOptions, targetId?: string): Promise<{
|
|
27
47
|
replied: number;
|
|
28
48
|
skipped: number;
|
|
29
49
|
}>;
|
package/dist/lib/chat-reply.js
CHANGED
|
@@ -1,65 +1,101 @@
|
|
|
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.runChatReply = runChatReply;
|
|
4
|
-
|
|
5
|
-
* Agent chat-reply loop (`teamshare-agent chat`): reads the recent project
|
|
6
|
-
* channel and replies to EVERY message that mentions the agent, separately.
|
|
7
|
-
* Generation uses the configured harness (opencode `run` / `claude -p`,
|
|
8
|
-
* non-interactive, stdout captured) 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.
|
|
12
|
-
*/
|
|
13
|
-
const node_child_process_1 = require("node:child_process");
|
|
37
|
+
const harness_1 = require("./harness");
|
|
14
38
|
const llm_1 = require("./llm");
|
|
15
39
|
const partial_stream_1 = require("./partial-stream");
|
|
16
|
-
const MAX_TARGETS = 10;
|
|
17
40
|
const CONTEXT_WINDOW = 10;
|
|
18
|
-
function hasBin(bin) {
|
|
19
|
-
try {
|
|
20
|
-
(0, node_child_process_1.execFileSync)(bin, ['--version'], { stdio: 'ignore' });
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
41
|
/** Generates a reply via the harness (non-interactive) or headless LLM. */
|
|
28
|
-
async function generateReply(agentName, target, prompt, opts, onToken) {
|
|
42
|
+
async function generateReply(agentName, target, prompt, projectId, opts, projectName, onToken, agentUserId) {
|
|
29
43
|
if (opts.echo) {
|
|
30
44
|
const reply = `@${target.author?.name ?? 'there'} — this is an automated acknowledgment from ${agentName}. I saw your message and I'm on it.`;
|
|
31
45
|
if (onToken)
|
|
32
46
|
onToken(reply);
|
|
33
47
|
return reply;
|
|
34
48
|
}
|
|
49
|
+
// Check if the model is harness-only (opencode-go) — cannot use --self
|
|
50
|
+
const { resolveModel, HARNESS_NATIVE_PROVIDERS, getHarnessFallbackModel } = await Promise.resolve().then(() => __importStar(require('./models')));
|
|
51
|
+
const resolved = resolveModel(opts.llm?.model ?? '');
|
|
52
|
+
if (resolved.harnessOnly) {
|
|
53
|
+
// opencode-go models must go through the harness, not --self
|
|
54
|
+
const fallbackModel = getHarnessFallbackModel(opts.llm?.model);
|
|
55
|
+
console.log(`[chat-reply] opencode-go model detected - using harness with fallback: ${fallbackModel}`);
|
|
56
|
+
if (opts.harness === 'opencode' || (opts.harness === 'auto' && (0, harness_1.hasBin)('opencode'))) {
|
|
57
|
+
return (0, harness_1.runHarness)('opencode', ['run', '--model', fallbackModel, '--title', `TeamShare chat ${projectId}`, prompt], { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl });
|
|
58
|
+
}
|
|
59
|
+
if (opts.harness === 'claude' || (opts.harness === 'auto' && (0, harness_1.hasBin)('claude'))) {
|
|
60
|
+
return (0, harness_1.runHarness)('claude', ['-p', prompt]);
|
|
61
|
+
}
|
|
62
|
+
throw new Error('opencode-go model requires opencode harness (install opencode or use a non-harness model with --self)');
|
|
63
|
+
}
|
|
35
64
|
if (opts.selfMode || opts.harness === 'none') {
|
|
36
65
|
if (!opts.llm?.apiKey) {
|
|
37
|
-
throw new Error('--self / --harness none requires
|
|
66
|
+
throw new Error('--self / --harness none requires a provider API key (set it on the agent in TeamShare, or LLM_API_KEY / CHAT_LLM_API_KEY env)');
|
|
38
67
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return (0, llm_1.completeStream)(prompt, opts.llm, onToken);
|
|
68
|
+
if (!opts.api) {
|
|
69
|
+
throw new Error('--self mode requires opts.api (TeamshareApi) for the tool loop');
|
|
42
70
|
}
|
|
43
|
-
|
|
71
|
+
// Use the full tool loop — the agent can create tasks, list docs,
|
|
72
|
+
// search, add comments, etc. from chat.
|
|
73
|
+
const reply = await (0, llm_1.runProjectSession)(opts.api, projectId, prompt, {
|
|
74
|
+
baseUrl: opts.llm.baseUrl,
|
|
75
|
+
apiKey: opts.llm.apiKey,
|
|
76
|
+
model: opts.llm.model,
|
|
77
|
+
agentName,
|
|
78
|
+
temperature: opts.llm.temperature,
|
|
79
|
+
maxTokens: opts.llm.maxTokens,
|
|
80
|
+
agentUserId,
|
|
81
|
+
}, projectName);
|
|
82
|
+
if (onToken)
|
|
83
|
+
onToken(reply);
|
|
84
|
+
return reply;
|
|
44
85
|
}
|
|
45
|
-
if (opts.harness === 'opencode' || (opts.harness === 'auto' && hasBin('opencode'))) {
|
|
46
|
-
return (0,
|
|
47
|
-
encoding: 'utf8',
|
|
48
|
-
maxBuffer: 2 * 1024 * 1024,
|
|
49
|
-
}).trim();
|
|
86
|
+
if (opts.harness === 'opencode' || (opts.harness === 'auto' && (0, harness_1.hasBin)('opencode'))) {
|
|
87
|
+
return (0, harness_1.runHarness)('opencode', ['run', '--title', `TeamShare chat ${opts.projectId}`, prompt], { opencodeAgentKey: opts.api?.apiKey, opencodeMcpUrl: opts.api?.baseUrl });
|
|
50
88
|
}
|
|
51
|
-
if (opts.harness === 'claude' || (opts.harness === 'auto' && hasBin('claude'))) {
|
|
52
|
-
return (0,
|
|
53
|
-
encoding: 'utf8',
|
|
54
|
-
maxBuffer: 2 * 1024 * 1024,
|
|
55
|
-
}).trim();
|
|
89
|
+
if (opts.harness === 'claude' || (opts.harness === 'auto' && (0, harness_1.hasBin)('claude'))) {
|
|
90
|
+
return (0, harness_1.runHarness)('claude', ['-p', prompt]);
|
|
56
91
|
}
|
|
57
92
|
throw new Error('No harness found (install opencode or claude, or use --self with LLM_API_KEY)');
|
|
58
93
|
}
|
|
59
|
-
function mentionPrompt(agentName, target, context) {
|
|
94
|
+
function mentionPrompt(agentName, target, context, projectId, projectName, agentUserId) {
|
|
60
95
|
const lines = context
|
|
61
96
|
.map((m) => `[${m.createdAt}] ${m.author?.name ?? '?'}: ${m.body}`)
|
|
62
97
|
.join('\n');
|
|
98
|
+
const projectLabel = projectName ? `"${projectName}" (${projectId})` : projectId;
|
|
63
99
|
return [
|
|
64
100
|
`You are ${agentName}, a TeamShare project assistant. The project chat looks like this:`,
|
|
65
101
|
'',
|
|
@@ -69,58 +105,94 @@ function mentionPrompt(agentName, target, context) {
|
|
|
69
105
|
'',
|
|
70
106
|
`[${target.createdAt}] ${target.author?.name ?? 'someone'}: ${target.body}`,
|
|
71
107
|
'',
|
|
108
|
+
`You are working in project ${projectLabel}. create_task and create_document are pinned to THIS project - any projectId you supply is ignored in favor of it. Never try to create tasks in another project.`,
|
|
109
|
+
'Call get_project first to learn the project name and members.',
|
|
110
|
+
'Only claim you created/updated something (a task, a document) if a tool actually returned it - if a tool errors, report the error honestly.',
|
|
111
|
+
...(agentUserId
|
|
112
|
+
? [`Your TeamShare user id is ${agentUserId} - when asked to assign a task to yourself, pass assigneeId "me" (resolves to your user id).`]
|
|
113
|
+
: []),
|
|
72
114
|
'Reply to that message directly. Address the person by name if known. Be concise and useful.',
|
|
115
|
+
'If the person asks you to do something actionable (create a task, list items, search, etc.), use your tools.',
|
|
116
|
+
'Do NOT browse, reference, or claim to work on any local repository or folder on disk.',
|
|
117
|
+
'Never mention local folder names or repo names (e.g. teamshare-bridge, frontend, teamshare-backend).',
|
|
118
|
+
'If asked about code work, mention tasks or documents in TeamShare, not local folders.',
|
|
73
119
|
].join('\n');
|
|
74
120
|
}
|
|
75
121
|
/**
|
|
76
122
|
* Runs the chat reply loop. Heartbeats working/online around the work and
|
|
77
|
-
*
|
|
123
|
+
* replies to at most ONE mentioning message:
|
|
124
|
+
* - If `targetId` is given (from the wake event's messageId), reply ONLY
|
|
125
|
+
* to that specific message.
|
|
126
|
+
* - Otherwise, reply to the single LATEST mention (not all of them).
|
|
127
|
+
* One mention → one reply → go to sleep.
|
|
78
128
|
*/
|
|
79
|
-
async function runChatReply(api, agentId, projectId, mentionToken, opts) {
|
|
129
|
+
async function runChatReply(api, agentId, projectId, mentionToken, opts, targetId) {
|
|
80
130
|
const token = mentionToken.replace(/^@/, '').toLowerCase();
|
|
81
131
|
const selfName = mentionToken.replace(/^@/, '');
|
|
82
132
|
const page = await api.listChatMessages(projectId, 1, 50);
|
|
83
133
|
const rows = [...(page ?? [])].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
84
134
|
if (!rows.length)
|
|
85
135
|
return { replied: 0, skipped: 0 };
|
|
136
|
+
// Project name anchors the agent: without it the model cannot tell which
|
|
137
|
+
// project it is working in and may invent tasks in the wrong one.
|
|
138
|
+
const project = await api.getProject(projectId).catch(() => null);
|
|
139
|
+
const projectName = project && typeof project === 'object' && 'name' in project
|
|
140
|
+
? String(project.name ?? '')
|
|
141
|
+
: undefined;
|
|
86
142
|
// Every message that mentions the agent, excluding messages the agent
|
|
87
143
|
// itself authored (its own replies mention other people, not itself).
|
|
88
|
-
const
|
|
144
|
+
const mentions = rows.filter((m) => {
|
|
89
145
|
const mentionsAgent = m.body.toLowerCase().includes(`@${token}`);
|
|
90
146
|
const isAgent = m.author?.kind === 'agent' ||
|
|
91
147
|
(m.author?.name ?? '').toLowerCase() === selfName.toLowerCase();
|
|
92
148
|
return mentionsAgent && !isAgent;
|
|
93
149
|
});
|
|
94
|
-
if (!
|
|
150
|
+
if (!mentions.length)
|
|
95
151
|
return { replied: 0, skipped: 0 };
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (opts.stream && (opts.selfMode || opts.harness === 'none' || opts.echo)) {
|
|
106
|
-
stream = new partial_stream_1.PartialStream({
|
|
107
|
-
wsBase: opts.stream.wsBase,
|
|
108
|
-
apiKey: opts.stream.apiKey,
|
|
109
|
-
projectId: opts.stream.projectId,
|
|
110
|
-
channelId: opts.stream.channelId,
|
|
111
|
-
}, draftId);
|
|
112
|
-
stream.connect();
|
|
152
|
+
// Pick the single target: the specific message the wake triggered on,
|
|
153
|
+
// or the latest mention as a safe fallback.
|
|
154
|
+
let target;
|
|
155
|
+
if (targetId) {
|
|
156
|
+
const found = mentions.find((m) => m.id === targetId);
|
|
157
|
+
if (!found) {
|
|
158
|
+
// The target is not in the last 50 messages or already agent-replied;
|
|
159
|
+
// fall back to the latest mention.
|
|
160
|
+
target = mentions[mentions.length - 1];
|
|
113
161
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
stream?.end();
|
|
117
|
-
continue;
|
|
162
|
+
else {
|
|
163
|
+
target = found;
|
|
118
164
|
}
|
|
119
|
-
const posted = await api.postChatMessage(projectId, reply);
|
|
120
|
-
stream?.end(posted?.id ??
|
|
121
|
-
posted?.message?.id);
|
|
122
|
-
replied += 1;
|
|
123
165
|
}
|
|
124
|
-
|
|
166
|
+
else {
|
|
167
|
+
// No targetId (direct CLI run) — reply to only the latest mention.
|
|
168
|
+
target = mentions[mentions.length - 1];
|
|
169
|
+
}
|
|
170
|
+
const targetIndex = rows.findIndex((r) => r.id === target.id);
|
|
171
|
+
const context = rows.slice(Math.max(0, targetIndex - CONTEXT_WINDOW), targetIndex + 1);
|
|
172
|
+
// The agent's own user id: lets "assign to yourself" resolve to the agent
|
|
173
|
+
// (create_task accepts assigneeId "me"/"self").
|
|
174
|
+
const settings = await api.getAgentSettings(agentId).catch(() => null);
|
|
175
|
+
const agentUserId = settings?.userId ?? undefined;
|
|
176
|
+
const prompt = mentionPrompt(selfName, target, context, projectId, projectName, agentUserId);
|
|
177
|
+
const draftId = `draft_${target.id}`;
|
|
178
|
+
let stream = null;
|
|
179
|
+
if (opts.stream && (opts.selfMode || opts.harness === 'none' || opts.echo)) {
|
|
180
|
+
stream = new partial_stream_1.PartialStream({
|
|
181
|
+
wsBase: opts.stream.wsBase,
|
|
182
|
+
apiKey: opts.stream.apiKey,
|
|
183
|
+
projectId: opts.stream.projectId,
|
|
184
|
+
channelId: opts.stream.channelId,
|
|
185
|
+
}, draftId);
|
|
186
|
+
stream.connect();
|
|
187
|
+
}
|
|
188
|
+
const reply = await generateReply(selfName, target, prompt, projectId, { ...opts, api }, projectName, (delta) => stream?.token(delta), agentUserId);
|
|
189
|
+
if (!reply) {
|
|
190
|
+
stream?.end();
|
|
191
|
+
return { replied: 0, skipped: 1 };
|
|
192
|
+
}
|
|
193
|
+
const posted = await api.postChatMessage(projectId, reply);
|
|
194
|
+
stream?.end(posted?.id ??
|
|
195
|
+
posted?.message?.id);
|
|
196
|
+
return { replied: 1, skipped: 0 };
|
|
125
197
|
}
|
|
126
198
|
//# sourceMappingURL=chat-reply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-reply.js","sourceRoot":"","sources":["../../src/lib/chat-reply.ts"],"names":[],"mappings":"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"}
|