mcpose 2.1.1 → 3.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/README.md +457 -62
- package/dist/backendClient.d.ts +1 -1
- package/dist/backendClient.d.ts.map +1 -1
- package/dist/backendClient.js +6 -1
- package/dist/backendClient.js.map +1 -1
- package/dist/core.d.ts +285 -32
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +961 -193
- package/dist/core.js.map +1 -1
- package/dist/delegation.d.ts +89 -0
- package/dist/delegation.d.ts.map +1 -0
- package/dist/delegation.js +175 -0
- package/dist/delegation.js.map +1 -0
- package/dist/eventStore.d.ts +12 -0
- package/dist/eventStore.d.ts.map +1 -1
- package/dist/eventStore.js +43 -5
- package/dist/eventStore.js.map +1 -1
- package/dist/hiddenTools.d.ts +42 -0
- package/dist/hiddenTools.d.ts.map +1 -0
- package/dist/hiddenTools.js +53 -0
- package/dist/hiddenTools.js.map +1 -0
- package/dist/index.d.ts +15 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/mesh.d.ts +82 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/mesh.js +141 -0
- package/dist/mesh.js.map +1 -0
- package/dist/middleware.d.ts +13 -0
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +27 -3
- package/dist/middleware.js.map +1 -1
- package/dist/proxyContext.d.ts +65 -5
- package/dist/proxyContext.d.ts.map +1 -1
- package/dist/proxyContext.js +39 -4
- package/dist/proxyContext.js.map +1 -1
- package/dist/rejection.d.ts +1 -1
- package/dist/rejection.d.ts.map +1 -1
- package/dist/rejection.js +1 -1
- package/dist/rejection.js.map +1 -1
- package/dist/sanitizeCatalog.d.ts +37 -0
- package/dist/sanitizeCatalog.d.ts.map +1 -0
- package/dist/sanitizeCatalog.js +86 -0
- package/dist/sanitizeCatalog.js.map +1 -0
- package/dist/sessionRegistry.d.ts +79 -0
- package/dist/sessionRegistry.d.ts.map +1 -0
- package/dist/sessionRegistry.js +83 -0
- package/dist/sessionRegistry.js.map +1 -0
- package/dist/telemetry.d.ts +29 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/testing.d.ts +18 -2
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +30 -8
- package/dist/testing.js.map +1 -1
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/package.json +22 -8
- package/src/__tests__/_helpers.ts +64 -0
- package/src/__tests__/backendClient.test.ts +198 -0
- package/src/__tests__/core.delegation.test.ts +964 -0
- package/src/__tests__/core.edge.test.ts +314 -0
- package/src/__tests__/core.hiddenTools.predicate.test.ts +236 -0
- package/src/__tests__/core.localTools.test.ts +314 -0
- package/src/__tests__/core.mesh.test.ts +1182 -0
- package/src/__tests__/core.stripRequestMeta.test.ts +226 -0
- package/src/__tests__/core.stripResultMeta.test.ts +217 -0
- package/src/__tests__/core.test.ts +1019 -0
- package/src/__tests__/eventStore.test.ts +141 -0
- package/src/__tests__/mapToolResult.test.ts +101 -0
- package/src/__tests__/middleware.edge.test.ts +126 -0
- package/src/__tests__/middleware.test.ts +233 -0
- package/src/__tests__/proxyContext.test.ts +140 -0
- package/src/__tests__/sanitizeCatalog.test.ts +359 -0
- package/src/__tests__/startHttpProxy.lifecycle.test.ts +638 -0
- package/src/__tests__/startHttpProxy.registry.test.ts +409 -0
- package/src/__tests__/startHttpProxy.replay.test.ts +116 -0
- package/src/__tests__/startHttpProxy.security.test.ts +288 -0
- package/src/__tests__/startHttpProxy.test.ts +985 -0
- package/src/__tests__/testing.test.ts +250 -0
- package/src/__tests__/version.test.ts +12 -0
- package/src/backendClient.ts +83 -0
- package/src/core.ts +2042 -0
- package/src/delegation.ts +224 -0
- package/src/eventStore.ts +106 -0
- package/src/hiddenTools.ts +84 -0
- package/src/identity.ts +15 -0
- package/src/index.ts +63 -0
- package/src/mesh.ts +204 -0
- package/src/middleware.ts +101 -0
- package/src/proxyContext.ts +108 -0
- package/src/rejection.ts +37 -0
- package/src/sanitizeCatalog.ts +120 -0
- package/src/sessionRegistry.ts +142 -0
- package/src/telemetry.ts +46 -0
- package/src/testing.ts +174 -0
- package/src/version.ts +6 -0
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The delegation chain wire format: how a chain crosses the wire in
|
|
3
|
+
* `params._meta` and how it is read back (ADR-0016).
|
|
4
|
+
*
|
|
5
|
+
* The chain is attribution, never authorization. A presented chain is
|
|
6
|
+
* written by the previous hop and is attacker-influenced at the boundary,
|
|
7
|
+
* so `roles` and `claims` never travel on the wire and are never taken
|
|
8
|
+
* from one: extraction produces identities with empty roles and claims,
|
|
9
|
+
* unconditionally.
|
|
10
|
+
*/
|
|
11
|
+
import { type McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
12
|
+
import type { Identity } from './identity.js';
|
|
13
|
+
import { type ProxyContext } from './proxyContext.js';
|
|
14
|
+
/**
|
|
15
|
+
* The `params._meta` key carrying the delegation chain. Exported so a host
|
|
16
|
+
* attaching {@link outboundDelegationChain} to its own outbound MCP calls
|
|
17
|
+
* uses the same key core does.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DELEGATION_META_KEY = "mcpose/delegation";
|
|
20
|
+
/** One entry of the wire chain: no `roles`, no `claims`, ever. */
|
|
21
|
+
export interface DelegationWireEntry {
|
|
22
|
+
sub: string;
|
|
23
|
+
type: Identity['type'];
|
|
24
|
+
displayName?: string;
|
|
25
|
+
resolvedAt?: string;
|
|
26
|
+
source?: Identity['source'];
|
|
27
|
+
}
|
|
28
|
+
/** The versioned payload carried at `params._meta["mcpose/delegation"]`. */
|
|
29
|
+
export interface DelegationWirePayload {
|
|
30
|
+
v: number;
|
|
31
|
+
chain: DelegationWireEntry[];
|
|
32
|
+
}
|
|
33
|
+
/** What reading the inbound payload produced. Both fields absent means "no chain". */
|
|
34
|
+
export interface InboundDelegation {
|
|
35
|
+
/** The presented chain, oldest-first. Absent when there was none. */
|
|
36
|
+
chain?: Identity[];
|
|
37
|
+
/**
|
|
38
|
+
* The rejection a malformed payload earned. Thrown inside the pipeline by
|
|
39
|
+
* the caller, so observing middleware records the attempt.
|
|
40
|
+
*/
|
|
41
|
+
error?: McpError;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Serializes a chain to its wire payload, dropping `roles` and `claims`.
|
|
45
|
+
*
|
|
46
|
+
* Exported for hosts that attach {@link outboundDelegationChain} to their own
|
|
47
|
+
* outbound MCP calls from a local tool handler, which ADR-0011 leaves to the
|
|
48
|
+
* host because outbound host code may not be MCP at all.
|
|
49
|
+
*/
|
|
50
|
+
export declare function serializeDelegationChain(chain: ReadonlyArray<Identity>): DelegationWirePayload;
|
|
51
|
+
/**
|
|
52
|
+
* Reads the chain from a raw request, before the ADR-0008 request-`_meta`
|
|
53
|
+
* strip runs: read first, strip second, or the marker never survives a
|
|
54
|
+
* chained proxy (the ADR-0011 boundary-ordering constraint).
|
|
55
|
+
*
|
|
56
|
+
* An absent payload is not an error. A present-but-malformed one is, and is
|
|
57
|
+
* returned rather than thrown so the caller can throw it inside the pipeline.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readInboundDelegation(req: {
|
|
60
|
+
params?: {
|
|
61
|
+
_meta?: unknown;
|
|
62
|
+
} | undefined;
|
|
63
|
+
}): InboundDelegation;
|
|
64
|
+
/**
|
|
65
|
+
* Detects a chain that loops back through this proxy: the sub of the identity
|
|
66
|
+
* it resolved for the caller already appears in the chain that caller
|
|
67
|
+
* presents, so the call has cycled (ADR-0016).
|
|
68
|
+
*
|
|
69
|
+
* Runs after identity resolution and returns the rejection rather than
|
|
70
|
+
* throwing it, so the caller throws it inside the pipeline and the audit
|
|
71
|
+
* trail records the attempt against the identity that tripped it.
|
|
72
|
+
*
|
|
73
|
+
* With no resolved identity there is nothing to look for, which is the stdio
|
|
74
|
+
* case: only the structural validation in {@link readInboundDelegation}
|
|
75
|
+
* applies there. Core sees only the calls it forwards itself, so a cycle that
|
|
76
|
+
* closes through a local tool handler's own outbound call is outside this
|
|
77
|
+
* check, exactly as ADR-0011 said a partial control must admit.
|
|
78
|
+
*/
|
|
79
|
+
export declare function detectDelegationLoop(context: ProxyContext): McpError | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Attaches the chain this proxy can vouch for to a forwarded request's
|
|
82
|
+
* params, closing the loop for a chained proxy: the inbound strip removes
|
|
83
|
+
* the caller's copy, and core re-attaches the extended chain (ADR-0016).
|
|
84
|
+
*
|
|
85
|
+
* A no-op when the outbound chain is empty, so a proxy with no identity and
|
|
86
|
+
* no inbound chain forwards params untouched.
|
|
87
|
+
*/
|
|
88
|
+
export declare function attachDelegationMeta<P>(params: P, context: ProxyContext): P;
|
|
89
|
+
//# sourceMappingURL=delegation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../src/delegation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG/E;;;;GAIG;AAGH,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAkBvD,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AA0BD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC7B,qBAAqB,CAavB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE;IACzC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC1C,GAAG,iBAAiB,CA8CpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,GACpB,QAAQ,GAAG,SAAS,CAStB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC,CAe3E"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The delegation chain wire format: how a chain crosses the wire in
|
|
3
|
+
* `params._meta` and how it is read back (ADR-0016).
|
|
4
|
+
*
|
|
5
|
+
* The chain is attribution, never authorization. A presented chain is
|
|
6
|
+
* written by the previous hop and is attacker-influenced at the boundary,
|
|
7
|
+
* so `roles` and `claims` never travel on the wire and are never taken
|
|
8
|
+
* from one: extraction produces identities with empty roles and claims,
|
|
9
|
+
* unconditionally.
|
|
10
|
+
*/
|
|
11
|
+
import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
12
|
+
import { outboundDelegationChain } from './proxyContext.js';
|
|
13
|
+
import { rejectionMcpError } from './rejection.js';
|
|
14
|
+
/**
|
|
15
|
+
* The `params._meta` key carrying the delegation chain. Exported so a host
|
|
16
|
+
* attaching {@link outboundDelegationChain} to its own outbound MCP calls
|
|
17
|
+
* uses the same key core does.
|
|
18
|
+
*/
|
|
19
|
+
// A public wire constant, not a credential: the trailing allow keeps
|
|
20
|
+
// gitleaks' generic-api-key rule from matching the `_KEY` name.
|
|
21
|
+
export const DELEGATION_META_KEY = 'mcpose/delegation'; // gitleaks:allow
|
|
22
|
+
/** The only wire version this proxy parses or emits. */
|
|
23
|
+
const WIRE_VERSION = 1;
|
|
24
|
+
/**
|
|
25
|
+
* Parse bound on a presented chain, not the hop-count policy knob ADR-0011
|
|
26
|
+
* rejected: it constrains what this proxy will parse, not what host
|
|
27
|
+
* outbound code does.
|
|
28
|
+
*/
|
|
29
|
+
const MAX_CHAIN_ENTRIES = 32;
|
|
30
|
+
const IDENTITY_TYPES = ['human', 'agent', 'service'];
|
|
31
|
+
const IDENTITY_SOURCES = ['jwt', 'mtls', 'apikey', 'custom'];
|
|
32
|
+
const ISO_8601 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
33
|
+
function isRecord(value) {
|
|
34
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
35
|
+
}
|
|
36
|
+
function isIsoTimestamp(value) {
|
|
37
|
+
return (typeof value === 'string' &&
|
|
38
|
+
ISO_8601.test(value) &&
|
|
39
|
+
!Number.isNaN(Date.parse(value)));
|
|
40
|
+
}
|
|
41
|
+
function rejection(detail) {
|
|
42
|
+
return rejectionMcpError('DELEGATION_INVALID', ErrorCode.InvalidRequest, `Invalid delegation chain: ${detail}`);
|
|
43
|
+
}
|
|
44
|
+
function invalid(detail) {
|
|
45
|
+
return { error: rejection(detail) };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Serializes a chain to its wire payload, dropping `roles` and `claims`.
|
|
49
|
+
*
|
|
50
|
+
* Exported for hosts that attach {@link outboundDelegationChain} to their own
|
|
51
|
+
* outbound MCP calls from a local tool handler, which ADR-0011 leaves to the
|
|
52
|
+
* host because outbound host code may not be MCP at all.
|
|
53
|
+
*/
|
|
54
|
+
export function serializeDelegationChain(chain) {
|
|
55
|
+
return {
|
|
56
|
+
v: WIRE_VERSION,
|
|
57
|
+
chain: chain.map((identity) => ({
|
|
58
|
+
sub: identity.sub,
|
|
59
|
+
type: identity.type,
|
|
60
|
+
...(identity.displayName === undefined
|
|
61
|
+
? {}
|
|
62
|
+
: { displayName: identity.displayName }),
|
|
63
|
+
resolvedAt: identity.resolvedAt,
|
|
64
|
+
source: identity.source,
|
|
65
|
+
})),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Reads the chain from a raw request, before the ADR-0008 request-`_meta`
|
|
70
|
+
* strip runs: read first, strip second, or the marker never survives a
|
|
71
|
+
* chained proxy (the ADR-0011 boundary-ordering constraint).
|
|
72
|
+
*
|
|
73
|
+
* An absent payload is not an error. A present-but-malformed one is, and is
|
|
74
|
+
* returned rather than thrown so the caller can throw it inside the pipeline.
|
|
75
|
+
*/
|
|
76
|
+
export function readInboundDelegation(req) {
|
|
77
|
+
const meta = req.params?._meta;
|
|
78
|
+
const payload = isRecord(meta) ? meta[DELEGATION_META_KEY] : undefined;
|
|
79
|
+
if (payload === undefined)
|
|
80
|
+
return {};
|
|
81
|
+
if (!isRecord(payload))
|
|
82
|
+
return invalid('payload is not an object');
|
|
83
|
+
if (payload.v !== WIRE_VERSION) {
|
|
84
|
+
return invalid(`unsupported version ${JSON.stringify(payload.v)}`);
|
|
85
|
+
}
|
|
86
|
+
const wireChain = payload.chain;
|
|
87
|
+
if (!Array.isArray(wireChain))
|
|
88
|
+
return invalid('chain is not an array');
|
|
89
|
+
if (wireChain.length > MAX_CHAIN_ENTRIES) {
|
|
90
|
+
return invalid(`chain exceeds ${MAX_CHAIN_ENTRIES} entries`);
|
|
91
|
+
}
|
|
92
|
+
const receivedAt = new Date().toISOString();
|
|
93
|
+
const chain = [];
|
|
94
|
+
for (const entry of wireChain) {
|
|
95
|
+
if (!isRecord(entry))
|
|
96
|
+
return invalid('an entry is not an object');
|
|
97
|
+
const { sub, type } = entry;
|
|
98
|
+
if (typeof sub !== 'string' || sub === '') {
|
|
99
|
+
return invalid('an entry has no sub');
|
|
100
|
+
}
|
|
101
|
+
if (!IDENTITY_TYPES.includes(type)) {
|
|
102
|
+
return invalid(`entry ${JSON.stringify(sub)} has an unknown type`);
|
|
103
|
+
}
|
|
104
|
+
chain.push({
|
|
105
|
+
sub,
|
|
106
|
+
type: type,
|
|
107
|
+
...(typeof entry.displayName === 'string'
|
|
108
|
+
? { displayName: entry.displayName }
|
|
109
|
+
: {}),
|
|
110
|
+
// Attribution, never authorization: whatever the wire claimed here is
|
|
111
|
+
// discarded, so a presented chain cannot smuggle a privilege.
|
|
112
|
+
roles: [],
|
|
113
|
+
claims: {},
|
|
114
|
+
resolvedAt: isIsoTimestamp(entry.resolvedAt)
|
|
115
|
+
? entry.resolvedAt
|
|
116
|
+
: receivedAt,
|
|
117
|
+
source: IDENTITY_SOURCES.includes(entry.source)
|
|
118
|
+
? entry.source
|
|
119
|
+
: 'custom',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
// An empty presented chain says the same thing as no chain at all, and
|
|
123
|
+
// leaving `delegatedFrom` unset keeps it either absent or non-empty.
|
|
124
|
+
return chain.length === 0 ? {} : { chain };
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Detects a chain that loops back through this proxy: the sub of the identity
|
|
128
|
+
* it resolved for the caller already appears in the chain that caller
|
|
129
|
+
* presents, so the call has cycled (ADR-0016).
|
|
130
|
+
*
|
|
131
|
+
* Runs after identity resolution and returns the rejection rather than
|
|
132
|
+
* throwing it, so the caller throws it inside the pipeline and the audit
|
|
133
|
+
* trail records the attempt against the identity that tripped it.
|
|
134
|
+
*
|
|
135
|
+
* With no resolved identity there is nothing to look for, which is the stdio
|
|
136
|
+
* case: only the structural validation in {@link readInboundDelegation}
|
|
137
|
+
* applies there. Core sees only the calls it forwards itself, so a cycle that
|
|
138
|
+
* closes through a local tool handler's own outbound call is outside this
|
|
139
|
+
* check, exactly as ADR-0011 said a partial control must admit.
|
|
140
|
+
*/
|
|
141
|
+
export function detectDelegationLoop(context) {
|
|
142
|
+
const sub = context.identity?.sub;
|
|
143
|
+
if (sub === undefined)
|
|
144
|
+
return undefined;
|
|
145
|
+
const looped = (context.delegatedFrom ?? []).some((entry) => entry.sub === sub);
|
|
146
|
+
return looped
|
|
147
|
+
? rejection(`the caller ${JSON.stringify(sub)} is already in the chain`)
|
|
148
|
+
: undefined;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Attaches the chain this proxy can vouch for to a forwarded request's
|
|
152
|
+
* params, closing the loop for a chained proxy: the inbound strip removes
|
|
153
|
+
* the caller's copy, and core re-attaches the extended chain (ADR-0016).
|
|
154
|
+
*
|
|
155
|
+
* A no-op when the outbound chain is empty, so a proxy with no identity and
|
|
156
|
+
* no inbound chain forwards params untouched.
|
|
157
|
+
*/
|
|
158
|
+
export function attachDelegationMeta(params, context) {
|
|
159
|
+
const chain = outboundDelegationChain(context);
|
|
160
|
+
if (chain.length === 0)
|
|
161
|
+
return params;
|
|
162
|
+
const existing = params
|
|
163
|
+
?._meta;
|
|
164
|
+
// P is inferred from the call site, so the result is exactly the params
|
|
165
|
+
// shape the callee expects, plus a `_meta` every request type allows —
|
|
166
|
+
// which the compiler cannot prove for an unresolved generic.
|
|
167
|
+
return {
|
|
168
|
+
...params,
|
|
169
|
+
_meta: {
|
|
170
|
+
...existing,
|
|
171
|
+
[DELEGATION_META_KEY]: serializeDelegationChain(chain),
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=delegation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../src/delegation.ts"],"names":[],"mappings":"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"}
|
package/dist/eventStore.d.ts
CHANGED
|
@@ -14,4 +14,16 @@ export type { EventStore as PersistentEventStore };
|
|
|
14
14
|
* Events are evicted FIFO once `maxEvents` is reached.
|
|
15
15
|
*/
|
|
16
16
|
export declare function createInMemoryEventStore(maxEvents?: number): EventStore;
|
|
17
|
+
/**
|
|
18
|
+
* Namespaces every stream id by session before it reaches the store.
|
|
19
|
+
*
|
|
20
|
+
* The SDK gives every session's standalone SSE stream the literal id
|
|
21
|
+
* `_GET_stream`, so one store shared by many sessions would otherwise keep
|
|
22
|
+
* their standalone-stream history under one key and a `Last-Event-ID` from
|
|
23
|
+
* one session would replay another's events (#154). Prefixing the stream id
|
|
24
|
+
* with the session id keeps each session's history apart, and a cursor that
|
|
25
|
+
* belongs to another session is reported as unknown, which the transport
|
|
26
|
+
* turns into a 400.
|
|
27
|
+
*/
|
|
28
|
+
export declare function scopeEventStore(store: EventStore, sessionId: string): EventStore;
|
|
17
29
|
//# sourceMappingURL=eventStore.d.ts.map
|
package/dist/eventStore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventStore.d.ts","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"eventStore.d.ts","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,oDAAoD,CAAC;AAG5D;;;;;;;GAOG;AACH,YAAY,EAAE,UAAU,IAAI,oBAAoB,EAAE,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,SAAO,GAAG,UAAU,CAoCrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,CAiBZ"}
|
package/dist/eventStore.js
CHANGED
|
@@ -19,16 +19,54 @@ export function createInMemoryEventStore(maxEvents = 1000) {
|
|
|
19
19
|
return store.get(eventId)?.streamId;
|
|
20
20
|
},
|
|
21
21
|
async replayEventsAfter(lastEventId, { send }) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// Unknown or malformed Last-Event-ID (or one already evicted): replay
|
|
23
|
+
// nothing rather than the whole buffer.
|
|
24
|
+
const origin = store.get(lastEventId);
|
|
25
|
+
if (!origin)
|
|
26
|
+
return '';
|
|
27
|
+
const afterSeq = parseInt(lastEventId, 10);
|
|
24
28
|
for (const [id, { streamId, message }] of store) {
|
|
25
|
-
if (parseInt(id, 10) > afterSeq) {
|
|
29
|
+
if (streamId === origin.streamId && parseInt(id, 10) > afterSeq) {
|
|
26
30
|
await send(id, message);
|
|
27
|
-
latestStreamId = streamId;
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
|
-
return
|
|
33
|
+
return origin.streamId;
|
|
31
34
|
},
|
|
32
35
|
};
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Namespaces every stream id by session before it reaches the store.
|
|
39
|
+
*
|
|
40
|
+
* The SDK gives every session's standalone SSE stream the literal id
|
|
41
|
+
* `_GET_stream`, so one store shared by many sessions would otherwise keep
|
|
42
|
+
* their standalone-stream history under one key and a `Last-Event-ID` from
|
|
43
|
+
* one session would replay another's events (#154). Prefixing the stream id
|
|
44
|
+
* with the session id keeps each session's history apart, and a cursor that
|
|
45
|
+
* belongs to another session is reported as unknown, which the transport
|
|
46
|
+
* turns into a 400.
|
|
47
|
+
*/
|
|
48
|
+
export function scopeEventStore(store, sessionId) {
|
|
49
|
+
const prefix = `${sessionId}:`;
|
|
50
|
+
const own = (streamId) => streamId?.startsWith(prefix) ? streamId.slice(prefix.length) : undefined;
|
|
51
|
+
return {
|
|
52
|
+
storeEvent: (streamId, message) => store.storeEvent(prefix + streamId, message),
|
|
53
|
+
getStreamIdForEventId: async (eventId) => own(await streamIdOf(store, eventId)),
|
|
54
|
+
async replayEventsAfter(lastEventId, { send }) {
|
|
55
|
+
if (own(await streamIdOf(store, lastEventId)) === undefined)
|
|
56
|
+
return '';
|
|
57
|
+
return own(await store.replayEventsAfter(lastEventId, { send })) ?? '';
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// ponytail: a store without `getStreamIdForEventId` (none of ours) is asked
|
|
62
|
+
// to replay into a sink once to learn the owner; give it that method if the
|
|
63
|
+
// double replay ever matters.
|
|
64
|
+
async function streamIdOf(store, eventId) {
|
|
65
|
+
if (store.getStreamIdForEventId)
|
|
66
|
+
return store.getStreamIdForEventId(eventId);
|
|
67
|
+
const streamId = await store.replayEventsAfter(eventId, {
|
|
68
|
+
send: async () => undefined,
|
|
69
|
+
});
|
|
70
|
+
return streamId === '' ? undefined : streamId;
|
|
71
|
+
}
|
|
34
72
|
//# sourceMappingURL=eventStore.js.map
|
package/dist/eventStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventStore.js","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eventStore.js","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predicate form of `ProxyOptions.hiddenTools`, closing the dispatcher
|
|
3
|
+
* bypass a name-only blocklist cannot see (a meta-tool that takes the real
|
|
4
|
+
* tool name as an argument). See ADR-0006.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Decides whether a tool is hidden.
|
|
8
|
+
*
|
|
9
|
+
* `args` carries the phase: `undefined` during list filtering (a listed
|
|
10
|
+
* tool has no arguments), and always an object at call time (empty when
|
|
11
|
+
* the client sent none). That distinction lets a predicate keep a
|
|
12
|
+
* dispatcher visible in `tools/list` while failing closed on a dispatcher
|
|
13
|
+
* call whose target argument is missing.
|
|
14
|
+
*/
|
|
15
|
+
export type HiddenToolPredicate = (name: string, args: Readonly<Record<string, unknown>> | undefined) => boolean;
|
|
16
|
+
/** Options for {@link dispatcherAwareBlock}. */
|
|
17
|
+
export interface DispatcherAwareBlockOptions {
|
|
18
|
+
/** Tool names to hide, whether called directly or through a dispatcher. */
|
|
19
|
+
tools: ReadonlyArray<string>;
|
|
20
|
+
/** Dispatcher (meta-tool) names whose target argument is checked. */
|
|
21
|
+
dispatchers: ReadonlyArray<string>;
|
|
22
|
+
/** Path to the target tool name inside the dispatcher's arguments. Dotted paths are supported, e.g. `'request.tool.name'`. */
|
|
23
|
+
argPath: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A {@link HiddenToolPredicate} that blocks the listed tools both directly
|
|
27
|
+
* and through the listed dispatchers.
|
|
28
|
+
*
|
|
29
|
+
* Fail-closed: a dispatcher call whose target argument is missing, `null`,
|
|
30
|
+
* a number, an object, or an array is blocked, as is one whose `argPath`
|
|
31
|
+
* cannot be resolved. The dispatcher itself stays listed in `tools/list`
|
|
32
|
+
* and callable with a permitted target.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* hiddenTools: dispatcherAwareBlock({
|
|
36
|
+
* tools: ['update_issue', 'delete_issue'],
|
|
37
|
+
* dispatchers: ['execute_sentry_tool'],
|
|
38
|
+
* argPath: 'name',
|
|
39
|
+
* })
|
|
40
|
+
*/
|
|
41
|
+
export declare function dispatcherAwareBlock(options: DispatcherAwareBlockOptions): HiddenToolPredicate;
|
|
42
|
+
//# sourceMappingURL=hiddenTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hiddenTools.d.ts","sourceRoot":"","sources":["../src/hiddenTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,KAChD,OAAO,CAAC;AAEb,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,qEAAqE;IACrE,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,8HAA8H;IAC9H,OAAO,EAAE,MAAM,CAAC;CACjB;AA0BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,mBAAmB,CAWrB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predicate form of `ProxyOptions.hiddenTools`, closing the dispatcher
|
|
3
|
+
* bypass a name-only blocklist cannot see (a meta-tool that takes the real
|
|
4
|
+
* tool name as an argument). See ADR-0006.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Resolves a dotted path through own enumerable-or-not plain-object keys.
|
|
8
|
+
* Traversing a non-object, an array, or a prototype key (e.g.
|
|
9
|
+
* `constructor`) resolves to `undefined` — the caller fails closed.
|
|
10
|
+
*/
|
|
11
|
+
function resolveArgPath(args, path) {
|
|
12
|
+
let current = args;
|
|
13
|
+
for (const key of path.split('.')) {
|
|
14
|
+
if (current === null ||
|
|
15
|
+
typeof current !== 'object' ||
|
|
16
|
+
Array.isArray(current) ||
|
|
17
|
+
!Object.hasOwn(current, key)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
current = current[key];
|
|
21
|
+
}
|
|
22
|
+
return current;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A {@link HiddenToolPredicate} that blocks the listed tools both directly
|
|
26
|
+
* and through the listed dispatchers.
|
|
27
|
+
*
|
|
28
|
+
* Fail-closed: a dispatcher call whose target argument is missing, `null`,
|
|
29
|
+
* a number, an object, or an array is blocked, as is one whose `argPath`
|
|
30
|
+
* cannot be resolved. The dispatcher itself stays listed in `tools/list`
|
|
31
|
+
* and callable with a permitted target.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* hiddenTools: dispatcherAwareBlock({
|
|
35
|
+
* tools: ['update_issue', 'delete_issue'],
|
|
36
|
+
* dispatchers: ['execute_sentry_tool'],
|
|
37
|
+
* argPath: 'name',
|
|
38
|
+
* })
|
|
39
|
+
*/
|
|
40
|
+
export function dispatcherAwareBlock(options) {
|
|
41
|
+
const blocked = new Set(options.tools);
|
|
42
|
+
const dispatchers = new Set(options.dispatchers);
|
|
43
|
+
return (name, args) => {
|
|
44
|
+
if (blocked.has(name))
|
|
45
|
+
return true;
|
|
46
|
+
// args === undefined is the list phase: the dispatcher stays listed.
|
|
47
|
+
if (args === undefined || !dispatchers.has(name))
|
|
48
|
+
return false;
|
|
49
|
+
const target = resolveArgPath(args, options.argPath);
|
|
50
|
+
return typeof target !== 'string' || blocked.has(target);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=hiddenTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hiddenTools.js","sourceRoot":"","sources":["../src/hiddenTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH;;;;GAIG;AACH,SAAS,cAAc,CACrB,IAAuC,EACvC,IAAY;IAEZ,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,OAAO,KAAK,QAAQ;YAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAC5B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,qEAAqE;QACrE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC"}
|