@noodleseed/one 0.103.1 → 0.104.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@noodle-borg/agent-kit/dist/behavior-skills.d.ts +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/behavior-skills.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/behavior-skills.js +28 -4
- package/node_modules/@noodle-borg/agent-kit/dist/behavior-skills.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +0 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-existing-app-ref.d.ts +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-existing-app-ref.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-existing-app-ref.js +71 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-existing-app-ref.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +9 -2
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/external-credential-provider/README.md +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/request-state.d.ts +3 -1
- package/node_modules/@noodle-borg/protocol/dist/request-state.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/request-state.js +16 -15
- package/node_modules/@noodle-borg/protocol/dist/request-state.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.js +70 -11
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/input-required.d.ts +4 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/input-required.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js +24 -10
- package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.d.ts +5 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.js +77 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js +61 -24
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,12 @@ export const SKILL_ROUTES = [
|
|
|
12
12
|
skill: 'designing-mcp-products',
|
|
13
13
|
exitCondition: 'The product contract identifies the user benefit, model boundary, evidence, and next implementation skill.',
|
|
14
14
|
},
|
|
15
|
+
{
|
|
16
|
+
id: 'wrap-existing-app',
|
|
17
|
+
intent: 'Plan how to wrap an existing application that has no stable usable public API',
|
|
18
|
+
skill: 'wrapping-existing-applications',
|
|
19
|
+
exitCondition: 'A sanitized identity-first capability map and repository-scoped implementation plan are presented for approval before mutation.',
|
|
20
|
+
},
|
|
15
21
|
{
|
|
16
22
|
id: 'build-server',
|
|
17
23
|
intent: 'Create or extend a headless MCP server whose external API contract is already modeled',
|
|
@@ -20,7 +26,7 @@ export const SKILL_ROUTES = [
|
|
|
20
26
|
},
|
|
21
27
|
{
|
|
22
28
|
id: 'connect-api',
|
|
23
|
-
intent: 'Connect a real API when
|
|
29
|
+
intent: 'Connect a real API only when all four API-evidence inputs exist: API base URL, authentication scheme, representative safe read, and observed response',
|
|
24
30
|
skill: 'connecting-apis-to-mcp',
|
|
25
31
|
exitCondition: 'A representative live read returns populated, intentionally mapped fields without exposing credentials.',
|
|
26
32
|
},
|
|
@@ -84,6 +90,7 @@ export const REFERENCE_INDEX_LINES = [
|
|
|
84
90
|
'- `references/tool-design.md` — intent-shaped tools, titles and annotations, bounded outputs, tool-surface budget, and context provisioning.',
|
|
85
91
|
'- `references/embedded-assistant.md` — HTTPS origins, managed model config, deploy sequencing, session exchange, browser mounting, and credential boundaries.',
|
|
86
92
|
'- `references/connect-an-api.md` — secure credentials, probe the live API, model the observed shape, and prove real output.',
|
|
93
|
+
'- `references/wrap-existing-app.md` — read-only identity-first planning for an existing application with no stable usable API.',
|
|
87
94
|
'- `references/build-an-mcp-app.md` — product-fit, output-boundary, fallback, and evidence workflow for an MCP App.',
|
|
88
95
|
'- `references/experience-design.md` — design an app experience: funnel boundary, grounding, two users, display modes, and wireframe.',
|
|
89
96
|
'- `references/widgets-and-apps.md` — MCP Apps, typed views, widget hooks, output shaping, and CSP.',
|
|
@@ -129,7 +136,7 @@ export function skillRouterBody(_target) {
|
|
|
129
136
|
'',
|
|
130
137
|
'Choose exactly one primary route from the user outcome below, then load the selected sibling skill and hand off the request. Read that primary reference in full; read supporting references only when the sibling or observed evidence requires them. Do not reread the corpus or restart discovery after the handoff.',
|
|
131
138
|
'',
|
|
132
|
-
'Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route;
|
|
139
|
+
'Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route; an existing application with no stable, usable API or specification takes `wrapping-existing-applications`; only when all four API-evidence inputs exist—an API base URL, authentication scheme, representative safe read, and observed response—use `connecting-apis-to-mcp`; missing, stale, inaccessible, undocumented-only, or otherwise unusable evidence remains in `wrapping-existing-applications`; both integration routes take precedence over generic server building; hosted inspection is debugging read-only; hosted mutation requires the explicitly requested deployment route.',
|
|
133
140
|
'',
|
|
134
141
|
'Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route and stop with a handoff; preparation does not authorize `link`, hosted config, deployment, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.',
|
|
135
142
|
'',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-router.js","sourceRoot":"","sources":["../src/skill-router.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,2FAA2F;AAC3F,yDAAyD;AAEzD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAG/E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,gGAAgG;IAChG,+DAA+D,CAAC;AAIlE,MAAM,CAAC,MAAM,kCAAkC,GAC7C,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-router.js","sourceRoot":"","sources":["../src/skill-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ for Noodle Seed deployment-owned external credential exchange. The source is Apa
|
|
|
5
5
|
public Noodle Core projection.
|
|
6
6
|
|
|
7
7
|
The package is currently a private workspace/source kit, not a standalone npm release. Provider authors may
|
|
8
|
-
implement the public contract in
|
|
8
|
+
implement the public contract in the connector specification, or use this
|
|
9
9
|
source inside the Noodle Core workspace. Do not instruct customers to run
|
|
10
10
|
`pnpm add @noodle-borg/external-credential-provider`; independent publication awaits customer proof and a
|
|
11
11
|
separate release-system decision.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { JSON_RPC, type JsonRpcErrorObject, LEGACY_MCP_ERROR, RESOURCE_NOT_FOUND, } from './jsonrpc.js';
|
|
2
2
|
export { type CallToolOutcome, type GetPromptResult, mapExecutionError, mapPromptMessages, mapPromptsList, mapResourceContents, mapResourcesList, mapResourceTemplatesList, mapTool, mapToolOutput, mapToolsList, type PromptMessage, type ReadResourceResult, type ResourceContent, redactWidgetLinkedOutput, type TextContent, type ToolDescriptor, type ToolsCallResult, type ToolsListResult, } from './mapping.js';
|
|
3
3
|
export type { ObservedOutcome, ProtocolObservation } from './observation.js';
|
|
4
|
-
export { assertRequestStateBinding, type ConfirmationNonceLedger, digestMcpArguments, type RequestStateBinding, RequestStateError, RequestStateManager, type RequestStateManagerOptions, type RequestStateMethod, requestStateSecretBox, type SealedRequestState, } from './request-state.js';
|
|
4
|
+
export { assertRequestStateBinding, type ConfirmationNonceLedger, digestMcpArguments, type RequestStateBinding, RequestStateError, RequestStateManager, type RequestStateManagerOptions, type RequestStateMethod, type RequestStateRejectionReason, requestStateSecretBox, type SealedRequestState, } from './request-state.js';
|
|
5
5
|
export { buildMcpServer, type ProtocolRequestContext, type ProtocolToolDispatchContext, type ProtocolToolDispatchHook, type ServedArtifact, } from './sdk-server.js';
|
|
6
6
|
export { handleStatelessHttp } from './stateless.js';
|
|
7
7
|
export { evaluateToolAuthorization, filterAuthorizedTools, TOOL_AUTHORIZATION_DENIED, type ToolAuthorizationCaller, type ToolAuthorizationDecision, type ToolAuthorizationRuleClass, toolAuthorizationRuleClass, toolAuthorizationRuleFingerprint, } from './tool-authorization.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,OAAO,EACP,aAAa,EACb,YAAY,EAIZ,wBAAwB,GAKzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,yBAAyB,EAEzB,kBAAkB,EAElB,iBAAiB,EACjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,OAAO,EACP,aAAa,EACb,YAAY,EAIZ,wBAAwB,GAKzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,yBAAyB,EAEzB,kBAAkB,EAElB,iBAAiB,EACjB,mBAAmB,EAInB,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,GAKf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EAIzB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,GAE7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -31,9 +31,11 @@ export interface ConfirmationNonceLedger {
|
|
|
31
31
|
/** Atomically consume one nonce until its expiry. Returns false for a replay. */
|
|
32
32
|
consume(nonce: string, expiresAt: number): Promise<boolean>;
|
|
33
33
|
}
|
|
34
|
+
export type RequestStateRejectionReason = 'request_state_verification_failed' | 'request_state_expired' | 'request_state_binding_mismatch' | 'request_state_argument_mismatch' | 'missing_request_state' | 'unexpected_input_response_key' | 'invalid_input_response_shape' | 'dropped_input_response_envelope' | 'confirmation_replay' | 'confirmation_ledger_unavailable';
|
|
34
35
|
/** Opaque failure used for every malformed, expired, tampered, or mis-bound state. */
|
|
35
36
|
export declare class RequestStateError extends Error {
|
|
36
|
-
|
|
37
|
+
readonly reason: RequestStateRejectionReason;
|
|
38
|
+
constructor(reason?: RequestStateRejectionReason);
|
|
37
39
|
}
|
|
38
40
|
/** Derive a domain-separated static SecretBox from the existing 32-byte operator master key. */
|
|
39
41
|
export declare function requestStateSecretBox(masterKey: Buffer): SecretBox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-state.d.ts","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAExB,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAO9B,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAAC;KAChD,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAAG;AAEpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAED,sFAAsF;AACtF,qBAAa,iBAAkB,SAAQ,KAAK
|
|
1
|
+
{"version":3,"file":"request-state.d.ts","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAExB,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAO9B,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAAC;KAChD,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAAG;AAEpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,2BAA2B,GACnC,mCAAmC,GACnC,uBAAuB,GACvB,gCAAgC,GAChC,iCAAiC,GACjC,uBAAuB,GACvB,+BAA+B,GAC/B,8BAA8B,GAC9B,iCAAiC,GACjC,qBAAqB,GACrB,iCAAiC,CAAC;AAEtC,sFAAsF;AACtF,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,MAAM,EAAE,2BAA2B;gBAAnC,MAAM,GAAE,2BAAiE;CAI/F;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAQlE;AAED,kGAAkG;AAClG,qBAAa,mBAAmB;;gBAMlB,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,0BAA+B;IAapE,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAenD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4B9F;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAQlE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC1C,QAAQ,EAAE,mBAAmB,GAC5B,IAAI,CAEN"}
|
|
@@ -6,8 +6,10 @@ const DEFAULT_MAX_TOKEN_BYTES = 16_384;
|
|
|
6
6
|
const LEGACY_INTERACTION_ARGUMENT = '__noodleInteraction';
|
|
7
7
|
/** Opaque failure used for every malformed, expired, tampered, or mis-bound state. */
|
|
8
8
|
export class RequestStateError extends Error {
|
|
9
|
-
|
|
9
|
+
reason;
|
|
10
|
+
constructor(reason = 'request_state_verification_failed') {
|
|
10
11
|
super('Invalid or expired requestState');
|
|
12
|
+
this.reason = reason;
|
|
11
13
|
this.name = 'RequestStateError';
|
|
12
14
|
}
|
|
13
15
|
}
|
|
@@ -38,7 +40,7 @@ export class RequestStateManager {
|
|
|
38
40
|
}
|
|
39
41
|
async seal(input) {
|
|
40
42
|
try {
|
|
41
|
-
assertPayload(input, this.#maxRounds
|
|
43
|
+
assertPayload(input, this.#maxRounds);
|
|
42
44
|
const plaintext = JSON.stringify({ v: 1, ...input });
|
|
43
45
|
if (Buffer.byteLength(plaintext) > this.#maxTokenBytes)
|
|
44
46
|
throw new RequestStateError();
|
|
@@ -72,7 +74,10 @@ export class RequestStateManager {
|
|
|
72
74
|
if (!isRecord(parsed) || parsed.v !== 1)
|
|
73
75
|
throw new RequestStateError();
|
|
74
76
|
const payload = withoutVersion(parsed);
|
|
75
|
-
assertPayload(payload, this.#maxRounds
|
|
77
|
+
assertPayload(payload, this.#maxRounds);
|
|
78
|
+
if (payload.expiresAt <= this.#now()) {
|
|
79
|
+
throw new RequestStateError('request_state_expired');
|
|
80
|
+
}
|
|
76
81
|
if (expectedBinding !== undefined)
|
|
77
82
|
assertBinding(payload.binding, expectedBinding);
|
|
78
83
|
return payload;
|
|
@@ -117,14 +122,13 @@ function canonicalJson(value) {
|
|
|
117
122
|
return 'null';
|
|
118
123
|
throw new RequestStateError();
|
|
119
124
|
}
|
|
120
|
-
function assertPayload(value, maxRounds
|
|
125
|
+
function assertPayload(value, maxRounds) {
|
|
121
126
|
if (!isRecord(value) ||
|
|
122
127
|
!isResponseMap(value.responses) ||
|
|
123
128
|
!Number.isSafeInteger(value.round) ||
|
|
124
129
|
value.round < 1 ||
|
|
125
130
|
value.round > maxRounds ||
|
|
126
131
|
!Number.isSafeInteger(value.expiresAt) ||
|
|
127
|
-
(requireUnexpired && value.expiresAt <= now) ||
|
|
128
132
|
typeof value.nonce !== 'string' ||
|
|
129
133
|
value.nonce.length < 1 ||
|
|
130
134
|
value.nonce.length > 256 ||
|
|
@@ -136,16 +140,13 @@ function assertPayload(value, maxRounds, now, requireUnexpired) {
|
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
function assertBinding(actual, expected) {
|
|
139
|
-
for (const key of [
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
'
|
|
146
|
-
]) {
|
|
147
|
-
if (actual[key] !== expected[key])
|
|
148
|
-
throw new RequestStateError();
|
|
143
|
+
for (const key of ['deploymentId', 'serverVersion', 'method', 'target', 'principal']) {
|
|
144
|
+
if (actual[key] !== expected[key]) {
|
|
145
|
+
throw new RequestStateError('request_state_binding_mismatch');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (actual.argumentDigest !== expected.argumentDigest) {
|
|
149
|
+
throw new RequestStateError('request_state_argument_mismatch');
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
function isBinding(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-state.js","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAGL,SAAS,EACT,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;AACnE,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-state.js","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAGL,SAAS,EACT,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;AACnE,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAmD1D,sFAAsF;AACtF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACrB;IAArB,YAAqB,SAAsC,mCAAmC;QAC5F,KAAK,CAAC,iCAAiC,CAAC,CAAC;QADtB,WAAM,GAAN,MAAM,CAAmE;QAE5F,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAC5E,CAAC;IACF,OAAO,IAAI,SAAS,CAClB,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,OAAO,mBAAmB;IACrB,UAAU,CAAY;IACtB,IAAI,CAAe;IACnB,UAAU,CAAS;IACnB,cAAc,CAAS;IAEhC,YAAY,SAAoB,EAAE,UAAsC,EAAE;QACxE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;YAC5E,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA4B;QACrC,IAAI,CAAC;YACH,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAChF,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,KAAK,CAAC;YACpD,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,eAAqC;QAC7D,IAAI,CAAC;YACH,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc;gBAC9C,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAC/B,CAAC;gBACD,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACtF,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACvC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,eAAe,KAAK,SAAS;gBAAE,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACnF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,KAAK,CAAC;YACpD,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAAC,cAAuB;IACxD,MAAM,KAAK,GACT,QAAQ,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC;QACpF,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,2BAA2B,CAAC,CACtF;QACH,CAAC,CAAC,cAAc,CAAC;IACrB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAA0C,EAC1C,QAA6B;IAE7B,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,OAAO;aACf,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;aACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,IAAI,iBAAiB,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,SAAiB;IACtD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,KAAgB,GAAG,CAAC;QAC1B,KAAK,CAAC,KAAgB,GAAG,SAAS;QACnC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QACxB,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC;QACvC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;QACjE,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,EACvF,CAAC;QACD,MAAM,IAAI,iBAAiB,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAA2B,EAAE,QAA6B;IAC/E,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAU,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACtC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QACvC,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY;YAC5B,KAAK,CAAC,MAAM,KAAK,gBAAgB;YACjC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CACxB,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,QAAQ,CAAC;YAClB,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ;gBAC3B,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAC7B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAClC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;QACnB,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG;QACtB,CAAC,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,cAAc,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,KAAK,aAAa;QAC5B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/v2/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/v2/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAK/E;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,sBAA2B,GACnC,cAAc,CAkChB;AAED,wFAAwF;AACxF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gBAAgB,EACzB,eAAe,GAAE;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAO,GACvE,cAAc,CAEhB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { createMcpHandler, isLegacyRequest, } from '@modelcontextprotocol/server';
|
|
3
|
+
import { notify } from '../observation.js';
|
|
3
4
|
import { RequestStateManager, requestStateSecretBox } from '../request-state.js';
|
|
5
|
+
import { protocolErrorObservation } from './response-observation.js';
|
|
4
6
|
import { buildDualEraMcpServer } from './server.js';
|
|
5
7
|
import { SERVED_MCP_PROTOCOL_VERSIONS } from './versions.js';
|
|
6
8
|
/**
|
|
@@ -8,25 +10,51 @@ import { SERVED_MCP_PROTOCOL_VERSIONS } from './versions.js';
|
|
|
8
10
|
*/
|
|
9
11
|
export function createDualEraMcpHandler(target, context = {}) {
|
|
10
12
|
const requestState = context.requestState ?? processRequestState;
|
|
11
|
-
|
|
13
|
+
const requestObservations = new WeakMap();
|
|
14
|
+
return createPlatformDualEraMcpHandlerInternal((requestContext) => buildDualEraMcpServer(target, requestContext.era, requestProtocolContext(observedProtocolContext({ ...context, requestState }, requestContext, requestObservations), requestContext)), {}, {
|
|
15
|
+
begin: (request) => requestObservations.set(request, { observed: false }),
|
|
16
|
+
observeResponse: async (request, requestBody, response) => {
|
|
17
|
+
if (requestObservations.get(request)?.observed === true)
|
|
18
|
+
return;
|
|
19
|
+
const responseBody = await readResponseBody(response);
|
|
20
|
+
const observation = protocolErrorObservation(target.artifact, requestBody, responseBody, response.status);
|
|
21
|
+
if (observation !== undefined)
|
|
22
|
+
notify(context, observation);
|
|
23
|
+
},
|
|
24
|
+
finish: (request) => requestObservations.delete(request),
|
|
25
|
+
});
|
|
12
26
|
}
|
|
13
27
|
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
14
28
|
export function createPlatformDualEraMcpHandler(factory, platformOptions = {}) {
|
|
29
|
+
return createPlatformDualEraMcpHandlerInternal(factory, platformOptions);
|
|
30
|
+
}
|
|
31
|
+
function createPlatformDualEraMcpHandlerInternal(factory, platformOptions = {}, hooks) {
|
|
15
32
|
const sdkHandler = createMcpHandler(factory, { legacy: 'stateless' });
|
|
16
33
|
return {
|
|
17
34
|
...sdkHandler,
|
|
18
35
|
fetch: async (request, options) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
36
|
+
hooks?.begin(request);
|
|
37
|
+
try {
|
|
38
|
+
const legacy = await isLegacyRequest(request.clone(), options?.parsedBody);
|
|
39
|
+
const requestBody = await readRequestBody(request, options?.parsedBody);
|
|
40
|
+
if (platformOptions.protocolMode === 'legacy-only' && !legacy) {
|
|
41
|
+
return new Response(JSON.stringify({
|
|
42
|
+
jsonrpc: '2.0',
|
|
43
|
+
id: requestId(requestBody),
|
|
44
|
+
error: { code: -32601, message: 'Method not found' },
|
|
45
|
+
}), { status: 200, headers: { 'content-type': 'application/json' } });
|
|
46
|
+
}
|
|
47
|
+
const response = await sdkHandler.fetch(request, {
|
|
48
|
+
...options,
|
|
49
|
+
...(requestBody === undefined ? {} : { parsedBody: requestBody }),
|
|
50
|
+
});
|
|
51
|
+
const shaped = await shapeNoodleResponse(response, requestBody, legacy);
|
|
52
|
+
await observeResponseBestEffort(hooks, request, requestBody, shaped);
|
|
53
|
+
return shaped;
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
hooks?.finish(request);
|
|
27
57
|
}
|
|
28
|
-
const response = await sdkHandler.fetch(request, options);
|
|
29
|
-
return shapeNoodleResponse(response, requestBody, legacy);
|
|
30
58
|
},
|
|
31
59
|
};
|
|
32
60
|
}
|
|
@@ -39,6 +67,26 @@ function requestProtocolContext(context, requestContext) {
|
|
|
39
67
|
: {}),
|
|
40
68
|
};
|
|
41
69
|
}
|
|
70
|
+
function observedProtocolContext(context, requestContext, requestObservations) {
|
|
71
|
+
return {
|
|
72
|
+
...context,
|
|
73
|
+
observe: (observation) => {
|
|
74
|
+
const request = requestContext.requestInfo;
|
|
75
|
+
const state = request === undefined ? undefined : requestObservations.get(request);
|
|
76
|
+
if (state !== undefined)
|
|
77
|
+
state.observed = true;
|
|
78
|
+
notify(context, observation);
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
async function observeResponseBestEffort(hooks, request, requestBody, response) {
|
|
83
|
+
try {
|
|
84
|
+
await hooks?.observeResponse(request, requestBody, response);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Protocol analytics must never change the response it observes.
|
|
88
|
+
}
|
|
89
|
+
}
|
|
42
90
|
async function readRequestBody(request, parsedBody) {
|
|
43
91
|
if (parsedBody !== undefined)
|
|
44
92
|
return parsedBody;
|
|
@@ -51,6 +99,17 @@ async function readRequestBody(request, parsedBody) {
|
|
|
51
99
|
return undefined;
|
|
52
100
|
}
|
|
53
101
|
}
|
|
102
|
+
async function readResponseBody(response) {
|
|
103
|
+
const contentType = response.headers.get('content-type');
|
|
104
|
+
if (contentType?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json')
|
|
105
|
+
return undefined;
|
|
106
|
+
try {
|
|
107
|
+
return await response.clone().json();
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
54
113
|
async function shapeNoodleResponse(response, requestBody, legacy) {
|
|
55
114
|
const contentType = response.headers.get('content-type');
|
|
56
115
|
if (legacy && contentType?.split(';', 1)[0]?.trim().toLowerCase() === 'text/event-stream') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/v2/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,eAAe,GAIhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAsB,EACtB,UAAkC,EAAE;IAEpC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,CAAC;IACjE,OAAO
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/v2/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,10 @@ import { type RequestStateBinding, type RequestStateManager, type SealedRequestS
|
|
|
5
5
|
import type { ProtocolRequestContext } from '../sdk-server.js';
|
|
6
6
|
import type { McpToolInteractionOutcome } from '../tool-interaction.js';
|
|
7
7
|
export declare function toolRequestStateBinding(artifact: RuntimeArtifact, context: ProtocolRequestContext, toolName: string, toolArguments: unknown): RequestStateBinding;
|
|
8
|
-
export declare function mergeInputResponses(prior: SealedRequestState | undefined, current: Record<string, unknown> | undefined
|
|
8
|
+
export declare function mergeInputResponses(prior: SealedRequestState | undefined, current: Record<string, unknown> | undefined, droppedKeys: readonly string[] | undefined): {
|
|
9
|
+
readonly responses: Readonly<Record<string, ElicitationResponse>>;
|
|
10
|
+
readonly reissueDropped: boolean;
|
|
11
|
+
};
|
|
9
12
|
export declare function inputRequiredForTool(manager: RequestStateManager, binding: RequestStateBinding, result: Extract<McpToolInteractionOutcome, {
|
|
10
13
|
status: 'interaction_unavailable';
|
|
11
14
|
}>, responses: Readonly<Record<string, ElicitationResponse>>, prior: SealedRequestState | undefined): Promise<InputRequiredResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-required.d.ts","sourceRoot":"","sources":["../../src/v2/input-required.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAIxE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,GACrB,mBAAmB,CASrB;AAgBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"input-required.d.ts","sourceRoot":"","sources":["../../src/v2/input-required.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAIxE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,GACrB,mBAAmB,CASrB;AAgBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACzC;IACD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,CAwCA;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,OAAO,CAAC,yBAAyB,EAAE;IAAE,MAAM,EAAE,yBAAyB,CAAA;CAAE,CAAC,EACjF,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,EACxD,KAAK,EAAE,kBAAkB,GAAG,SAAS,GACpC,OAAO,CAAC,mBAAmB,CAAC,CA0B9B"}
|
|
@@ -28,26 +28,40 @@ function requestStatePrincipal(context) {
|
|
|
28
28
|
}
|
|
29
29
|
return JSON.stringify(['platform', caller.subject]);
|
|
30
30
|
}
|
|
31
|
-
export function mergeInputResponses(prior, current) {
|
|
31
|
+
export function mergeInputResponses(prior, current, droppedKeys) {
|
|
32
32
|
if (prior === undefined)
|
|
33
|
-
return {};
|
|
33
|
+
return { responses: {}, reissueDropped: false };
|
|
34
34
|
const entries = Object.entries(current ?? {});
|
|
35
|
+
const dropped = droppedKeys ?? [];
|
|
36
|
+
const pendingId = prior.pendingRequest.id;
|
|
37
|
+
if (entries.length === 0 &&
|
|
38
|
+
dropped.length === 1 &&
|
|
39
|
+
dropped[0] === pendingId &&
|
|
40
|
+
!Object.hasOwn(prior.responses, pendingId)) {
|
|
41
|
+
return { responses: prior.responses, reissueDropped: true };
|
|
42
|
+
}
|
|
43
|
+
if (dropped.length > 0) {
|
|
44
|
+
throw new RequestStateError('unexpected_input_response_key');
|
|
45
|
+
}
|
|
35
46
|
if (entries.length !== 1 ||
|
|
36
|
-
entries[0]?.[0] !==
|
|
37
|
-
Object.hasOwn(prior.responses,
|
|
38
|
-
throw new RequestStateError();
|
|
47
|
+
entries[0]?.[0] !== pendingId ||
|
|
48
|
+
Object.hasOwn(prior.responses, pendingId)) {
|
|
49
|
+
throw new RequestStateError('unexpected_input_response_key');
|
|
39
50
|
}
|
|
40
51
|
const [key, value] = entries[0];
|
|
41
52
|
if (!isRecord(value) ||
|
|
42
53
|
(value.action !== 'accept' && value.action !== 'decline' && value.action !== 'cancel')) {
|
|
43
|
-
throw new RequestStateError();
|
|
54
|
+
throw new RequestStateError('invalid_input_response_shape');
|
|
44
55
|
}
|
|
45
56
|
return {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
responses: {
|
|
58
|
+
...prior.responses,
|
|
59
|
+
[key]: {
|
|
60
|
+
action: value.action,
|
|
61
|
+
...(value.content === undefined ? {} : { content: value.content }),
|
|
62
|
+
},
|
|
50
63
|
},
|
|
64
|
+
reissueDropped: false,
|
|
51
65
|
};
|
|
52
66
|
}
|
|
53
67
|
export async function inputRequiredForTool(manager, binding, result, responses, prior) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-required.js","sourceRoot":"","sources":["../../src/v2/input-required.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,cAAc,EAEd,aAAa,GACd,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,kBAAkB,EAElB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,oBAAoB,GAAG,CAAC,GAAG,MAAM,CAAC;AAExC,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,OAA+B,EAC/B,QAAgB,EAChB,aAAsB;IAEtB,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;QACrE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;QACtC,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC;QACzC,cAAc,EAAE,kBAAkB,CAAC,aAAa,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA+B;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAqC,EACrC,OAA4C;
|
|
1
|
+
{"version":3,"file":"input-required.js","sourceRoot":"","sources":["../../src/v2/input-required.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RuntimeArtifact } from '@noodle-borg/compiler';
|
|
2
|
+
import type { ProtocolObservation } from '../observation.js';
|
|
3
|
+
/** Classify an SDK-owned error without retaining request arguments, headers, or response payloads. */
|
|
4
|
+
export declare function protocolErrorObservation(artifact: RuntimeArtifact, requestBody: unknown, responseBody: unknown, status: number): ProtocolObservation | undefined;
|
|
5
|
+
//# sourceMappingURL=response-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-observation.d.ts","sourceRoot":"","sources":["../../src/v2/response-observation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAoB7D,sGAAsG;AACtG,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,GACb,mBAAmB,GAAG,SAAS,CAajC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { parseUriTemplate } from '@noodle-borg/compiler';
|
|
2
|
+
const KNOWN_PROTOCOL_ERROR_CODES = new Set([
|
|
3
|
+
-32700, -32600, -32601, -32603, -32001, -32002, -32003,
|
|
4
|
+
]);
|
|
5
|
+
const REQUEST_STATE_REASONS = new Set([
|
|
6
|
+
'invalid_request_state',
|
|
7
|
+
'request_state_verification_failed',
|
|
8
|
+
'request_state_expired',
|
|
9
|
+
'request_state_binding_mismatch',
|
|
10
|
+
'request_state_argument_mismatch',
|
|
11
|
+
'missing_request_state',
|
|
12
|
+
'unexpected_input_response_key',
|
|
13
|
+
'invalid_input_response_shape',
|
|
14
|
+
'dropped_input_response_envelope',
|
|
15
|
+
'confirmation_replay',
|
|
16
|
+
'confirmation_ledger_unavailable',
|
|
17
|
+
]);
|
|
18
|
+
/** Classify an SDK-owned error without retaining request arguments, headers, or response payloads. */
|
|
19
|
+
export function protocolErrorObservation(artifact, requestBody, responseBody, status) {
|
|
20
|
+
const response = isRecord(responseBody) ? responseBody : undefined;
|
|
21
|
+
const error = response !== undefined && isRecord(response.error) ? response.error : undefined;
|
|
22
|
+
const code = typeof error?.code === 'number' ? error.code : undefined;
|
|
23
|
+
if (status < 400 && code === undefined)
|
|
24
|
+
return undefined;
|
|
25
|
+
const method = requestMethod(requestBody) ?? 'unknown';
|
|
26
|
+
return {
|
|
27
|
+
method,
|
|
28
|
+
...requestTarget(artifact, method, requestBody),
|
|
29
|
+
outcome: 'mcp_error',
|
|
30
|
+
errorKind: errorKind(code, error?.data),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function errorKind(code, data) {
|
|
34
|
+
if (code === -32020)
|
|
35
|
+
return 'modern_header_mismatch';
|
|
36
|
+
if (code === -32021)
|
|
37
|
+
return 'missing_required_client_capability';
|
|
38
|
+
if (code === -32022)
|
|
39
|
+
return 'unsupported_protocol_version';
|
|
40
|
+
if (code === -32602) {
|
|
41
|
+
const reason = isRecord(data) && typeof data.reason === 'string' ? data.reason : undefined;
|
|
42
|
+
return reason !== undefined && REQUEST_STATE_REASONS.has(reason) ? reason : 'invalid_params';
|
|
43
|
+
}
|
|
44
|
+
return code !== undefined && KNOWN_PROTOCOL_ERROR_CODES.has(code)
|
|
45
|
+
? `protocol_error_${code}`
|
|
46
|
+
: 'protocol_error';
|
|
47
|
+
}
|
|
48
|
+
function requestTarget(artifact, method, body) {
|
|
49
|
+
const params = isRecord(body) && isRecord(body.params) ? body.params : undefined;
|
|
50
|
+
if (method === 'tools/call' && typeof params?.name === 'string') {
|
|
51
|
+
const tool = artifact.tools.find((candidate) => candidate.name === params.name);
|
|
52
|
+
return tool === undefined ? {} : { toolName: tool.name };
|
|
53
|
+
}
|
|
54
|
+
if (method === 'resources/read' && typeof params?.uri === 'string') {
|
|
55
|
+
const uri = params.uri;
|
|
56
|
+
const resource = artifact.resources?.find((candidate) => resourceMatches(candidate, uri));
|
|
57
|
+
return resource === undefined ? {} : { resourceName: resource.name };
|
|
58
|
+
}
|
|
59
|
+
if (method === 'prompts/get' && typeof params?.name === 'string') {
|
|
60
|
+
const prompt = artifact.prompts?.find((candidate) => candidate.name === params.name);
|
|
61
|
+
return prompt === undefined ? {} : { promptName: prompt.name };
|
|
62
|
+
}
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
function resourceMatches(resource, uri) {
|
|
66
|
+
if (!resource.isTemplate)
|
|
67
|
+
return resource.uri === uri;
|
|
68
|
+
const parsed = parseUriTemplate(resource.uri);
|
|
69
|
+
return parsed.ok && parsed.value.kind === 'template' && parsed.value.match(uri) !== null;
|
|
70
|
+
}
|
|
71
|
+
function requestMethod(body) {
|
|
72
|
+
return isRecord(body) && typeof body.method === 'string' ? body.method : undefined;
|
|
73
|
+
}
|
|
74
|
+
function isRecord(value) {
|
|
75
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=response-observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-observation.js","sourceRoot":"","sources":["../../src/v2/response-observation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/v2/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,MAAM,EAEP,MAAM,8BAA8B,CAAC;AA8CtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAY/E,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,eAAe,CAAC;AAElF,wBAAgB,qBAAqB,CACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAClC,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,sBAA2B,GACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/v2/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,MAAM,EAEP,MAAM,8BAA8B,CAAC;AA8CtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAY/E,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,eAAe,CAAC;AAElF,wBAAgB,qBAAqB,CACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAClC,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,sBAA2B,GACnC,MAAM,CA+DR"}
|