@agentteams/cli 0.1.92 → 0.1.94
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/README.md +2 -0
- package/dist/api/linear.d.ts +1 -1
- package/dist/api/linear.d.ts.map +1 -1
- package/dist/api/linear.js +8 -2
- package/dist/api/linear.js.map +1 -1
- package/dist/api/report.d.ts +1 -0
- package/dist/api/report.d.ts.map +1 -1
- package/dist/api/report.js +5 -0
- package/dist/api/report.js.map +1 -1
- package/dist/commands/convention.d.ts +3 -0
- package/dist/commands/convention.d.ts.map +1 -1
- package/dist/commands/convention.js +35 -5
- package/dist/commands/convention.js.map +1 -1
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +93 -45
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +110 -27
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +659 -462
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/initWorktree.d.ts +32 -0
- package/dist/commands/initWorktree.d.ts.map +1 -0
- package/dist/commands/initWorktree.js +348 -0
- package/dist/commands/initWorktree.js.map +1 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +40 -7
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/resolve.js +1 -1
- package/dist/commands/resolve.js.map +1 -1
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp/catalog.d.ts +3 -0
- package/dist/mcp/catalog.d.ts.map +1 -1
- package/dist/mcp/catalog.js +4 -0
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/localTools.d.ts +65 -0
- package/dist/mcp/localTools.d.ts.map +1 -0
- package/dist/mcp/localTools.js +210 -0
- package/dist/mcp/localTools.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +6 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/writeTools.d.ts +3 -12
- package/dist/mcp/writeTools.d.ts.map +1 -1
- package/dist/mcp/writeTools.js +2 -41
- package/dist/mcp/writeTools.js.map +1 -1
- package/dist/utils/agentEntryPoints.d.ts +68 -0
- package/dist/utils/agentEntryPoints.d.ts.map +1 -0
- package/dist/utils/agentEntryPoints.js +112 -0
- package/dist/utils/agentEntryPoints.js.map +1 -0
- package/dist/utils/authServer.d.ts +51 -1
- package/dist/utils/authServer.d.ts.map +1 -1
- package/dist/utils/authServer.js +77 -0
- package/dist/utils/authServer.js.map +1 -1
- package/dist/utils/doctorOutput.d.ts.map +1 -1
- package/dist/utils/doctorOutput.js +7 -3
- package/dist/utils/doctorOutput.js.map +1 -1
- package/dist/utils/git.d.ts +28 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +43 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/initOutput.d.ts.map +1 -1
- package/dist/utils/initOutput.js +97 -15
- package/dist/utils/initOutput.js.map +1 -1
- package/dist/utils/report.d.ts +1 -1
- package/dist/utils/report.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { defineToolDiscoveryMetadata, executeContextTool } from '@agentteams/context-tools';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { posix, resolve as resolvePath } from 'node:path';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { getLinearIssue } from '../api/linear.js';
|
|
6
|
+
import { getPlanTask } from '../api/task.js';
|
|
7
|
+
import { parseEntityRef, SUPPORTED_REF_FORMS } from '../utils/entityRef.js';
|
|
8
|
+
import { GUIDE_RECORD_KINDS, describeMissingGuideHash, resolvePlatformGuide } from './guides.js';
|
|
9
|
+
import { createCliContextToolsClient } from './tools.js';
|
|
10
|
+
/** Credentials can expire mid-session, so headers are resolved per call, never captured. */
|
|
11
|
+
export const resolveToolHeaders = (context) => context.resolveHeaders?.() ?? Promise.resolve(context.headers);
|
|
12
|
+
const guideDiscovery = defineToolDiscoveryMetadata({
|
|
13
|
+
domain: 'guides',
|
|
14
|
+
profiles: ['full', 'documents', 'comments'],
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* `search` on purpose: resolving a reference is the same "find the record this
|
|
18
|
+
* text points at" job, and a new discovery domain would have to be added to the
|
|
19
|
+
* shared package — a release chain this CLI-local tool exists to avoid.
|
|
20
|
+
*
|
|
21
|
+
* `full` only. The narrow profiles are scoped surfaces (`documents` may not read
|
|
22
|
+
* plans, `minimal` is defined as exactly the always-on set), and this tool
|
|
23
|
+
* dispatches to *every* entity type — advertising it inside a narrow profile
|
|
24
|
+
* would hand that profile a way around its own scope.
|
|
25
|
+
*
|
|
26
|
+
* `deferable` is left at its default (true) on purpose: in the shared package
|
|
27
|
+
* `deferable: false` marks the always-on `minimal` set, and a `full`-only tool
|
|
28
|
+
* this size has no business being pre-loaded into every request.
|
|
29
|
+
*/
|
|
30
|
+
const resolveDiscovery = defineToolDiscoveryMetadata({
|
|
31
|
+
domain: 'search',
|
|
32
|
+
profiles: ['full'],
|
|
33
|
+
});
|
|
34
|
+
const guideGetSpec = {
|
|
35
|
+
name: 'agentteams_guide_get',
|
|
36
|
+
title: 'Get AgentTeams Record Guide',
|
|
37
|
+
description: [
|
|
38
|
+
'Fetch the platform guide that governs how a record type must be written.',
|
|
39
|
+
'Reads this project’s local copy when the session sits in it, and falls back to the server otherwise.',
|
|
40
|
+
'Returns the full guide body plus the guideHash to pass to the matching write tool.',
|
|
41
|
+
'Read this before any AgentTeams write tool call — the rules it states (visibility, tag policy, structure) are enforced server-side.',
|
|
42
|
+
'If it reports that the local guide hash is unknown, run `agentteams convention download` in the project.',
|
|
43
|
+
].join(' '),
|
|
44
|
+
discovery: guideDiscovery,
|
|
45
|
+
inputSchema: z.strictObject({
|
|
46
|
+
recordKind: z
|
|
47
|
+
.enum(GUIDE_RECORD_KINDS)
|
|
48
|
+
.describe('Record type whose guide you need. "document" and "comment" are write-enabled.'),
|
|
49
|
+
}),
|
|
50
|
+
handler: async (args, context) => {
|
|
51
|
+
const guide = await resolvePlatformGuide(args.recordKind, {
|
|
52
|
+
projectRoot: context.projectRoot,
|
|
53
|
+
apiUrl: context.apiUrl,
|
|
54
|
+
headers: await resolveToolHeaders(context),
|
|
55
|
+
});
|
|
56
|
+
const warning = describeMissingGuideHash(guide);
|
|
57
|
+
return {
|
|
58
|
+
recordKind: guide.recordKind,
|
|
59
|
+
fileName: guide.fileName,
|
|
60
|
+
source: guide.source,
|
|
61
|
+
...(guide.filePath ? { filePath: guide.filePath } : {}),
|
|
62
|
+
guideHash: guide.guideHash,
|
|
63
|
+
content: guide.content,
|
|
64
|
+
...(warning ? { warning } : {}),
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Body-bearing and record references both end up inlined, so one map covers
|
|
70
|
+
* both CLI `kind`s. Absent types (`planTask`, `LINEAR_ISSUE`) have no shared
|
|
71
|
+
* read tool and are dispatched to the CLI API layer directly.
|
|
72
|
+
*/
|
|
73
|
+
const READ_TOOL_BY_REF_TYPE = {
|
|
74
|
+
plan: 'agentteams_plan_get',
|
|
75
|
+
completionReport: 'agentteams_report_get',
|
|
76
|
+
postMortem: 'agentteams_postmortem_get',
|
|
77
|
+
coAction: 'agentteams_coaction_get',
|
|
78
|
+
document: 'agentteams_document_get',
|
|
79
|
+
convention: 'agentteams_convention_get',
|
|
80
|
+
codeReview: 'agentteams_codereview_get',
|
|
81
|
+
codeReviewFinding: 'agentteams_codereview_finding_get',
|
|
82
|
+
};
|
|
83
|
+
/** Conventions are only ever deployed under `.agentteams/`. */
|
|
84
|
+
const CONVENTION_PATH_ROOT = '.agentteams';
|
|
85
|
+
/**
|
|
86
|
+
* A reference is user-authored text, and this envelope turns its path segment
|
|
87
|
+
* into a machine-readable "read this file" instruction — so the path has to stay
|
|
88
|
+
* inside the project's `.agentteams/` subtree or a crafted reference could
|
|
89
|
+
* nominate any file on the machine. The check is purely lexical, and runs before
|
|
90
|
+
* the path is anchored to anything; a path that escapes degrades to the server
|
|
91
|
+
* record rather than being trusted.
|
|
92
|
+
*/
|
|
93
|
+
function containedConventionPath(path) {
|
|
94
|
+
const normalized = posix.normalize(path.replaceAll('\\', '/'));
|
|
95
|
+
if (posix.isAbsolute(normalized) || /^[a-zA-Z]:/.test(normalized))
|
|
96
|
+
return null;
|
|
97
|
+
const relative = posix.relative(CONVENTION_PATH_ROOT, normalized);
|
|
98
|
+
if (relative.length === 0 || relative.startsWith('..'))
|
|
99
|
+
return null;
|
|
100
|
+
return normalized;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Turn a contained relative path into the envelope's local-file fields, or null
|
|
104
|
+
* when the caller should fall back to the server record.
|
|
105
|
+
*
|
|
106
|
+
* With a verified {@link McpToolContext.projectRoot} the path is anchored and
|
|
107
|
+
* checked for existence, so a convention that was never downloaded degrades to
|
|
108
|
+
* the server copy exactly like `agentteams resolve` does — an MCP server is
|
|
109
|
+
* spawned from an arbitrary cwd, so a bare relative path would otherwise be read
|
|
110
|
+
* against the host agent's directory and could hit an unrelated repository's
|
|
111
|
+
* file of the same name. Without a project root the relative path is still the
|
|
112
|
+
* most this tool knows, and the message has to say what it is relative to.
|
|
113
|
+
*/
|
|
114
|
+
function describeLocalFile(path, projectRoot) {
|
|
115
|
+
if (!projectRoot) {
|
|
116
|
+
return {
|
|
117
|
+
message: `Read this project file yourself: ${path} (relative to the project root — this session is not bound to a local checkout)`,
|
|
118
|
+
path,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const filePath = resolvePath(projectRoot, path);
|
|
122
|
+
if (!existsSync(filePath))
|
|
123
|
+
return null;
|
|
124
|
+
return { message: `Read this project file yourself: ${filePath}`, path, filePath };
|
|
125
|
+
}
|
|
126
|
+
async function resolveInlineRecord(parsed, context) {
|
|
127
|
+
if (parsed.refType === 'planTask') {
|
|
128
|
+
// Not in the shared `ContextToolsClient` contract — see the module note.
|
|
129
|
+
return getPlanTask(context.apiUrl, context.projectId, await resolveToolHeaders(context), parsed.id, parsed.parentId);
|
|
130
|
+
}
|
|
131
|
+
if (parsed.refType === 'LINEAR_ISSUE') {
|
|
132
|
+
// `projectId` is not optional in practice: without it a personal-token
|
|
133
|
+
// session (the default for `agentteams mcp`) gets 401 from the Linear route.
|
|
134
|
+
return getLinearIssue(context.apiUrl, await resolveToolHeaders(context), parsed.id, context.projectId);
|
|
135
|
+
}
|
|
136
|
+
const toolName = READ_TOOL_BY_REF_TYPE[parsed.refType];
|
|
137
|
+
if (!toolName) {
|
|
138
|
+
throw new Error(`No MCP read tool for reference type: ${parsed.refType}`);
|
|
139
|
+
}
|
|
140
|
+
// Delegating keeps truncation and `omitDocumentEditorMirror` defined once, in
|
|
141
|
+
// the read tool, instead of forking a second policy here.
|
|
142
|
+
return executeContextTool(toolName, parsed.refType === 'codeReviewFinding' && parsed.parentId
|
|
143
|
+
? { id: parsed.id, codeReviewId: parsed.parentId }
|
|
144
|
+
: { id: parsed.id }, createCliContextToolsClient(context));
|
|
145
|
+
}
|
|
146
|
+
const resolveSpec = {
|
|
147
|
+
name: 'agentteams_resolve',
|
|
148
|
+
title: 'Resolve an AgentTeams Entity Reference',
|
|
149
|
+
description: [
|
|
150
|
+
'Resolve one entity reference token from a user message, plan body, or comment — pass it verbatim and this works out the type for you.',
|
|
151
|
+
`Accepted forms: ${SUPPORTED_REF_FORMS}.`,
|
|
152
|
+
'Use this when the type has to be worked out from the token; when you already know the type, the matching agentteams_*_get tool is cheaper.',
|
|
153
|
+
'Act on the returned kind: `record` → use the inline payload; `localFile` → read the returned `filePath` yourself, falling back to the project-root-relative `path` when no `filePath` is given (this tool never reads local files); `external` → open `url` or run `suggestedCommand` (`gh`, `glab`), which this tool never executes.',
|
|
154
|
+
'Body-bearing entities (plan, completionReport, postMortem, coAction, document) come back as `record` with their content inline — nothing is written to disk.',
|
|
155
|
+
'AgentTeams references are scoped to the single project this MCP server is bound to.',
|
|
156
|
+
].join(' '),
|
|
157
|
+
discovery: resolveDiscovery,
|
|
158
|
+
inputSchema: z.strictObject({
|
|
159
|
+
ref: z
|
|
160
|
+
.string()
|
|
161
|
+
.min(1)
|
|
162
|
+
.describe('The reference token exactly as it appears, including any surrounding [label](...) markdown link.'),
|
|
163
|
+
}),
|
|
164
|
+
handler: async (args, context) => {
|
|
165
|
+
const parsed = parseEntityRef(args.ref);
|
|
166
|
+
const base = {
|
|
167
|
+
refType: parsed.refType,
|
|
168
|
+
id: parsed.id,
|
|
169
|
+
fallbackCommand: parsed.fallbackCommand,
|
|
170
|
+
...(parsed.parentId ? { parentId: parsed.parentId } : {}),
|
|
171
|
+
};
|
|
172
|
+
if (parsed.kind === 'external') {
|
|
173
|
+
return {
|
|
174
|
+
...base,
|
|
175
|
+
kind: 'external',
|
|
176
|
+
message: parsed.suggestedCommand
|
|
177
|
+
? `${parsed.refType} reference — fetch it with: ${parsed.suggestedCommand}`
|
|
178
|
+
: `${parsed.refType} reference — open the URL directly`,
|
|
179
|
+
...(parsed.url ? { url: parsed.url } : {}),
|
|
180
|
+
...(parsed.suggestedCommand ? { suggestedCommand: parsed.suggestedCommand } : {}),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
if (parsed.kind === 'localFile') {
|
|
184
|
+
const contained = parsed.path ? containedConventionPath(parsed.path) : null;
|
|
185
|
+
const localFile = contained ? describeLocalFile(contained, context.projectRoot) : null;
|
|
186
|
+
if (localFile) {
|
|
187
|
+
return { ...base, kind: 'localFile', ...localFile };
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
...base,
|
|
191
|
+
kind: 'record',
|
|
192
|
+
message: contained
|
|
193
|
+
? `Local path not found under ${CONVENTION_PATH_ROOT}/ (${parsed.path}); returning the server record instead`
|
|
194
|
+
: `Path outside ${CONVENTION_PATH_ROOT}/ (${parsed.path}); returning the server record instead`,
|
|
195
|
+
record: await resolveInlineRecord(parsed, context),
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
...base,
|
|
200
|
+
kind: 'record',
|
|
201
|
+
message: `${parsed.refType} resolved`,
|
|
202
|
+
record: await resolveInlineRecord(parsed, context),
|
|
203
|
+
};
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
/** Every CLI-local non-write tool the MCP server exposes, in registration order. */
|
|
207
|
+
export function getLocalToolSpecs() {
|
|
208
|
+
return [guideGetSpec, resolveSpec];
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=localTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localTools.js","sourceRoot":"","sources":["../../src/mcp/localTools.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAoB,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAS1E,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,MAAoB,EAC7B,WAAW,GAAE,WAAoB,GAChC,SAAS,CAOX;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAoB,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAS1E,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,MAAoB,EAC7B,WAAW,GAAE,WAAoB,GAChC,SAAS,CAOX;AA2FD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBtG"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -30,9 +30,10 @@ export function createMcpServer(context, version = pkg.version, toolProfile = 'f
|
|
|
30
30
|
/**
|
|
31
31
|
* The single `registerTool` loop — tool envelopes are assembled only here.
|
|
32
32
|
*
|
|
33
|
-
* Read specs come from the shared `@agentteams/context-tools` package;
|
|
34
|
-
* specs are CLI-local by design (see `writeTools.ts`).
|
|
35
|
-
* same `(args) => unknown` shape first so there
|
|
33
|
+
* Read specs come from the shared `@agentteams/context-tools` package; local and
|
|
34
|
+
* write specs are CLI-local by design (see `localTools.ts` / `writeTools.ts`).
|
|
35
|
+
* All three are flattened to the same `(args) => unknown` shape first so there
|
|
36
|
+
* is still exactly one loop.
|
|
36
37
|
*/
|
|
37
38
|
function registerTools(server, context, toolProfile) {
|
|
38
39
|
const client = createCliContextToolsClient(context);
|
|
@@ -41,11 +42,11 @@ function registerTools(server, context, toolProfile) {
|
|
|
41
42
|
...spec,
|
|
42
43
|
invoke: (args) => spec.handler(args, client),
|
|
43
44
|
}));
|
|
44
|
-
const
|
|
45
|
+
const contextTools = [...profileSpecs.localTools, ...profileSpecs.writeTools].map((spec) => ({
|
|
45
46
|
...spec,
|
|
46
47
|
invoke: (args) => spec.handler(args, context),
|
|
47
48
|
}));
|
|
48
|
-
for (const spec of [...readTools, ...
|
|
49
|
+
for (const spec of [...readTools, ...contextTools]) {
|
|
49
50
|
server.registerTool(spec.name, {
|
|
50
51
|
title: spec.title,
|
|
51
52
|
description: spec.description,
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAA0B,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAuB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAuB,EACvB,UAAkB,GAAG,CAAC,OAAO,EAC7B,cAA2B,MAAM;IAEjC,wEAAwE;IACxE,4CAA4C;IAC5C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjH,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/writeTools.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import type { McpToolContext } from './context.js';
|
|
1
|
+
import { type McpLocalToolSpec } from './localTools.js';
|
|
4
2
|
/**
|
|
5
3
|
* MCP **write** tools. CLI-only on purpose.
|
|
6
4
|
*
|
|
@@ -10,18 +8,11 @@ import type { McpToolContext } from './context.js';
|
|
|
10
8
|
* be handed to Direct BYOK conversations — the exact `DESKTOP_LIMITED` boundary
|
|
11
9
|
* that must not grant blanket project write access.
|
|
12
10
|
*
|
|
13
|
-
* The spec shape
|
|
11
|
+
* The spec shape is the CLI-local one declared in `localTools.ts`, so the shared
|
|
14
12
|
* read package stays read-only. No MCP SDK import belongs here — `server.ts` is
|
|
15
13
|
* the only adapter (see `test/mcp-boundary.test.ts`).
|
|
16
14
|
*/
|
|
17
|
-
export
|
|
18
|
-
name: string;
|
|
19
|
-
title: string;
|
|
20
|
-
description: string;
|
|
21
|
-
inputSchema: z.ZodType<Record<string, unknown>>;
|
|
22
|
-
discovery: ToolDiscoveryMetadata;
|
|
23
|
-
handler(args: Record<string, unknown>, context: McpToolContext): Promise<unknown>;
|
|
24
|
-
}
|
|
15
|
+
export type McpWriteToolSpec = McpLocalToolSpec;
|
|
25
16
|
/** Every write tool the CLI MCP server exposes, in registration order. */
|
|
26
17
|
export declare function getWriteToolSpecs(): McpWriteToolSpec[];
|
|
27
18
|
//# sourceMappingURL=writeTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeTools.d.ts","sourceRoot":"","sources":["../../src/mcp/writeTools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writeTools.d.ts","sourceRoot":"","sources":["../../src/mcp/writeTools.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AA6chD,0EAA0E;AAC1E,wBAAgB,iBAAiB,IAAI,gBAAgB,EAAE,CAYtD"}
|
package/dist/mcp/writeTools.js
CHANGED
|
@@ -2,7 +2,7 @@ import { defineToolDiscoveryMetadata, omitDocumentEditorMirror, stripContextEnti
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { createComment, createFindingComment, createReply, createTaskComment, deleteComment, deleteReply, updateComment, updateReply, } from '../api/comment.js';
|
|
4
4
|
import { createDocumentComment, createDocument, deleteDocument, updateDocument } from '../api/document.js';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveToolHeaders } from './localTools.js';
|
|
6
6
|
const GUIDE_FIRST = 'Call agentteams_guide_get("document") first and follow that guide.';
|
|
7
7
|
const COMMENT_GUIDE_FIRST = 'Call agentteams_guide_get("comment") first and follow that guide.';
|
|
8
8
|
const TAG_POLICY = 'You cannot set confirmed tags. Anything you pass in suggestedTags is a suggestion for a human to confirm.';
|
|
@@ -30,10 +30,6 @@ const visibilityField = z
|
|
|
30
30
|
.enum(['PRIVATE', 'PROJECT'])
|
|
31
31
|
.optional()
|
|
32
32
|
.describe('PRIVATE (default) is author-only; PROJECT is visible to every project member.');
|
|
33
|
-
const guideDiscovery = defineToolDiscoveryMetadata({
|
|
34
|
-
domain: 'guides',
|
|
35
|
-
profiles: ['full', 'documents', 'comments'],
|
|
36
|
-
});
|
|
37
33
|
const documentWriteDiscovery = defineToolDiscoveryMetadata({
|
|
38
34
|
domain: 'documents',
|
|
39
35
|
profiles: ['full', 'documents'],
|
|
@@ -43,43 +39,9 @@ const commentWriteDiscovery = defineToolDiscoveryMetadata({
|
|
|
43
39
|
profiles: ['full', 'comments'],
|
|
44
40
|
});
|
|
45
41
|
/** Credentials can expire mid-session, so headers are resolved per call, never captured. */
|
|
46
|
-
const auth =
|
|
42
|
+
const auth = resolveToolHeaders;
|
|
47
43
|
/** Drop keys the caller omitted so an absent optional never reaches the server as `undefined`. */
|
|
48
44
|
const definedFields = (fields) => Object.fromEntries(Object.entries(fields).filter(([, value]) => value !== undefined));
|
|
49
|
-
const guideGetSpec = {
|
|
50
|
-
name: 'agentteams_guide_get',
|
|
51
|
-
title: 'Get AgentTeams Record Guide',
|
|
52
|
-
description: [
|
|
53
|
-
'Fetch the platform guide that governs how a record type must be written.',
|
|
54
|
-
'Reads this project’s local copy when the session sits in it, and falls back to the server otherwise.',
|
|
55
|
-
'Returns the full guide body plus the guideHash to pass to the matching write tool.',
|
|
56
|
-
'Read this before any AgentTeams write tool call — the rules it states (visibility, tag policy, structure) are enforced server-side.',
|
|
57
|
-
'If it reports that the local guide hash is unknown, run `agentteams convention download` in the project.',
|
|
58
|
-
].join(' '),
|
|
59
|
-
discovery: guideDiscovery,
|
|
60
|
-
inputSchema: z.strictObject({
|
|
61
|
-
recordKind: z
|
|
62
|
-
.enum(GUIDE_RECORD_KINDS)
|
|
63
|
-
.describe('Record type whose guide you need. "document" and "comment" are write-enabled.'),
|
|
64
|
-
}),
|
|
65
|
-
handler: async (args, context) => {
|
|
66
|
-
const guide = await resolvePlatformGuide(args.recordKind, {
|
|
67
|
-
projectRoot: context.projectRoot,
|
|
68
|
-
apiUrl: context.apiUrl,
|
|
69
|
-
headers: await auth(context),
|
|
70
|
-
});
|
|
71
|
-
const warning = describeMissingGuideHash(guide);
|
|
72
|
-
return {
|
|
73
|
-
recordKind: guide.recordKind,
|
|
74
|
-
fileName: guide.fileName,
|
|
75
|
-
source: guide.source,
|
|
76
|
-
...(guide.filePath ? { filePath: guide.filePath } : {}),
|
|
77
|
-
guideHash: guide.guideHash,
|
|
78
|
-
content: guide.content,
|
|
79
|
-
...(warning ? { warning } : {}),
|
|
80
|
-
};
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
45
|
const documentCreateSpec = {
|
|
84
46
|
name: 'agentteams_document_create',
|
|
85
47
|
title: 'Create AgentTeams Document',
|
|
@@ -405,7 +367,6 @@ const commentReplyDeleteSpec = {
|
|
|
405
367
|
/** Every write tool the CLI MCP server exposes, in registration order. */
|
|
406
368
|
export function getWriteToolSpecs() {
|
|
407
369
|
return [
|
|
408
|
-
guideGetSpec,
|
|
409
370
|
documentCreateSpec,
|
|
410
371
|
documentUpdateSpec,
|
|
411
372
|
documentDeleteSpec,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeTools.js","sourceRoot":"","sources":["../../src/mcp/writeTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"writeTools.js","sourceRoot":"","sources":["../../src/mcp/writeTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The agent entry point files init knows how to write, and the AI client each
|
|
3
|
+
* one belongs to.
|
|
4
|
+
*
|
|
5
|
+
* This catalog lives outside `commands/init.ts` because both the new-project
|
|
6
|
+
* path and the linked-worktree bootstrap read it, and those now sit in
|
|
7
|
+
* different modules. `commands/doctor.ts` keeps its own read-only mirror
|
|
8
|
+
* (`ENTRY_POINT_ALLOWLIST`) on purpose — it never creates these files.
|
|
9
|
+
*/
|
|
10
|
+
export declare const AGENT_ENTRY_POINT_FILES: readonly [{
|
|
11
|
+
readonly value: "CLAUDE.md";
|
|
12
|
+
readonly label: "CLAUDE.md";
|
|
13
|
+
readonly hint: "Claude Code";
|
|
14
|
+
}, {
|
|
15
|
+
readonly value: "AGENTS.md";
|
|
16
|
+
readonly label: "AGENTS.md";
|
|
17
|
+
readonly hint: "OpenCode / Codex";
|
|
18
|
+
}, {
|
|
19
|
+
readonly value: "GEMINI.md";
|
|
20
|
+
readonly label: "GEMINI.md";
|
|
21
|
+
readonly hint: "Antigravity";
|
|
22
|
+
}, {
|
|
23
|
+
readonly value: ".cursor/rules/agentteams.mdc";
|
|
24
|
+
readonly label: ".cursor/rules/agentteams.mdc";
|
|
25
|
+
readonly hint: "Cursor";
|
|
26
|
+
}];
|
|
27
|
+
export type AgentEntryPointValue = (typeof AGENT_ENTRY_POINT_FILES)[number]['value'];
|
|
28
|
+
export declare const AGENT_ENTRY_POINT_VALUES: AgentEntryPointValue[];
|
|
29
|
+
/** The literal `--agent-files` value that means "create nothing". */
|
|
30
|
+
export declare const AGENT_FILES_NONE = "none";
|
|
31
|
+
/**
|
|
32
|
+
* What init falls back to when the folder gives no signal at all.
|
|
33
|
+
*
|
|
34
|
+
* Detection on markers alone misses the most common case there is: a repository
|
|
35
|
+
* created or cloned minutes ago, where Claude Code's project-local `.claude/`
|
|
36
|
+
* does not exist until the user approves project scope. Selecting nothing there
|
|
37
|
+
* leaves the project with no path from an agent to
|
|
38
|
+
* `.agentteams/convention.md` — the one thing an entry point exists to provide —
|
|
39
|
+
* so one file is created rather than none. `--agent-files none` is how a caller
|
|
40
|
+
* says it really wants nothing.
|
|
41
|
+
*/
|
|
42
|
+
export declare const AGENT_ENTRY_POINT_FALLBACK: readonly AgentEntryPointValue[];
|
|
43
|
+
/**
|
|
44
|
+
* Which AI clients this folder actually uses.
|
|
45
|
+
*
|
|
46
|
+
* Two signals count: the client's own configuration directory, and an entry
|
|
47
|
+
* point file that is already there. The second one never produces a write — init
|
|
48
|
+
* does not overwrite an existing entry point — but it is what tells the adapters
|
|
49
|
+
* downstream which clients are in play, so a repository that keeps a hand-written
|
|
50
|
+
* `GEMINI.md` still gets its `.geminiignore`, and the skip is reported against a
|
|
51
|
+
* file the user can see rather than silently dropped.
|
|
52
|
+
*
|
|
53
|
+
* With neither signal the fallback applies. Detection still narrows what init
|
|
54
|
+
* used to create unconditionally (four files on every run); `--agent-files` is
|
|
55
|
+
* the way to widen or empty it explicitly.
|
|
56
|
+
*/
|
|
57
|
+
export declare function detectAgentEntryPointFiles(cwd: string): AgentEntryPointValue[];
|
|
58
|
+
/**
|
|
59
|
+
* Parse the raw `--agent-files` value.
|
|
60
|
+
*
|
|
61
|
+
* `null` means "no explicit choice" — the caller falls back to detection or the
|
|
62
|
+
* interactive prompt. An empty array (from `none`) is an explicit choice and is
|
|
63
|
+
* therefore *not* the same thing. An unknown value throws rather than being
|
|
64
|
+
* dropped: silently ignoring a typo would create a different file set than the
|
|
65
|
+
* one the caller asked for, and init only reports what it wrote.
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseAgentFilesOption(raw: unknown): AgentEntryPointValue[] | null;
|
|
68
|
+
//# sourceMappingURL=agentEntryPoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentEntryPoints.d.ts","sourceRoot":"","sources":["../../src/utils/agentEntryPoints.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;EAK1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAErF,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAAsD,CAAC;AAElH,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAUvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,oBAAoB,EAAkB,CAAC;AAkBzF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAO9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,EAAE,GAAG,IAAI,CA+BjF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* The agent entry point files init knows how to write, and the AI client each
|
|
5
|
+
* one belongs to.
|
|
6
|
+
*
|
|
7
|
+
* This catalog lives outside `commands/init.ts` because both the new-project
|
|
8
|
+
* path and the linked-worktree bootstrap read it, and those now sit in
|
|
9
|
+
* different modules. `commands/doctor.ts` keeps its own read-only mirror
|
|
10
|
+
* (`ENTRY_POINT_ALLOWLIST`) on purpose — it never creates these files.
|
|
11
|
+
*/
|
|
12
|
+
export const AGENT_ENTRY_POINT_FILES = [
|
|
13
|
+
{ value: 'CLAUDE.md', label: 'CLAUDE.md', hint: 'Claude Code' },
|
|
14
|
+
{ value: 'AGENTS.md', label: 'AGENTS.md', hint: 'OpenCode / Codex' },
|
|
15
|
+
{ value: 'GEMINI.md', label: 'GEMINI.md', hint: 'Antigravity' },
|
|
16
|
+
{ value: '.cursor/rules/agentteams.mdc', label: '.cursor/rules/agentteams.mdc', hint: 'Cursor' },
|
|
17
|
+
];
|
|
18
|
+
export const AGENT_ENTRY_POINT_VALUES = AGENT_ENTRY_POINT_FILES.map((file) => file.value);
|
|
19
|
+
/** The literal `--agent-files` value that means "create nothing". */
|
|
20
|
+
export const AGENT_FILES_NONE = 'none';
|
|
21
|
+
/** The client configuration directory that proves a folder uses that client. */
|
|
22
|
+
const AGENT_CLIENT_MARKER_DIRS = {
|
|
23
|
+
'CLAUDE.md': ['.claude'],
|
|
24
|
+
'AGENTS.md': ['.codex', '.opencode'],
|
|
25
|
+
'GEMINI.md': ['.gemini', '.antigravity'],
|
|
26
|
+
'.cursor/rules/agentteams.mdc': ['.cursor'],
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* What init falls back to when the folder gives no signal at all.
|
|
30
|
+
*
|
|
31
|
+
* Detection on markers alone misses the most common case there is: a repository
|
|
32
|
+
* created or cloned minutes ago, where Claude Code's project-local `.claude/`
|
|
33
|
+
* does not exist until the user approves project scope. Selecting nothing there
|
|
34
|
+
* leaves the project with no path from an agent to
|
|
35
|
+
* `.agentteams/convention.md` — the one thing an entry point exists to provide —
|
|
36
|
+
* so one file is created rather than none. `--agent-files none` is how a caller
|
|
37
|
+
* says it really wants nothing.
|
|
38
|
+
*/
|
|
39
|
+
export const AGENT_ENTRY_POINT_FALLBACK = ['CLAUDE.md'];
|
|
40
|
+
function isDirectory(path) {
|
|
41
|
+
try {
|
|
42
|
+
return statSync(path).isDirectory();
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function isFile(path) {
|
|
49
|
+
try {
|
|
50
|
+
return statSync(path).isFile();
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Which AI clients this folder actually uses.
|
|
58
|
+
*
|
|
59
|
+
* Two signals count: the client's own configuration directory, and an entry
|
|
60
|
+
* point file that is already there. The second one never produces a write — init
|
|
61
|
+
* does not overwrite an existing entry point — but it is what tells the adapters
|
|
62
|
+
* downstream which clients are in play, so a repository that keeps a hand-written
|
|
63
|
+
* `GEMINI.md` still gets its `.geminiignore`, and the skip is reported against a
|
|
64
|
+
* file the user can see rather than silently dropped.
|
|
65
|
+
*
|
|
66
|
+
* With neither signal the fallback applies. Detection still narrows what init
|
|
67
|
+
* used to create unconditionally (four files on every run); `--agent-files` is
|
|
68
|
+
* the way to widen or empty it explicitly.
|
|
69
|
+
*/
|
|
70
|
+
export function detectAgentEntryPointFiles(cwd) {
|
|
71
|
+
const detected = AGENT_ENTRY_POINT_VALUES.filter((value) => AGENT_CLIENT_MARKER_DIRS[value].some((marker) => isDirectory(join(cwd, marker))) || isFile(join(cwd, value)));
|
|
72
|
+
return detected.length > 0 ? detected : [...AGENT_ENTRY_POINT_FALLBACK];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Parse the raw `--agent-files` value.
|
|
76
|
+
*
|
|
77
|
+
* `null` means "no explicit choice" — the caller falls back to detection or the
|
|
78
|
+
* interactive prompt. An empty array (from `none`) is an explicit choice and is
|
|
79
|
+
* therefore *not* the same thing. An unknown value throws rather than being
|
|
80
|
+
* dropped: silently ignoring a typo would create a different file set than the
|
|
81
|
+
* one the caller asked for, and init only reports what it wrote.
|
|
82
|
+
*/
|
|
83
|
+
export function parseAgentFilesOption(raw) {
|
|
84
|
+
if (raw === undefined || raw === null)
|
|
85
|
+
return null;
|
|
86
|
+
if (typeof raw !== 'string') {
|
|
87
|
+
throw new Error(`Invalid --agent-files value. Expected a comma-separated list or '${AGENT_FILES_NONE}'.`);
|
|
88
|
+
}
|
|
89
|
+
const tokens = raw
|
|
90
|
+
.split(',')
|
|
91
|
+
.map((token) => token.trim())
|
|
92
|
+
.filter((token) => token.length > 0);
|
|
93
|
+
if (tokens.length === 0)
|
|
94
|
+
return null;
|
|
95
|
+
if (tokens.some((token) => token.toLowerCase() === AGENT_FILES_NONE)) {
|
|
96
|
+
if (tokens.length > 1) {
|
|
97
|
+
throw new Error(`Invalid --agent-files value: '${AGENT_FILES_NONE}' cannot be combined with other files.`);
|
|
98
|
+
}
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
const selected = [];
|
|
102
|
+
for (const token of tokens) {
|
|
103
|
+
const match = AGENT_ENTRY_POINT_VALUES.find((value) => value === token);
|
|
104
|
+
if (!match) {
|
|
105
|
+
throw new Error(`Unknown --agent-files value: '${token}'. Valid values: ${AGENT_ENTRY_POINT_VALUES.join(', ')}, ${AGENT_FILES_NONE}.`);
|
|
106
|
+
}
|
|
107
|
+
if (!selected.includes(match))
|
|
108
|
+
selected.push(match);
|
|
109
|
+
}
|
|
110
|
+
return selected;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=agentEntryPoints.js.map
|