@namzu/sdk 39.0.0 → 41.0.0
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/CHANGELOG.md +328 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +8 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +11 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/connector/index.d.ts +2 -2
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +1 -1
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +112 -10
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/audio-admission.d.ts +17 -0
- package/dist/connector/mcp/audio-admission.d.ts.map +1 -0
- package/dist/connector/mcp/audio-admission.js +171 -0
- package/dist/connector/mcp/audio-admission.js.map +1 -0
- package/dist/connector/mcp/client.d.ts +252 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +611 -39
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/envelope.d.ts +91 -0
- package/dist/connector/mcp/envelope.d.ts.map +1 -0
- package/dist/connector/mcp/envelope.js +173 -0
- package/dist/connector/mcp/envelope.js.map +1 -0
- package/dist/connector/mcp/era.d.ts +130 -0
- package/dist/connector/mcp/era.d.ts.map +1 -0
- package/dist/connector/mcp/era.js +304 -0
- package/dist/connector/mcp/era.js.map +1 -0
- package/dist/connector/mcp/errors.d.ts +106 -0
- package/dist/connector/mcp/errors.d.ts.map +1 -0
- package/dist/connector/mcp/errors.js +154 -0
- package/dist/connector/mcp/errors.js.map +1 -0
- package/dist/connector/mcp/http-sse.d.ts +11 -0
- package/dist/connector/mcp/http-sse.d.ts.map +1 -1
- package/dist/connector/mcp/http-sse.js +21 -6
- package/dist/connector/mcp/http-sse.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +7 -0
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +10 -0
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/streamable-http.d.ts +83 -0
- package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
- package/dist/connector/mcp/streamable-http.js +177 -11
- package/dist/connector/mcp/streamable-http.js.map +1 -1
- package/dist/connector/mcp/x-mcp-header.d.ts +56 -0
- package/dist/connector/mcp/x-mcp-header.d.ts.map +1 -0
- package/dist/connector/mcp/x-mcp-header.js +254 -0
- package/dist/connector/mcp/x-mcp-header.js.map +1 -0
- package/dist/constants/mcp/index.d.ts +123 -15
- package/dist/constants/mcp/index.d.ts.map +1 -1
- package/dist/constants/mcp/index.js +135 -16
- package/dist/constants/mcp/index.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +23 -0
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +8 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +12 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +20 -0
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +19 -3
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/prompt/index.d.ts +1 -1
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +1 -1
- package/dist/prompt/index.js.map +1 -1
- package/dist/public-runtime.d.ts +6 -4
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +8 -4
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +11 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +14 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +2 -3
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/portable.d.ts +65 -0
- package/dist/registry/tool/portable.d.ts.map +1 -0
- package/dist/registry/tool/portable.js +244 -0
- package/dist/registry/tool/portable.js.map +1 -0
- package/dist/registry/tool/schema.d.ts +32 -5
- package/dist/registry/tool/schema.d.ts.map +1 -1
- package/dist/registry/tool/schema.js +35 -9
- package/dist/registry/tool/schema.js.map +1 -1
- package/dist/registry/toolset/catalog.js +8 -8
- package/dist/registry/toolset/catalog.js.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts +215 -0
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -0
- package/dist/runtime/jobs/awaited-jobs.js +259 -0
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -0
- package/dist/runtime/jobs/registry.d.ts +33 -2
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +37 -0
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +28 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +39 -1
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-context.d.ts.map +1 -1
- package/dist/runtime/query/file-evidence-context.js +159 -43
- package/dist/runtime/query/file-evidence-context.js.map +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts +260 -0
- package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -0
- package/dist/runtime/query/file-evidence-replay.js +647 -0
- package/dist/runtime/query/file-evidence-replay.js.map +1 -0
- package/dist/runtime/query/file-evidence-seed.d.ts +50 -0
- package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -0
- package/dist/runtime/query/file-evidence-seed.js +100 -0
- package/dist/runtime/query/file-evidence-seed.js.map +1 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +94 -2
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +87 -9
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +193 -28
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +5 -1
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts +14 -0
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +18 -0
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +17 -4
- package/dist/runtime/query/repeat-call.d.ts.map +1 -1
- package/dist/runtime/query/repeat-call.js +26 -19
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/steering.d.ts +11 -1
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +12 -1
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +2 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +1 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/sandbox/provider/local.d.ts.map +1 -1
- package/dist/sandbox/provider/local.js +46 -3
- package/dist/sandbox/provider/local.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +48 -2
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +102 -10
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +8 -0
- package/dist/scheduler/local.js.map +1 -1
- package/dist/store/run/disk.d.ts +35 -1
- package/dist/store/run/disk.d.ts.map +1 -1
- package/dist/store/run/disk.js +100 -0
- package/dist/store/run/disk.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +4 -10
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/edit-apply.d.ts +126 -0
- package/dist/tools/builtins/edit-apply.d.ts.map +1 -0
- package/dist/tools/builtins/edit-apply.js +360 -0
- package/dist/tools/builtins/edit-apply.js.map +1 -0
- package/dist/tools/builtins/edit.d.ts +143 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +37 -219
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +1 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +9 -3
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.js +1 -1
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +2 -2
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +50 -65
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/read-render.d.ts +56 -0
- package/dist/tools/builtins/read-render.d.ts.map +1 -0
- package/dist/tools/builtins/read-render.js +73 -0
- package/dist/tools/builtins/read-render.js.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts +67 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.js +108 -0
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -0
- package/dist/tools/builtins/wait-for-job.d.ts +6 -0
- package/dist/tools/builtins/wait-for-job.d.ts.map +1 -0
- package/dist/tools/builtins/wait-for-job.js +162 -0
- package/dist/tools/builtins/wait-for-job.js.map +1 -0
- package/dist/tools/builtins/write-file.js +5 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +1 -7
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/file-read-tracker.d.ts.map +1 -1
- package/dist/tools/file-read-tracker.js +88 -10
- package/dist/tools/file-read-tracker.js.map +1 -1
- package/dist/types/agent/scheduler.d.ts +20 -0
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +20 -0
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/connector/mcp.d.ts +205 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/message/index.d.ts +1 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +2 -0
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/run/entity.d.ts +13 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +56 -0
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/store.d.ts +41 -0
- package/dist/types/run/store.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +83 -15
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/tool/index.d.ts +109 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/utils/env.d.ts +19 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +25 -0
- package/dist/utils/env.js.map +1 -0
- package/package.json +1 -1
- package/src/bridge/a2a/mapper.ts +8 -0
- package/src/bridge/sse/mapper.ts +11 -0
- package/src/connector/index.ts +27 -0
- package/src/connector/mcp/adapter.ts +123 -10
- package/src/connector/mcp/audio-admission.ts +173 -0
- package/src/connector/mcp/client.ts +694 -45
- package/src/connector/mcp/envelope.ts +235 -0
- package/src/connector/mcp/era.ts +400 -0
- package/src/connector/mcp/errors.ts +171 -0
- package/src/connector/mcp/http-sse.ts +23 -6
- package/src/connector/mcp/index.ts +37 -0
- package/src/connector/mcp/streamable-http.ts +199 -11
- package/src/connector/mcp/x-mcp-header.ts +322 -0
- package/src/constants/mcp/index.ts +145 -16
- package/src/manager/agent/lifecycle.ts +29 -0
- package/src/manager/run/persistence.ts +12 -0
- package/src/prompt/coding-agent-doctrine.ts +31 -4
- package/src/prompt/index.ts +1 -0
- package/src/public-runtime.ts +37 -1
- package/src/public-tools.ts +18 -0
- package/src/registry/tool/execute.ts +2 -4
- package/src/registry/tool/portable.ts +264 -0
- package/src/registry/tool/schema.ts +38 -8
- package/src/registry/toolset/catalog.ts +8 -9
- package/src/runtime/jobs/awaited-jobs.ts +271 -0
- package/src/runtime/jobs/registry.ts +50 -0
- package/src/runtime/query/executor.ts +49 -1
- package/src/runtime/query/file-evidence-context.ts +190 -46
- package/src/runtime/query/file-evidence-replay.ts +776 -0
- package/src/runtime/query/file-evidence-seed.ts +126 -0
- package/src/runtime/query/index.ts +104 -2
- package/src/runtime/query/iteration/index.ts +202 -28
- package/src/runtime/query/iteration/phases/context.ts +10 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +4 -0
- package/src/runtime/query/plugin-hooks.ts +20 -0
- package/src/runtime/query/repeat-call.ts +28 -18
- package/src/runtime/query/steering.ts +11 -0
- package/src/runtime/query/tooling.ts +3 -0
- package/src/sandbox/provider/local.ts +45 -2
- package/src/scheduler/completion-inbox.ts +105 -9
- package/src/scheduler/local.ts +8 -0
- package/src/store/run/disk.ts +108 -0
- package/src/tools/builtins/bash.ts +4 -10
- package/src/tools/builtins/edit-apply.ts +456 -0
- package/src/tools/builtins/edit.ts +39 -270
- package/src/tools/builtins/index.ts +9 -3
- package/src/tools/builtins/job.ts +1 -1
- package/src/tools/builtins/read-file.ts +56 -77
- package/src/tools/builtins/read-render.ts +104 -0
- package/src/tools/builtins/wait-for-job-bounds.ts +179 -0
- package/src/tools/builtins/wait-for-job.ts +184 -0
- package/src/tools/builtins/write-file.ts +5 -0
- package/src/tools/coordinator/index.ts +1 -7
- package/src/tools/file-read-tracker.ts +85 -7
- package/src/types/agent/scheduler.ts +21 -0
- package/src/types/agent/task.ts +21 -0
- package/src/types/connector/mcp.ts +205 -1
- package/src/types/message/index.ts +2 -0
- package/src/types/run/entity.ts +14 -0
- package/src/types/run/events.ts +56 -0
- package/src/types/run/store.ts +42 -0
- package/src/types/sandbox/index.ts +84 -15
- package/src/types/tool/index.ts +104 -0
- package/src/utils/env.ts +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x-mcp-header.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/x-mcp-header.ts"],"names":[],"mappings":"AAgDA;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACrC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;CAC/C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GACnC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AA0HlD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO,GAAG,0BAA0B,CA4D7F;AAgCD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,EAC1C,IAAI,EAAE,OAAO,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { MCP_PARAM_HEADER_PREFIX } from '../../constants/mcp/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The extension property a server writes into a tool parameter's schema to
|
|
4
|
+
* ask that the parameter's value be mirrored into an HTTP request header.
|
|
5
|
+
*
|
|
6
|
+
* Its value is the NAME PORTION of `Mcp-Param-{name}`, so an annotation
|
|
7
|
+
* reading `"Region"` produces `Mcp-Param-Region`. The point of mirroring is
|
|
8
|
+
* that a load balancer or a policy proxy can route and authorise a tool call
|
|
9
|
+
* without parsing JSON-RPC — which is also why a malformed annotation is not
|
|
10
|
+
* a cosmetic problem: a value carrying a line feed would end the field and
|
|
11
|
+
* let a server's own tool definition inject a header namzu never wrote.
|
|
12
|
+
*/
|
|
13
|
+
const X_MCP_HEADER = 'x-mcp-header';
|
|
14
|
+
/**
|
|
15
|
+
* HTTP field-name token syntax — RFC 9110 §5.1 `1*tchar`.
|
|
16
|
+
*
|
|
17
|
+
* Non-emptiness (`+`), the absence of CR, LF and every other control
|
|
18
|
+
* character, and the absence of spaces and separators all fall out of this
|
|
19
|
+
* one expression. They are still checked separately below, in the order the
|
|
20
|
+
* spec lists them, so a refusal names the constraint that was actually
|
|
21
|
+
* broken rather than the most general one that happens to cover it.
|
|
22
|
+
*/
|
|
23
|
+
const FIELD_NAME_TOKEN = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
24
|
+
/** The JSON Schema keywords whose value is a MAP of schemas, not a schema. */
|
|
25
|
+
const SCHEMA_MAP_KEYWORDS = new Set([
|
|
26
|
+
'properties',
|
|
27
|
+
'patternProperties',
|
|
28
|
+
'$defs',
|
|
29
|
+
'definitions',
|
|
30
|
+
'dependentSchemas',
|
|
31
|
+
]);
|
|
32
|
+
/**
|
|
33
|
+
* Keywords holding INSTANCE data rather than sub-schemas.
|
|
34
|
+
*
|
|
35
|
+
* Never descended into. A `default` of `{ "x-mcp-header": "X" }` is a
|
|
36
|
+
* perfectly ordinary example value for an object-typed parameter, and
|
|
37
|
+
* reading it as an annotation would refuse a tool over a string that was
|
|
38
|
+
* never a schema at all.
|
|
39
|
+
*/
|
|
40
|
+
const INSTANCE_VALUE_KEYWORDS = new Set(['default', 'examples', 'example', 'const', 'enum']);
|
|
41
|
+
/** The parameter types a value may be mirrored from. `number` is excluded. */
|
|
42
|
+
const MIRRORABLE_TYPES = new Set(['string', 'boolean', 'integer']);
|
|
43
|
+
const NO_BINDINGS = { ok: true, bindings: [] };
|
|
44
|
+
function isPlainObject(value) {
|
|
45
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Every property reachable from the root through `properties` keys ALONE,
|
|
49
|
+
* mapped to its path.
|
|
50
|
+
*
|
|
51
|
+
* This is the whole of the static-reachability rule, and writing it as its
|
|
52
|
+
* own walk is deliberate. The tempting implementation — resolve `$ref`s and
|
|
53
|
+
* flatten `allOf` first, then walk the result — accepts exactly what the
|
|
54
|
+
* spec forbids: a property reached through a `$ref` looks like an ordinary
|
|
55
|
+
* `properties` child once the reference has been followed. This walk never
|
|
56
|
+
* follows one, so a `$ref`-reached annotation simply is not in this map.
|
|
57
|
+
*/
|
|
58
|
+
function reachableByProperties(root) {
|
|
59
|
+
const reachable = new Map();
|
|
60
|
+
// A schema is JSON and so is usually a tree, but nothing stops a caller
|
|
61
|
+
// building one with a shared (or cyclic) node in it, and this walk is
|
|
62
|
+
// depth-first.
|
|
63
|
+
const seen = new Set([root]);
|
|
64
|
+
const walk = (node, path) => {
|
|
65
|
+
const properties = node.properties;
|
|
66
|
+
if (!isPlainObject(properties))
|
|
67
|
+
return;
|
|
68
|
+
for (const [key, child] of Object.entries(properties)) {
|
|
69
|
+
if (!isPlainObject(child) || seen.has(child))
|
|
70
|
+
continue;
|
|
71
|
+
seen.add(child);
|
|
72
|
+
const childPath = [...path, key];
|
|
73
|
+
reachable.set(child, childPath);
|
|
74
|
+
walk(child, childPath);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
walk(root, []);
|
|
78
|
+
return reachable;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Every `x-mcp-header` in the schema, wherever it sits.
|
|
82
|
+
*
|
|
83
|
+
* Deliberately a whole-schema scan rather than a scan of the reachable
|
|
84
|
+
* properties: an annotation under `items`, inside a `oneOf` branch or in
|
|
85
|
+
* `$defs` is not something to ignore, it is something that invalidates the
|
|
86
|
+
* tool. Finding only the reachable ones would silently admit exactly the
|
|
87
|
+
* definitions the spec says to refuse.
|
|
88
|
+
*
|
|
89
|
+
* The walk knows which keywords hold a MAP of schemas so that a parameter
|
|
90
|
+
* legitimately NAMED `x-mcp-header` is not mistaken for an annotation on the
|
|
91
|
+
* map that holds it, and refuses to descend into keywords holding instance
|
|
92
|
+
* data. Everything else is descended into generically, because a vendor
|
|
93
|
+
* keyword can nest a schema and an annotation buried in one is still
|
|
94
|
+
* unreachable and still invalid.
|
|
95
|
+
*/
|
|
96
|
+
function annotationsIn(root) {
|
|
97
|
+
const reachable = reachableByProperties(root);
|
|
98
|
+
const found = [];
|
|
99
|
+
const seen = new Set();
|
|
100
|
+
const visit = (node, where) => {
|
|
101
|
+
if (Array.isArray(node)) {
|
|
102
|
+
node.forEach((item, index) => visit(item, `${where}[${index}]`));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!isPlainObject(node) || seen.has(node))
|
|
106
|
+
return;
|
|
107
|
+
seen.add(node);
|
|
108
|
+
if (Object.hasOwn(node, X_MCP_HEADER)) {
|
|
109
|
+
found.push({
|
|
110
|
+
value: node[X_MCP_HEADER],
|
|
111
|
+
where: where === '' ? 'the schema root' : where,
|
|
112
|
+
path: reachable.get(node),
|
|
113
|
+
declaredType: node.type,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
for (const [key, child] of Object.entries(node)) {
|
|
117
|
+
if (key === X_MCP_HEADER || INSTANCE_VALUE_KEYWORDS.has(key))
|
|
118
|
+
continue;
|
|
119
|
+
const childWhere = where === '' ? key : `${where}.${key}`;
|
|
120
|
+
if (SCHEMA_MAP_KEYWORDS.has(key)) {
|
|
121
|
+
if (!isPlainObject(child))
|
|
122
|
+
continue;
|
|
123
|
+
for (const [name, schema] of Object.entries(child))
|
|
124
|
+
visit(schema, `${childWhere}.${name}`);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
visit(child, childWhere);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
visit(root, '');
|
|
131
|
+
return found;
|
|
132
|
+
}
|
|
133
|
+
/** A value quoted into a refusal without carrying its control bytes along. */
|
|
134
|
+
function quoted(value) {
|
|
135
|
+
return typeof value === 'string' ? JSON.stringify(value) : String(value);
|
|
136
|
+
}
|
|
137
|
+
function describeType(declared) {
|
|
138
|
+
if (declared === undefined)
|
|
139
|
+
return 'a parameter with no declared `type`';
|
|
140
|
+
if (typeof declared !== 'string')
|
|
141
|
+
return `a parameter whose \`type\` is ${quoted(declared)}`;
|
|
142
|
+
return `a \`${declared}\` parameter`;
|
|
143
|
+
}
|
|
144
|
+
function refuse(reason) {
|
|
145
|
+
return { ok: false, reason };
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Decide whether a tool may be exposed, and collect what it asked to mirror.
|
|
149
|
+
*
|
|
150
|
+
* The six constraints, in the spec's own order: non-empty; HTTP field-name
|
|
151
|
+
* token syntax; no control characters; case-insensitively unique across the
|
|
152
|
+
* whole `inputSchema`; applied only to `string`, `boolean` or `integer`
|
|
153
|
+
* (never `number`); and statically reachable through a chain of `properties`
|
|
154
|
+
* keys alone.
|
|
155
|
+
*
|
|
156
|
+
* Returns a REASON rather than throwing, because the caller's job is to drop
|
|
157
|
+
* one tool and keep the rest: a listing where one definition is malformed
|
|
158
|
+
* must still deliver the others, and an exception here would take the whole
|
|
159
|
+
* listing down with it.
|
|
160
|
+
*/
|
|
161
|
+
export function validateMcpHeaderAnnotations(inputSchema) {
|
|
162
|
+
if (!isPlainObject(inputSchema))
|
|
163
|
+
return NO_BINDINGS;
|
|
164
|
+
const found = annotationsIn(inputSchema);
|
|
165
|
+
if (found.length === 0)
|
|
166
|
+
return NO_BINDINGS;
|
|
167
|
+
const bindings = [];
|
|
168
|
+
/** Lowercased name to the spelling that claimed it first. */
|
|
169
|
+
const claimed = new Map();
|
|
170
|
+
for (const annotation of found) {
|
|
171
|
+
const at = `at ${annotation.where}`;
|
|
172
|
+
const name = annotation.value;
|
|
173
|
+
if (typeof name !== 'string') {
|
|
174
|
+
return refuse(`\`x-mcp-header\` ${at} is ${quoted(name)}, which is not a string`);
|
|
175
|
+
}
|
|
176
|
+
if (name.length === 0) {
|
|
177
|
+
return refuse(`\`x-mcp-header\` ${at} is empty`);
|
|
178
|
+
}
|
|
179
|
+
if (/[\r\n]/.test(name)) {
|
|
180
|
+
return refuse(`\`x-mcp-header\` ${quoted(name)} ${at} contains a carriage return or line feed`);
|
|
181
|
+
}
|
|
182
|
+
if (!FIELD_NAME_TOKEN.test(name)) {
|
|
183
|
+
return refuse(`\`x-mcp-header\` ${quoted(name)} ${at} is not HTTP field-name token syntax (RFC 9110 1*tchar)`);
|
|
184
|
+
}
|
|
185
|
+
const first = claimed.get(name.toLowerCase());
|
|
186
|
+
if (first !== undefined) {
|
|
187
|
+
return refuse(`\`x-mcp-header\` ${quoted(name)} ${at} repeats ${quoted(first)}; header names are compared without regard to case`);
|
|
188
|
+
}
|
|
189
|
+
claimed.set(name.toLowerCase(), name);
|
|
190
|
+
if (annotation.path === undefined) {
|
|
191
|
+
return refuse(`\`x-mcp-header\` ${quoted(name)} ${at} is not statically reachable: the chain from the schema root must consist solely of \`properties\` keys`);
|
|
192
|
+
}
|
|
193
|
+
const declared = annotation.declaredType;
|
|
194
|
+
if (typeof declared !== 'string' || !MIRRORABLE_TYPES.has(declared)) {
|
|
195
|
+
return refuse(`\`x-mcp-header\` ${quoted(name)} ${at} annotates ${describeType(declared)}; only \`string\`, \`boolean\` and \`integer\` may be mirrored, and \`number\` is excluded`);
|
|
196
|
+
}
|
|
197
|
+
bindings.push({
|
|
198
|
+
header: `${MCP_PARAM_HEADER_PREFIX}${name}`,
|
|
199
|
+
path: annotation.path,
|
|
200
|
+
type: declared,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return { ok: true, bindings };
|
|
204
|
+
}
|
|
205
|
+
function readPath(root, path) {
|
|
206
|
+
let cursor = root;
|
|
207
|
+
for (const key of path) {
|
|
208
|
+
if (!isPlainObject(cursor))
|
|
209
|
+
return undefined;
|
|
210
|
+
cursor = cursor[key];
|
|
211
|
+
}
|
|
212
|
+
return cursor;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* How one argument value is spelled in a header field, or `undefined` when
|
|
216
|
+
* it is not sent at all.
|
|
217
|
+
*
|
|
218
|
+
* Four reasons a header is omitted, and only the first two are ordinary: the
|
|
219
|
+
* argument is absent, or it is `null` — both of which the spec says to omit
|
|
220
|
+
* rather than send empty. The other two are a server contradicting its own
|
|
221
|
+
* schema (a value whose runtime type is not the declared one) and an integer
|
|
222
|
+
* outside the range the spec bounds these to, ±(2^53−1) — exactly
|
|
223
|
+
* JavaScript's safe-integer range, which is the range in which the number
|
|
224
|
+
* this client parsed is still the number the server sent. Sending either
|
|
225
|
+
* would put a value on the wire that disagrees with the body it mirrors,
|
|
226
|
+
* which is the one thing a conforming server rejects outright.
|
|
227
|
+
*/
|
|
228
|
+
function headerValue(type, value) {
|
|
229
|
+
if (value === undefined || value === null)
|
|
230
|
+
return undefined;
|
|
231
|
+
if (type === 'string')
|
|
232
|
+
return typeof value === 'string' ? value : undefined;
|
|
233
|
+
if (type === 'boolean')
|
|
234
|
+
return typeof value === 'boolean' ? String(value) : undefined;
|
|
235
|
+
return typeof value === 'number' && Number.isSafeInteger(value) ? String(value) : undefined;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The `Mcp-Param-*` field values for one call's arguments, unencoded.
|
|
239
|
+
*
|
|
240
|
+
* Returns the values as the BODY carries them; wrapping a value that cannot
|
|
241
|
+
* be written into a header field verbatim is the envelope's job, so the
|
|
242
|
+
* sentinel rule lives in one place for `Mcp-Name` and `Mcp-Param-*` alike
|
|
243
|
+
* rather than being reimplemented here.
|
|
244
|
+
*/
|
|
245
|
+
export function mcpParamHeaderValues(bindings, args) {
|
|
246
|
+
const headers = {};
|
|
247
|
+
for (const binding of bindings) {
|
|
248
|
+
const written = headerValue(binding.type, readPath(args, binding.path));
|
|
249
|
+
if (written !== undefined)
|
|
250
|
+
headers[binding.header] = written;
|
|
251
|
+
}
|
|
252
|
+
return headers;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=x-mcp-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x-mcp-header.js","sourceRoot":"","sources":["../../../src/connector/mcp/x-mcp-header.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,52 @@
|
|
|
1
|
+
import type { McpLegacyVersion, McpModernVersion } from '../../types/connector/mcp.js';
|
|
1
2
|
/**
|
|
2
|
-
* The
|
|
3
|
+
* The MCP spec revisions this client speaks WITHOUT the `initialize`
|
|
4
|
+
* handshake, newest first.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* The modern era removes that handshake entirely: a connection is resolved
|
|
7
|
+
* by probing with `server/discover`, and every request afterwards carries
|
|
8
|
+
* its own protocol version, client capabilities and client info in `_meta`
|
|
9
|
+
* instead of inheriting them from a session. `connect()` tries the newest
|
|
10
|
+
* entry here FIRST and falls back to the legacy handshake below only when
|
|
11
|
+
* the probe says the peer does not speak it.
|
|
10
12
|
*/
|
|
11
|
-
export declare const
|
|
13
|
+
export declare const MCP_MODERN_VERSIONS: readonly McpModernVersion[];
|
|
12
14
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Protocol versions this client offers and accepts through the legacy
|
|
16
|
+
* `initialize` handshake, newest first.
|
|
15
17
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* `connect()` offers `MCP_LEGACY_VERSIONS[0]` — the newest one — in a
|
|
19
|
+
* single `initialize` request. A server is free to answer with any version
|
|
20
|
+
* in `MCP_SUPPORTED_PROTOCOL_VERSIONS` below, not only the one offered:
|
|
21
|
+
* that is how the handshake is specified. namzu used to advertise and
|
|
22
|
+
* accept only `2024-11-05`, which refused the overwhelming majority of
|
|
23
|
+
* servers deployed since — every one that negotiated down to 2025-03-26,
|
|
24
|
+
* 2025-06-18 or 2025-11-25 instead of all the way to the oldest revision.
|
|
25
|
+
*
|
|
26
|
+
* This is deliberately a single round trip, never a per-version waterfall:
|
|
27
|
+
* the spec's own backward-compatibility algorithm offers one version and
|
|
28
|
+
* honors whatever the server answers
|
|
29
|
+
* (https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle).
|
|
30
|
+
* A three-step retry loop is three times the latency for a code path no
|
|
31
|
+
* server expects, and `protocol-negotiation.test.ts` counts `initialize`
|
|
32
|
+
* frames so nobody reintroduces one.
|
|
33
|
+
*/
|
|
34
|
+
export declare const MCP_LEGACY_VERSIONS: readonly McpLegacyVersion[];
|
|
35
|
+
/**
|
|
36
|
+
* Every protocol version this client can speak, in any capacity — offered
|
|
37
|
+
* in `initialize`, or merely a value it will not refuse if a server
|
|
38
|
+
* answers with it.
|
|
39
|
+
*
|
|
40
|
+
* The single authority for "can we speak this?": a server negotiating to
|
|
41
|
+
* a version outside this list is refused rather than let through to break
|
|
42
|
+
* confusingly downstream. Advertising or accepting a version whose
|
|
43
|
+
* requirements are unimplemented is worse than being honest about a
|
|
44
|
+
* narrower set — the server tailors its behavior to what the client
|
|
45
|
+
* claims, and the mismatch would otherwise surface later as a malformed
|
|
46
|
+
* exchange instead of a clean negotiation failure. That reasoning is why
|
|
47
|
+
* this list once held a single entry; it now argues for the broadened set
|
|
48
|
+
* above, not against it, because every version listed here is one namzu
|
|
49
|
+
* has actually verified it can carry a legacy `initialize` handshake for.
|
|
21
50
|
*/
|
|
22
51
|
export declare const MCP_SUPPORTED_PROTOCOL_VERSIONS: readonly string[];
|
|
23
52
|
/**
|
|
@@ -30,4 +59,83 @@ export declare const MCP_SUPPORTED_PROTOCOL_VERSIONS: readonly string[];
|
|
|
30
59
|
export declare const DEFAULT_MCP_REQUEST_TIMEOUT_MS = 30000;
|
|
31
60
|
/** JSON-RPC 2.0 reserved code for an unimplemented method. */
|
|
32
61
|
export declare const JSON_RPC_METHOD_NOT_FOUND = -32601;
|
|
62
|
+
/**
|
|
63
|
+
* JSON-RPC codes a server may use to say "that resource does not exist".
|
|
64
|
+
*
|
|
65
|
+
* The current spec's resource-read error path uses the application-defined
|
|
66
|
+
* `-32002`, but a server on an older version may still answer with the
|
|
67
|
+
* generic `-32602` ("Invalid params") for the same condition — and the spec
|
|
68
|
+
* explicitly says a client SHOULD keep accepting it. Both are listed so a
|
|
69
|
+
* caller distinguishing "not found" from "actually broken" does not have to
|
|
70
|
+
* special-case the older code itself.
|
|
71
|
+
*/
|
|
72
|
+
export declare const RESOURCE_NOT_FOUND_CODES: readonly number[];
|
|
73
|
+
/**
|
|
74
|
+
* The method a modern server answers with its `DiscoverResult`.
|
|
75
|
+
*
|
|
76
|
+
* Mandatory for a 2026-07-28 server and optional for a client, which is
|
|
77
|
+
* exactly what makes it a usable era probe: a server that answers it speaks
|
|
78
|
+
* the modern protocol, and a legacy server answers it with an
|
|
79
|
+
* implementation-defined error — commonly `-32601` or `-32602` — or not at
|
|
80
|
+
* all.
|
|
81
|
+
*/
|
|
82
|
+
export declare const MCP_DISCOVER_METHOD = "server/discover";
|
|
83
|
+
/**
|
|
84
|
+
* How long an era probe waits for an answer before deciding the peer is
|
|
85
|
+
* legacy.
|
|
86
|
+
*
|
|
87
|
+
* A heuristic with no good universal value, which is why it is
|
|
88
|
+
* configurable per client (`MCPClientConfig.eraProbeTimeoutMs`). Too short
|
|
89
|
+
* and a slow-starting server is misclassified as legacy; too long and every
|
|
90
|
+
* legacy server pays the wait on every connect. Two seconds is long enough
|
|
91
|
+
* for a process that has already spawned to answer one request and short
|
|
92
|
+
* enough to sit comfortably inside an operator-facing connect deadline —
|
|
93
|
+
* and the era cache means a given origin or command pays it once, not once
|
|
94
|
+
* per connection.
|
|
95
|
+
*/
|
|
96
|
+
export declare const DEFAULT_MCP_ERA_PROBE_TIMEOUT_MS = 2000;
|
|
97
|
+
/**
|
|
98
|
+
* The HTTP statuses a legacy origin answers a modern request with.
|
|
99
|
+
*
|
|
100
|
+
* A status alone is NOT the fallback signal: a modern server answers an
|
|
101
|
+
* unknown method with `404` and a JSON-RPC `-32601` body specifically so a
|
|
102
|
+
* client can tell it apart from the `404` of a server that has never heard
|
|
103
|
+
* of the modern protocol. The body decides; this list only says which
|
|
104
|
+
* responses are worth reading a body from.
|
|
105
|
+
*/
|
|
106
|
+
export declare const MCP_MODERN_HTTP_FALLBACK_STATUSES: readonly number[];
|
|
107
|
+
/**
|
|
108
|
+
* The reserved `_meta` keys a modern request and reply carry.
|
|
109
|
+
*
|
|
110
|
+
* `protocolVersion` and `clientCapabilities` are REQUIRED on every modern
|
|
111
|
+
* request; `clientInfo` is a SHOULD. `serverInfo` travels the other way —
|
|
112
|
+
* it is how a `DiscoverResult` names the peer, and is what `connect()`
|
|
113
|
+
* reads to synthesise the `MCPInitializeResult` a host still expects.
|
|
114
|
+
*/
|
|
115
|
+
export declare const MCP_META_PROTOCOL_VERSION = "io.modelcontextprotocol/protocolVersion";
|
|
116
|
+
export declare const MCP_META_CLIENT_CAPABILITIES = "io.modelcontextprotocol/clientCapabilities";
|
|
117
|
+
export declare const MCP_META_CLIENT_INFO = "io.modelcontextprotocol/clientInfo";
|
|
118
|
+
export declare const MCP_META_SERVER_INFO = "io.modelcontextprotocol/serverInfo";
|
|
119
|
+
/**
|
|
120
|
+
* The request headers a modern Streamable HTTP request mirrors its body
|
|
121
|
+
* with, so an intermediary can route and authorise a call without parsing
|
|
122
|
+
* JSON-RPC.
|
|
123
|
+
*
|
|
124
|
+
* `MCP_PROTOCOL_VERSION_HEADER` is shared with the later legacy revisions,
|
|
125
|
+
* where it means the version negotiated by `initialize` rather than the one
|
|
126
|
+
* carried in this request's own `_meta`.
|
|
127
|
+
*/
|
|
128
|
+
export declare const MCP_PROTOCOL_VERSION_HEADER = "MCP-Protocol-Version";
|
|
129
|
+
export declare const MCP_METHOD_HEADER = "Mcp-Method";
|
|
130
|
+
export declare const MCP_NAME_HEADER = "Mcp-Name";
|
|
131
|
+
export declare const MCP_PARAM_HEADER_PREFIX = "Mcp-Param-";
|
|
132
|
+
/**
|
|
133
|
+
* The methods whose target is named in the `Mcp-Name` header, and the
|
|
134
|
+
* parameter each one's name is read from.
|
|
135
|
+
*
|
|
136
|
+
* Required for compliance on Streamable HTTP: an intermediary that can see
|
|
137
|
+
* WHICH tool is being called without reading the body is the whole point of
|
|
138
|
+
* mirroring it into a header.
|
|
139
|
+
*/
|
|
140
|
+
export declare const MCP_NAME_HEADER_METHODS: Readonly<Record<string, 'name' | 'uri'>>;
|
|
33
141
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/mcp/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAEtF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAAmB,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAK1D,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAG5D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAAS,CAAA;AAEpD,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,SAAS,CAAA;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAAqB,CAAA;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAA;AAEpD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,OAAQ,CAAA;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAAoB,CAAA;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,4BAA4B,+CAA+C,CAAA;AACxF,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AACxE,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AAExE;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,yBAAyB,CAAA;AACjE,eAAO,MAAM,iBAAiB,eAAe,CAAA;AAC7C,eAAO,MAAM,eAAe,aAAa,CAAA;AACzC,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAI5E,CAAA"}
|
|
@@ -1,25 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The MCP spec revisions this client speaks WITHOUT the `initialize`
|
|
3
|
+
* handshake, newest first.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* The modern era removes that handshake entirely: a connection is resolved
|
|
6
|
+
* by probing with `server/discover`, and every request afterwards carries
|
|
7
|
+
* its own protocol version, client capabilities and client info in `_meta`
|
|
8
|
+
* instead of inheriting them from a session. `connect()` tries the newest
|
|
9
|
+
* entry here FIRST and falls back to the legacy handshake below only when
|
|
10
|
+
* the probe says the peer does not speak it.
|
|
10
11
|
*/
|
|
11
|
-
export const
|
|
12
|
+
export const MCP_MODERN_VERSIONS = ['2026-07-28'];
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
14
|
+
* Protocol versions this client offers and accepts through the legacy
|
|
15
|
+
* `initialize` handshake, newest first.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* `connect()` offers `MCP_LEGACY_VERSIONS[0]` — the newest one — in a
|
|
18
|
+
* single `initialize` request. A server is free to answer with any version
|
|
19
|
+
* in `MCP_SUPPORTED_PROTOCOL_VERSIONS` below, not only the one offered:
|
|
20
|
+
* that is how the handshake is specified. namzu used to advertise and
|
|
21
|
+
* accept only `2024-11-05`, which refused the overwhelming majority of
|
|
22
|
+
* servers deployed since — every one that negotiated down to 2025-03-26,
|
|
23
|
+
* 2025-06-18 or 2025-11-25 instead of all the way to the oldest revision.
|
|
24
|
+
*
|
|
25
|
+
* This is deliberately a single round trip, never a per-version waterfall:
|
|
26
|
+
* the spec's own backward-compatibility algorithm offers one version and
|
|
27
|
+
* honors whatever the server answers
|
|
28
|
+
* (https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle).
|
|
29
|
+
* A three-step retry loop is three times the latency for a code path no
|
|
30
|
+
* server expects, and `protocol-negotiation.test.ts` counts `initialize`
|
|
31
|
+
* frames so nobody reintroduces one.
|
|
32
|
+
*/
|
|
33
|
+
export const MCP_LEGACY_VERSIONS = [
|
|
34
|
+
'2025-11-25',
|
|
35
|
+
'2025-06-18',
|
|
36
|
+
'2025-03-26',
|
|
37
|
+
'2024-11-05',
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* Every protocol version this client can speak, in any capacity — offered
|
|
41
|
+
* in `initialize`, or merely a value it will not refuse if a server
|
|
42
|
+
* answers with it.
|
|
43
|
+
*
|
|
44
|
+
* The single authority for "can we speak this?": a server negotiating to
|
|
45
|
+
* a version outside this list is refused rather than let through to break
|
|
46
|
+
* confusingly downstream. Advertising or accepting a version whose
|
|
47
|
+
* requirements are unimplemented is worse than being honest about a
|
|
48
|
+
* narrower set — the server tailors its behavior to what the client
|
|
49
|
+
* claims, and the mismatch would otherwise surface later as a malformed
|
|
50
|
+
* exchange instead of a clean negotiation failure. That reasoning is why
|
|
51
|
+
* this list once held a single entry; it now argues for the broadened set
|
|
52
|
+
* above, not against it, because every version listed here is one namzu
|
|
53
|
+
* has actually verified it can carry a legacy `initialize` handshake for.
|
|
21
54
|
*/
|
|
22
|
-
export const MCP_SUPPORTED_PROTOCOL_VERSIONS = [
|
|
55
|
+
export const MCP_SUPPORTED_PROTOCOL_VERSIONS = [
|
|
56
|
+
...MCP_MODERN_VERSIONS,
|
|
57
|
+
...MCP_LEGACY_VERSIONS,
|
|
58
|
+
];
|
|
23
59
|
/**
|
|
24
60
|
* Default deadline for one MCP JSON-RPC round trip.
|
|
25
61
|
*
|
|
@@ -30,4 +66,87 @@ export const MCP_SUPPORTED_PROTOCOL_VERSIONS = ['2024-11-05'];
|
|
|
30
66
|
export const DEFAULT_MCP_REQUEST_TIMEOUT_MS = 30_000;
|
|
31
67
|
/** JSON-RPC 2.0 reserved code for an unimplemented method. */
|
|
32
68
|
export const JSON_RPC_METHOD_NOT_FOUND = -32601;
|
|
69
|
+
/**
|
|
70
|
+
* JSON-RPC codes a server may use to say "that resource does not exist".
|
|
71
|
+
*
|
|
72
|
+
* The current spec's resource-read error path uses the application-defined
|
|
73
|
+
* `-32002`, but a server on an older version may still answer with the
|
|
74
|
+
* generic `-32602` ("Invalid params") for the same condition — and the spec
|
|
75
|
+
* explicitly says a client SHOULD keep accepting it. Both are listed so a
|
|
76
|
+
* caller distinguishing "not found" from "actually broken" does not have to
|
|
77
|
+
* special-case the older code itself.
|
|
78
|
+
*/
|
|
79
|
+
export const RESOURCE_NOT_FOUND_CODES = [-32602, -32002];
|
|
80
|
+
/**
|
|
81
|
+
* The method a modern server answers with its `DiscoverResult`.
|
|
82
|
+
*
|
|
83
|
+
* Mandatory for a 2026-07-28 server and optional for a client, which is
|
|
84
|
+
* exactly what makes it a usable era probe: a server that answers it speaks
|
|
85
|
+
* the modern protocol, and a legacy server answers it with an
|
|
86
|
+
* implementation-defined error — commonly `-32601` or `-32602` — or not at
|
|
87
|
+
* all.
|
|
88
|
+
*/
|
|
89
|
+
export const MCP_DISCOVER_METHOD = 'server/discover';
|
|
90
|
+
/**
|
|
91
|
+
* How long an era probe waits for an answer before deciding the peer is
|
|
92
|
+
* legacy.
|
|
93
|
+
*
|
|
94
|
+
* A heuristic with no good universal value, which is why it is
|
|
95
|
+
* configurable per client (`MCPClientConfig.eraProbeTimeoutMs`). Too short
|
|
96
|
+
* and a slow-starting server is misclassified as legacy; too long and every
|
|
97
|
+
* legacy server pays the wait on every connect. Two seconds is long enough
|
|
98
|
+
* for a process that has already spawned to answer one request and short
|
|
99
|
+
* enough to sit comfortably inside an operator-facing connect deadline —
|
|
100
|
+
* and the era cache means a given origin or command pays it once, not once
|
|
101
|
+
* per connection.
|
|
102
|
+
*/
|
|
103
|
+
export const DEFAULT_MCP_ERA_PROBE_TIMEOUT_MS = 2_000;
|
|
104
|
+
/**
|
|
105
|
+
* The HTTP statuses a legacy origin answers a modern request with.
|
|
106
|
+
*
|
|
107
|
+
* A status alone is NOT the fallback signal: a modern server answers an
|
|
108
|
+
* unknown method with `404` and a JSON-RPC `-32601` body specifically so a
|
|
109
|
+
* client can tell it apart from the `404` of a server that has never heard
|
|
110
|
+
* of the modern protocol. The body decides; this list only says which
|
|
111
|
+
* responses are worth reading a body from.
|
|
112
|
+
*/
|
|
113
|
+
export const MCP_MODERN_HTTP_FALLBACK_STATUSES = [400, 404, 405];
|
|
114
|
+
/**
|
|
115
|
+
* The reserved `_meta` keys a modern request and reply carry.
|
|
116
|
+
*
|
|
117
|
+
* `protocolVersion` and `clientCapabilities` are REQUIRED on every modern
|
|
118
|
+
* request; `clientInfo` is a SHOULD. `serverInfo` travels the other way —
|
|
119
|
+
* it is how a `DiscoverResult` names the peer, and is what `connect()`
|
|
120
|
+
* reads to synthesise the `MCPInitializeResult` a host still expects.
|
|
121
|
+
*/
|
|
122
|
+
export const MCP_META_PROTOCOL_VERSION = 'io.modelcontextprotocol/protocolVersion';
|
|
123
|
+
export const MCP_META_CLIENT_CAPABILITIES = 'io.modelcontextprotocol/clientCapabilities';
|
|
124
|
+
export const MCP_META_CLIENT_INFO = 'io.modelcontextprotocol/clientInfo';
|
|
125
|
+
export const MCP_META_SERVER_INFO = 'io.modelcontextprotocol/serverInfo';
|
|
126
|
+
/**
|
|
127
|
+
* The request headers a modern Streamable HTTP request mirrors its body
|
|
128
|
+
* with, so an intermediary can route and authorise a call without parsing
|
|
129
|
+
* JSON-RPC.
|
|
130
|
+
*
|
|
131
|
+
* `MCP_PROTOCOL_VERSION_HEADER` is shared with the later legacy revisions,
|
|
132
|
+
* where it means the version negotiated by `initialize` rather than the one
|
|
133
|
+
* carried in this request's own `_meta`.
|
|
134
|
+
*/
|
|
135
|
+
export const MCP_PROTOCOL_VERSION_HEADER = 'MCP-Protocol-Version';
|
|
136
|
+
export const MCP_METHOD_HEADER = 'Mcp-Method';
|
|
137
|
+
export const MCP_NAME_HEADER = 'Mcp-Name';
|
|
138
|
+
export const MCP_PARAM_HEADER_PREFIX = 'Mcp-Param-';
|
|
139
|
+
/**
|
|
140
|
+
* The methods whose target is named in the `Mcp-Name` header, and the
|
|
141
|
+
* parameter each one's name is read from.
|
|
142
|
+
*
|
|
143
|
+
* Required for compliance on Streamable HTTP: an intermediary that can see
|
|
144
|
+
* WHICH tool is being called without reading the body is the whole point of
|
|
145
|
+
* mirroring it into a header.
|
|
146
|
+
*/
|
|
147
|
+
export const MCP_NAME_HEADER_METHODS = {
|
|
148
|
+
'tools/call': 'name',
|
|
149
|
+
'prompts/get': 'name',
|
|
150
|
+
'resources/read': 'uri',
|
|
151
|
+
};
|
|
33
152
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/mcp/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/mcp/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC,CAAC,YAAY,CAAC,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC/D,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;CACZ,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IACjE,GAAG,mBAAmB;IACtB,GAAG,mBAAmB;CACtB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAA;AAEpD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;AAE3E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAA;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAA;AAErD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEnF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,yCAAyC,CAAA;AAClF,MAAM,CAAC,MAAM,4BAA4B,GAAG,4CAA4C,CAAA;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAAoC,CAAA;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAAoC,CAAA;AAExE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAA;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAA;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAA;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAA;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6C;IAChF,YAAY,EAAE,MAAM;IACpB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,KAAK;CACvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/agent/lifecycle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/manager/agent/lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EACN,KAAK,iBAAiB,EACtB,0BAA0B,EAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,KAAK,EAEX,sBAAsB,EACtB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EACX,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,iCAAiC,CAAA;AAChF,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAMhE,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,KAAK,sBAAsB,EAAuB,MAAM,wBAAwB,CAAA;AAGzF;;;;;;;;;;;;;;;;;;GAkBG;AACH,UAAU,oBAAoB;IAC7B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAA;IACpD,QAAQ,CAAC,mBAAmB,EAAE,0BAA0B,CAAA;IACxD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IAEpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,CAAA;AAc5E,UAAU,gBAAgB;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,SAAS,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,eAAe,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,SAAS,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC;AAqBD,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,mBAAmB,CAA4C;IACvE,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,cAAc,CAAwD;IAC9E,0EAA0E;IAC1E,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,cAAc,CAA2C;IACjE,OAAO,CAAC,QAAQ,CAAQ;gBAGvB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,EAC/C,IAAI,EAAE,gBAAgB;IAcjB,WAAW,CAChB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,CAAC;YAOP,cAAc;IA2E5B,OAAO,CAAC,cAAc;YAwBR,eAAe;IAqC7B,OAAO,CAAC,aAAa;YA6BP,YAAY;YAqbZ,sBAAsB;YA+CtB,sBAAsB;IAepC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI;IAmBjD,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,GAAE,WAAsB,GAAG,IAAI;IAS5D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAapD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IAOxC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAehD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIlD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI5D,YAAY,CAAC,WAAW,EAAE,KAAK,GAAG,SAAS,EAAE;IAI7C,UAAU,IAAI,SAAS,EAAE;IAIzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpD,WAAW,IAAI,aAAa;IAI5B,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAI1C,GAAG,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAK3C,OAAO,IAAI,IAAI;IAUf,OAAO,IAAI,IAAI;IAuBf;;;;;;;;;;;;;OAaG;YACW,cAAc;YA0Bd,aAAa;YAoEb,sBAAsB;YA6HtB,QAAQ;IAwBtB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YAuBX,aAAa;IAoG3B,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,UAAU;YA6CJ,cAAc;IAc5B;;;;;;;;;;;;;OAaG;YACW,qBAAqB;IAmBnC,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,YAAY;CAgBpB;AA0ED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
|