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.
Files changed (45) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +73 -12
  3. package/dist/guards.d.ts +2 -0
  4. package/dist/guards.d.ts.map +1 -1
  5. package/dist/guards.js +5 -3
  6. package/dist/guards.js.map +1 -1
  7. package/dist/index.d.ts +4 -4
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +78 -15
  10. package/dist/index.js.map +1 -1
  11. package/dist/parse/infoXml.d.ts.map +1 -1
  12. package/dist/parse/infoXml.js +1 -0
  13. package/dist/parse/infoXml.js.map +1 -1
  14. package/dist/parse/listXml.d.ts +9 -0
  15. package/dist/parse/listXml.d.ts.map +1 -0
  16. package/dist/parse/listXml.js +44 -0
  17. package/dist/parse/listXml.js.map +1 -0
  18. package/dist/parse/statusXml.d.ts +1 -0
  19. package/dist/parse/statusXml.d.ts.map +1 -1
  20. package/dist/parse/statusXml.js +11 -2
  21. package/dist/parse/statusXml.js.map +1 -1
  22. package/dist/response.d.ts.map +1 -1
  23. package/dist/response.js +270 -11
  24. package/dist/response.js.map +1 -1
  25. package/dist/runner.d.ts +6 -0
  26. package/dist/runner.d.ts.map +1 -1
  27. package/dist/runner.js +11 -0
  28. package/dist/runner.js.map +1 -1
  29. package/dist/tools/composite.d.ts +1 -0
  30. package/dist/tools/composite.d.ts.map +1 -1
  31. package/dist/tools/composite.js +36 -3
  32. package/dist/tools/composite.js.map +1 -1
  33. package/dist/tools/mutating.d.ts +22 -1
  34. package/dist/tools/mutating.d.ts.map +1 -1
  35. package/dist/tools/mutating.js +321 -11
  36. package/dist/tools/mutating.js.map +1 -1
  37. package/dist/tools/readonly.d.ts +1 -0
  38. package/dist/tools/readonly.d.ts.map +1 -1
  39. package/dist/tools/readonly.js +114 -21
  40. package/dist/tools/readonly.js.map +1 -1
  41. package/dist/types.d.ts +1 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/docs/MCP_API.json +157 -12
  44. package/docs/SPEC.md +106 -22
  45. 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.0`; each source clone can prepare a local runtime under `releases/v1.5.0`, while npm installations run directly from package-root `dist/`.
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 within the Node 24 LTS line, npm 11.16.0 or newer, Git, and access to the public npm registry. Windows uses the
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 25
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 and `content` is empty by default; pass
164
- `humanText:true` when a client needs a short text receipt. `structured-only` makes that intent
165
- explicit. `receipt` is the smallest stable contract for status, snapshot, precommit, update, and
166
- commit. Use `responseMode:"full"` only when bounded raw SVN diagnostics and machine paths are
167
- needed.
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 and a workstation label from
275
- `workstationLabel` or `SVN_MCP_WORKSTATION_LABEL` (`[A-Za-z0-9._-]`, one to 64 characters). The
276
- server stores the bounded comment as `[svn-agent-mcp workstation=<label>] <comment>`.
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 supported Node 24 LTS and minimum npm version |
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;
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
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 > 8) {
176
- signals.add("more than 8 paths");
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: "Commit messages require a subject, a blank second line, and at least one '- ' verification bullet.",
255
+ warningDetail: COMMIT_MESSAGE_REQUIREMENT,
254
256
  suggestedMessage: `${subject}\n\n- Describe verification performed`,
255
257
  blocking: true
256
258
  };
@@ -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"];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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", "changedPaths", "counts", "items", "conflicts"
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", "recommendedAction"
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(11).optional(),
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: "Return a bounded scoped diff and per-file counts.",
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: "Check EOL, BOM, and svn:eol-style.",
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: "Normalize and verify one or a bounded batch of explicit files.",
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: "Guarded commit with explicit paths and message.",
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("Required for commit/safe; ignored for prepare/detail."),
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: "Import with an explicit source, URL, and message.",
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;