@rockhopper-co/mcp-server 2.1.86 → 2.1.88-staging.98cbafb

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/README.md CHANGED
@@ -54,9 +54,19 @@ npx @rockhopper-co/mcp-server
54
54
 
55
55
  ### 2. Configure your AI tool
56
56
 
57
- #### Claude Desktop / Claude Code
57
+ #### Claude Code
58
58
 
59
- Add to your MCP config (`~/.claude/mcp.json` or Claude Desktop settings):
59
+ Run once:
60
+
61
+ ```bash
62
+ claude mcp add --env ROCKHOPPER_API_URL=https://api.rockhopper.co --transport stdio rockhopper -- npx -y @rockhopper-co/mcp-server
63
+ ```
64
+
65
+ Or add the JSON block from the Claude Desktop section below to `.mcp.json` at your project root. Claude Code keeps servers added with `claude mcp add` in `~/.claude.json` ([Claude Code MCP docs](https://code.claude.com/docs/en/mcp)).
66
+
67
+ #### Claude Desktop
68
+
69
+ Add to `claude_desktop_config.json` (Settings → Developer → Edit Config):
60
70
 
61
71
  ```json
62
72
  {
@@ -138,14 +148,26 @@ npm run generate:postman
138
148
 
139
149
  | Tool | Description |
140
150
  |------|-------------|
141
- | `list_files` | List enrolled Excel files with optional search filter |
151
+ | `list_files` | List the files tracked in Rockhopper — Excel workbooks and Google Sheets — with optional search filter |
142
152
  | `get_file_versions` | Get version history for a specific file |
143
153
  | `get_file_comments` | Get comments and threaded discussions on a file |
144
154
  | `get_reviews` | Get review requests for a version or file |
145
155
  | `get_cell_history` | Get change history for a specific cell across versions |
146
156
  | `search_files` | Search files **already enrolled** in Rockhopper, by name |
147
157
  | `search_drive_files` | Find a workbook in the user's own OneDrive / SharePoint, including files Rockhopper has never seen; returns candidates to confirm with the user before `enroll_file` |
148
- | `get_unattributed_changes` | Get pending cell changes not yet committed to a version |
158
+ | `get_unattributed_changes` | Get the changes made since the last saved version (cells, paragraphs or shapes) |
159
+ | `list_unenrolled_files` | List files Rockhopper has seen for the user that are not enrolled yet |
160
+
161
+ ## Account Link Tools
162
+
163
+ | Tool | Description |
164
+ |------|-------------|
165
+ | `connect_microsoft` | Start connecting the user's Microsoft account; returns a sign-in link the user opens |
166
+ | `microsoft_link_status` | Check whether a Microsoft account is connected and which one |
167
+ | `disconnect_microsoft` | Remove the stored Microsoft connection (requires an interactive login, not a PAT) |
168
+ | `connect_google` | Start connecting the user's Google account; returns a sign-in link the user opens |
169
+ | `google_link_status` | Check whether a Google account is connected and which one |
170
+ | `disconnect_google` | Remove the stored Google connection (requires an interactive login, not a PAT) |
149
171
 
150
172
  ## Available Resources
151
173
 
@@ -170,19 +192,20 @@ npm run generate:postman
170
192
  | `unresolved-comments` | List all unresolved comments on a file for follow-up |
171
193
  | `file-overview` | Comprehensive overview: versions, comments, reviews, and changes |
172
194
 
173
- ## Write Tools (requires `read-write` scope)
174
-
175
- | Tool | Description |
176
- |------|-------------|
177
- | `create_version` | Commit uncommitted changes as a new semver version (major/minor/patch) |
178
- | `discard_changes` | Discard all uncommitted changes, revert to latest committed version |
179
- | `add_comment` | Add a comment to an enrolled file (optionally at a cell) |
180
- | `reply_to_comment` | Reply to an existing comment thread |
181
- | `resolve_comment` | Mark a comment as resolved (author only) |
182
- | `create_review_request` | Request a review on a file version |
183
- | `approve_review` | Approve a review request (assigned reviewer only) |
184
- | `cancel_review` | Cancel a pending review request (requester only) |
185
- | `update_file_description` | Update the display name of an enrolled file |
195
+ ## Write Tools (each requires its write capability)
196
+
197
+ | Tool | Capability | Description |
198
+ |------|------------|-------------|
199
+ | `add_comment` | `comments:write` | Add a comment to an enrolled file (optionally at a cell, paragraph or shape) |
200
+ | `reply_to_comment` | `comments:write` | Reply to an existing comment thread |
201
+ | `resolve_comment` | `comments:write` | Mark a comment as resolved (author only) |
202
+ | `create_review_request` | `reviews:write` | Request a review on a file version |
203
+ | `approve_review` | `reviews:write` | Approve a review request (assigned reviewer only) |
204
+ | `cancel_review` | `reviews:write` | Cancel a pending review request (requester only) |
205
+ | `create_version` | `versions:write` | Commit uncommitted changes as a new semver version (major/minor/patch) |
206
+ | `discard_changes` | `versions:write` | Discard all uncommitted changes, revert to latest committed version |
207
+ | `rename_file` | `files:write` | Rename an enrolled file (its display name across Rockhopper) |
208
+ | `enroll_file` | `files:write` | Add a file to Rockhopper from its SharePoint, OneDrive, Google Sheets or Google Drive link |
186
209
 
187
210
  ## Identifiers
188
211
 
@@ -45,11 +45,21 @@ export declare const DOCUMENT_CHANGE_KIND_CAUSES: Readonly<Record<string, string
45
45
  export declare const DESIGN_PART_WORDS: ReadonlyArray<readonly [string, string]>;
46
46
  /** A cell's `editType` → its row word: the `spreadsheet` column of `changeLogVocabulary.ts`. */
47
47
  export declare const SPREADSHEET_EDIT_TYPE_WORDS: Readonly<Record<string, string>>;
48
+ /**
49
+ * Every spreadsheet `changeType` this build reads: backend
50
+ * `unattributed-change.entity.ts!UnattributedChangeType`. ENG-6917 — the
51
+ * tables and the switch below are keyed on it, so a type added here without a
52
+ * word and a row shape fails the build.
53
+ */
54
+ export declare const SPREADSHEET_CHANGE_TYPES: readonly ["cell", "sheet_add", "sheet_delete", "sheet_rename", "sheet_reorder", "row_insert", "row_delete", "column_insert", "column_delete"];
55
+ export type SpreadsheetChangeType = (typeof SPREADSHEET_CHANGE_TYPES)[number];
56
+ type StructuralChangeType = Exclude<SpreadsheetChangeType, 'cell'>;
48
57
  /**
49
58
  * A structural `changeType` → its row word, one row per change:
50
- * `changeLabel.ts!sheetChangeLabel` and `rowColumnChangeLabel` at a count of 1.
59
+ * `changeLabel.ts!sheetChangeLabel` (a reorder reads "moved", ENG-6688) and
60
+ * `rowColumnChangeLabel` at a count of 1.
51
61
  */
52
- export declare const SPREADSHEET_STRUCTURAL_WORDS: Readonly<Record<string, string>>;
62
+ export declare const SPREADSHEET_STRUCTURAL_WORDS: Readonly<Record<StructuralChangeType, string>>;
53
63
  /** A document kind's row word, or undefined for a kind this build cannot read. */
54
64
  export declare const documentChangeWord: (changeKind: string) => string | undefined;
55
65
  /**
@@ -86,7 +96,10 @@ export interface SpreadsheetChangeRowInput {
86
96
  }
87
97
  /**
88
98
  * Spreadsheet change rows, rendered. A structural row names what happened to
89
- * the sheet, row or column and has no value sides, as in the change log.
99
+ * the sheet, row or column and has no value sides, as in the change log; a
100
+ * moved sheet states its two tab positions. A type this build cannot read
101
+ * prints no word and keeps its sides.
90
102
  */
91
103
  export declare function formatSpreadsheetChangeRows(changes: ReadonlyArray<SpreadsheetChangeRowInput>): string;
104
+ export {};
92
105
  //# sourceMappingURL=change-row-vocabulary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-row-vocabulary.d.ts","sourceRoot":"","sources":["../src/change-row-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAAM,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAItE,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQzE,CAAC;AASF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,SACpB,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,GAAG,IAAI,CAWf;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,CAAC,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,MAAM,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAS/C;AAED,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,CAAC,yBAAyB,CAAC,GAChD,MAAM,CAmBR"}
1
+ {"version":3,"file":"change-row-vocabulary.d.ts","sourceRoot":"","sources":["../src/change-row-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAAM,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAItE,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,+IAU3B,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,KAAK,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAKnE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CACjD,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAUrC,CAAC;AASF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,SACpB,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,GAAG,IAAI,CAWf;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,CAAC,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,MAAM,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAS/C;AAED,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAkDD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,CAAC,yBAAyB,CAAC,GAChD,MAAM,CAgBR"}
@@ -74,14 +74,34 @@ export const SPREADSHEET_EDIT_TYPE_WORDS = {
74
74
  formula_recalc: 'formula, same result',
75
75
  value_and_format: 'value and format',
76
76
  };
77
+ /**
78
+ * Every spreadsheet `changeType` this build reads: backend
79
+ * `unattributed-change.entity.ts!UnattributedChangeType`. ENG-6917 — the
80
+ * tables and the switch below are keyed on it, so a type added here without a
81
+ * word and a row shape fails the build.
82
+ */
83
+ export const SPREADSHEET_CHANGE_TYPES = [
84
+ 'cell',
85
+ 'sheet_add',
86
+ 'sheet_delete',
87
+ 'sheet_rename',
88
+ 'sheet_reorder',
89
+ 'row_insert',
90
+ 'row_delete',
91
+ 'column_insert',
92
+ 'column_delete',
93
+ ];
94
+ const isSpreadsheetChangeType = (t) => SPREADSHEET_CHANGE_TYPES.includes(t);
77
95
  /**
78
96
  * A structural `changeType` → its row word, one row per change:
79
- * `changeLabel.ts!sheetChangeLabel` and `rowColumnChangeLabel` at a count of 1.
97
+ * `changeLabel.ts!sheetChangeLabel` (a reorder reads "moved", ENG-6688) and
98
+ * `rowColumnChangeLabel` at a count of 1.
80
99
  */
81
100
  export const SPREADSHEET_STRUCTURAL_WORDS = {
82
101
  sheet_add: 'sheet added',
83
102
  sheet_delete: 'sheet removed',
84
103
  sheet_rename: 'sheet renamed',
104
+ sheet_reorder: 'sheet moved',
85
105
  row_insert: 'row inserted',
86
106
  row_delete: 'row deleted',
87
107
  column_insert: 'column inserted',
@@ -130,26 +150,69 @@ export function cellSide(value) {
130
150
  : [value];
131
151
  return shown.every(rendersToNothing) ? EMPTY_SIDE : JSON.stringify(value);
132
152
  }
153
+ /**
154
+ * A moved sheet's tab positions, counted from 1 as the tabs read: the served
155
+ * value columns carry the 0-based indices (backend ENG-6913). Frontend
156
+ * `UserStructuralChange.tsx` — no positions when either side lacks one.
157
+ */
158
+ function sheetPositions(oldValue, newValue) {
159
+ const index = (side) => {
160
+ const v = side?.v;
161
+ return typeof v === 'number' && Number.isInteger(v) ? v : null;
162
+ };
163
+ const from = index(oldValue);
164
+ const to = index(newValue);
165
+ return from === null || to === null
166
+ ? ''
167
+ : `: position ${from + 1} → ${to + 1}`;
168
+ }
169
+ /** The word and the text after it on one known spreadsheet row. Total. */
170
+ function knownRowParts(type, c) {
171
+ switch (type) {
172
+ case 'cell':
173
+ return {
174
+ word: c.editType ? own(SPREADSHEET_EDIT_TYPE_WORDS, c.editType) : undefined,
175
+ tail: `: ${cellSide(c.oldValue)} → ${cellSide(c.newValue)}`,
176
+ };
177
+ case 'sheet_reorder':
178
+ return {
179
+ word: SPREADSHEET_STRUCTURAL_WORDS[type],
180
+ tail: sheetPositions(c.oldValue, c.newValue),
181
+ };
182
+ case 'sheet_add':
183
+ case 'sheet_delete':
184
+ case 'sheet_rename':
185
+ case 'row_insert':
186
+ case 'row_delete':
187
+ case 'column_insert':
188
+ case 'column_delete':
189
+ return { word: SPREADSHEET_STRUCTURAL_WORDS[type], tail: '' };
190
+ default: {
191
+ const unhandled = type;
192
+ return unhandled;
193
+ }
194
+ }
195
+ }
133
196
  /**
134
197
  * Spreadsheet change rows, rendered. A structural row names what happened to
135
- * the sheet, row or column and has no value sides, as in the change log.
198
+ * the sheet, row or column and has no value sides, as in the change log; a
199
+ * moved sheet states its two tab positions. A type this build cannot read
200
+ * prints no word and keeps its sides.
136
201
  */
137
202
  export function formatSpreadsheetChangeRows(changes) {
138
203
  return changes
139
204
  .map((c) => {
140
- const structural = own(SPREADSHEET_STRUCTURAL_WORDS, c.changeType);
141
- const word = structural ??
142
- (c.changeType === 'cell' && c.editType
143
- ? own(SPREADSHEET_EDIT_TYPE_WORDS, c.editType)
144
- : undefined);
205
+ const { word, tail } = isSpreadsheetChangeType(c.changeType)
206
+ ? knownRowParts(c.changeType, c)
207
+ : {
208
+ word: undefined,
209
+ tail: `: ${cellSide(c.oldValue)} → ${cellSide(c.newValue)}`,
210
+ };
145
211
  const label = word ? ` (${word})` : '';
146
- const sides = structural
147
- ? ''
148
- : `: ${cellSide(c.oldValue)} → ${cellSide(c.newValue)}`;
149
212
  // ENG-2603 — see get-versions: name first, platform id as fallback.
150
213
  const author = c.byUserName ?? c.byUserPlatformId;
151
214
  const by = author ? ` — by ${author}` : '';
152
- return `- **${c.sheetName}!${c.cellAddress}**${label}${sides}${by} — ${c.createdAt}`;
215
+ return `- **${c.sheetName}!${c.cellAddress}**${label}${tail}${by} — ${c.createdAt}`;
153
216
  })
154
217
  .join('\n');
155
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"change-row-vocabulary.js","sourceRoot":"","sources":["../src/change-row-vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-row-vocabulary.js","sourceRoot":"","sources":["../src/change-row-vocabulary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"change-sections.d.ts","sourceRoot":"","sources":["../../src/prompts/change-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AAEH,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAwBlE;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAc7D"}
1
+ {"version":3,"file":"change-sections.d.ts","sourceRoot":"","sources":["../../src/prompts/change-sections.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AAEH,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAmBlE;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAc7D"}
@@ -1,3 +1,4 @@
1
+ import { formatSpreadsheetChangeRows } from '../change-row-vocabulary.js';
1
2
  import { formatDocumentChanges } from '../document-changes.js';
2
3
  import { fileChangesUnavailableText, } from '../file-changes.js';
3
4
  /**
@@ -18,12 +19,10 @@ export function changeSummarySection(read) {
18
19
  // `totalCount` is a file total; the preview uses up to 20 rows of it.
19
20
  const rows = read.kind === 'spreadsheet' ? read.page.changes : read.changes;
20
21
  const total = read.kind === 'spreadsheet' ? read.page.totalCount : rows.length;
21
- const body = rows.length
22
- ? rows
23
- .slice(0, 20)
24
- .map((c) => `- ${c.sheetName}!${c.cellAddress}: ${JSON.stringify(c.oldValue)} → ${JSON.stringify(c.newValue)}`)
25
- .join('\n')
26
- : 'None';
22
+ // ENG-6917 — the tool's shared row vocabulary, never a prompt-local copy,
23
+ // so a structural row (a sheet moved, a row inserted) is NAMED rather
24
+ // than printed as a raw cell edit.
25
+ const body = rows.length ? formatSpreadsheetChangeRows(rows.slice(0, 20)) : 'None';
27
26
  return `## Unattributed Changes (${total} total)\n${body}`;
28
27
  }
29
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"change-sections.js","sourceRoot":"","sources":["../../src/prompts/change-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,0BAA0B,GAE3B,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AAEH,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,IAAqB;IACxD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,yCAAyC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,KAAK,UAAU;YACb,OAAO,4BAA4B,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,KAAK,mBAAmB,CAAC;QACzB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;gBACtB,CAAC,CAAC,IAAI;qBACD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBACZ,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CACrG;qBACA,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,MAAM,CAAC;YACX,OAAO,4BAA4B,KAAK,YAAY,IAAI,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,IAAqB;IACnD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,yCAAyC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,KAAK,UAAU;YACb,oDAAoD;YACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC5B,CAAC,CAAC,sCAAsC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnE,CAAC,CAAC,4BAA4B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9D,KAAK,aAAa;YAChB,OAAO,4BAA4B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,KAAK,mBAAmB;YACtB,OAAO,4BAA4B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"change-sections.js","sourceRoot":"","sources":["../../src/prompts/change-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,0BAA0B,GAE3B,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AAEH,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,IAAqB;IACxD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,yCAAyC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,KAAK,UAAU;YACb,OAAO,4BAA4B,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,KAAK,mBAAmB,CAAC;QACzB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/E,0EAA0E;YAC1E,sEAAsE;YACtE,mCAAmC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnF,OAAO,4BAA4B,KAAK,YAAY,IAAI,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,IAAqB;IACnD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,yCAAyC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,KAAK,UAAU;YACb,oDAAoD;YACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC5B,CAAC,CAAC,sCAAsC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnE,CAAC,CAAC,4BAA4B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9D,KAAK,aAAa;YAChB,OAAO,4BAA4B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,KAAK,mBAAmB;YACtB,OAAO,4BAA4B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rockhopper-co/mcp-server",
3
- "version": "2.1.86",
3
+ "version": "2.1.88-staging.98cbafb",
4
4
  "description": "Rockhopper MCP server — expose file metadata, versions, reviews, and comments to AI tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",