@agentteams/cli 0.1.85 → 0.1.87
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/.eslintcache +1 -1
- package/dist/api/comment.d.ts +23 -8
- package/dist/api/comment.d.ts.map +1 -1
- package/dist/api/comment.js +19 -8
- package/dist/api/comment.js.map +1 -1
- package/dist/api/document.d.ts +16 -2
- package/dist/api/document.d.ts.map +1 -1
- package/dist/api/document.js +7 -2
- package/dist/api/document.js.map +1 -1
- package/dist/commands/comment.d.ts.map +1 -1
- package/dist/commands/comment.js +32 -6
- package/dist/commands/comment.js.map +1 -1
- package/dist/commands/convention.d.ts.map +1 -1
- package/dist/commands/convention.js +60 -5
- package/dist/commands/convention.js.map +1 -1
- package/dist/commands/document.d.ts +3 -0
- package/dist/commands/document.d.ts.map +1 -1
- package/dist/commands/document.js +25 -2
- package/dist/commands/document.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/context.d.ts +9 -0
- package/dist/mcp/context.d.ts.map +1 -1
- package/dist/mcp/context.js +5 -1
- package/dist/mcp/context.js.map +1 -1
- package/dist/mcp/guides.d.ts +50 -0
- package/dist/mcp/guides.d.ts.map +1 -0
- package/dist/mcp/guides.js +142 -0
- package/dist/mcp/guides.js.map +1 -0
- package/dist/mcp/resources.d.ts +4 -3
- package/dist/mcp/resources.d.ts.map +1 -1
- package/dist/mcp/resources.js +1 -1
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +20 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +3 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/writeTools.d.ts +25 -0
- package/dist/mcp/writeTools.d.ts.map +1 -0
- package/dist/mcp/writeTools.js +391 -0
- package/dist/mcp/writeTools.js.map +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +20 -1
- package/dist/utils/errors.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import { omitDocumentEditorMirror, stripContextEntityIdPrefix } from '@agentteams/context-tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { createComment, createFindingComment, createReply, createTaskComment, deleteComment, deleteReply, updateComment, updateReply, } from '../api/comment.js';
|
|
4
|
+
import { createDocumentComment, createDocument, deleteDocument, updateDocument } from '../api/document.js';
|
|
5
|
+
import { GUIDE_RECORD_KINDS, describeMissingGuideHash, resolvePlatformGuide } from './guides.js';
|
|
6
|
+
const GUIDE_FIRST = 'Call agentteams_guide_get("document") first and follow that guide.';
|
|
7
|
+
const COMMENT_GUIDE_FIRST = 'Call agentteams_guide_get("comment") first and follow that guide.';
|
|
8
|
+
const TAG_POLICY = 'You cannot set confirmed tags. Anything you pass in suggestedTags is a suggestion for a human to confirm.';
|
|
9
|
+
const PROJECT_SCOPE = 'Scoped to the single project this MCP server is bound to. There is no projectId argument — a different project cannot be reached from here.';
|
|
10
|
+
const guideHashField = z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1)
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('guideHash from agentteams_guide_get. If it is stale the server rejects the write with GUIDE_OUTDATED.');
|
|
15
|
+
const idempotencyKeyField = z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Retry-safe key. Repeating the same call with the same key replays the first result instead of redoing it.');
|
|
20
|
+
const expectedUpdatedAtField = z
|
|
21
|
+
.string()
|
|
22
|
+
.min(1)
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("The document's updatedAt as you last read it. The write is rejected if someone else changed the document since.");
|
|
25
|
+
const suggestedTagsField = z
|
|
26
|
+
.array(z.string().min(1))
|
|
27
|
+
.optional()
|
|
28
|
+
.describe('Suggested tags (not confirmed). Reuse existing project tags where they fit.');
|
|
29
|
+
const visibilityField = z
|
|
30
|
+
.enum(['PRIVATE', 'PROJECT'])
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('PRIVATE (default) is author-only; PROJECT is visible to every project member.');
|
|
33
|
+
/** Credentials can expire mid-session, so headers are resolved per call, never captured. */
|
|
34
|
+
const auth = (context) => context.resolveHeaders?.() ?? Promise.resolve(context.headers);
|
|
35
|
+
/** Drop keys the caller omitted so an absent optional never reaches the server as `undefined`. */
|
|
36
|
+
const definedFields = (fields) => Object.fromEntries(Object.entries(fields).filter(([, value]) => value !== undefined));
|
|
37
|
+
const guideGetSpec = {
|
|
38
|
+
name: 'agentteams_guide_get',
|
|
39
|
+
title: 'Get AgentTeams Record Guide',
|
|
40
|
+
description: [
|
|
41
|
+
'Fetch the platform guide that governs how a record type must be written.',
|
|
42
|
+
'Reads this project’s local copy when the session sits in it, and falls back to the server otherwise.',
|
|
43
|
+
'Returns the full guide body plus the guideHash to pass to the matching write tool.',
|
|
44
|
+
'Read this before any AgentTeams write tool call — the rules it states (visibility, tag policy, structure) are enforced server-side.',
|
|
45
|
+
'If it reports that the local guide hash is unknown, run `agentteams convention download` in the project.',
|
|
46
|
+
].join(' '),
|
|
47
|
+
inputSchema: z.strictObject({
|
|
48
|
+
recordKind: z
|
|
49
|
+
.enum(GUIDE_RECORD_KINDS)
|
|
50
|
+
.describe('Record type whose guide you need. "document" and "comment" are write-enabled.'),
|
|
51
|
+
}),
|
|
52
|
+
handler: async (args, context) => {
|
|
53
|
+
const guide = await resolvePlatformGuide(args.recordKind, {
|
|
54
|
+
projectRoot: context.projectRoot,
|
|
55
|
+
apiUrl: context.apiUrl,
|
|
56
|
+
headers: await auth(context),
|
|
57
|
+
});
|
|
58
|
+
const warning = describeMissingGuideHash(guide);
|
|
59
|
+
return {
|
|
60
|
+
recordKind: guide.recordKind,
|
|
61
|
+
fileName: guide.fileName,
|
|
62
|
+
source: guide.source,
|
|
63
|
+
...(guide.filePath ? { filePath: guide.filePath } : {}),
|
|
64
|
+
guideHash: guide.guideHash,
|
|
65
|
+
content: guide.content,
|
|
66
|
+
...(warning ? { warning } : {}),
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
const documentCreateSpec = {
|
|
71
|
+
name: 'agentteams_document_create',
|
|
72
|
+
title: 'Create AgentTeams Document',
|
|
73
|
+
description: [
|
|
74
|
+
'Create a document in this project’s document library.',
|
|
75
|
+
GUIDE_FIRST,
|
|
76
|
+
TAG_POLICY,
|
|
77
|
+
PROJECT_SCOPE,
|
|
78
|
+
'Returns the created document id and webUrl.',
|
|
79
|
+
].join(' '),
|
|
80
|
+
inputSchema: z.strictObject({
|
|
81
|
+
title: z.string().min(1).max(255).describe('Document title.'),
|
|
82
|
+
body: z.string().min(1).describe('Document body in Markdown.'),
|
|
83
|
+
suggestedTags: suggestedTagsField,
|
|
84
|
+
visibility: visibilityField,
|
|
85
|
+
guideHash: guideHashField,
|
|
86
|
+
idempotencyKey: idempotencyKeyField,
|
|
87
|
+
}),
|
|
88
|
+
handler: async (args, context) => {
|
|
89
|
+
// 쓰기 응답도 문서 상세와 같은 형태라 에디터 전용 bodyTiptap이 그대로 실린다.
|
|
90
|
+
// 조회와 같은 규칙을 공유해야 두 표면 중 한쪽만 부풀어 오르는 일이 없다.
|
|
91
|
+
return omitDocumentEditorMirror(await createDocument(context.apiUrl, context.projectId, await auth(context), definedFields({
|
|
92
|
+
title: args.title,
|
|
93
|
+
body: args.body,
|
|
94
|
+
suggestedTags: args.suggestedTags,
|
|
95
|
+
visibility: args.visibility,
|
|
96
|
+
guideHash: args.guideHash,
|
|
97
|
+
idempotencyKey: args.idempotencyKey,
|
|
98
|
+
})));
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
const documentUpdateSpec = {
|
|
102
|
+
name: 'agentteams_document_update',
|
|
103
|
+
title: 'Update AgentTeams Document',
|
|
104
|
+
description: [
|
|
105
|
+
'Update an existing document in this project. Only the fields you pass are changed.',
|
|
106
|
+
GUIDE_FIRST,
|
|
107
|
+
TAG_POLICY,
|
|
108
|
+
'Pass expectedUpdatedAt (from agentteams_document_get) so a concurrent edit is rejected rather than silently overwritten.',
|
|
109
|
+
PROJECT_SCOPE,
|
|
110
|
+
].join(' '),
|
|
111
|
+
inputSchema: z.strictObject({
|
|
112
|
+
id: z.string().min(1).describe('Document id (bare uuid or agentteams_doc_-prefixed).'),
|
|
113
|
+
title: z.string().min(1).max(255).optional().describe('New title.'),
|
|
114
|
+
body: z.string().min(1).optional().describe('New body in Markdown. Replaces the whole body.'),
|
|
115
|
+
suggestedTags: suggestedTagsField,
|
|
116
|
+
visibility: visibilityField,
|
|
117
|
+
expectedUpdatedAt: expectedUpdatedAtField,
|
|
118
|
+
guideHash: guideHashField,
|
|
119
|
+
idempotencyKey: idempotencyKeyField,
|
|
120
|
+
}),
|
|
121
|
+
handler: async (args, context) => {
|
|
122
|
+
return omitDocumentEditorMirror(await updateDocument(context.apiUrl, context.projectId, await auth(context), stripContextEntityIdPrefix(args.id), definedFields({
|
|
123
|
+
title: args.title,
|
|
124
|
+
body: args.body,
|
|
125
|
+
suggestedTags: args.suggestedTags,
|
|
126
|
+
visibility: args.visibility,
|
|
127
|
+
expectedUpdatedAt: args.expectedUpdatedAt,
|
|
128
|
+
guideHash: args.guideHash,
|
|
129
|
+
idempotencyKey: args.idempotencyKey,
|
|
130
|
+
})));
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
const documentDeleteSpec = {
|
|
134
|
+
name: 'agentteams_document_delete',
|
|
135
|
+
title: 'Delete AgentTeams Document',
|
|
136
|
+
description: [
|
|
137
|
+
'Delete a document from this project. This is destructive — the document disappears from the library for everyone.',
|
|
138
|
+
GUIDE_FIRST,
|
|
139
|
+
'Without expectedUpdatedAt this is an unconditional delete: it removes the document even if someone edited it after you last read it.',
|
|
140
|
+
'Pass expectedUpdatedAt (from agentteams_document_get) unless you intend that.',
|
|
141
|
+
'Confirm with the user before deleting anything you did not just create.',
|
|
142
|
+
PROJECT_SCOPE,
|
|
143
|
+
].join(' '),
|
|
144
|
+
inputSchema: z.strictObject({
|
|
145
|
+
id: z.string().min(1).describe('Document id (bare uuid or agentteams_doc_-prefixed).'),
|
|
146
|
+
expectedUpdatedAt: expectedUpdatedAtField,
|
|
147
|
+
// 되돌리기 가장 어려운 작업에서만 최신성 게이트가 빠지면 표면이 비대칭해진다.
|
|
148
|
+
guideHash: guideHashField,
|
|
149
|
+
idempotencyKey: idempotencyKeyField,
|
|
150
|
+
}),
|
|
151
|
+
handler: async (args, context) => {
|
|
152
|
+
const documentId = stripContextEntityIdPrefix(args.id);
|
|
153
|
+
await deleteDocument(context.apiUrl, context.projectId, await auth(context), documentId, {
|
|
154
|
+
...(args.expectedUpdatedAt ? { expectedUpdatedAt: args.expectedUpdatedAt } : {}),
|
|
155
|
+
...(args.guideHash ? { guideHash: args.guideHash } : {}),
|
|
156
|
+
...(args.idempotencyKey ? { idempotencyKey: args.idempotencyKey } : {}),
|
|
157
|
+
});
|
|
158
|
+
return { deleted: true, id: documentId };
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
const commentIdField = z.string().min(1).describe('Root comment id (raw id — comment ids carry no prefix).');
|
|
162
|
+
const replyIdField = z.string().min(1).describe('Reply id (raw id). Not interchangeable with a root comment id.');
|
|
163
|
+
const commentExpectedUpdatedAtField = z
|
|
164
|
+
.string()
|
|
165
|
+
.min(1)
|
|
166
|
+
.optional()
|
|
167
|
+
.describe("The comment's updatedAt as you last read it. The write is rejected if someone else changed it since.");
|
|
168
|
+
/**
|
|
169
|
+
* Exactly one target. The server would reject two anyway, but rejecting at the schema means the
|
|
170
|
+
* model is told which shape is wrong instead of receiving a generic 400 after the call.
|
|
171
|
+
*/
|
|
172
|
+
const commentTargetSchema = z.union([
|
|
173
|
+
z.strictObject({
|
|
174
|
+
planId: z.string().min(1).describe('Plan id (bare uuid or agentteams_pln_-prefixed).'),
|
|
175
|
+
type: z
|
|
176
|
+
.enum(['RISK', 'MODIFICATION', 'GENERAL'])
|
|
177
|
+
.describe('Plan comments carry a type. RISK stops a runner executing the plan — do not use it lightly.'),
|
|
178
|
+
affectedFiles: z
|
|
179
|
+
.array(z.string().min(1))
|
|
180
|
+
.optional()
|
|
181
|
+
.describe('Repository paths this comment is about. Plan comments only.'),
|
|
182
|
+
content: z.string().min(1).describe('Comment body in Markdown.'),
|
|
183
|
+
guideHash: guideHashField,
|
|
184
|
+
idempotencyKey: idempotencyKeyField,
|
|
185
|
+
}),
|
|
186
|
+
z.strictObject({
|
|
187
|
+
taskId: z.string().min(1).describe('Plan task id (bare uuid or agentteams_tsk_-prefixed).'),
|
|
188
|
+
content: z.string().min(1).describe('Comment body in Markdown.'),
|
|
189
|
+
guideHash: guideHashField,
|
|
190
|
+
idempotencyKey: idempotencyKeyField,
|
|
191
|
+
}),
|
|
192
|
+
z.strictObject({
|
|
193
|
+
documentId: z.string().min(1).describe('Document id (bare uuid or agentteams_doc_-prefixed).'),
|
|
194
|
+
content: z.string().min(1).describe('Comment body in Markdown.'),
|
|
195
|
+
guideHash: guideHashField,
|
|
196
|
+
idempotencyKey: idempotencyKeyField,
|
|
197
|
+
}),
|
|
198
|
+
z.strictObject({
|
|
199
|
+
findingId: z.string().min(1).describe('Code-review finding id (bare uuid or agentteams_rvf_-prefixed).'),
|
|
200
|
+
content: z.string().min(1).describe('Comment body in Markdown.'),
|
|
201
|
+
guideHash: guideHashField,
|
|
202
|
+
idempotencyKey: idempotencyKeyField,
|
|
203
|
+
}),
|
|
204
|
+
]);
|
|
205
|
+
const commentCreateSpec = {
|
|
206
|
+
name: 'agentteams_comment_create',
|
|
207
|
+
title: 'Create AgentTeams Comment',
|
|
208
|
+
description: [
|
|
209
|
+
'Add a root comment to a plan, a plan task, a document, or a code-review finding.',
|
|
210
|
+
'Pass exactly one of planId, taskId, documentId, findingId — a comment has one parent by construction.',
|
|
211
|
+
'Only a plan comment carries type and affectedFiles; the other targets take content alone.',
|
|
212
|
+
COMMENT_GUIDE_FIRST,
|
|
213
|
+
'Comments on a DONE or CANCELLED plan (and on its tasks) are rejected.',
|
|
214
|
+
PROJECT_SCOPE,
|
|
215
|
+
'Returns the created comment id and the webUrl of the parent screen a human can open.',
|
|
216
|
+
].join(' '),
|
|
217
|
+
inputSchema: commentTargetSchema,
|
|
218
|
+
handler: async (args, context) => {
|
|
219
|
+
const headers = await auth(context);
|
|
220
|
+
const contract = definedFields({ guideHash: args.guideHash, idempotencyKey: args.idempotencyKey });
|
|
221
|
+
if ('planId' in args) {
|
|
222
|
+
return createComment(context.apiUrl, context.projectId, headers, stripContextEntityIdPrefix(args.planId), {
|
|
223
|
+
type: args.type,
|
|
224
|
+
content: args.content,
|
|
225
|
+
...(args.affectedFiles ? { affectedFiles: args.affectedFiles } : {}),
|
|
226
|
+
...contract,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if ('taskId' in args) {
|
|
230
|
+
return createTaskComment(context.apiUrl, context.projectId, headers, stripContextEntityIdPrefix(args.taskId), {
|
|
231
|
+
content: args.content,
|
|
232
|
+
...contract,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
if ('findingId' in args) {
|
|
236
|
+
return createFindingComment(context.apiUrl, context.projectId, headers, stripContextEntityIdPrefix(args.findingId), { content: args.content, ...contract });
|
|
237
|
+
}
|
|
238
|
+
return createDocumentComment(context.apiUrl, context.projectId, headers, stripContextEntityIdPrefix(args.documentId), { content: args.content, ...contract });
|
|
239
|
+
},
|
|
240
|
+
};
|
|
241
|
+
const commentUpdateSpec = {
|
|
242
|
+
name: 'agentteams_comment_update',
|
|
243
|
+
title: 'Update AgentTeams Comment',
|
|
244
|
+
description: [
|
|
245
|
+
'Edit a root comment. Only the author may edit; this refuses a reply id (use agentteams_comment_reply_update).',
|
|
246
|
+
COMMENT_GUIDE_FIRST,
|
|
247
|
+
'Pass expectedUpdatedAt (from agentteams_comment_get) so a concurrent edit is rejected rather than silently overwritten.',
|
|
248
|
+
PROJECT_SCOPE,
|
|
249
|
+
].join(' '),
|
|
250
|
+
inputSchema: z.strictObject({
|
|
251
|
+
commentId: commentIdField,
|
|
252
|
+
content: z.string().min(1).describe('New body in Markdown. Replaces the whole comment.'),
|
|
253
|
+
type: z
|
|
254
|
+
.enum(['RISK', 'MODIFICATION', 'GENERAL'])
|
|
255
|
+
.optional()
|
|
256
|
+
.describe('Plan comments only. Leave unset for task, document, and finding comments.'),
|
|
257
|
+
affectedFiles: z.array(z.string().min(1)).optional().describe('Plan comments only.'),
|
|
258
|
+
expectedUpdatedAt: commentExpectedUpdatedAtField,
|
|
259
|
+
guideHash: guideHashField,
|
|
260
|
+
idempotencyKey: idempotencyKeyField,
|
|
261
|
+
}),
|
|
262
|
+
handler: async (args, context) => {
|
|
263
|
+
return updateComment(context.apiUrl, context.projectId, await auth(context), stripContextEntityIdPrefix(args.commentId), definedFields({
|
|
264
|
+
content: args.content,
|
|
265
|
+
type: args.type,
|
|
266
|
+
affectedFiles: args.affectedFiles,
|
|
267
|
+
expectedUpdatedAt: args.expectedUpdatedAt,
|
|
268
|
+
guideHash: args.guideHash,
|
|
269
|
+
idempotencyKey: args.idempotencyKey,
|
|
270
|
+
}));
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
const commentDeleteSpec = {
|
|
274
|
+
name: 'agentteams_comment_delete',
|
|
275
|
+
title: 'Delete AgentTeams Comment',
|
|
276
|
+
description: [
|
|
277
|
+
'Delete a root comment. This is destructive and takes the whole thread with it — every reply under it disappears too.',
|
|
278
|
+
COMMENT_GUIDE_FIRST,
|
|
279
|
+
'Without expectedUpdatedAt this is an unconditional delete: it removes the comment even if someone edited it after you last read it.',
|
|
280
|
+
'Confirm with the user before deleting anything you did not just create.',
|
|
281
|
+
'This refuses a reply id — use agentteams_comment_reply_delete for a reply.',
|
|
282
|
+
PROJECT_SCOPE,
|
|
283
|
+
].join(' '),
|
|
284
|
+
inputSchema: z.strictObject({
|
|
285
|
+
commentId: commentIdField,
|
|
286
|
+
expectedUpdatedAt: commentExpectedUpdatedAtField,
|
|
287
|
+
guideHash: guideHashField,
|
|
288
|
+
idempotencyKey: idempotencyKeyField,
|
|
289
|
+
}),
|
|
290
|
+
handler: async (args, context) => {
|
|
291
|
+
const commentId = stripContextEntityIdPrefix(args.commentId);
|
|
292
|
+
await deleteComment(context.apiUrl, context.projectId, await auth(context), commentId, definedFields({
|
|
293
|
+
expectedUpdatedAt: args.expectedUpdatedAt,
|
|
294
|
+
guideHash: args.guideHash,
|
|
295
|
+
idempotencyKey: args.idempotencyKey,
|
|
296
|
+
}));
|
|
297
|
+
return { deleted: true, id: commentId };
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
const commentReplyCreateSpec = {
|
|
301
|
+
name: 'agentteams_comment_reply_create',
|
|
302
|
+
title: 'Reply to an AgentTeams Comment',
|
|
303
|
+
description: [
|
|
304
|
+
'Add a reply to a root comment. The reply inherits the root comment’s target; you do not choose one.',
|
|
305
|
+
'Replies are one level deep — a reply cannot be the parent of another reply, and passing a reply id here is rejected.',
|
|
306
|
+
COMMENT_GUIDE_FIRST,
|
|
307
|
+
PROJECT_SCOPE,
|
|
308
|
+
'Returns the created reply id and the webUrl of the parent screen a human can open.',
|
|
309
|
+
].join(' '),
|
|
310
|
+
inputSchema: z.strictObject({
|
|
311
|
+
commentId: commentIdField,
|
|
312
|
+
content: z.string().min(1).describe('Reply body in Markdown.'),
|
|
313
|
+
guideHash: guideHashField,
|
|
314
|
+
idempotencyKey: idempotencyKeyField,
|
|
315
|
+
}),
|
|
316
|
+
handler: async (args, context) => {
|
|
317
|
+
return createReply(context.apiUrl, context.projectId, await auth(context), stripContextEntityIdPrefix(args.commentId), definedFields({
|
|
318
|
+
content: args.content,
|
|
319
|
+
guideHash: args.guideHash,
|
|
320
|
+
idempotencyKey: args.idempotencyKey,
|
|
321
|
+
}));
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
const commentReplyUpdateSpec = {
|
|
325
|
+
name: 'agentteams_comment_reply_update',
|
|
326
|
+
title: 'Update AgentTeams Comment Reply',
|
|
327
|
+
description: [
|
|
328
|
+
'Edit a reply. Only the author may edit; this refuses a root comment id (use agentteams_comment_update).',
|
|
329
|
+
COMMENT_GUIDE_FIRST,
|
|
330
|
+
'Pass expectedUpdatedAt (from agentteams_comment_reply_get) so a concurrent edit is rejected rather than silently overwritten.',
|
|
331
|
+
PROJECT_SCOPE,
|
|
332
|
+
].join(' '),
|
|
333
|
+
inputSchema: z.strictObject({
|
|
334
|
+
replyId: replyIdField,
|
|
335
|
+
content: z.string().min(1).describe('New body in Markdown. Replaces the whole reply.'),
|
|
336
|
+
expectedUpdatedAt: commentExpectedUpdatedAtField,
|
|
337
|
+
guideHash: guideHashField,
|
|
338
|
+
idempotencyKey: idempotencyKeyField,
|
|
339
|
+
}),
|
|
340
|
+
handler: async (args, context) => {
|
|
341
|
+
return updateReply(context.apiUrl, context.projectId, await auth(context), stripContextEntityIdPrefix(args.replyId), definedFields({
|
|
342
|
+
content: args.content,
|
|
343
|
+
expectedUpdatedAt: args.expectedUpdatedAt,
|
|
344
|
+
guideHash: args.guideHash,
|
|
345
|
+
idempotencyKey: args.idempotencyKey,
|
|
346
|
+
}));
|
|
347
|
+
},
|
|
348
|
+
};
|
|
349
|
+
const commentReplyDeleteSpec = {
|
|
350
|
+
name: 'agentteams_comment_reply_delete',
|
|
351
|
+
title: 'Delete AgentTeams Comment Reply',
|
|
352
|
+
description: [
|
|
353
|
+
'Delete a reply. This is destructive.',
|
|
354
|
+
COMMENT_GUIDE_FIRST,
|
|
355
|
+
'Without expectedUpdatedAt this is an unconditional delete: it removes the reply even if someone edited it after you last read it.',
|
|
356
|
+
'Confirm with the user before deleting anything you did not just create.',
|
|
357
|
+
'This refuses a root comment id — use agentteams_comment_delete for a root comment.',
|
|
358
|
+
PROJECT_SCOPE,
|
|
359
|
+
].join(' '),
|
|
360
|
+
inputSchema: z.strictObject({
|
|
361
|
+
replyId: replyIdField,
|
|
362
|
+
expectedUpdatedAt: commentExpectedUpdatedAtField,
|
|
363
|
+
guideHash: guideHashField,
|
|
364
|
+
idempotencyKey: idempotencyKeyField,
|
|
365
|
+
}),
|
|
366
|
+
handler: async (args, context) => {
|
|
367
|
+
const replyId = stripContextEntityIdPrefix(args.replyId);
|
|
368
|
+
await deleteReply(context.apiUrl, context.projectId, await auth(context), replyId, definedFields({
|
|
369
|
+
expectedUpdatedAt: args.expectedUpdatedAt,
|
|
370
|
+
guideHash: args.guideHash,
|
|
371
|
+
idempotencyKey: args.idempotencyKey,
|
|
372
|
+
}));
|
|
373
|
+
return { deleted: true, id: replyId };
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
/** Every write tool the CLI MCP server exposes, in registration order. */
|
|
377
|
+
export function getWriteToolSpecs() {
|
|
378
|
+
return [
|
|
379
|
+
guideGetSpec,
|
|
380
|
+
documentCreateSpec,
|
|
381
|
+
documentUpdateSpec,
|
|
382
|
+
documentDeleteSpec,
|
|
383
|
+
commentCreateSpec,
|
|
384
|
+
commentUpdateSpec,
|
|
385
|
+
commentDeleteSpec,
|
|
386
|
+
commentReplyCreateSpec,
|
|
387
|
+
commentReplyUpdateSpec,
|
|
388
|
+
commentReplyDeleteSpec,
|
|
389
|
+
];
|
|
390
|
+
}
|
|
391
|
+
//# sourceMappingURL=writeTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeTools.js","sourceRoot":"","sources":["../../src/mcp/writeTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAsCF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAYjF;AA4BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAsH1E"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -119,9 +119,28 @@ Details: ${message}`;
|
|
|
119
119
|
case 404:
|
|
120
120
|
return `Resource not found.\nNext: Check identifiers (e.g., --id) and the target project.\nDetails: ${message}`;
|
|
121
121
|
case 409:
|
|
122
|
+
// The server names the guide and the hash it wants, so the recovery is
|
|
123
|
+
// mechanical: resync, re-read the guide, retry. Say that instead of a bare "conflict".
|
|
124
|
+
if (errorCode === 'GUIDE_OUTDATED') {
|
|
125
|
+
const guideFileName = typeof data?.guideFileName === 'string' ? data.guideFileName : 'the platform guide';
|
|
126
|
+
const requiredGuideHash = typeof data?.requiredGuideHash === 'string' ? `\nRequired hash: ${data.requiredGuideHash}` : '';
|
|
127
|
+
return `Conflict (outdated ${guideFileName}).
|
|
128
|
+
Next: Run 'agentteams convention download' to resync platform guides, re-read ${guideFileName}, then retry with the refreshed hash.${requiredGuideHash}
|
|
129
|
+
Details: ${message}`;
|
|
130
|
+
}
|
|
131
|
+
if (errorDetailCode === 'MUTATION_IN_PROGRESS') {
|
|
132
|
+
return `Conflict (same idempotency key still running).
|
|
133
|
+
Next: An earlier request with this key has not finished. Wait a moment and repeat the same request — it will replay that result instead of writing twice.
|
|
134
|
+
Details: ${message}`;
|
|
135
|
+
}
|
|
136
|
+
if (errorDetailCode === 'MUTATION_IDEMPOTENCY_KEY_REUSED') {
|
|
137
|
+
return `Conflict (idempotency key reused).
|
|
138
|
+
Next: This key was already used for a different request. Use a new --idempotency-key, or repeat the original request unchanged to replay it.
|
|
139
|
+
Details: ${message}`;
|
|
140
|
+
}
|
|
122
141
|
if (errorCode === 'OPTIMISTIC_LOCK_CONFLICT') {
|
|
123
142
|
return `Conflict (stale update).
|
|
124
|
-
Next:
|
|
143
|
+
Next: Re-read the record and retry with its latest updatedAt. For conventions, run 'agentteams convention download' first.
|
|
125
144
|
Details: ${message}`;
|
|
126
145
|
}
|
|
127
146
|
return `Conflict.\nNext: If this is a convention update/delete, run 'agentteams convention download' and retry.\nDetails: ${message}`;
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAoBlE,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAiD;QAC5D,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,kDAAkD,EAAE;QAC5F,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,mDAAmD,EAAE;QAC9F,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mCAAmC,EAAE;QAC1E,EAAE,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,kCAAkC,EAAE;KACnF,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,OAAsB;IAC7D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;QACvE,MAAM,SAAS,GAAI,KAA0B,CAAC,iBAAiB,CAAC;QAChE,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,OAAqB;IACtE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,GAAG,CAAE,KAA0B,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACxD,GAAG,OAAO;KACX,CAAC;IAED,KAA0B,CAAC,iBAAiB,GAAG,WAAW,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAqD;IACzF,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,KAAK,GAAa;QACtB,qDAAqD;QACrD,4CAA4C;QAC5C,yCAAyC;KAC1C,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAS,EACT,wBAAwB,EACxB,yFAAyF,EACzF,uBAAuB,CACxB,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,OAAsB;IAChE,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAmC,CAAC;YAChE,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YACpF,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzG,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACrG,MAAM,cAAc,GAAG,OAAO,IAAI,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAElG,IAAI,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;gBAC3D,OAAO,4BAA4B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,GAAG;oBACN,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;wBACrC,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO,6HAA6H,OAAO,EAAE,CAAC;gBAChJ,KAAK,GAAG;oBACN,2EAA2E;oBAC3E,4EAA4E;oBAC5E,0EAA0E;oBAC1E,yBAAyB;oBACzB,IAAI,eAAe,KAAK,uBAAuB,EAAE,CAAC;wBAChD,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,qEAAqE;oBACrE,qEAAqE;oBACrE,IAAI,mBAAmB,EAAE,EAAE,CAAC;wBAC1B,OAAO,4GAA4G,OAAO,EAAE,CAAC;oBAC/H,CAAC;oBACD,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;wBAClC,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO,oJAAoJ,OAAO,EAAE,CAAC;gBACvK,KAAK,GAAG;oBACN,IAAI,SAAS,KAAK,6BAA6B,EAAE,CAAC;wBAChD,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,SAAS,KAAK,4BAA4B,EAAE,CAAC;wBAC/C,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,SAAS,KAAK,0BAA0B,EAAE,CAAC;wBAC7C,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBACnF,OAAO,+JAA+J,OAAO,EAAE,CAAC;oBAClL,CAAC;oBACD,OAAO,uFAAuF,OAAO,EAAE,CAAC;gBAC1G,KAAK,GAAG;oBACN,OAAO,+FAA+F,OAAO,EAAE,CAAC;gBAClH,KAAK,GAAG;oBACN,uEAAuE;oBACvE,uFAAuF;oBACvF,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;wBACnC,MAAM,aAAa,GAAG,OAAO,IAAI,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC;wBAC1G,MAAM,iBAAiB,GACrB,OAAO,IAAI,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClG,OAAO,sBAAsB,aAAa;gFAC0B,aAAa,wCAAwC,iBAAiB;WAC3I,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,eAAe,KAAK,sBAAsB,EAAE,CAAC;wBAC/C,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,eAAe,KAAK,iCAAiC,EAAE,CAAC;wBAC1D,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,IAAI,SAAS,KAAK,0BAA0B,EAAE,CAAC;wBAC7C,OAAO;;WAER,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO,qHAAqH,OAAO,EAAE,CAAC;gBACxI,KAAK,GAAG;oBACN,OAAO,0HAA0H,OAAO,EAAE,CAAC;gBAC7I;oBACE,OAAO,QAAQ,MAAM,WAAW,OAAO,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,eAAe,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACzE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,+BAA+B,MAAM,4DAA4D,CAAC;YAC3G,CAAC;YACD,OAAO,4GAA4G,CAAC;QACtH,CAAC;QAED,OAAO,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentteams/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.87",
|
|
4
4
|
"description": "CLI tool for AgentTeams API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"node": ">=20.12.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@agentteams/context-tools": "0.1.
|
|
45
|
+
"@agentteams/context-tools": "0.1.3",
|
|
46
46
|
"@clack/prompts": "^1.4.0",
|
|
47
47
|
"@modelcontextprotocol/server": "2.0.0",
|
|
48
48
|
"axios": "^1.16.1",
|