teamshare-bridge 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/daemon.js +239 -8
- 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 +20 -4
- package/dist/bridge/spawn.js +93 -29
- package/dist/bridge/spawn.js.map +1 -1
- package/dist/cli/index.js +1102 -64
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/api.d.ts +203 -5
- package/dist/lib/api.js +144 -3
- 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 +272 -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 +139 -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 +135 -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/llm.d.ts
CHANGED
|
@@ -24,17 +24,45 @@ export interface LlmOptions {
|
|
|
24
24
|
maxTokens?: number;
|
|
25
25
|
/** Resume a previous --self session for this task (Phase E, IMP-540). */
|
|
26
26
|
continue?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The agent's own TeamShare user id. Lets the agent assign tasks/subtasks
|
|
29
|
+
* to itself: create_task/update_task accept assigneeId "me"/"self" which
|
|
30
|
+
* resolve to this id. Injected from GET /agents/:id/settings (userId).
|
|
31
|
+
*/
|
|
32
|
+
agentUserId?: string;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* Phase B ask-human (IMP-530): markers + polling for the `--self` loop.
|
|
30
36
|
* The MCP server implements the same contract for opencode sessions.
|
|
31
37
|
*/
|
|
32
38
|
export declare const QUESTION_MARKER = "[question]";
|
|
33
|
-
export
|
|
39
|
+
export interface ToolSessionContext {
|
|
40
|
+
/**
|
|
41
|
+
* When set, project-scoped tools (create_task, list/create/read document)
|
|
42
|
+
* are PINNED to this project: any projectId the model supplies is ignored
|
|
43
|
+
* in favor of it. Chat mentions and task runs always set this so agents
|
|
44
|
+
* can never create tasks in a project other than the one they were called
|
|
45
|
+
* from.
|
|
46
|
+
*/
|
|
47
|
+
defaultProjectId?: string;
|
|
48
|
+
askTimeoutMs?: number;
|
|
49
|
+
/** The agent's own user id; "me"/"self" in assigneeId resolve to it. */
|
|
50
|
+
agentUserId?: string;
|
|
51
|
+
}
|
|
52
|
+
export declare function buildTools(api: TeamshareApi, ctx?: ToolSessionContext | number): {
|
|
34
53
|
def: ToolDef;
|
|
35
54
|
run: (args: Record<string, unknown>) => Promise<unknown>;
|
|
36
55
|
}[];
|
|
37
|
-
export declare function runLlmSession(api: TeamshareApi, taskId: string, brief: string, opts: LlmOptions): Promise<LlmResult>;
|
|
56
|
+
export declare function runLlmSession(api: TeamshareApi, taskId: string, brief: string, opts: LlmOptions, projectId?: string): Promise<LlmResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Project-level tool loop (chat mentions): same as runLlmSession but
|
|
59
|
+
* conversational — no task brief, no continuation persistence, no status
|
|
60
|
+
* checks. Used when the agent is @mentioned in project chat and the
|
|
61
|
+
* --self/harness=none loop fires with full MCP tools.
|
|
62
|
+
*
|
|
63
|
+
* Returns the final reply text.
|
|
64
|
+
*/
|
|
65
|
+
export declare function runProjectSession(api: TeamshareApi, projectId: string, prompt: string, opts: LlmOptions, projectName?: string): Promise<string>;
|
|
38
66
|
/**
|
|
39
67
|
* Single-shot chat completion (no tools) - used by the chat-reply loop to
|
|
40
68
|
* draft a reply to a mention. Same env contract as `--self`.
|
package/dist/lib/llm.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.QUESTION_MARKER = exports.DEFAULT_LLM_MODEL = exports.DEFAULT_LLM_BASE_URL = void 0;
|
|
4
4
|
exports.buildTools = buildTools;
|
|
5
5
|
exports.runLlmSession = runLlmSession;
|
|
6
|
+
exports.runProjectSession = runProjectSession;
|
|
6
7
|
exports.complete = complete;
|
|
7
8
|
exports.completeStream = completeStream;
|
|
8
9
|
/**
|
|
@@ -32,14 +33,32 @@ function askTimeoutMs() {
|
|
|
32
33
|
const env = Number(process.env.TEAMSHARE_ASK_TIMEOUT);
|
|
33
34
|
return Number.isFinite(env) && env > 0 ? env * 1000 : ASK_DEFAULT_TIMEOUT_MS;
|
|
34
35
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
36
|
+
function projectIdOf(a, ctx) {
|
|
37
|
+
if (ctx?.defaultProjectId)
|
|
38
|
+
return ctx.defaultProjectId;
|
|
39
|
+
if (!a.projectId) {
|
|
40
|
+
throw new Error('projectId is required (no session project pinned)');
|
|
41
|
+
}
|
|
42
|
+
return String(a.projectId);
|
|
43
|
+
}
|
|
44
|
+
function buildTools(api, ctx) {
|
|
45
|
+
const options = typeof ctx === 'number'
|
|
46
|
+
? { askTimeoutMs: ctx }
|
|
47
|
+
: ctx ?? {};
|
|
48
|
+
const askTimeout = options.askTimeoutMs ?? askTimeoutMs();
|
|
37
49
|
return [
|
|
38
50
|
tool(async (a) => api.getTask(String(a.taskId)), 'get_task', 'Get a task with its comment thread.', {
|
|
39
51
|
type: 'object',
|
|
40
52
|
properties: { taskId: { type: 'string' } },
|
|
41
53
|
required: ['taskId'],
|
|
42
54
|
}),
|
|
55
|
+
tool(async (a) => api.getProject(projectIdOf(a, options)), 'get_project', 'Get the current project details (name, description, members, roles) - call this first to know who is in the project and what it is about.', {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {
|
|
58
|
+
projectId: { type: 'string', description: 'Pinned to the session project; ignored if supplied' },
|
|
59
|
+
},
|
|
60
|
+
required: ['projectId'],
|
|
61
|
+
}),
|
|
43
62
|
tool(async (a) => api.listTasks({ projectId: a.projectId ? String(a.projectId) : undefined, status: a.status ? String(a.status) : undefined }), 'list_tasks', 'List tasks in a project.', {
|
|
44
63
|
type: 'object',
|
|
45
64
|
properties: {
|
|
@@ -47,13 +66,35 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
47
66
|
status: { type: 'string', description: 'open | in_progress | in_review | resolved | closed' },
|
|
48
67
|
},
|
|
49
68
|
}),
|
|
50
|
-
tool(async (a) =>
|
|
69
|
+
tool(async (a) => {
|
|
70
|
+
const selfId = options.agentUserId;
|
|
71
|
+
const rawAssignee = a.assigneeId ? String(a.assigneeId) : undefined;
|
|
72
|
+
const assigneeId = rawAssignee === 'me' || rawAssignee === 'self'
|
|
73
|
+
? selfId
|
|
74
|
+
: rawAssignee;
|
|
75
|
+
return api.createTask({
|
|
76
|
+
projectId: projectIdOf(a, options),
|
|
77
|
+
title: String(a.title),
|
|
78
|
+
description: a.description ? String(a.description) : undefined,
|
|
79
|
+
priority: a.priority ? String(a.priority) : undefined,
|
|
80
|
+
assigneeId,
|
|
81
|
+
dueDate: a.dueDate ? String(a.dueDate) : undefined,
|
|
82
|
+
status: a.status ? String(a.status) : undefined,
|
|
83
|
+
readyForDev: a.readyForDev !== undefined ? Boolean(a.readyForDev) : undefined,
|
|
84
|
+
sortOrder: a.sortOrder !== undefined ? Number(a.sortOrder) : undefined,
|
|
85
|
+
});
|
|
86
|
+
}, 'create_task', 'Create a task in the current project (e.g. a subtask of the assigned task). The project is fixed to the session project - ignore any projectId you would guess. assigneeId "me" (or "self") assigns the task to you - use it whenever the person asks you to assign a task to yourself. readyForDev: true adds the task to the project build queue (build agents work them in sortOrder); set it when planning a build run.', {
|
|
51
87
|
type: 'object',
|
|
52
88
|
properties: {
|
|
53
|
-
projectId: { type: 'string' },
|
|
89
|
+
projectId: { type: 'string', description: 'Pinned to the session project; ignored if supplied' },
|
|
54
90
|
title: { type: 'string' },
|
|
55
91
|
description: { type: 'string' },
|
|
56
92
|
priority: { type: 'string', enum: ['low', 'medium', 'high', 'urgent'] },
|
|
93
|
+
assigneeId: { type: 'string', description: 'User id of the assignee, or "me"/"self" for yourself' },
|
|
94
|
+
dueDate: { type: 'string', description: 'ISO 8601 due date, e.g. 2026-12-31T18:00:00Z' },
|
|
95
|
+
status: { type: 'string', enum: ['open', 'in_progress', 'in_review', 'resolved', 'closed'] },
|
|
96
|
+
readyForDev: { type: 'boolean', description: 'true adds the task to the project build queue (IMP-700)' },
|
|
97
|
+
sortOrder: { type: 'number', description: 'Build queue position (ascending, 1 = first)' },
|
|
57
98
|
},
|
|
58
99
|
required: ['projectId', 'title'],
|
|
59
100
|
}),
|
|
@@ -61,13 +102,15 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
61
102
|
status: a.status ? String(a.status) : undefined,
|
|
62
103
|
priority: a.priority ? String(a.priority) : undefined,
|
|
63
104
|
description: a.description ? String(a.description) : undefined,
|
|
64
|
-
|
|
105
|
+
readyForDev: a.readyForDev !== undefined ? Boolean(a.readyForDev) : undefined,
|
|
106
|
+
}), 'update_task', 'Update a task. Status can be set to any value from any state (open, in_progress, in_review, resolved, closed). Reversing is allowed. For best results: set in_progress when starting work, in_review when done (human reviews), resolved when approved. readyForDev adds/removes the task from the project build queue.', {
|
|
65
107
|
type: 'object',
|
|
66
108
|
properties: {
|
|
67
109
|
taskId: { type: 'string' },
|
|
68
110
|
status: { type: 'string', enum: ['open', 'in_progress', 'in_review', 'resolved', 'closed'] },
|
|
69
111
|
priority: { type: 'string', enum: ['low', 'medium', 'high', 'urgent'] },
|
|
70
112
|
description: { type: 'string' },
|
|
113
|
+
readyForDev: { type: 'boolean' },
|
|
71
114
|
},
|
|
72
115
|
required: ['taskId'],
|
|
73
116
|
}),
|
|
@@ -87,9 +130,59 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
87
130
|
body: { type: 'string' },
|
|
88
131
|
},
|
|
89
132
|
}),
|
|
90
|
-
tool(async (a) => api.listDocuments(
|
|
133
|
+
tool(async (a) => api.listDocuments(projectIdOf(a, options)), 'list_documents', 'List project files (project pinned to the session project).', { type: 'object', properties: { projectId: { type: 'string' } }, required: ['projectId'] }),
|
|
134
|
+
tool(async (a) => api.listDocumentFolders(projectIdOf(a, options)), 'list_document_folders', 'List the virtual folder tree of the current project (nested, documentCount per folder). Use it to find where docs live before reading or writing.', { type: 'object', properties: { projectId: { type: 'string' } }, required: ['projectId'] }),
|
|
91
135
|
tool(async (a) => {
|
|
92
|
-
const
|
|
136
|
+
const name = String(a.name);
|
|
137
|
+
const content = String(a.content ?? '');
|
|
138
|
+
const format = a.format === 'docx'
|
|
139
|
+
? 'docx'
|
|
140
|
+
: a.format === 'note'
|
|
141
|
+
? 'note'
|
|
142
|
+
: /\.(md|markdown|txt)$/i.test(name)
|
|
143
|
+
? 'note'
|
|
144
|
+
: 'docx';
|
|
145
|
+
if (format === 'docx') {
|
|
146
|
+
const docxName = /\.docx$/i.test(name) ? name : `${name}.docx`;
|
|
147
|
+
return api.createRenderedDocument({
|
|
148
|
+
projectId: projectIdOf(a, options),
|
|
149
|
+
name: docxName,
|
|
150
|
+
content,
|
|
151
|
+
folderPath: a.folderPath ? String(a.folderPath) : '/',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
const noteName = /\.(md|markdown|txt)$/i.test(name)
|
|
155
|
+
? name
|
|
156
|
+
: `${name}.md`;
|
|
157
|
+
return api.createNoteDocument({
|
|
158
|
+
projectId: projectIdOf(a, options),
|
|
159
|
+
name: noteName,
|
|
160
|
+
content,
|
|
161
|
+
folderPath: a.folderPath ? String(a.folderPath) : '/',
|
|
162
|
+
});
|
|
163
|
+
}, 'create_document', 'Create a document in the current project. With `content` you get a markdown note (type: note) OR - the default - a Word .docx file rendered from the markdown (use this when the user asks for a Word document; `format: "docx"` forces it, or simply name the file *.docx). A name ending .md/.markdown/.txt creates a note by default. `folderPath` places it in the virtual folder tree - write plan.md/progress.md/summary.md under agents/<you>/tasks/<taskId>/ and shared knowledge under docs/... as the documents-driven workflow requires. With `url` instead of `content` you get a link document. The project is pinned to the session project.', {
|
|
164
|
+
type: 'object',
|
|
165
|
+
properties: {
|
|
166
|
+
projectId: { type: 'string', description: 'Pinned to the session project; ignored if supplied' },
|
|
167
|
+
name: { type: 'string', description: 'File name; *.docx => Word document, *.md/*.markdown/*.txt => note, other => Word' },
|
|
168
|
+
content: { type: 'string', description: 'Markdown body (rendered to the Word file for docx)' },
|
|
169
|
+
format: { type: 'string', enum: ['note', 'docx'], description: 'Optional explicit format; default derived from the name' },
|
|
170
|
+
url: { type: 'string', description: 'http(s) URL when creating a link document instead' },
|
|
171
|
+
folderPath: { type: 'string', description: 'Virtual folder, e.g. agents/<agent-slug>/tasks/<taskId>; "/" = root' },
|
|
172
|
+
},
|
|
173
|
+
required: ['projectId', 'name'],
|
|
174
|
+
}),
|
|
175
|
+
tool(async (a) => api.updateDocumentContent(String(a.documentId), String(a.content)), 'update_document_note', 'Replace the markdown body of a note document created earlier - update your plan/progress/summary docs while working.', {
|
|
176
|
+
type: 'object',
|
|
177
|
+
properties: {
|
|
178
|
+
documentId: { type: 'string' },
|
|
179
|
+
content: { type: 'string', description: 'New markdown body' },
|
|
180
|
+
},
|
|
181
|
+
required: ['documentId', 'content'],
|
|
182
|
+
}),
|
|
183
|
+
tool(async (a) => {
|
|
184
|
+
const pid = projectIdOf(a, options);
|
|
185
|
+
const docs = await api.listDocuments(pid);
|
|
93
186
|
const doc = docs.find((d) => d.id === String(a.documentId));
|
|
94
187
|
if (!doc)
|
|
95
188
|
return { error: 'document not found' };
|
|
@@ -122,6 +215,7 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
122
215
|
tool(async (a) => {
|
|
123
216
|
const taskId = String(a.taskId);
|
|
124
217
|
const question = String(a.question);
|
|
218
|
+
const mentionNames = Array.isArray(a.mentionNames) ? a.mentionNames.map(String) : [];
|
|
125
219
|
// Race safety: only ONE pending question per task (same contract as
|
|
126
220
|
// the backend MCP ask_human tool).
|
|
127
221
|
const existing = await api.listComments(taskId).catch(() => []);
|
|
@@ -139,8 +233,34 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
139
233
|
}
|
|
140
234
|
const body = [exports.QUESTION_MARKER, question].filter(Boolean).join(' ');
|
|
141
235
|
const comment = await api.addComment({ taskId, body });
|
|
142
|
-
|
|
143
|
-
|
|
236
|
+
// Also post to #agent-questions channel so the human sees it in chat
|
|
237
|
+
let channelId;
|
|
238
|
+
let questionMessageId;
|
|
239
|
+
try {
|
|
240
|
+
// Resolve the task's project
|
|
241
|
+
const task = await api.getTask(taskId);
|
|
242
|
+
const projectId = task.projectId;
|
|
243
|
+
if (projectId) {
|
|
244
|
+
// Build chat body with @mentions
|
|
245
|
+
let chatBody = body;
|
|
246
|
+
if (mentionNames.length) {
|
|
247
|
+
const mentions = mentionNames.map((n) => `@${n}`).join(' ');
|
|
248
|
+
chatBody = `${mentions} ${body}`;
|
|
249
|
+
}
|
|
250
|
+
// The backend auto-creates #agent-questions on first post;
|
|
251
|
+
// we post without channelId so it lands in General, but the
|
|
252
|
+
// backend MCP tool handles the dedicated channel. For the
|
|
253
|
+
// --self mirror, we skip the channel routing (the human
|
|
254
|
+
// answers in task comments or General).
|
|
255
|
+
const msg = await api.postChatMessage(projectId, chatBody);
|
|
256
|
+
questionMessageId = String(msg.id ?? '');
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
// Chat post is best-effort for the --self mirror
|
|
261
|
+
}
|
|
262
|
+
return { posted: true, commentId: comment.id, channelId, questionMessageId };
|
|
263
|
+
}, 'ask_human', `Ask the human a question. Posts a "[question]" comment on the task AND a message in the project chat. Pass mentionNames to notify specific people. Refuses while a question is already pending. Then call wait_for_answer with the returned commentId. Requires comments:create + chat:write.`, {
|
|
144
264
|
type: 'object',
|
|
145
265
|
properties: {
|
|
146
266
|
taskId: { type: 'string' },
|
|
@@ -150,39 +270,59 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
150
270
|
items: { type: 'string' },
|
|
151
271
|
description: 'Optional answer choices',
|
|
152
272
|
},
|
|
273
|
+
mentionNames: {
|
|
274
|
+
type: 'array',
|
|
275
|
+
items: { type: 'string' },
|
|
276
|
+
description: 'People to notify (resolved to @mentions in chat)',
|
|
277
|
+
},
|
|
153
278
|
},
|
|
154
279
|
required: ['taskId', 'question'],
|
|
155
280
|
}),
|
|
156
281
|
tool(async (a) => {
|
|
157
282
|
const commentId = String(a.commentId);
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
const
|
|
161
|
-
const q =
|
|
283
|
+
const taskId = String(a.taskId);
|
|
284
|
+
// Check task comment thread for a human reply
|
|
285
|
+
const comments = await api.listComments(taskId).catch(() => []);
|
|
286
|
+
const q = comments.find((c) => c.id === commentId);
|
|
162
287
|
if (!q)
|
|
163
288
|
return { error: 'comment not found' };
|
|
164
289
|
const qAt = new Date(q.createdAt).getTime();
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
290
|
+
const taskAnswer = comments.find((c) => new Date(c.createdAt).getTime() > qAt &&
|
|
291
|
+
c.author?.kind === 'human');
|
|
292
|
+
if (taskAnswer) {
|
|
293
|
+
return {
|
|
294
|
+
answer: taskAnswer.body,
|
|
295
|
+
author: { id: taskAnswer.author?.id ?? null, name: taskAnswer.author?.name ?? null },
|
|
296
|
+
at: taskAnswer.createdAt,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// Check #agent-questions chat channel for a human message
|
|
300
|
+
try {
|
|
301
|
+
const task = await api.getTask(taskId);
|
|
302
|
+
const projectId = task.projectId;
|
|
303
|
+
if (projectId) {
|
|
304
|
+
const chatMsgs = await api.listChatMessages(projectId);
|
|
305
|
+
const chatAnswer = chatMsgs.find((m) => new Date(m.createdAt).getTime() > qAt &&
|
|
306
|
+
m.author?.kind === 'human');
|
|
307
|
+
if (chatAnswer) {
|
|
308
|
+
return {
|
|
309
|
+
answer: chatAnswer.body,
|
|
310
|
+
author: { id: chatAnswer.author?.id ?? null, name: chatAnswer.author?.name ?? null },
|
|
311
|
+
at: chatAnswer.createdAt,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
175
314
|
}
|
|
176
|
-
if (Date.now() >= deadline)
|
|
177
|
-
return { timedOut: true };
|
|
178
|
-
await new Promise((r) => setTimeout(r, ASK_POLL_MS));
|
|
179
315
|
}
|
|
180
|
-
|
|
316
|
+
catch {
|
|
317
|
+
// Chat check is best-effort
|
|
318
|
+
}
|
|
319
|
+
// No answer — agent should stop and wait for a human @mention
|
|
320
|
+
return { pending: true };
|
|
321
|
+
}, 'wait_for_answer', `Check for an answer to a question posted by ask_human. Checks both the task comment thread AND the project chat channel. Returns immediately (no polling). Returns { answer, author, at } if found, { pending: true } if unanswered (the agent should stop and wait for the human to @mention it). Requires tasks:read.`, {
|
|
181
322
|
type: 'object',
|
|
182
323
|
properties: {
|
|
183
324
|
commentId: { type: 'string', description: 'commentId from ask_human' },
|
|
184
325
|
taskId: { type: 'string' },
|
|
185
|
-
timeoutSec: { type: 'number', description: 'Max seconds to wait (5-900)' },
|
|
186
326
|
},
|
|
187
327
|
required: ['commentId', 'taskId'],
|
|
188
328
|
}),
|
|
@@ -216,6 +356,36 @@ function buildTools(api, askTimeoutMsOverride) {
|
|
|
216
356
|
},
|
|
217
357
|
required: ['subtaskId'],
|
|
218
358
|
}),
|
|
359
|
+
tool(async (a) => api.createChecklistItem({
|
|
360
|
+
taskId: a.taskId ? String(a.taskId) : undefined,
|
|
361
|
+
subtaskId: a.subtaskId ? String(a.subtaskId) : undefined,
|
|
362
|
+
}, String(a.title)), 'create_checklist_item', 'Add a checklist row (to-do tick) to a task or a subtask - pass exactly one of taskId/subtaskId. Checklists are simple ticks (title + done); use subtasks when you need assignees or due dates. Prefer checklist items for step-by-step breakdowns within a subtask.', {
|
|
363
|
+
type: 'object',
|
|
364
|
+
properties: {
|
|
365
|
+
taskId: { type: 'string', description: 'Parent task (mutually exclusive with subtaskId)' },
|
|
366
|
+
subtaskId: { type: 'string', description: 'Parent subtask (mutually exclusive with taskId)' },
|
|
367
|
+
title: { type: 'string' },
|
|
368
|
+
},
|
|
369
|
+
}),
|
|
370
|
+
tool(async (a) => api.updateChecklistItem(String(a.checklistItemId), {
|
|
371
|
+
done: a.done !== undefined ? Boolean(a.done) : undefined,
|
|
372
|
+
title: a.title ? String(a.title) : undefined,
|
|
373
|
+
}), 'update_checklist_item', 'Check a checklist row off (done: true) or reopen it (done: false) - report progress as you work. Can also rename it.', {
|
|
374
|
+
type: 'object',
|
|
375
|
+
properties: {
|
|
376
|
+
checklistItemId: { type: 'string' },
|
|
377
|
+
done: { type: 'boolean', description: 'true = completed (check it off)' },
|
|
378
|
+
title: { type: 'string' },
|
|
379
|
+
},
|
|
380
|
+
required: ['checklistItemId'],
|
|
381
|
+
}),
|
|
382
|
+
tool(async (a) => api.deleteChecklistItem(String(a.checklistItemId)), 'delete_checklist_item', 'Remove a checklist row (e.g. when restructuring a breakdown).', {
|
|
383
|
+
type: 'object',
|
|
384
|
+
properties: {
|
|
385
|
+
checklistItemId: { type: 'string' },
|
|
386
|
+
},
|
|
387
|
+
required: ['checklistItemId'],
|
|
388
|
+
}),
|
|
219
389
|
];
|
|
220
390
|
}
|
|
221
391
|
/** ~/.teamshare/sessions/task-<taskId>.json - per-task message history (Phase E). */
|
|
@@ -243,13 +413,29 @@ function loadContinuation(taskId) {
|
|
|
243
413
|
return null;
|
|
244
414
|
}
|
|
245
415
|
}
|
|
246
|
-
async function runLlmSession(api, taskId, brief, opts) {
|
|
247
|
-
const tools = buildTools(api
|
|
416
|
+
async function runLlmSession(api, taskId, brief, opts, projectId) {
|
|
417
|
+
const tools = buildTools(api, {
|
|
418
|
+
defaultProjectId: projectId,
|
|
419
|
+
agentUserId: opts.agentUserId,
|
|
420
|
+
});
|
|
248
421
|
const systemBase = `You are ${opts.agentName}, an AI agent working a task in TeamShare. ` +
|
|
249
422
|
(opts.systemPrompt ? `${opts.systemPrompt}\n\n` : '') +
|
|
423
|
+
(projectId
|
|
424
|
+
? `Your work is scoped to project ${projectId} - create_task, create_document and the document tools are pinned to it; never use another projectId. ` +
|
|
425
|
+
'Call get_project first to learn the project name and members.\n\n'
|
|
426
|
+
: '') +
|
|
427
|
+
(opts.agentUserId
|
|
428
|
+
? `Your TeamShare user id is ${opts.agentUserId}. When the brief or the human asks you to assign a task to yourself, pass assigneeId "me" (resolves to your user id).\n\n`
|
|
429
|
+
: '') +
|
|
430
|
+
'WORK FROM THE PROJECT DOCUMENTS (documents-driven development): before acting, call list_document_folders + ' +
|
|
431
|
+
'list_documents to find the project docs (read plan/contract/ADR notes via read_document). Create a per-task folder ' +
|
|
432
|
+
'`agents/<agent-slug>/tasks/<taskId>` and write plan.md there BEFORE starting, update it (progress.md or update_document_note) ' +
|
|
433
|
+
'as you work, and write summary.md on completion. Keep shared knowledge in `docs/...`. ' +
|
|
250
434
|
'Work the assigned task described in the user message. Post a progress comment at milestones via add_comment. ' +
|
|
251
435
|
'BREAK THE TASK DOWN FIRST: before doing the work, plan 3-8 concrete subtasks with create_subtask ' +
|
|
252
436
|
'(list_subtasks shows the current breakdown; get_task also returns it). ' +
|
|
437
|
+
'For finer-grained steps inside a subtask, use create_checklist_item (check items off with update_checklist_item, done: true) - ' +
|
|
438
|
+
'do NOT nest subtasks more than two levels deep; checklists are for the remaining granularity. ' +
|
|
253
439
|
'Then check each subtask off with update_subtask (done: true) as you complete it, so the human sees live progress in the app. ' +
|
|
254
440
|
'When all subtasks are done, post a detailed final summary comment (mention the subtask progress) and move the task to in_review (or resolved if you are confident). ' +
|
|
255
441
|
'Prefer several small tool calls over one giant one.';
|
|
@@ -314,6 +500,74 @@ async function runLlmSession(api, taskId, brief, opts) {
|
|
|
314
500
|
finishedBy = 'task-done';
|
|
315
501
|
return { summary, iterations, tokensUsed, finishedBy };
|
|
316
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Project-level tool loop (chat mentions): same as runLlmSession but
|
|
505
|
+
* conversational — no task brief, no continuation persistence, no status
|
|
506
|
+
* checks. Used when the agent is @mentioned in project chat and the
|
|
507
|
+
* --self/harness=none loop fires with full MCP tools.
|
|
508
|
+
*
|
|
509
|
+
* Returns the final reply text.
|
|
510
|
+
*/
|
|
511
|
+
async function runProjectSession(api, projectId, prompt, opts, projectName) {
|
|
512
|
+
const tools = buildTools(api, {
|
|
513
|
+
defaultProjectId: projectId,
|
|
514
|
+
agentUserId: opts.agentUserId,
|
|
515
|
+
});
|
|
516
|
+
const projectLabel = projectName ? `"${projectName}" (${projectId})` : projectId;
|
|
517
|
+
const systemBase = `You are ${opts.agentName}, a TeamShare project assistant for project ${projectLabel}. ` +
|
|
518
|
+
(opts.systemPrompt ? `${opts.systemPrompt}\n\n` : '') +
|
|
519
|
+
`You are working in project ${projectLabel}. create_task, create_document and the document tools are PINNED to this project - ` +
|
|
520
|
+
'any projectId you might pass is ignored in favor of it, so never try to create tasks in another project. ' +
|
|
521
|
+
'Call get_project first to learn the project name and members. ' +
|
|
522
|
+
'Only ever claim you created/updated something (a task, a document) if a tool actually returned it - if a tool errors, report the error honestly. ' +
|
|
523
|
+
(opts.agentUserId
|
|
524
|
+
? `Your TeamShare user id is ${opts.agentUserId}. When asked to assign a task to yourself, pass assigneeId "me" (resolves to your user id).\n`
|
|
525
|
+
: '') +
|
|
526
|
+
'You have tools to work with this project: get_project, list_tasks, get_task, create_task, update_task, ' +
|
|
527
|
+
'add_comment, list_documents, read_document, create_document, update_document_note, search, ' +
|
|
528
|
+
'ask_human, list_subtasks, create_subtask, update_subtask, create_checklist_item, update_checklist_item, delete_checklist_item. ' +
|
|
529
|
+
'Prefer checklist items (create_checklist_item) for fine-grained step breakdowns; do not nest subtasks more than two levels deep. ' +
|
|
530
|
+
'When the person asks you to do something actionable, use the appropriate tool. ' +
|
|
531
|
+
'When replying conversationally, just answer directly. ' +
|
|
532
|
+
'Do NOT browse, reference, or claim to work on any local repository or folder on disk. ' +
|
|
533
|
+
'Never mention local folder names or repo names (e.g. teamshare-bridge, frontend, teamshare-backend). ' +
|
|
534
|
+
'If the person asks about code work, mention tasks or documents in TeamShare, not local folders. ' +
|
|
535
|
+
'Reply concisely in plain text; keep it under 4000 characters.';
|
|
536
|
+
const messages = [
|
|
537
|
+
{ role: 'system', content: systemBase },
|
|
538
|
+
{ role: 'user', content: prompt },
|
|
539
|
+
];
|
|
540
|
+
let iterations = 0;
|
|
541
|
+
for (;;) {
|
|
542
|
+
iterations += 1;
|
|
543
|
+
const reply = await chatOnce(messages, opts, tools.map((t) => t.def));
|
|
544
|
+
const toolCalls = reply.message?.tool_calls ?? [];
|
|
545
|
+
if (toolCalls.length === 0) {
|
|
546
|
+
return reply.message?.content?.trim() ?? '';
|
|
547
|
+
}
|
|
548
|
+
messages.push(reply.message);
|
|
549
|
+
for (const call of toolCalls) {
|
|
550
|
+
let resultText;
|
|
551
|
+
try {
|
|
552
|
+
const args = JSON.parse(call.function.arguments ?? '{}');
|
|
553
|
+
const fn = tools.find((t) => t.def.name === call.function.name);
|
|
554
|
+
const result = fn ? await fn.run(args) : `unknown tool: ${call.function.name}`;
|
|
555
|
+
resultText = JSON.stringify(result);
|
|
556
|
+
}
|
|
557
|
+
catch (err) {
|
|
558
|
+
resultText = `TOOL_ERROR: ${err instanceof Error ? err.message : String(err)}`;
|
|
559
|
+
}
|
|
560
|
+
messages.push({
|
|
561
|
+
role: 'tool',
|
|
562
|
+
tool_call_id: call.id,
|
|
563
|
+
content: resultText.slice(0, 20_000),
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
if (iterations >= MAX_ITERATIONS) {
|
|
567
|
+
return 'I reached the iteration limit — please try a simpler request.';
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
317
571
|
async function chatOnce(messages, opts, toolDefs) {
|
|
318
572
|
const url = `${opts.baseUrl.replace(/\/$/, '')}/chat/completions`;
|
|
319
573
|
const controller = new AbortController();
|
package/dist/lib/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/lib/llm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/lib/llm.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/lock.d.ts
CHANGED
package/dist/lib/models.d.ts
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
export declare const MODEL_BASE_URLS: Record<string, string>;
|
|
11
11
|
/** Provider keys accepted by the catalog (for validation/docs). */
|
|
12
12
|
export declare const MODEL_PROVIDERS: string[];
|
|
13
|
+
/** Providers that are harness-native (only work via opencode/claude CLI, not --self). */
|
|
14
|
+
export declare const HARNESS_NATIVE_PROVIDERS: Set<string>;
|
|
13
15
|
/** Default OpenAI-compatible base when nothing else is configured. */
|
|
14
16
|
export declare const DEFAULT_LLM_BASE_URL = "https://api.openai.com/v1";
|
|
15
17
|
export interface ResolvedModel {
|
|
@@ -19,12 +21,21 @@ export interface ResolvedModel {
|
|
|
19
21
|
model: string;
|
|
20
22
|
/** True when the spec was resolved via the catalog (vs raw env default). */
|
|
21
23
|
catalogued: boolean;
|
|
24
|
+
/** True when the model is harness-native (opencode-go) and cannot be used with --self. */
|
|
25
|
+
harnessOnly: boolean;
|
|
22
26
|
}
|
|
23
27
|
/**
|
|
24
28
|
* Resolves a model spec to (baseUrl, model):
|
|
25
29
|
* - `provider:model` (e.g. "gemini:gemini-2.5-flash") -> catalog base URL.
|
|
30
|
+
* - `opencode-go:*` -> harness-only flag (caller must use opencode harness, not --self).
|
|
26
31
|
* - Anything else (legacy "deepseek-chat") -> env LLM_BASE_URL default,
|
|
27
32
|
* preserving the pre-catalog behavior.
|
|
28
33
|
* Precedence for the base URL: LLM_BASE_URL env > catalog provider URL.
|
|
29
34
|
*/
|
|
30
35
|
export declare function resolveModel(spec: string, envBaseUrl?: string): ResolvedModel;
|
|
36
|
+
/**
|
|
37
|
+
* Get the fallback model for opencode-go providers.
|
|
38
|
+
* When opencode-go is detected and --self cannot be used,
|
|
39
|
+
* this returns the agent's configured model or the default harness model.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getHarnessFallbackModel(agentModel?: string): string;
|