@rockhopper-co/mcp-server 2.1.34-staging.07e6531 → 2.1.36-staging.6dd7c1c
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/api-client.d.ts +27 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +30 -1
- package/dist/api-client.js.map +1 -1
- package/dist/drive-search.d.ts +49 -31
- package/dist/drive-search.d.ts.map +1 -1
- package/dist/drive-search.js +58 -47
- package/dist/drive-search.js.map +1 -1
- package/dist/lib.d.ts +8 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +6 -0
- package/dist/lib.js.map +1 -1
- package/dist/not-ready.d.ts +33 -1
- package/dist/not-ready.d.ts.map +1 -1
- package/dist/not-ready.js +48 -4
- package/dist/not-ready.js.map +1 -1
- package/dist/resources/changes.d.ts.map +1 -1
- package/dist/resources/changes.js +7 -1
- package/dist/resources/changes.js.map +1 -1
- package/dist/resources/orchestration-guide.md +7 -0
- package/dist/resources/versions.d.ts.map +1 -1
- package/dist/resources/versions.js +6 -0
- package/dist/resources/versions.js.map +1 -1
- package/dist/server.d.ts +16 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +27 -4
- package/dist/server.js.map +1 -1
- package/dist/tool-telemetry.d.ts +98 -0
- package/dist/tool-telemetry.d.ts.map +1 -0
- package/dist/tool-telemetry.js +96 -0
- package/dist/tool-telemetry.js.map +1 -0
- package/dist/tools/drive-search.contract.js +2 -2
- package/dist/tools/drive-search.d.ts +14 -7
- package/dist/tools/drive-search.d.ts.map +1 -1
- package/dist/tools/drive-search.js +65 -37
- package/dist/tools/drive-search.js.map +1 -1
- package/dist/tools/get-versions.d.ts.map +1 -1
- package/dist/tools/get-versions.js +15 -4
- package/dist/tools/get-versions.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +15 -1
- package/dist/tools/search.js.map +1 -1
- package/package.json +1 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -99,6 +99,33 @@ export declare class ApiClient {
|
|
|
99
99
|
* denial sends them to fix the wrong thing.
|
|
100
100
|
*/
|
|
101
101
|
setAuthExpiredHandler(handler: () => void): void;
|
|
102
|
+
/**
|
|
103
|
+
* ENG-2816 — a signing key for state that must survive a round trip through
|
|
104
|
+
* the client, derived from this session's credential and never the
|
|
105
|
+
* credential itself.
|
|
106
|
+
*
|
|
107
|
+
* **Why the token is the key material.** The 2026-07-28 confirmation lane
|
|
108
|
+
* hands the client a `requestState` string and reads it back on a SECOND
|
|
109
|
+
* request, and the gateway builds a fresh server per request across two
|
|
110
|
+
* production replicas (measured 2026-08-19: `rockhopper-production-mcp`
|
|
111
|
+
* runs `desiredCount: 2`). So nothing in process memory is there on the way
|
|
112
|
+
* back, and a shared secret is the only thing every replica already agrees
|
|
113
|
+
* on. The PAT is exactly that: the same session presents the same token to
|
|
114
|
+
* whichever replica answers, and a DIFFERENT principal derives a different
|
|
115
|
+
* key — which is the spec's user-binding requirement satisfied by
|
|
116
|
+
* construction rather than by a separate `bind` callback.
|
|
117
|
+
*
|
|
118
|
+
* **The token does not leave.** It is the HMAC key, so what the caller
|
|
119
|
+
* receives is a 32-byte digest and what the client eventually holds is a
|
|
120
|
+
* signature over a payload. Neither is invertible, and `token` stays
|
|
121
|
+
* private. `domain` separates one use from another so a key minted for the
|
|
122
|
+
* enrolment picker can never verify anything else.
|
|
123
|
+
*
|
|
124
|
+
* A rotated PAT invalidates a confirmation that is already in flight. That
|
|
125
|
+
* fails CLOSED — the pick is refused and the user searches again — which is
|
|
126
|
+
* the same answer this tool gives any state it cannot verify.
|
|
127
|
+
*/
|
|
128
|
+
deriveStateKey(domain: string): Buffer;
|
|
102
129
|
/**
|
|
103
130
|
* KI-096: optional `responseSchema` validates the response shape with
|
|
104
131
|
* zod. When supplied, drift between backend's actual response and the
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
1
|
+
import { createHmac, randomUUID } from 'node:crypto';
|
|
2
2
|
import { getCorrelationId } from './correlation.js';
|
|
3
3
|
import { log } from './logger.js';
|
|
4
4
|
import { CellHistoryEntryArraySchema, EnrolledFileSchema, FileChatSchema, FoldStatusSchema, } from './zod-schemas.js';
|
|
@@ -125,6 +125,35 @@ export class ApiClient {
|
|
|
125
125
|
setAuthExpiredHandler(handler) {
|
|
126
126
|
this.authExpiredHandler = handler;
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* ENG-2816 — a signing key for state that must survive a round trip through
|
|
130
|
+
* the client, derived from this session's credential and never the
|
|
131
|
+
* credential itself.
|
|
132
|
+
*
|
|
133
|
+
* **Why the token is the key material.** The 2026-07-28 confirmation lane
|
|
134
|
+
* hands the client a `requestState` string and reads it back on a SECOND
|
|
135
|
+
* request, and the gateway builds a fresh server per request across two
|
|
136
|
+
* production replicas (measured 2026-08-19: `rockhopper-production-mcp`
|
|
137
|
+
* runs `desiredCount: 2`). So nothing in process memory is there on the way
|
|
138
|
+
* back, and a shared secret is the only thing every replica already agrees
|
|
139
|
+
* on. The PAT is exactly that: the same session presents the same token to
|
|
140
|
+
* whichever replica answers, and a DIFFERENT principal derives a different
|
|
141
|
+
* key — which is the spec's user-binding requirement satisfied by
|
|
142
|
+
* construction rather than by a separate `bind` callback.
|
|
143
|
+
*
|
|
144
|
+
* **The token does not leave.** It is the HMAC key, so what the caller
|
|
145
|
+
* receives is a 32-byte digest and what the client eventually holds is a
|
|
146
|
+
* signature over a payload. Neither is invertible, and `token` stays
|
|
147
|
+
* private. `domain` separates one use from another so a key minted for the
|
|
148
|
+
* enrolment picker can never verify anything else.
|
|
149
|
+
*
|
|
150
|
+
* A rotated PAT invalidates a confirmation that is already in flight. That
|
|
151
|
+
* fails CLOSED — the pick is refused and the user searches again — which is
|
|
152
|
+
* the same answer this tool gives any state it cannot verify.
|
|
153
|
+
*/
|
|
154
|
+
deriveStateKey(domain) {
|
|
155
|
+
return createHmac('sha256', this.token).update(domain).digest();
|
|
156
|
+
}
|
|
128
157
|
/**
|
|
129
158
|
* KI-096: optional `responseSchema` validates the response shape with
|
|
130
159
|
* zod. When supplied, drift between backend's actual response and the
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAwBlC,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,QAE/B;IACC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,2BAA2B,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAC5C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,2BAA2B,CAAC;AAClC,CAAC;AAmCD;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,MAAM,CAAS;IACxB;;;;;;;;OAQG;IACM,IAAI,CAAgB;IAC7B;;;;;;;;;;OAUG;IACM,MAAM,CAAgB;IAC/B,YACE,MAAc,EACd,OAAe,EACf,IAAoB,EACpB,MAAsB;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;IAC/B,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,KAAwB;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,KAAK,GAAI,MAAkC,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElE,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,aAAa,CAAU;IACvB,OAAO,CAAS;IAChB,SAAS,CAAS;IAC3B,sBAAsB,CAAgB;IACtC,kBAAkB,CAAc;IAChC,mBAAmB,GAAG,KAAK,CAAC;IAEpC,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,OAAO,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC;QACrE,IAAI,CAAC,sBAAsB;YACzB,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,UAAyB;QACvC,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,CAAC,OAAmB;QACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,OAAO,CACnB,IAAY,EACZ,IAAkB,EAClB,cAA2B;QAE3B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,wEAAwE;QACxE,qEAAqE;QACrE,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC1B,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;oBACrC,cAAc,EAAE,kBAAkB;oBAClC,gEAAgE;oBAChE,oEAAoE;oBACpE,mEAAmE;oBACnE,oEAAoE;oBACpE,kBAAkB,EAChB,IAAI,CAAC,aAAa,IAAI,gBAAgB,EAAE,IAAI,UAAU,EAAE;oBAC1D,4DAA4D;oBAC5D,iEAAiE;oBACjE,kEAAkE;oBAClE,iEAAiE;oBACjE,4DAA4D;oBAC5D,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC3B,CAAC,CAAC;4BACE,sBAAsB,EAAE,IAAI,CAAC,OAAO;4BACpC,yBAAyB,EAAE,IAAI,CAAC,SAAS;4BACzC,GAAG,CAAC,IAAI,CAAC,sBAAsB;gCAC7B,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE;gCACpD,CAAC,CAAC,EAAE,CAAC;yBACR;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,IAAI,EAAE,OAAO;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qEAAqE;YACrE,kEAAkE;YAClE,GAAG,CAAC,KAAK,CACP,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EACzF,iBAAiB,CAClB,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,kEAAkE;YAClE,uCAAuC;YACvC,qEAAqE;YACrE,kEAAkE;YAClE,0EAA0E;YAC1E,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YACpE,MAAM,cAAc,GAClB,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAChD,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,QAAQ;oBACR,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,YAAY,CAAC;YACrB,GAAG,CAAC,IAAI,CACN;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,MAAM;gBACN,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU;gBACV,cAAc;aACf,EACD,oBAAoB,CACrB,CAAC;YACF,oDAAoD;YACpD,yEAAyE;YACzE,yDAAyD;YACzD,IACE,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,IAAI,CAAC,kBAAkB;gBACvB,CAAC,IAAI,CAAC,mBAAmB,EACzB,CAAC;gBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,0BAA0B,CAAC;oBACnC,MAAM,EAAE,iBAAiB;oBACzB,iBAAiB,EAAE,sBAAsB,CAAC,QAAQ,CAAC;oBACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,OAAO,QAAQ,EAAE;iBACnE,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,QAAQ,CAAC,MAAM,EACf,kBAAkB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,MAAM,IAAI,EAAE,EACrE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,EAC7B,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAChC,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CACN,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,EACrF,aAAa,CACd,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,mEAAmE;gBACnE,kEAAkE;gBAClE,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrC,oEAAoE;gBACpE,iEAAiE;gBACjE,8CAA8C;gBAC9C,GAAG,CAAC,IAAI,CACN;oBACE,KAAK,EAAE,0BAA0B;oBACjC,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ;oBACxC,GAAG,EAAE,KAAK,EAAE,OAAO;iBACpB,EACD,0BAA0B,CAC3B,CAAC;gBACF,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,IAAI;oBACxD,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,MAAM,KAAK,EAAE,OAAO,GAAG;oBAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,kBAAkB,CACnD,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,OAAO,CAAc,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,0CAA0C;IAE1C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,OAAO,CAA0B,yBAAyB,EAAE;YACtE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAsB,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,OAAO,CACjB,sBAAsB,EACtB,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAEhB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,iBAAiB,CAAC,MAGvB;QACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAe,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,+CAA+C;IAE/C;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAItB;QACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAUxB;QACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CACjB,yBAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC;IACJ,CAAC;IAED,0CAA0C;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAkB,6BAA6B,EAAE;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAmB,2BAA2B,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAIxB;QACC,OAAO,IAAI,CAAC,OAAO,CAAmB,iBAAiB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,oBAAoB,CACxB,IAAuD,EACvD,kBAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAmB,uBAAuB,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC9C,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,CAAC;aAC5C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IAExB,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAgB,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,iBAAyB;QAC5C,OAAO,IAAI,CAAC,OAAO,CACjB,+BAA+B,iBAAiB,EAAE,CACnD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,QAAQ,cAAc,EAC7C,SAAS,EACT,gBAAkD,CACnD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,WAAmB;QAEnB,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;YAChC,IAAI,EAAE,WAAW;YACjB,SAAS;YACT,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,QAAQ,iBAAiB,KAAK,EAAE,EACvD,SAAS,EACT,2BAAqE,CACtE,CAAC;IACJ,CAAC;IAED,+BAA+B;IAE/B,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAa,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAW,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAKnB;QACC,OAAO,IAAI,CAAC,OAAO,CAAW,YAAY,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,IAAoD;QAEpD,OAAO,IAAI,CAAC,OAAO,CAAW,cAAc,MAAM,UAAU,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,OAAO,CACjB,cAAc,MAAM,EAAE,EACtB;YACE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACzC,EACD,cAA8C,CAC/C,CAAC;IACJ,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,oBAAoB,CACxB,SAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,SAAS,WAAW,CAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,QAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,QAAQ,0BAA0B,CACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAgB,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,QAAQ,aAAa,CAC3C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAKzB;QACC,OAAO,IAAI,CAAC,OAAO,CAAgB,mBAAmB,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,IAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,QAAQ,UAAU,EACvC;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CACF,CAAC;IACJ,CAAC;IAED,+BAA+B;IAE/B;;;;;;OAMG;IACH,KAAK,CAAC,6BAA6B,CACjC,QAAgB,EAChB,SAAiB;QAEjB,MAAM,IAAI,GAAG,yBAAyB,QAAQ,IAAI,kBAAkB,CAClE,SAAS,CACV,EAAE,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAuB,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,+BAA+B,CACnC,QAAgB,EAChB,MAAe;QAEf,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,mCAAmC,QAAQ,GAAG,EAAE,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAgC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,4BAA4B;IAE5B,KAAK,CAAC,aAAa,CAAC,IAQnB;QACC,OAAO,IAAI,CAAC,OAAO,CAAc,gBAAgB,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,IAA6B;QAE7B,OAAO,IAAI,CAAC,OAAO,CACjB,oCAAoC,QAAQ,EAAE,EAC9C;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CACF,CAAC;IACJ,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAgB,qBAAqB,QAAQ,EAAE,EAAE;YAClE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAE/B;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,IAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CACjB,mBAAmB,QAAQ,EAAE,EAC7B;YACE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,EACD,kBAAsD,CACvD,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/drive-search.d.ts
CHANGED
|
@@ -19,11 +19,14 @@
|
|
|
19
19
|
*
|
|
20
20
|
* 1. {@link SearchBudget} is a HARD per-session ceiling on how many times the
|
|
21
21
|
* drive can be searched at all.
|
|
22
|
-
* 2. {@link
|
|
23
|
-
* THIS session's search actually returned. The
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* 2. {@link createConfirmationCodec} means a confirmation can only ever name a
|
|
23
|
+
* file THIS session's search actually returned. The candidate set rides the
|
|
24
|
+
* round trip under an HMAC keyed on the session's own credential and is
|
|
25
|
+
* verified fail-closed; nothing the client merely ASSERTS about a file is
|
|
26
|
+
* trusted.
|
|
26
27
|
*/
|
|
28
|
+
import { type RequestStateCodec } from '@modelcontextprotocol/server';
|
|
29
|
+
import { type ApiClient } from './api-client.js';
|
|
27
30
|
import type { DriveSearchItem } from './types.js';
|
|
28
31
|
/**
|
|
29
32
|
* Searches one session may run, total.
|
|
@@ -120,36 +123,51 @@ export interface Candidate {
|
|
|
120
123
|
enrollmentState: DriveSearchItem['enrollmentState'];
|
|
121
124
|
}
|
|
122
125
|
/**
|
|
123
|
-
*
|
|
126
|
+
* How long a confirmation stays answerable, in seconds.
|
|
124
127
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* the
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
128
|
+
* Long enough that a person can read ten rows, open a workbook to check, and
|
|
129
|
+
* come back; short enough that a captured prompt is not answerable tomorrow.
|
|
130
|
+
* Past it the pick is refused rather than resolved, and the remedy printed by
|
|
131
|
+
* {@link unknownCandidateAnswer} — search again and confirm against the list
|
|
132
|
+
* that comes back — is the right one for an expiry as well as for a forgery.
|
|
133
|
+
*/
|
|
134
|
+
export declare const CONFIRMATION_TTL_SECONDS = 1800;
|
|
135
|
+
/**
|
|
136
|
+
* The candidate set a confirmation is answering, sealed for the round trip.
|
|
137
|
+
*
|
|
138
|
+
* **ENG-2816 — why this is signed state and no longer a server-memory Map.**
|
|
139
|
+
* The original design kept the candidate sets in a per-server `Map` keyed by a
|
|
140
|
+
* nonce, and put only the nonce on the wire, reasoning that a confirmation
|
|
141
|
+
* must resolve against something the client cannot author. The reasoning was
|
|
142
|
+
* right and the CARRIER was wrong: a confirmation is a SECOND request, the
|
|
143
|
+
* gateway builds a fresh server per request (`mcp-handler.ts` — "Stateless and
|
|
144
|
+
* per-request"), and production runs two replicas. So the Map that held the
|
|
145
|
+
* answer had already been discarded by the time the answer arrived, and every
|
|
146
|
+
* confirmation over the gateway resolved to nothing and was refused as
|
|
147
|
+
* `unknown_candidate`. It never worked once in the deployed serving; the specs
|
|
148
|
+
* missed it because a test reuses one server for both rounds.
|
|
134
149
|
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
150
|
+
* The security property is unchanged, not relaxed. The wire value is
|
|
151
|
+
* HMAC-SHA256 over the payload under a key derived from this session's own
|
|
152
|
+
* credential ({@link ApiClient.deriveStateKey}), verified fail-closed before
|
|
153
|
+
* the candidates are read. A model that has read a hostile file name still
|
|
154
|
+
* cannot conjure a `driveMsId` and have this tool bless it — it would have to
|
|
155
|
+
* forge a signature — and a different principal derives a different key, so
|
|
156
|
+
* one session's confirmation cannot be replayed into another's.
|
|
157
|
+
*
|
|
158
|
+
* Signed, NOT encrypted: the client can decode and read the payload. That is
|
|
159
|
+
* acceptable here and only here — the payload is the candidate list this same
|
|
160
|
+
* user was just shown on screen. Never put anything else in it.
|
|
137
161
|
*/
|
|
138
|
-
export declare
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
* the caller's answer to that is the same refusal.
|
|
148
|
-
*/
|
|
149
|
-
resolve(nonce: string, index: number): Candidate | null;
|
|
150
|
-
/** The set offered under `nonce`, for re-rendering the question on retry. */
|
|
151
|
-
recall(nonce: string): readonly Candidate[] | null;
|
|
152
|
-
}
|
|
162
|
+
export declare function createConfirmationCodec(api: Pick<ApiClient, 'deriveStateKey'>): RequestStateCodec<readonly Candidate[]>;
|
|
163
|
+
/**
|
|
164
|
+
* The candidate at a 0-based position, or `null`.
|
|
165
|
+
*
|
|
166
|
+
* `null` for a non-integer and for an out-of-range index alike: both mean the
|
|
167
|
+
* confirmation is describing something this search did not offer, and the
|
|
168
|
+
* caller's answer to that is the same refusal.
|
|
169
|
+
*/
|
|
170
|
+
export declare function candidateAt(candidates: readonly Candidate[], index: number): Candidate | null;
|
|
153
171
|
/** Turn a backend item into a candidate, dropping fields nothing renders. */
|
|
154
172
|
export declare function toCandidate(item: DriveSearchItem): Candidate;
|
|
155
173
|
export interface ClassifiedSearchFailure {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-search.d.ts","sourceRoot":"","sources":["../src/drive-search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"drive-search.d.ts","sourceRoot":"","sources":["../src/drive-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,kFAAkF;AAClF,MAAM,MAAM,kBAAkB;AAC5B,0EAA0E;AACxE,YAAY;AACd,qDAAqD;GACnD,YAAY;AACd,+EAA+E;GAC7E,WAAW;AACb;;;;GAIG;GACD,UAAU;AACZ;;;;;;;;;GASG;GACD,WAAW;AACb;;;GAGG;GACD,eAAe;AACjB,8EAA8E;GAC5E,sBAAsB;AACxB,wEAAwE;GACtE,yBAAyB;AAC3B;;;;;;GAMG;GACD,mCAAmC;AACrC,uEAAuE;GACrE,oBAAoB;AACtB,mEAAmE;GACjE,qBAAqB;AACvB,0EAA0E;GACxE,mBAAmB,CAAC;AAExB;;;;;;GAMG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,IAAI,CAAK;gBAEY,KAAK,GAAE,MAAoC;IAExE,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACH,KAAK,IAAI,OAAO;CAKjB;AAED,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAK7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,GACrC,iBAAiB,CAAC,SAAS,SAAS,EAAE,CAAC,CAKzC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,KAAK,EAAE,MAAM,GACZ,SAAS,GAAG,IAAI,CAKlB;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,CAS5D;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,uBAAuB,CAiCzB;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI1D;AAcD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI9D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,QAQuB,CAAC"}
|
package/dist/drive-search.js
CHANGED
|
@@ -19,11 +19,13 @@
|
|
|
19
19
|
*
|
|
20
20
|
* 1. {@link SearchBudget} is a HARD per-session ceiling on how many times the
|
|
21
21
|
* drive can be searched at all.
|
|
22
|
-
* 2. {@link
|
|
23
|
-
* THIS session's search actually returned. The
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* 2. {@link createConfirmationCodec} means a confirmation can only ever name a
|
|
23
|
+
* file THIS session's search actually returned. The candidate set rides the
|
|
24
|
+
* round trip under an HMAC keyed on the session's own credential and is
|
|
25
|
+
* verified fail-closed; nothing the client merely ASSERTS about a file is
|
|
26
|
+
* trusted.
|
|
26
27
|
*/
|
|
28
|
+
import { createRequestStateCodec, } from '@modelcontextprotocol/server';
|
|
27
29
|
import { RockhopperApiError } from './api-client.js';
|
|
28
30
|
/**
|
|
29
31
|
* Searches one session may run, total.
|
|
@@ -74,53 +76,62 @@ export class SearchBudget {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
/**
|
|
77
|
-
*
|
|
79
|
+
* How long a confirmation stays answerable, in seconds.
|
|
78
80
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* the
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
* Long enough that a person can read ten rows, open a workbook to check, and
|
|
82
|
+
* come back; short enough that a captured prompt is not answerable tomorrow.
|
|
83
|
+
* Past it the pick is refused rather than resolved, and the remedy printed by
|
|
84
|
+
* {@link unknownCandidateAnswer} — search again and confirm against the list
|
|
85
|
+
* that comes back — is the right one for an expiry as well as for a forgery.
|
|
86
|
+
*/
|
|
87
|
+
export const CONFIRMATION_TTL_SECONDS = 1800;
|
|
88
|
+
/** Domain separator, so this key can never verify some other feature's state. */
|
|
89
|
+
const CONFIRMATION_KEY_DOMAIN = 'rockhopper.drive-search.confirmation.v1';
|
|
90
|
+
/**
|
|
91
|
+
* The candidate set a confirmation is answering, sealed for the round trip.
|
|
92
|
+
*
|
|
93
|
+
* **ENG-2816 — why this is signed state and no longer a server-memory Map.**
|
|
94
|
+
* The original design kept the candidate sets in a per-server `Map` keyed by a
|
|
95
|
+
* nonce, and put only the nonce on the wire, reasoning that a confirmation
|
|
96
|
+
* must resolve against something the client cannot author. The reasoning was
|
|
97
|
+
* right and the CARRIER was wrong: a confirmation is a SECOND request, the
|
|
98
|
+
* gateway builds a fresh server per request (`mcp-handler.ts` — "Stateless and
|
|
99
|
+
* per-request"), and production runs two replicas. So the Map that held the
|
|
100
|
+
* answer had already been discarded by the time the answer arrived, and every
|
|
101
|
+
* confirmation over the gateway resolved to nothing and was refused as
|
|
102
|
+
* `unknown_candidate`. It never worked once in the deployed serving; the specs
|
|
103
|
+
* missed it because a test reuses one server for both rounds.
|
|
104
|
+
*
|
|
105
|
+
* The security property is unchanged, not relaxed. The wire value is
|
|
106
|
+
* HMAC-SHA256 over the payload under a key derived from this session's own
|
|
107
|
+
* credential ({@link ApiClient.deriveStateKey}), verified fail-closed before
|
|
108
|
+
* the candidates are read. A model that has read a hostile file name still
|
|
109
|
+
* cannot conjure a `driveMsId` and have this tool bless it — it would have to
|
|
110
|
+
* forge a signature — and a different principal derives a different key, so
|
|
111
|
+
* one session's confirmation cannot be replayed into another's.
|
|
88
112
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
113
|
+
* Signed, NOT encrypted: the client can decode and read the payload. That is
|
|
114
|
+
* acceptable here and only here — the payload is the candidate list this same
|
|
115
|
+
* user was just shown on screen. Never put anything else in it.
|
|
91
116
|
*/
|
|
92
|
-
export
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
* the confirmation is describing something this session did not offer, and
|
|
109
|
-
* the caller's answer to that is the same refusal.
|
|
110
|
-
*/
|
|
111
|
-
resolve(nonce, index) {
|
|
112
|
-
const set = this.sets.get(nonce);
|
|
113
|
-
if (!set)
|
|
114
|
-
return null;
|
|
115
|
-
if (!Number.isInteger(index) || index < 0 || index >= set.length) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
return set[index];
|
|
119
|
-
}
|
|
120
|
-
/** The set offered under `nonce`, for re-rendering the question on retry. */
|
|
121
|
-
recall(nonce) {
|
|
122
|
-
return this.sets.get(nonce) ?? null;
|
|
117
|
+
export function createConfirmationCodec(api) {
|
|
118
|
+
return createRequestStateCodec({
|
|
119
|
+
key: api.deriveStateKey(CONFIRMATION_KEY_DOMAIN),
|
|
120
|
+
ttlSeconds: CONFIRMATION_TTL_SECONDS,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The candidate at a 0-based position, or `null`.
|
|
125
|
+
*
|
|
126
|
+
* `null` for a non-integer and for an out-of-range index alike: both mean the
|
|
127
|
+
* confirmation is describing something this search did not offer, and the
|
|
128
|
+
* caller's answer to that is the same refusal.
|
|
129
|
+
*/
|
|
130
|
+
export function candidateAt(candidates, index) {
|
|
131
|
+
if (!Number.isInteger(index) || index < 0 || index >= candidates.length) {
|
|
132
|
+
return null;
|
|
123
133
|
}
|
|
134
|
+
return candidates[index];
|
|
124
135
|
}
|
|
125
136
|
/** Turn a backend item into a candidate, dropping fields nothing renders. */
|
|
126
137
|
export function toCandidate(item) {
|
package/dist/drive-search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-search.js","sourceRoot":"","sources":["../src/drive-search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"drive-search.js","sourceRoot":"","sources":["../src/drive-search.ts"],"names":[],"mappings":"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"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Stable API surface (semver-bound):
|
|
15
15
|
* - `createServer(apiClient, options?): McpServer`
|
|
16
|
+
* - `ToolTelemetrySink` (ENG-2823) — where a HOST wants one structured line
|
|
17
|
+
* per tool call to go. The stdio surface omits it and keeps the local
|
|
18
|
+
* file, because stdout is the transport there; the gateway supplies its
|
|
19
|
+
* request logger so the line reaches CloudWatch. The package never picks
|
|
20
|
+
* a destination, and the event's key set is fixed so no host can widen it
|
|
21
|
+
* into arguments or content.
|
|
16
22
|
* - `grantsWriteTools(scope)` — the write allow-list (ENG-2208), exported so
|
|
17
23
|
* the gateway asks the same question instead of writing a second copy of
|
|
18
24
|
* the rule that would drift from this one.
|
|
@@ -24,7 +30,8 @@
|
|
|
24
30
|
* - `ApiClient` (class) and `ApiClientConfig` (interface)
|
|
25
31
|
* - All `types` (Team, EnrolledFile, FileVersion, ...)
|
|
26
32
|
*/
|
|
27
|
-
export { createServer } from './server.js';
|
|
33
|
+
export { createServer, type CreateServerOptions } from './server.js';
|
|
34
|
+
export { type ToolOutcome, type ToolTelemetryEvent, type ToolTelemetrySink, } from './tool-telemetry.js';
|
|
28
35
|
export { grantsWriteTools, resolveCapabilities, registeredToolsForCapabilities, PAT_CAPABILITIES, PENDING_WRITE_TOOLS, WRITE_TOOLS_BY_CAPABILITY, type PatCapability, type RegisterToolsOptions, } from './tools/index.js';
|
|
29
36
|
export { ApiClient, type ApiClientConfig } from './api-client.js';
|
|
30
37
|
export * from './types.js';
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,cAAc,YAAY,CAAC"}
|
package/dist/lib.js
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Stable API surface (semver-bound):
|
|
15
15
|
* - `createServer(apiClient, options?): McpServer`
|
|
16
|
+
* - `ToolTelemetrySink` (ENG-2823) — where a HOST wants one structured line
|
|
17
|
+
* per tool call to go. The stdio surface omits it and keeps the local
|
|
18
|
+
* file, because stdout is the transport there; the gateway supplies its
|
|
19
|
+
* request logger so the line reaches CloudWatch. The package never picks
|
|
20
|
+
* a destination, and the event's key set is fixed so no host can widen it
|
|
21
|
+
* into arguments or content.
|
|
16
22
|
* - `grantsWriteTools(scope)` — the write allow-list (ENG-2208), exported so
|
|
17
23
|
* the gateway asks the same question instead of writing a second copy of
|
|
18
24
|
* the rule that would drift from this one.
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAC;AAMrE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC9B,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,GAG1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAClE,cAAc,YAAY,CAAC"}
|
package/dist/not-ready.d.ts
CHANGED
|
@@ -32,7 +32,14 @@ export type NotReadyReason =
|
|
|
32
32
|
* an unknown completeness state is not permission to serve rows. This is the
|
|
33
33
|
* one reason that is NOT a statement about the file.
|
|
34
34
|
*/
|
|
35
|
-
| 'completeness_unknown'
|
|
35
|
+
| 'completeness_unknown'
|
|
36
|
+
/**
|
|
37
|
+
* ENG-2824 — the file is enrolled but its initial read has not landed yet.
|
|
38
|
+
* Distinct from `change_history_incomplete`, which is a FOLD rewriting an
|
|
39
|
+
* existing window: here there is no window and no version, because enrolment
|
|
40
|
+
* saves the file row before it writes Initial 1.0.0 / Live 0.0.0.
|
|
41
|
+
*/
|
|
42
|
+
| 'enrollment_incomplete';
|
|
36
43
|
/** Grep marker; also the first token of every refusal an assistant sees. */
|
|
37
44
|
export declare const NOT_READY_MARKER = "CHANGE_HISTORY_NOT_READY";
|
|
38
45
|
/** Poll hint when the backend gave none — mirrors the backend's own default. */
|
|
@@ -68,6 +75,31 @@ export interface NotReadyToolResult {
|
|
|
68
75
|
* wrong inference explicitly, and a JSON object to branch on.
|
|
69
76
|
*/
|
|
70
77
|
export declare function notReadyToolResult(err: unknown): NotReadyToolResult;
|
|
78
|
+
/**
|
|
79
|
+
* ENG-2824 — throws {@link ChangeHistoryNotReadyError} when the file's initial
|
|
80
|
+
* read has not landed, judged by its version list being EMPTY.
|
|
81
|
+
*
|
|
82
|
+
* Why the version list is the right signal, and why the existing probe cannot
|
|
83
|
+
* be it. `assertChangeHistoryComplete` asks the commit-diff QUEUE, and the
|
|
84
|
+
* enrolment write enqueues no fold at all — `initial` is named among the
|
|
85
|
+
* never-enqueued classes in `backend/src/queue/commit-diff-fold-status.sql.ts`
|
|
86
|
+
* ("the never-enqueued classes (initial, …) are all correctly reported as
|
|
87
|
+
* nothing pending"). So during the ~90 seconds a workbook is being read for
|
|
88
|
+
* the first time the probe answers `foldPending: false` truthfully, and every
|
|
89
|
+
* change-history surface reads that as permission to serve an empty list.
|
|
90
|
+
*
|
|
91
|
+
* The backend already treats "row exists, zero versions" as enrolment that has
|
|
92
|
+
* not finished: `enrolled-files.service.ts` short-circuits a repeat POST only
|
|
93
|
+
* when the row has "at least one saved FileVersion", and calls a versionless
|
|
94
|
+
* row a "half-enrolled stub" on the Google path. Enrolment saves the file row
|
|
95
|
+
* first and Initial 1.0.0 / Live 0.0.0 after, on BOTH platform paths, so there
|
|
96
|
+
* is no enrolled-and-complete file with zero versions.
|
|
97
|
+
*
|
|
98
|
+
* Existence is not being inferred here: `FileUserAccessGuard` denies an unknown
|
|
99
|
+
* or unauthorised id outright, so a 200 carrying an empty array means the file
|
|
100
|
+
* is ours and is still being read — not that it might not exist.
|
|
101
|
+
*/
|
|
102
|
+
export declare function assertEnrollmentComplete(fileMsId: string, versions: readonly unknown[]): void;
|
|
71
103
|
/** The completeness probe this module needs from the API client. */
|
|
72
104
|
export interface CompletenessProbe {
|
|
73
105
|
getFoldStatus(fileMsId: string): Promise<{
|
package/dist/not-ready.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-ready.d.ts","sourceRoot":"","sources":["../src/not-ready.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,oDAAoD;AACpD,MAAM,MAAM,cAAc;AACxB,2EAA2E;AACzE,2BAA2B;AAC7B,6EAA6E;GAC3E,iBAAiB;AACnB;;;;GAIG;GACD,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"not-ready.d.ts","sourceRoot":"","sources":["../src/not-ready.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,oDAAoD;AACpD,MAAM,MAAM,cAAc;AACxB,2EAA2E;AACzE,2BAA2B;AAC7B,6EAA6E;GAC3E,iBAAiB;AACnB;;;;GAIG;GACD,sBAAsB;AACxB;;;;;GAKG;GACD,uBAAuB,CAAC;AAE5B,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAG,IAAI,CAAU;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErB,GAAG,EAAE;QACf,MAAM,EAAE,cAAc,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CAeF;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,0BAA0B,CAI1E;AAyBD,MAAM,WAAW,kBAAkB;IACjC;8DAC0D;IAC1D,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;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAmCnE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,IAAI,CASN;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC;QACrB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
package/dist/not-ready.js
CHANGED
|
@@ -87,15 +87,25 @@ export function notReadyToolResult(err) {
|
|
|
87
87
|
retryAfterSeconds: e.retryAfterSeconds,
|
|
88
88
|
fileMsId: e.fileMsId,
|
|
89
89
|
};
|
|
90
|
+
// ENG-2824 — the enrolment case is not a change-history statement, and
|
|
91
|
+
// saying "computing this file's change history" over a file whose bytes
|
|
92
|
+
// have not been read yet invites exactly the wrong follow-up ("so it has
|
|
93
|
+
// no versions"). Name the state the caller is actually in.
|
|
94
|
+
const body = e.reason === 'enrollment_incomplete'
|
|
95
|
+
? `Rockhopper is still reading this workbook for the first time, so no ` +
|
|
96
|
+
`versions and no changes can be served yet.\n` +
|
|
97
|
+
`Do NOT say the file has no versions, no history or no changes, that ` +
|
|
98
|
+
`it is empty, or that enrolment failed — none of that is known.\n`
|
|
99
|
+
: `Rockhopper has not finished computing this file's change history, ` +
|
|
100
|
+
`so no rows can be served.\n` +
|
|
101
|
+
`Do NOT say there are no changes, that nothing changed, or that the ` +
|
|
102
|
+
`history is empty — none of that is known.\n`;
|
|
90
103
|
return {
|
|
91
104
|
content: [
|
|
92
105
|
{
|
|
93
106
|
type: 'text',
|
|
94
107
|
text: `${NOT_READY_MARKER} — this is NOT a result and NOT an empty result.\n` +
|
|
95
|
-
|
|
96
|
-
`so no rows can be served.\n` +
|
|
97
|
-
`Do NOT say there are no changes, that nothing changed, or that the ` +
|
|
98
|
-
`history is empty — none of that is known.\n` +
|
|
108
|
+
body +
|
|
99
109
|
`Retry in ${e.retryAfterSeconds} seconds.\n` +
|
|
100
110
|
JSON.stringify(payload),
|
|
101
111
|
},
|
|
@@ -103,6 +113,40 @@ export function notReadyToolResult(err) {
|
|
|
103
113
|
isError: true,
|
|
104
114
|
};
|
|
105
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* ENG-2824 — throws {@link ChangeHistoryNotReadyError} when the file's initial
|
|
118
|
+
* read has not landed, judged by its version list being EMPTY.
|
|
119
|
+
*
|
|
120
|
+
* Why the version list is the right signal, and why the existing probe cannot
|
|
121
|
+
* be it. `assertChangeHistoryComplete` asks the commit-diff QUEUE, and the
|
|
122
|
+
* enrolment write enqueues no fold at all — `initial` is named among the
|
|
123
|
+
* never-enqueued classes in `backend/src/queue/commit-diff-fold-status.sql.ts`
|
|
124
|
+
* ("the never-enqueued classes (initial, …) are all correctly reported as
|
|
125
|
+
* nothing pending"). So during the ~90 seconds a workbook is being read for
|
|
126
|
+
* the first time the probe answers `foldPending: false` truthfully, and every
|
|
127
|
+
* change-history surface reads that as permission to serve an empty list.
|
|
128
|
+
*
|
|
129
|
+
* The backend already treats "row exists, zero versions" as enrolment that has
|
|
130
|
+
* not finished: `enrolled-files.service.ts` short-circuits a repeat POST only
|
|
131
|
+
* when the row has "at least one saved FileVersion", and calls a versionless
|
|
132
|
+
* row a "half-enrolled stub" on the Google path. Enrolment saves the file row
|
|
133
|
+
* first and Initial 1.0.0 / Live 0.0.0 after, on BOTH platform paths, so there
|
|
134
|
+
* is no enrolled-and-complete file with zero versions.
|
|
135
|
+
*
|
|
136
|
+
* Existence is not being inferred here: `FileUserAccessGuard` denies an unknown
|
|
137
|
+
* or unauthorised id outright, so a 200 carrying an empty array means the file
|
|
138
|
+
* is ours and is still being read — not that it might not exist.
|
|
139
|
+
*/
|
|
140
|
+
export function assertEnrollmentComplete(fileMsId, versions) {
|
|
141
|
+
if (versions.length > 0)
|
|
142
|
+
return;
|
|
143
|
+
throw new ChangeHistoryNotReadyError({
|
|
144
|
+
reason: 'enrollment_incomplete',
|
|
145
|
+
fileMsId,
|
|
146
|
+
detail: 'the file is enrolled but has no versions yet, so its initial read has ' +
|
|
147
|
+
'not finished',
|
|
148
|
+
});
|
|
149
|
+
}
|
|
106
150
|
/**
|
|
107
151
|
* Throws {@link ChangeHistoryNotReadyError} unless the file's change history is
|
|
108
152
|
* complete.
|