svn-agent-mcp 1.5.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/README.md +73 -12
- package/dist/guards.d.ts +2 -0
- package/dist/guards.d.ts.map +1 -1
- package/dist/guards.js +5 -3
- package/dist/guards.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -15
- package/dist/index.js.map +1 -1
- package/dist/parse/infoXml.d.ts.map +1 -1
- package/dist/parse/infoXml.js +1 -0
- package/dist/parse/infoXml.js.map +1 -1
- package/dist/parse/listXml.d.ts +9 -0
- package/dist/parse/listXml.d.ts.map +1 -0
- package/dist/parse/listXml.js +44 -0
- package/dist/parse/listXml.js.map +1 -0
- package/dist/parse/statusXml.d.ts +1 -0
- package/dist/parse/statusXml.d.ts.map +1 -1
- package/dist/parse/statusXml.js +11 -2
- package/dist/parse/statusXml.js.map +1 -1
- package/dist/response.d.ts.map +1 -1
- package/dist/response.js +270 -11
- package/dist/response.js.map +1 -1
- package/dist/runner.d.ts +6 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +11 -0
- package/dist/runner.js.map +1 -1
- package/dist/tools/composite.d.ts +1 -0
- package/dist/tools/composite.d.ts.map +1 -1
- package/dist/tools/composite.js +36 -3
- package/dist/tools/composite.js.map +1 -1
- package/dist/tools/mutating.d.ts +22 -1
- package/dist/tools/mutating.d.ts.map +1 -1
- package/dist/tools/mutating.js +321 -11
- package/dist/tools/mutating.js.map +1 -1
- package/dist/tools/readonly.d.ts +1 -0
- package/dist/tools/readonly.d.ts.map +1 -1
- package/dist/tools/readonly.js +114 -21
- package/dist/tools/readonly.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/MCP_API.json +157 -12
- package/docs/SPEC.md +106 -22
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,61 @@ All notable changes to the SVN MCP are recorded here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.7.1] - 2026-08-21
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Removed the Node.js engine upper bound so Node.js 26 and newer versions meeting the minimum do
|
|
12
|
+
not produce npm `EBADENGINE` warnings.
|
|
13
|
+
- Updated the runtime check and operator documentation to enforce only Node.js 24.18.0 minimum.
|
|
14
|
+
|
|
15
|
+
## [1.7.0] - 2026-08-20
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Added zero-configuration workstation labels for `svn_lock`; explicit labels and the optional
|
|
20
|
+
environment override remain supported.
|
|
21
|
+
- Added richer compact `svn_snapshot` context: working-copy root, repository URL/root, change and
|
|
22
|
+
conflict counts, and an opt-in bounded lock-state summary.
|
|
23
|
+
- Added six MCP workflow prompts for inspection, safe update, safe commit, EOL repair, lock/edit/
|
|
24
|
+
unlock, and failed-commit diagnosis.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Streamed `svn_cat` pages so large text files are bounded before the child-process buffer
|
|
29
|
+
limit, while preserving character cursors and binary detection.
|
|
30
|
+
- Streamed `svn_blame` XML entries so bounded line pages do not require retaining the full
|
|
31
|
+
blame document in memory.
|
|
32
|
+
|
|
33
|
+
## [1.6.0] - 2026-08-08
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- Fixed path-scoped `svn_info` remote-head evidence and kept root-scoped behavior unchanged (#48).
|
|
38
|
+
- Fixed standard EOL responses so successful and refused `eol_check` and `eol_fix_verified` calls
|
|
39
|
+
retain a bounded outcome and next action (#49).
|
|
40
|
+
- Distinguished out-of-date paths from valid mixed-revision working copies in guarded commit
|
|
41
|
+
diagnostics without weakening the refusal (#50).
|
|
42
|
+
- Fixed scoped update evidence for newly added companion files, pinned revisions, missing versioned
|
|
43
|
+
files, incomplete exact-file scopes, and unclassifiable target metadata (#51).
|
|
44
|
+
- Clarified that `postStatusClean` covers only the committed path scope, not the full working copy
|
|
45
|
+
(#52).
|
|
46
|
+
- Documented the empty-reply disclosure and bounded native-SVN fallback for harness failures (#53).
|
|
47
|
+
- Exposed the exact commit-message contract in `svn_commit` and `svn_import` descriptions (#54).
|
|
48
|
+
- Exposed the `svn_commit` path threshold and `riskAck:true` requirement for more than 8 paths (#55).
|
|
49
|
+
- Documented `workingCopyMixed`, nullable `baseRevision`, and `baseRevisionRange` for parallel
|
|
50
|
+
working-copy updates (#56).
|
|
51
|
+
- Documented the verified `eol_check` → `eol_fix_verified` → `svn_diff(ignoreEol:true)` recovery
|
|
52
|
+
workflow, including LF and BOM evidence (#57).
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
|
|
56
|
+
- Bumped the package and lockfile version to 1.6.0. The full profile remains at 29 canonical tools
|
|
57
|
+
and all registered tools continue to advertise `destructiveHint:false`.
|
|
58
|
+
- Rebased tool-definition budget guardrails around the published 1.6.0 descriptions while keeping
|
|
59
|
+
roughly five percent growth headroom.
|
|
60
|
+
- Pinned the patched `js-yaml` 3.x legacy line for the Jest toolchain advisory.
|
|
61
|
+
|
|
7
62
|
## [1.5.0] - 2026-08-04
|
|
8
63
|
|
|
9
64
|
### Added
|
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Strict SVN Model Context Protocol server for agent-safe status, diff, EOL diagnosis, precommit checks, and guarded SVN mutations.
|
|
4
4
|
|
|
5
|
-
The implementation contract lives in `docs/SPEC.md`. The current source release is `1.
|
|
5
|
+
The implementation contract lives in `docs/SPEC.md`. The current source release is `1.7.1`; each source clone can prepare a local runtime under `releases/v1.7.1`, while npm installations run directly from package-root `dist/`.
|
|
6
6
|
|
|
7
|
-
Requirements: Node.js 24.18.0 or newer
|
|
7
|
+
Requirements: Node.js 24.18.0 or newer, npm 11.16.0 or newer, Git, and access to the public npm registry. Windows uses the
|
|
8
8
|
bundled VisualSVN Apache Subversion command-line package and dos2unix payload. On macOS and Linux, `svn`, `svnversion`, `svnadmin`,
|
|
9
9
|
`dos2unix`, and `unix2dos` must be available on `PATH`.
|
|
10
10
|
|
|
@@ -154,17 +154,23 @@ The completed historical project backlog was migrated as issues
|
|
|
154
154
|
vulnerabilities through the private process in `SECURITY.md`, not a public issue.
|
|
155
155
|
|
|
156
156
|
Environment variables are not required when the toolchain is bundled or available on `PATH`.
|
|
157
|
-
`SVN_MCP_TOOL_PROFILE` controls the advertised schema surface: `full` (default) exposes
|
|
157
|
+
`SVN_MCP_TOOL_PROFILE` controls the advertised schema surface: `full` (default) exposes 29
|
|
158
158
|
canonical tools, `docs` exposes the 8-tool edit/commit workflow, and `review` adds bounded diff,
|
|
159
159
|
cat, and blame for 11 tools total. Focused profiles reduce tool-definition context without changing
|
|
160
160
|
any guard. A call to a hidden tool returns a typed `TOOL_PROFILE` refusal; use `full` when the
|
|
161
161
|
workflow needs another operation.
|
|
162
162
|
`SVN_MCP_RESPONSE_MODE` selects `compact` (default), `receipt`, `structured-only`, `standard`, or
|
|
163
|
-
`full` responses. `structuredContent` is authoritative
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
163
|
+
`full` responses. `structuredContent` is authoritative. Every mode except `structured-only` returns
|
|
164
|
+
exactly one bounded text block by default; `structured-only` returns no text block. The text block is
|
|
165
|
+
a short summary and never replaces structured data. `humanText` remains accepted for compatibility,
|
|
166
|
+
but it does not change this bound. `receipt` is the smallest stable contract for status, snapshot,
|
|
167
|
+
precommit, update, and commit. Use `responseMode:"full"` only when bounded raw SVN diagnostics and
|
|
168
|
+
machine paths are needed.
|
|
169
|
+
|
|
170
|
+
If a call returns neither usable text nor a structured result, classify it as a harness or transport
|
|
171
|
+
drop. Disclose `SVN MCP empty`, preserve the same explicit path scope, and use bounded native `svn`
|
|
172
|
+
fallback steps for that operation. Retry the MCP later and prefer it again when it returns a usable
|
|
173
|
+
response; do not use the fallback to bypass a guard refusal.
|
|
168
174
|
Non-guard failures retain bounded path-sanitized stdout/stderr diagnostics outside full mode;
|
|
169
175
|
compact guard refusals return only a typed guard code, one-line reason, and affected-path count.
|
|
170
176
|
Other development/test escape hatches are `SVN_AGENT_BIN_DIR`, `SVN_AGENT_SVN_PATH`, `SVN_AGENT_DOS2UNIX_DIR`,
|
|
@@ -228,6 +234,11 @@ A READY precommit also returns a short-lived `precommitToken` bound to exact pat
|
|
|
228
234
|
revisions, content hashes, repository policy, diff identity, and observed remote revision. Passing
|
|
229
235
|
that token to `svn_commit` makes the commit refuse if the verified state changed in between.
|
|
230
236
|
|
|
237
|
+
Commit messages for `svn_commit` and `svn_import` require a subject, a blank second line, and at
|
|
238
|
+
least one `- ` verification bullet. A `svn_commit` scope with more than 8 paths requires
|
|
239
|
+
`riskAck:true`; exactly 8 paths does not trigger this path-count signal. Other risk signals keep
|
|
240
|
+
their existing G6 behavior.
|
|
241
|
+
|
|
231
242
|
Release workflows can pin `svn_update` with an exact `revision`; it still requires explicit paths
|
|
232
243
|
or `updateAll:true` and always postpones conflicts. Add `expectedRemoteHead` with a numeric revision
|
|
233
244
|
to refuse if repository HEAD moved since the caller's probe. Use
|
|
@@ -235,6 +246,31 @@ to refuse if repository HEAD moved since the caller's probe. Use
|
|
|
235
246
|
mixed-revision working copy. The default remains backward compatible and reports mixed revisions
|
|
236
247
|
without blocking ordinary precommit work.
|
|
237
248
|
|
|
249
|
+
Parallel agents can create a valid mixed-revision working copy. A commit receipt may report
|
|
250
|
+
`workingCopyMixed:true` while the commit remains valid. `baseRevision:null` means no single base
|
|
251
|
+
revision describes every committed path; use `baseRevisionRange` for the useful range. Treat mixed
|
|
252
|
+
state as evidence, not failure by itself. Check the separate out-of-date and conflict diagnostics
|
|
253
|
+
before deciding whether to stop.
|
|
254
|
+
Compact `OUT_OF_DATE` refusals identify bounded `outOfDatePaths`, `outOfDatePathCount`, and
|
|
255
|
+
`outOfDatePathsTruncated` fields. They retain `workingCopyMixed` and `revisionRange` when both
|
|
256
|
+
conditions are present.
|
|
257
|
+
|
|
258
|
+
An exact-file `svn_update` reports `scopeKind:"exact-file"` and `scopeComplete:false` because it
|
|
259
|
+
does not prove that sibling repository additions were fetched. `omittedRepositoryAdditions` lists
|
|
260
|
+
bounded missing siblings, and `recommendedAction:"update-containing-directory"` points to the
|
|
261
|
+
directory-complete follow-up. Directory and working-copy updates report their own `scopeKind` and
|
|
262
|
+
can report `scopeComplete:true` when the selected scope is complete.
|
|
263
|
+
If bounded SVN metadata cannot classify every target, the result uses `scopeKind:"unknown"` and
|
|
264
|
+
`scopeComplete:false`. `scopeCheckUnavailableReason` explains the failure, and
|
|
265
|
+
`recommendedAction:"inspect-target-metadata"` directs the next check. Omitted-addition counts are
|
|
266
|
+
not authoritative for an unknown scope.
|
|
267
|
+
|
|
268
|
+
`svn_commit` keeps `postStatusClean` for compatibility, but it applies only to the committed path
|
|
269
|
+
scope. Read `postStatusScope:"committed-paths"` and `postStatusPaths` to identify that scope. The
|
|
270
|
+
separate `workingCopyClean` field reports the whole-working-copy check. Do not infer whole-working-copy
|
|
271
|
+
cleanliness from `postStatusClean`; these explicit fields remove the ambiguity without deprecating it
|
|
272
|
+
in 1.7.0.
|
|
273
|
+
|
|
238
274
|
`svn_commit operation:"prepare"` performs a pinned update of explicit intended paths with conflicts
|
|
239
275
|
postponed, checks an optional expected remote HEAD, refuses any path touched outside that scope, and
|
|
240
276
|
then runs the normal guarded precommit checks. It never commits. Its compact receipt reports the
|
|
@@ -271,9 +307,10 @@ those records exhaust capacity.
|
|
|
271
307
|
## Repository locks
|
|
272
308
|
|
|
273
309
|
Use `svn_lock` and `svn_unlock` for repository locks shared by working copies on different
|
|
274
|
-
machines. `svn_lock` requires a non-empty comment
|
|
275
|
-
|
|
276
|
-
server stores the bounded comment as
|
|
310
|
+
machines. `svn_lock` requires a non-empty comment. When no label is supplied, the server derives
|
|
311
|
+
one from `SVN_MCP_WORKSTATION_LABEL` or the local machine hostname, normalized to
|
|
312
|
+
`[A-Za-z0-9._-]` and limited to 64 characters. The server stores the bounded comment as
|
|
313
|
+
`[svn-agent-mcp workstation=<label>] <comment>`.
|
|
277
314
|
`svn_lock_status` compares local and repository `svn info --xml` state and returns only a boolean
|
|
278
315
|
for local token possession. It never returns a lock token. Normal unlock refuses a mismatched
|
|
279
316
|
working-copy token; stealing a lock requires `force:true`, `forceAck:true`, and a UUID
|
|
@@ -284,6 +321,15 @@ Lock status reports `held-elsewhere`, `orphaned-token`, and `stale-candidate` di
|
|
|
284
321
|
candidate is a lock older than seven days. All lock and property mutations keep the normal
|
|
285
322
|
working-copy containment, never-commit, durable-receipt, and `--readonly` guards.
|
|
286
323
|
|
|
324
|
+
`svn_snapshot` remains the no-friction daily entry point. Its compact response includes the
|
|
325
|
+
working-copy root, repository URL/root, changed and conflict counts, and remote HEAD. Pass
|
|
326
|
+
`includeLockState:true` when the agent needs a bounded lock summary; the extra repository probe
|
|
327
|
+
is opt-in.
|
|
328
|
+
|
|
329
|
+
The server also publishes MCP workflow prompts for inspection, safe update, safe commit, EOL
|
|
330
|
+
repair, lock/edit/unlock, and failed-commit diagnosis. They reduce repeated agent instructions
|
|
331
|
+
without adding another tool call.
|
|
332
|
+
|
|
287
333
|
### Host approval settings
|
|
288
334
|
|
|
289
335
|
The package does not edit Codex configuration. Set host policy outside the repository when the
|
|
@@ -315,12 +361,27 @@ fails. `eol_fix_verified` also accepts a bounded explicit `paths` batch for trac
|
|
|
315
361
|
`svn_diff` and `svn_blame` ignore EOL-only churn by default; use `showEolChanges:true` only for EOL
|
|
316
362
|
diagnostics.
|
|
317
363
|
|
|
364
|
+
### Verified EOL recovery
|
|
365
|
+
|
|
366
|
+
Use this sequence for a tracked file with LF, mixed line endings, or BOM damage:
|
|
367
|
+
|
|
368
|
+
1. Call `eol_check` on the explicit path and record `kind`, `has_bom`, and `mismatch`.
|
|
369
|
+
2. Call `eol_fix_verified` on each failing path. It applies the repository target, removes the BOM
|
|
370
|
+
by default, hashes canonical LF/no-BOM content, and preserves concurrent edits or guarded paths.
|
|
371
|
+
3. Call `svn_diff` with `ignoreEol:true`. An empty content diff or `eolOnly:true` proves that the
|
|
372
|
+
repair changed line endings only. Remaining additions, removals, or property changes need review.
|
|
373
|
+
|
|
374
|
+
For example, an LF file with a BOM reports `kind:"lf"`, `has_bom:true` in `eol_check`; after
|
|
375
|
+
`eol_fix_verified`, `after.has_bom:false` and `pure_eol_churn:true` provide repair evidence. The
|
|
376
|
+
final `svn_diff({"paths":["src/example.cs"],"ignoreEol":true})` call proves byte/content intent
|
|
377
|
+
without dumping an unbounded diff.
|
|
378
|
+
|
|
318
379
|
## Commands
|
|
319
380
|
|
|
320
381
|
| Command | Description |
|
|
321
382
|
| --- | --- |
|
|
322
383
|
| `npm run dev` | Run the TypeScript entry point during development |
|
|
323
|
-
| `npm run check:runtime` | Verify the
|
|
384
|
+
| `npm run check:runtime` | Verify the minimum Node.js and npm versions |
|
|
324
385
|
| `npm run typecheck` | Check TypeScript without emitting build output |
|
|
325
386
|
| `npm run build` | Compile `src/` into `dist/` |
|
|
326
387
|
| `npm run generate:api-contract` | Generate `docs/MCP_API.json` from the registered MCP tools |
|
package/dist/guards.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ChangedPath, WcInfo } from "./types.js";
|
|
2
2
|
export declare const sensitiveNeverCommitGlobs: string[];
|
|
3
3
|
export declare const neverCommitGlobs: string[];
|
|
4
|
+
export declare const COMMIT_MESSAGE_REQUIREMENT = "Commit messages require a subject, a blank second line, and at least one '- ' verification bullet.";
|
|
5
|
+
export declare const RISK_ACK_PATH_THRESHOLD = 8;
|
|
4
6
|
export declare const MAX_POLICY_BYTES: number;
|
|
5
7
|
export declare function readonlyMode(): boolean;
|
|
6
8
|
export declare function resolveCwd(cwd?: string): string;
|
package/dist/guards.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmBtD,eAAO,MAAM,yBAAyB,UAYrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAiE,CAAC;
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmBtD,eAAO,MAAM,yBAAyB,UAYrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAiE,CAAC;AAE/F,eAAO,MAAM,0BAA0B,uGAAuG,CAAC;AAC/I,eAAO,MAAM,uBAAuB,IAAI,CAAC;AA4BzC,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAU1C,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK/E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiBhJ;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBhE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAOpE;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EAAE,GACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAcnE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CAGnG;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+B7E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIpF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAwB7G;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAU/D;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMvF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAOA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAG9F;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IACE,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC;AAEN,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAyB9E"}
|
package/dist/guards.js
CHANGED
|
@@ -31,6 +31,8 @@ export const sensitiveNeverCommitGlobs = [
|
|
|
31
31
|
"**/.ssh/**"
|
|
32
32
|
];
|
|
33
33
|
export const neverCommitGlobs = [...overridableNeverCommitGlobs, ...sensitiveNeverCommitGlobs];
|
|
34
|
+
export const COMMIT_MESSAGE_REQUIREMENT = "Commit messages require a subject, a blank second line, and at least one '- ' verification bullet.";
|
|
35
|
+
export const RISK_ACK_PATH_THRESHOLD = 8;
|
|
34
36
|
const MAX_POLICY_GLOBS = 128;
|
|
35
37
|
const MAX_POLICY_GLOB_LENGTH = 256;
|
|
36
38
|
const MAX_POLICY_DOUBLESTAR_SEGMENTS = 4;
|
|
@@ -172,8 +174,8 @@ export function neverCommitNote(hit, absPath, wcRoot) {
|
|
|
172
174
|
}
|
|
173
175
|
export function riskySignals(absPaths, wcRoot, statusByPath) {
|
|
174
176
|
const signals = new Set();
|
|
175
|
-
if (absPaths.length >
|
|
176
|
-
signals.add(
|
|
177
|
+
if (absPaths.length > RISK_ACK_PATH_THRESHOLD) {
|
|
178
|
+
signals.add(`more than ${RISK_ACK_PATH_THRESHOLD} paths`);
|
|
177
179
|
}
|
|
178
180
|
for (const absPath of absPaths) {
|
|
179
181
|
const relative = repoRelativePath(absPath, wcRoot).toLowerCase();
|
|
@@ -250,7 +252,7 @@ export function validateCommitMessage(message) {
|
|
|
250
252
|
valid: false,
|
|
251
253
|
warningCode: "COMMIT_MESSAGE_FORMAT",
|
|
252
254
|
failedRule: `missing ${joinRuleNames(failures)}`,
|
|
253
|
-
warningDetail:
|
|
255
|
+
warningDetail: COMMIT_MESSAGE_REQUIREMENT,
|
|
254
256
|
suggestedMessage: `${subject}\n\n- Describe verification performed`,
|
|
255
257
|
blocking: true
|
|
256
258
|
};
|
package/dist/guards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,14 +10,14 @@ export type ToolProfile = "full" | "docs" | "review";
|
|
|
10
10
|
export declare const readOnlyToolNames: Set<string>;
|
|
11
11
|
export declare const fieldProjectionNames: {
|
|
12
12
|
readonly svn_status: readonly ["revision", "changedPaths", "counts", "items", "conflicts"];
|
|
13
|
-
readonly svn_info: readonly ["root", "revision", "url", "repositoryRoot", "mixedRevision", "revisionRange", "localModifications", "switched", "partial", "remoteHeadRevision", "staleBase"];
|
|
14
|
-
readonly svn_snapshot: readonly ["revision", "revisionRange", "mixedRevision", "localModifications", "switched", "partial", "remoteHeadRevision", "staleBase", "changedPaths", "counts", "items", "conflicts"];
|
|
13
|
+
readonly svn_info: readonly ["root", "revision", "url", "repositoryRoot", "mixedRevision", "revisionRange", "localModifications", "switched", "partial", "remoteHeadRevision", "remoteHeadUnavailableReason", "staleBase"];
|
|
14
|
+
readonly svn_snapshot: readonly ["revision", "revisionRange", "mixedRevision", "localModifications", "switched", "partial", "remoteHeadRevision", "staleBase", "workingCopyRoot", "repositoryUrl", "repositoryRoot", "changedCount", "conflictCount", "lockState", "lockCount", "lockStates", "lockStateTruncated", "lockStateUnavailableReason", "changedPaths", "counts", "items", "conflicts"];
|
|
15
15
|
readonly svn_log: readonly ["revision", "revisionRange", "entryCount", "entries", "targetMode", "scannedCount", "matchedCount"];
|
|
16
16
|
readonly svn_diff: readonly ["files", "totalFiles", "totalLines", "totalChars", "totalHunks", "added", "removed", "excerpt", "eolOnly", "operationId", "evidenceExpiresAt"];
|
|
17
17
|
readonly svn_propget: readonly ["path", "name", "value"];
|
|
18
18
|
readonly svn_precommit: readonly ["ready", "verdict", "pathCount", "statusCounts", "diff", "eol", "mixedRevision", "revisionRange", "guardFailures", "riskSignals", "remediation", "eolCheckComplete", "eolPolicyIdentity", "precommitToken", "precommitExpiresAt", "remoteHeadRevision", "baselineToken", "baselinePathChanges", "remoteHeadChangedSinceBaseline"];
|
|
19
|
-
readonly svn_update: readonly ["requestedRevision", "resultingRevision", "revisionRange", "mixedRevision", "remoteHeadRevision", "changedPaths", "counts", "conflicts", "expectedRemoteHead", "observedRemoteHead", "baselineToken", "collision", "collisionPaths", "pathStates", "recommendedAction"];
|
|
20
|
-
readonly svn_commit: readonly ["revision", "committedRevision", "committedPaths", "committedCount", "pathCount", "baseRevision", "baseRevisionRange", "remoteHeadRevision", "eolVerdict", "workingCopyMixed", "contentHashes", "postStatusClean", "residue", "warningCode", "warningDetail", "failedRule", "suggestedMessage", "verdict", "requestedRevision", "resultingRevision", "revisionRange", "mixedRevision", "expectedRemoteHead", "observedRemoteHead", "updatedPaths", "unexpectedTouchedPaths", "finalCommitScope", "conflicts", "precommitToken", "operation", "finalScopeClean", "scopeUniform", "finalRevisionRange", "detailOperationId", "detailExpiresAt", "detail", "nextCursor"];
|
|
19
|
+
readonly svn_update: readonly ["requestedRevision", "resultingRevision", "revisionRange", "mixedRevision", "remoteHeadRevision", "changedPaths", "counts", "conflicts", "expectedRemoteHead", "observedRemoteHead", "baselineToken", "collision", "collisionPaths", "pathStates", "scopeKind", "scopeComplete", "omittedRepositoryAdditions", "omittedRepositoryAdditionCount", "omittedRepositoryAdditionsTruncated", "scopeCheckUnavailableReason", "recommendedAction"];
|
|
20
|
+
readonly svn_commit: readonly ["revision", "committedRevision", "committedPaths", "committedCount", "pathCount", "baseRevision", "baseRevisionRange", "remoteHeadRevision", "eolVerdict", "workingCopyMixed", "contentHashes", "postStatusClean", "residue", "warningCode", "warningDetail", "failedRule", "suggestedMessage", "verdict", "requestedRevision", "resultingRevision", "revisionRange", "mixedRevision", "expectedRemoteHead", "observedRemoteHead", "updatedPaths", "unexpectedTouchedPaths", "finalCommitScope", "conflicts", "precommitToken", "operation", "finalScopeClean", "scopeUniform", "finalRevisionRange", "detailOperationId", "detailExpiresAt", "detail", "nextCursor", "outOfDatePaths", "outOfDatePathCount", "outOfDatePathsTruncated", "postStatusScope", "postStatusPaths", "postStatusPathCount", "postStatusPathsTruncated", "workingCopyClean"];
|
|
21
21
|
};
|
|
22
22
|
export declare const advancedInputNames: {
|
|
23
23
|
readonly svn_status: readonly ["afterCursor", "conflictCursor"];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoCpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,UAAU,QAAQ,CAAC;AAChC,eAAO,MAAM,aAAa,QAAsB,CAAC;AACjD,eAAO,MAAM,YAAY,SAAmB,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;+DAC+D;AAC/D,eAAO,MAAM,iBAAiB,aAI5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;aAC/B,UAAU,YAAG,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW;aACvE,QAAQ,YACN,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAC7E,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { pathToFileURL } from "node:url";
|
|
|
8
8
|
import * as z from "zod/v4";
|
|
9
9
|
import packageJson from "../package.json" with { type: "json" };
|
|
10
10
|
import { failEnvelope, redactText } from "./envelope.js";
|
|
11
|
-
import { readonlyMode as isReadonlyMode } from "./guards.js";
|
|
11
|
+
import { COMMIT_MESSAGE_REQUIREMENT, RISK_ACK_PATH_THRESHOLD, readonlyMode as isReadonlyMode } from "./guards.js";
|
|
12
12
|
import { toToolResult } from "./response.js";
|
|
13
13
|
import { startupProbe, withRequestCancellation } from "./runner.js";
|
|
14
14
|
import { eolFixVerified, svnCommitWorkflow, svnPrecommit, svnPrepareCommit, svnSnapshot } from "./tools/composite.js";
|
|
@@ -30,11 +30,13 @@ export const fieldProjectionNames = {
|
|
|
30
30
|
svn_status: ["revision", "changedPaths", "counts", "items", "conflicts"],
|
|
31
31
|
svn_info: [
|
|
32
32
|
"root", "revision", "url", "repositoryRoot", "mixedRevision", "revisionRange",
|
|
33
|
-
"localModifications", "switched", "partial", "remoteHeadRevision", "staleBase"
|
|
33
|
+
"localModifications", "switched", "partial", "remoteHeadRevision", "remoteHeadUnavailableReason", "staleBase"
|
|
34
34
|
],
|
|
35
35
|
svn_snapshot: [
|
|
36
36
|
"revision", "revisionRange", "mixedRevision", "localModifications", "switched", "partial",
|
|
37
|
-
"remoteHeadRevision", "staleBase", "
|
|
37
|
+
"remoteHeadRevision", "staleBase", "workingCopyRoot", "repositoryUrl", "repositoryRoot",
|
|
38
|
+
"changedCount", "conflictCount", "lockState", "lockCount", "lockStates", "lockStateTruncated", "lockStateUnavailableReason",
|
|
39
|
+
"changedPaths", "counts", "items", "conflicts"
|
|
38
40
|
],
|
|
39
41
|
svn_log: ["revision", "revisionRange", "entryCount", "entries", "targetMode", "scannedCount", "matchedCount"],
|
|
40
42
|
svn_diff: [
|
|
@@ -51,7 +53,9 @@ export const fieldProjectionNames = {
|
|
|
51
53
|
svn_update: [
|
|
52
54
|
"requestedRevision", "resultingRevision", "revisionRange", "mixedRevision", "remoteHeadRevision",
|
|
53
55
|
"changedPaths", "counts", "conflicts", "expectedRemoteHead", "observedRemoteHead",
|
|
54
|
-
"baselineToken", "collision", "collisionPaths", "pathStates", "
|
|
56
|
+
"baselineToken", "collision", "collisionPaths", "pathStates", "scopeKind", "scopeComplete",
|
|
57
|
+
"omittedRepositoryAdditions", "omittedRepositoryAdditionCount", "omittedRepositoryAdditionsTruncated",
|
|
58
|
+
"scopeCheckUnavailableReason", "recommendedAction"
|
|
55
59
|
],
|
|
56
60
|
svn_commit: [
|
|
57
61
|
"revision", "committedRevision", "committedPaths", "committedCount", "pathCount", "baseRevision",
|
|
@@ -60,7 +64,9 @@ export const fieldProjectionNames = {
|
|
|
60
64
|
"verdict", "requestedRevision", "resultingRevision", "revisionRange", "mixedRevision",
|
|
61
65
|
"expectedRemoteHead", "observedRemoteHead", "updatedPaths", "unexpectedTouchedPaths",
|
|
62
66
|
"finalCommitScope", "conflicts", "precommitToken", "operation", "finalScopeClean", "scopeUniform",
|
|
63
|
-
"finalRevisionRange", "detailOperationId", "detailExpiresAt", "detail", "nextCursor"
|
|
67
|
+
"finalRevisionRange", "detailOperationId", "detailExpiresAt", "detail", "nextCursor",
|
|
68
|
+
"outOfDatePaths", "outOfDatePathCount", "outOfDatePathsTruncated", "postStatusScope", "postStatusPaths",
|
|
69
|
+
"postStatusPathCount", "postStatusPathsTruncated", "workingCopyClean"
|
|
64
70
|
]
|
|
65
71
|
};
|
|
66
72
|
export const advancedInputNames = {
|
|
@@ -86,6 +92,7 @@ const docsToolNames = [
|
|
|
86
92
|
];
|
|
87
93
|
const reviewToolNames = [...docsToolNames, "svn_diff", "svn_cat", "svn_blame"];
|
|
88
94
|
const hiddenLegacyToolNames = new Set(["svn_move", "svn_rename", "svn_copy", "svn_resolved", "svn_prepare_commit"]);
|
|
95
|
+
const eolRecoveryWorkflow = "Use this verified recovery sequence: eol_check -> eol_fix_verified -> svn_diff(ignoreEol:true). Record LF/BOM evidence and confirm byte/content preservation.";
|
|
89
96
|
export function configuredToolProfile(value = process.env.SVN_MCP_TOOL_PROFILE) {
|
|
90
97
|
const normalized = value?.trim().toLowerCase() || "full";
|
|
91
98
|
if (normalized === "full" || normalized === "docs" || normalized === "review") {
|
|
@@ -215,7 +222,7 @@ export function createServer(profileOverride) {
|
|
|
215
222
|
inputSchema: {
|
|
216
223
|
cwd,
|
|
217
224
|
paths: optionalPaths,
|
|
218
|
-
fields: z.array(z.enum(fieldProjectionNames.svn_info)).max(
|
|
225
|
+
fields: z.array(z.enum(fieldProjectionNames.svn_info)).max(12).optional(),
|
|
219
226
|
...response
|
|
220
227
|
}
|
|
221
228
|
}, async (args, extra) => handleTool("svn_info", args, extra.signal, () => svnInfo(compactArgs(args))));
|
|
@@ -229,13 +236,14 @@ export function createServer(profileOverride) {
|
|
|
229
236
|
statuses: z.array(z.string().max(64)).max(16).optional(),
|
|
230
237
|
includeUnversioned: z.boolean().optional(),
|
|
231
238
|
countOnly: z.boolean().optional(),
|
|
239
|
+
includeLockState: z.boolean().optional().describe("Include a bounded lock-state summary; default false avoids an extra repository probe."),
|
|
232
240
|
maxItems,
|
|
233
241
|
cursor,
|
|
234
242
|
...response
|
|
235
243
|
}
|
|
236
244
|
}, async (args, extra) => handleTool("svn_snapshot", args, extra.signal, () => svnSnapshot(compactArgs(args))));
|
|
237
245
|
server.registerTool("svn_diff", {
|
|
238
|
-
description:
|
|
246
|
+
description: `Return a bounded scoped diff and per-file counts. ${eolRecoveryWorkflow}`,
|
|
239
247
|
inputSchema: {
|
|
240
248
|
cwd,
|
|
241
249
|
paths,
|
|
@@ -292,7 +300,7 @@ export function createServer(profileOverride) {
|
|
|
292
300
|
}
|
|
293
301
|
}, async (args, extra) => handleTool("svn_blame", args, extra.signal, () => svnBlame(compactArgs(args))));
|
|
294
302
|
server.registerTool("eol_check", {
|
|
295
|
-
description:
|
|
303
|
+
description: `Check EOL, BOM, and svn:eol-style. ${eolRecoveryWorkflow}`,
|
|
296
304
|
inputSchema: {
|
|
297
305
|
cwd,
|
|
298
306
|
paths,
|
|
@@ -348,7 +356,7 @@ export function createServer(profileOverride) {
|
|
|
348
356
|
}
|
|
349
357
|
}, async (args, extra) => handleTool("svn_prepare_commit", args, extra.signal, () => svnPrepareCommit(compactArgs(args))));
|
|
350
358
|
server.registerTool("eol_fix_verified", {
|
|
351
|
-
description:
|
|
359
|
+
description: `Normalize and verify one or a bounded batch of explicit files. ${eolRecoveryWorkflow}`,
|
|
352
360
|
inputSchema: {
|
|
353
361
|
cwd,
|
|
354
362
|
path: filesystemPath.optional().describe("One explicit file; use either path or paths."),
|
|
@@ -397,16 +405,16 @@ export function createServer(profileOverride) {
|
|
|
397
405
|
}
|
|
398
406
|
}, async (args, extra) => handleTool("svn_needs_lock", args, extra.signal, () => svnNeedsLock(compactArgs(args))));
|
|
399
407
|
server.registerTool("svn_commit", {
|
|
400
|
-
description:
|
|
408
|
+
description: `Guarded commit with explicit paths and message. ${COMMIT_MESSAGE_REQUIREMENT} A commit scope with more than ${RISK_ACK_PATH_THRESHOLD} paths requires riskAck:true.`,
|
|
401
409
|
inputSchema: {
|
|
402
410
|
cwd,
|
|
403
411
|
paths,
|
|
404
412
|
operation: z.enum(["commit", "prepare", "safe", "detail"]).optional().describe("commit (default), prepare, safe end-to-end commit, or paged safe-operation detail."),
|
|
405
|
-
message: commitMessage.optional().describe(
|
|
413
|
+
message: commitMessage.optional().describe(`Required for commit/safe; ignored for prepare/detail. ${COMMIT_MESSAGE_REQUIREMENT}`),
|
|
406
414
|
revision: z.string().max(32).regex(/^\d+$/, "revision must be an exact numeric revision").optional().describe("Required for operation:prepare and operation:safe."),
|
|
407
415
|
expectedRemoteHead: boundedIntegerSchema("expectedRemoteHead", 0, Number.MAX_SAFE_INTEGER, 123).optional(),
|
|
408
416
|
lineLimit,
|
|
409
|
-
riskAck: z.boolean().optional(),
|
|
417
|
+
riskAck: z.boolean().optional().describe(`Set riskAck:true when more than ${RISK_ACK_PATH_THRESHOLD} paths are in the commit scope or another G6 signal is present.`),
|
|
410
418
|
allowRoot: allowRootCommit,
|
|
411
419
|
allowDirectoryTargets,
|
|
412
420
|
expandDescendants,
|
|
@@ -437,7 +445,7 @@ export function createServer(profileOverride) {
|
|
|
437
445
|
}
|
|
438
446
|
}, async (args, extra) => handleTool("svn_path_change", args, extra.signal, () => svnPathChange(compactArgs(args))));
|
|
439
447
|
server.registerTool("svn_update", {
|
|
440
|
-
description: "Guarded update with conflicts postponed.",
|
|
448
|
+
description: "Guarded update with conflicts postponed. Exact-file updates report omitted repository additions and recommend updating the containing directory. Unknown target metadata reports incomplete evidence and recommends inspection; confirmed directory scopes report complete-scope evidence.",
|
|
441
449
|
inputSchema: {
|
|
442
450
|
cwd,
|
|
443
451
|
paths: optionalPaths,
|
|
@@ -523,18 +531,73 @@ export function createServer(profileOverride) {
|
|
|
523
531
|
}
|
|
524
532
|
}, async (args, extra) => handleTool("svn_export", args, extra.signal, () => svnExport(compactArgs(args))));
|
|
525
533
|
server.registerTool("svn_import", {
|
|
526
|
-
description:
|
|
534
|
+
description: `Import with an explicit source, URL, and message. ${COMMIT_MESSAGE_REQUIREMENT}`,
|
|
527
535
|
inputSchema: {
|
|
528
536
|
cwd,
|
|
529
537
|
src: filesystemPath,
|
|
530
538
|
url: repositoryLocation,
|
|
531
|
-
message: commitMessage,
|
|
539
|
+
message: commitMessage.describe(COMMIT_MESSAGE_REQUIREMENT),
|
|
532
540
|
...response
|
|
533
541
|
}
|
|
534
542
|
}, async (args, extra) => handleTool("svn_import", args, extra.signal, () => svnImport(compactArgs(args))));
|
|
543
|
+
const promptPaths = z.string().max(4096).regex(noNul, "must not contain NUL").optional()
|
|
544
|
+
.describe("Optional comma-separated paths; prompt arguments are protocol strings.");
|
|
545
|
+
const inspectPromptArgs = {
|
|
546
|
+
cwd,
|
|
547
|
+
paths: promptPaths
|
|
548
|
+
};
|
|
549
|
+
const workflowPromptArgs = {
|
|
550
|
+
cwd,
|
|
551
|
+
paths: promptPaths,
|
|
552
|
+
revision
|
|
553
|
+
};
|
|
554
|
+
server.registerPrompt("svn_inspect_working_copy", {
|
|
555
|
+
title: "Inspect SVN working copy",
|
|
556
|
+
description: "Use one bounded snapshot to inspect revision, remote HEAD, changes, conflicts, and optional locks.",
|
|
557
|
+
argsSchema: inspectPromptArgs
|
|
558
|
+
}, ({ cwd: promptCwd, paths: promptPaths }) => promptResult(`Inspect the SVN working copy with svn_snapshot in compact mode. ${promptArguments({ cwd: promptCwd, paths: promptPaths })} Include lock state only when needed by setting includeLockState:true. Use the returned next action and cursors; do not call separate status or info tools unless the snapshot reports incomplete data.`));
|
|
559
|
+
server.registerPrompt("svn_safe_update", {
|
|
560
|
+
title: "Safely update SVN paths",
|
|
561
|
+
description: "Prepare a bounded, conflict-postponed update with explicit scope and revision evidence.",
|
|
562
|
+
argsSchema: workflowPromptArgs
|
|
563
|
+
}, ({ cwd: promptCwd, paths: promptPaths, revision: promptRevision }) => promptResult(`Update the requested SVN scope with svn_update. ${promptArguments({ cwd: promptCwd, paths: promptPaths, revision: promptRevision })} Use explicit paths or updateAll:true, preserve local edits, postpone conflicts, and inspect scopeComplete, omittedRepositoryAdditions, and recommendedAction before continuing.`));
|
|
564
|
+
server.registerPrompt("svn_safe_commit", {
|
|
565
|
+
title: "Safely commit SVN changes",
|
|
566
|
+
description: "Use the guarded safe commit workflow with one compact receipt.",
|
|
567
|
+
argsSchema: workflowPromptArgs
|
|
568
|
+
}, ({ cwd: promptCwd, paths: promptPaths, revision: promptRevision }) => promptResult(`Commit the requested SVN files with svn_commit operation:safe. ${promptArguments({ cwd: promptCwd, paths: promptPaths, revision: promptRevision })} First use a valid subject, blank second line, and - verification bullets in the message. Supply explicit paths, revision, expectedRemoteHead, and operationId. Review the compact verdict, committed paths, finalScopeClean, and conflicts.`));
|
|
569
|
+
server.registerPrompt("svn_repair_eol", {
|
|
570
|
+
title: "Repair SVN EOL safely",
|
|
571
|
+
description: "Run the verified EOL workflow without changing file content.",
|
|
572
|
+
argsSchema: { cwd, paths: promptPaths }
|
|
573
|
+
}, ({ cwd: promptCwd, paths: promptPaths }) => promptResult(`Repair EOL issues only for the requested files. ${promptArguments({ cwd: promptCwd, paths: promptPaths })} Run eol_check, then eol_fix_verified for failing files, then svn_diff with ignoreEol:true. Confirm LF/BOM evidence, byte/content preservation, and no concurrent-edit refusal before commit.`));
|
|
574
|
+
server.registerPrompt("svn_lock_edit_unlock", {
|
|
575
|
+
title: "Lock, edit, and unlock SVN files",
|
|
576
|
+
description: "Use workstation-labelled repository locks for a multi-PC edit session.",
|
|
577
|
+
argsSchema: { cwd, paths: promptPaths }
|
|
578
|
+
}, ({ cwd: promptCwd, paths: promptPaths }) => promptResult(`Use the SVN lock workflow for the requested files. ${promptArguments({ cwd: promptCwd, paths: promptPaths })} Call svn_lock with a short comment, perform the edit, call svn_lock_status when needed, and call svn_unlock when finished. Let the server derive the workstation label unless an override is required. Never force-steal a lock without forceAck:true and a UUID operationId.`));
|
|
579
|
+
server.registerPrompt("svn_diagnose_commit", {
|
|
580
|
+
title: "Diagnose a failed SVN commit",
|
|
581
|
+
description: "Inspect the exact scope, revision, EOL, and out-of-date evidence before retrying.",
|
|
582
|
+
argsSchema: { cwd, paths: promptPaths }
|
|
583
|
+
}, ({ cwd: promptCwd, paths: promptPaths }) => promptResult(`Diagnose the failed SVN commit for the requested scope. ${promptArguments({ cwd: promptCwd, paths: promptPaths })} Use svn_snapshot, svn_diff, svn_precommit, and svn_diagnose as needed. Check outOfDatePaths, workingCopyMixed, conflicts, EOL verdicts, and post-status scope. Retry only after the returned remediation is satisfied.`));
|
|
535
584
|
installProfileCallHandler(server, profile, enabledNames, profileRegistrations);
|
|
536
585
|
return server;
|
|
537
586
|
}
|
|
587
|
+
function promptResult(text) {
|
|
588
|
+
return {
|
|
589
|
+
messages: [{
|
|
590
|
+
role: "user",
|
|
591
|
+
content: { type: "text", text }
|
|
592
|
+
}]
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
function promptArguments(input) {
|
|
596
|
+
const values = Object.fromEntries(Object.entries(input).filter(([, value]) => value !== undefined));
|
|
597
|
+
return Object.keys(values).length > 0
|
|
598
|
+
? `Use these inputs: ${JSON.stringify(values)}.`
|
|
599
|
+
: "Use the current working copy and ask for an explicit path scope when the operation requires one.";
|
|
600
|
+
}
|
|
538
601
|
function withToolAnnotations(name, config) {
|
|
539
602
|
if (!config || typeof config !== "object") {
|
|
540
603
|
return config;
|