@rockhopper-co/mcp-server 2.1.68-staging.e2ad38d → 2.1.69-staging.4a88e63
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/dist/cell-history-unavailable.d.ts +41 -0
- package/dist/cell-history-unavailable.d.ts.map +1 -0
- package/dist/cell-history-unavailable.js +61 -0
- package/dist/cell-history-unavailable.js.map +1 -0
- package/dist/resources/orchestration-guide.md +2 -1
- package/dist/tools/get-cell-history.d.ts.map +1 -1
- package/dist/tools/get-cell-history.js +19 -1
- package/dist/tools/get-cell-history.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENG-1748 — "this source cannot answer for this file" is a different answer
|
|
3
|
+
* from "this cell has no history", and the tool used to print the second when
|
|
4
|
+
* it meant the first: the backend served `[]` with HTTP 200 for a file whose
|
|
5
|
+
* history it could not see, and an assistant reported "this cell never changed"
|
|
6
|
+
* to a customer as fact. A plausible zero is the most dangerous thing a tool can
|
|
7
|
+
* return, because — unlike a refusal — it does not look like a non-answer.
|
|
8
|
+
*
|
|
9
|
+
* The discriminator is NOT the empty array. The backend now refuses such a read
|
|
10
|
+
* outright with `422` and the machine-readable `CELL_HISTORY_UNAVAILABLE` code;
|
|
11
|
+
* this module recognises that code and renders it as a refusal. A zero-length
|
|
12
|
+
* result that arrives with HTTP 200 is still a real, trustworthy zero and is
|
|
13
|
+
* still rendered as one.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately NOT part of `not-ready.ts`: that vocabulary is "come back
|
|
16
|
+
* later", and every field of its payload (`retryAfterSeconds`) is wrong here.
|
|
17
|
+
* Retrying cannot make this file's history reconstructible.
|
|
18
|
+
*/
|
|
19
|
+
/** The backend's refusal code, matched structurally so no import cycle forms. */
|
|
20
|
+
export declare const CELL_HISTORY_UNAVAILABLE_CODE = "CELL_HISTORY_UNAVAILABLE";
|
|
21
|
+
/** Grep marker; also the first token of the refusal an assistant sees. */
|
|
22
|
+
export declare const UNAVAILABLE_MARKER = "CELL_HISTORY_UNAVAILABLE";
|
|
23
|
+
/** Matches the backend's coded refusal, and any error carrying one as `cause`. */
|
|
24
|
+
export declare function isCellHistoryUnavailable(err: unknown): boolean;
|
|
25
|
+
export interface UnavailableToolResult {
|
|
26
|
+
/** The SDK's `CallToolResult` carries an index signature; mirror it. */
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
content: Array<{
|
|
29
|
+
type: 'text';
|
|
30
|
+
text: string;
|
|
31
|
+
}>;
|
|
32
|
+
isError: true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The tool answer for an unanswerable read. Three defences, the same three
|
|
36
|
+
* `notReadyToolResult` uses, because one is not enough against a model that
|
|
37
|
+
* wants to be helpful: `isError`, prose that names the wrong inference
|
|
38
|
+
* explicitly, and a JSON object to branch on.
|
|
39
|
+
*/
|
|
40
|
+
export declare function cellHistoryUnavailableToolResult(cell: string, sheetName: string): UnavailableToolResult;
|
|
41
|
+
//# sourceMappingURL=cell-history-unavailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell-history-unavailable.d.ts","sourceRoot":"","sources":["../src/cell-history-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iFAAiF;AACjF,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,6BAAgC,CAAC;AAEhE,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM9D;AAED,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,qBAAqB,CAuBvB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENG-1748 — "this source cannot answer for this file" is a different answer
|
|
3
|
+
* from "this cell has no history", and the tool used to print the second when
|
|
4
|
+
* it meant the first: the backend served `[]` with HTTP 200 for a file whose
|
|
5
|
+
* history it could not see, and an assistant reported "this cell never changed"
|
|
6
|
+
* to a customer as fact. A plausible zero is the most dangerous thing a tool can
|
|
7
|
+
* return, because — unlike a refusal — it does not look like a non-answer.
|
|
8
|
+
*
|
|
9
|
+
* The discriminator is NOT the empty array. The backend now refuses such a read
|
|
10
|
+
* outright with `422` and the machine-readable `CELL_HISTORY_UNAVAILABLE` code;
|
|
11
|
+
* this module recognises that code and renders it as a refusal. A zero-length
|
|
12
|
+
* result that arrives with HTTP 200 is still a real, trustworthy zero and is
|
|
13
|
+
* still rendered as one.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately NOT part of `not-ready.ts`: that vocabulary is "come back
|
|
16
|
+
* later", and every field of its payload (`retryAfterSeconds`) is wrong here.
|
|
17
|
+
* Retrying cannot make this file's history reconstructible.
|
|
18
|
+
*/
|
|
19
|
+
/** The backend's refusal code, matched structurally so no import cycle forms. */
|
|
20
|
+
export const CELL_HISTORY_UNAVAILABLE_CODE = 'CELL_HISTORY_UNAVAILABLE';
|
|
21
|
+
/** Grep marker; also the first token of the refusal an assistant sees. */
|
|
22
|
+
export const UNAVAILABLE_MARKER = CELL_HISTORY_UNAVAILABLE_CODE;
|
|
23
|
+
/** Matches the backend's coded refusal, and any error carrying one as `cause`. */
|
|
24
|
+
export function isCellHistoryUnavailable(err) {
|
|
25
|
+
const code = err?.code;
|
|
26
|
+
if (code === CELL_HISTORY_UNAVAILABLE_CODE)
|
|
27
|
+
return true;
|
|
28
|
+
const cause = err
|
|
29
|
+
?.cause;
|
|
30
|
+
return cause?.code === CELL_HISTORY_UNAVAILABLE_CODE;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The tool answer for an unanswerable read. Three defences, the same three
|
|
34
|
+
* `notReadyToolResult` uses, because one is not enough against a model that
|
|
35
|
+
* wants to be helpful: `isError`, prose that names the wrong inference
|
|
36
|
+
* explicitly, and a JSON object to branch on.
|
|
37
|
+
*/
|
|
38
|
+
export function cellHistoryUnavailableToolResult(cell, sheetName) {
|
|
39
|
+
const payload = {
|
|
40
|
+
status: 'unavailable',
|
|
41
|
+
code: CELL_HISTORY_UNAVAILABLE_CODE,
|
|
42
|
+
cell,
|
|
43
|
+
sheetName,
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
content: [
|
|
47
|
+
{
|
|
48
|
+
type: 'text',
|
|
49
|
+
text: `${UNAVAILABLE_MARKER} — this is NOT a result and NOT an empty result.\n` +
|
|
50
|
+
`Rockhopper cannot report the change history of ${cell} on ` +
|
|
51
|
+
`"${sheetName}" for this file.\n` +
|
|
52
|
+
`Do NOT say the cell has no history, that nothing changed, or that ` +
|
|
53
|
+
`the history is empty — none of that is known.\n` +
|
|
54
|
+
`Retrying will not change this answer.\n` +
|
|
55
|
+
JSON.stringify(payload),
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
isError: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=cell-history-unavailable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell-history-unavailable.js","sourceRoot":"","sources":["../src/cell-history-unavailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAExE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAEhE,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,IAAI,GAAI,GAA6C,EAAE,IAAI,CAAC;IAClE,IAAI,IAAI,KAAK,6BAA6B;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,KAAK,GAAI,GAAyD;QACtE,EAAE,KAAK,CAAC;IACV,OAAO,KAAK,EAAE,IAAI,KAAK,6BAA6B,CAAC;AACvD,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,IAAY,EACZ,SAAiB;IAEjB,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,aAAa;QACrB,IAAI,EAAE,6BAA6B;QACnC,IAAI;QACJ,SAAS;KACV,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,GAAG,kBAAkB,oDAAoD;oBACzE,kDAAkD,IAAI,MAAM;oBAC5D,IAAI,SAAS,oBAAoB;oBACjC,oEAAoE;oBACpE,iDAAiD;oBACjD,yCAAyC;oBACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC1B;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -171,7 +171,7 @@ Rockhopper supports both Microsoft Excel files (M365 / OneDrive) and Google Shee
|
|
|
171
171
|
|
|
172
172
|
| Field | Microsoft Excel | Google Sheets |
|
|
173
173
|
|-------|------------------|----------------|
|
|
174
|
-
| `fileType` | `microsoft_xlsx` | `
|
|
174
|
+
| `fileType` | `microsoft_xlsx`, `microsoft_xlsm` | `gdrive_xlsx` (a workbook stored in Drive), `gsheet_native` (a Google Sheet) |
|
|
175
175
|
| `driveMsId` | OneDrive / SharePoint drive ID | Google Drive file ID (yes, the field name is misleading for the Google case) |
|
|
176
176
|
| `platformId` (= `fileMsId`) | Microsoft graph file ID | Google Drive file ID |
|
|
177
177
|
|
|
@@ -185,6 +185,7 @@ Tool failures return structured responses with `isError: true` and a human-reada
|
|
|
185
185
|
- **409 / "conflict"** — state-machine violation (e.g. approving an already-approved review).
|
|
186
186
|
- **403 / "forbidden"** — permission error (e.g. non-reviewer calling `approve_review`).
|
|
187
187
|
- **5xx** — server-side error. Retry once; if it persists, surface the error to the user — don't loop.
|
|
188
|
+
- **`CELL_HISTORY_UNAVAILABLE`** — `get_cell_history` cannot report that cell's history for that file. It is NOT an empty history and NOT a failure to retry: say the history is unavailable, and never report that the cell has no changes.
|
|
188
189
|
|
|
189
190
|
When a tool returns `isError: true`, do not silently retry with the same arguments. Either correct the arguments based on the error message or surface the failure.
|
|
190
191
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-cell-history.d.ts","sourceRoot":"","sources":["../../src/tools/get-cell-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-cell-history.d.ts","sourceRoot":"","sources":["../../src/tools/get-cell-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAYlD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,SAAS,GACb,IAAI,CAyIN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { cellHistoryUnavailableToolResult, isCellHistoryUnavailable, } from '../cell-history-unavailable.js';
|
|
2
3
|
import { assertChangeHistoryComplete, isNotReady, notReadyToolResult, } from '../not-ready.js';
|
|
3
4
|
import { parseCellAddress, sheetNamesAgree } from './cell-address.js';
|
|
4
5
|
export function registerGetCellHistoryTool(server, api) {
|
|
@@ -12,7 +13,16 @@ export function registerGetCellHistoryTool(server, api) {
|
|
|
12
13
|
'Answers CHANGE_HISTORY_NOT_READY (isError) while Rockhopper is still ' +
|
|
13
14
|
'computing this history. That is NOT an empty history — nothing is ' +
|
|
14
15
|
'known yet; retry after the stated interval and never report an ' +
|
|
15
|
-
'absence of changes from it.'
|
|
16
|
+
'absence of changes from it. ' +
|
|
17
|
+
// ENG-1748 — same reasoning one case over: a history this tool cannot
|
|
18
|
+
// report is a refusal, and the model must know that before it calls,
|
|
19
|
+
// because the alternative it used to get was a confident zero.
|
|
20
|
+
'Answers CELL_HISTORY_UNAVAILABLE (isError) when Rockhopper cannot ' +
|
|
21
|
+
'report this cell\'s history for this file. That is NOT an empty ' +
|
|
22
|
+
'history either — retrying will not change it, and nothing about ' +
|
|
23
|
+
'whether the cell changed may be inferred from it. An empty result ' +
|
|
24
|
+
'WITHOUT one of those two answers means the cell has no recorded ' +
|
|
25
|
+
'changes.',
|
|
16
26
|
inputSchema: z.object({
|
|
17
27
|
fileMsId: z.string().describe('Platform ID of the enrolled file'),
|
|
18
28
|
sheetName: z.string().describe('Name of the worksheet'),
|
|
@@ -97,6 +107,14 @@ export function registerGetCellHistoryTool(server, api) {
|
|
|
97
107
|
// broken, answer from what I already have".
|
|
98
108
|
if (isNotReady(error))
|
|
99
109
|
return notReadyToolResult(error);
|
|
110
|
+
// ENG-1748 — the backend refused because it cannot reconstruct this
|
|
111
|
+
// file's history. Rendering it through the generic branch below would
|
|
112
|
+
// hand the model prose it may read as "the tool is broken, answer from
|
|
113
|
+
// what I already have" — the same wrong turn the not-ready branch above
|
|
114
|
+
// exists to prevent.
|
|
115
|
+
if (isCellHistoryUnavailable(error)) {
|
|
116
|
+
return cellHistoryUnavailableToolResult(cell, sheetName);
|
|
117
|
+
}
|
|
100
118
|
return {
|
|
101
119
|
content: [
|
|
102
120
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-cell-history.js","sourceRoot":"","sources":["../../src/tools/get-cell-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,UAAU,EACV,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,GAAc;IAEd,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,kEAAkE;YAClE,oDAAoD;YACpD,uEAAuE;YACvE,oEAAoE;YACpE,+BAA+B;YAC/B,uEAAuE;YACvE,oEAAoE;YACpE,iEAAiE;YACjE,
|
|
1
|
+
{"version":3,"file":"get-cell-history.js","sourceRoot":"","sources":["../../src/tools/get-cell-history.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockhopper-co/mcp-server",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.69-staging.4a88e63",
|
|
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",
|