mcpose 2.1.1 → 3.1.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.
Files changed (101) hide show
  1. package/README.md +461 -62
  2. package/dist/backendClient.d.ts +1 -1
  3. package/dist/backendClient.d.ts.map +1 -1
  4. package/dist/backendClient.js +6 -1
  5. package/dist/backendClient.js.map +1 -1
  6. package/dist/core.d.ts +309 -35
  7. package/dist/core.d.ts.map +1 -1
  8. package/dist/core.js +1023 -186
  9. package/dist/core.js.map +1 -1
  10. package/dist/delegation.d.ts +89 -0
  11. package/dist/delegation.d.ts.map +1 -0
  12. package/dist/delegation.js +175 -0
  13. package/dist/delegation.js.map +1 -0
  14. package/dist/eventStore.d.ts +12 -0
  15. package/dist/eventStore.d.ts.map +1 -1
  16. package/dist/eventStore.js +43 -5
  17. package/dist/eventStore.js.map +1 -1
  18. package/dist/hiddenTools.d.ts +42 -0
  19. package/dist/hiddenTools.d.ts.map +1 -0
  20. package/dist/hiddenTools.js +53 -0
  21. package/dist/hiddenTools.js.map +1 -0
  22. package/dist/index.d.ts +15 -6
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +7 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/mesh.d.ts +82 -0
  27. package/dist/mesh.d.ts.map +1 -0
  28. package/dist/mesh.js +141 -0
  29. package/dist/mesh.js.map +1 -0
  30. package/dist/middleware.d.ts +13 -0
  31. package/dist/middleware.d.ts.map +1 -1
  32. package/dist/middleware.js +27 -3
  33. package/dist/middleware.js.map +1 -1
  34. package/dist/proxyContext.d.ts +65 -5
  35. package/dist/proxyContext.d.ts.map +1 -1
  36. package/dist/proxyContext.js +39 -4
  37. package/dist/proxyContext.js.map +1 -1
  38. package/dist/rejection.d.ts +7 -1
  39. package/dist/rejection.d.ts.map +1 -1
  40. package/dist/rejection.js +24 -1
  41. package/dist/rejection.js.map +1 -1
  42. package/dist/sanitizeCatalog.d.ts +37 -0
  43. package/dist/sanitizeCatalog.d.ts.map +1 -0
  44. package/dist/sanitizeCatalog.js +92 -0
  45. package/dist/sanitizeCatalog.js.map +1 -0
  46. package/dist/sessionRegistry.d.ts +79 -0
  47. package/dist/sessionRegistry.d.ts.map +1 -0
  48. package/dist/sessionRegistry.js +83 -0
  49. package/dist/sessionRegistry.js.map +1 -0
  50. package/dist/telemetry.d.ts +29 -1
  51. package/dist/telemetry.d.ts.map +1 -1
  52. package/dist/testing.d.ts +18 -2
  53. package/dist/testing.d.ts.map +1 -1
  54. package/dist/testing.js +30 -8
  55. package/dist/testing.js.map +1 -1
  56. package/dist/version.d.ts +7 -0
  57. package/dist/version.d.ts.map +1 -0
  58. package/dist/version.js +7 -0
  59. package/dist/version.js.map +1 -0
  60. package/package.json +22 -8
  61. package/src/__tests__/_helpers.ts +64 -0
  62. package/src/__tests__/backendClient.test.ts +198 -0
  63. package/src/__tests__/core.delegation.test.ts +964 -0
  64. package/src/__tests__/core.edge.test.ts +314 -0
  65. package/src/__tests__/core.hiddenTools.predicate.test.ts +236 -0
  66. package/src/__tests__/core.localTools.test.ts +314 -0
  67. package/src/__tests__/core.mesh.test.ts +1182 -0
  68. package/src/__tests__/core.stripRequestMeta.test.ts +226 -0
  69. package/src/__tests__/core.stripResultMeta.test.ts +217 -0
  70. package/src/__tests__/core.test.ts +1105 -0
  71. package/src/__tests__/core.toolCallTelemetry.test.ts +157 -0
  72. package/src/__tests__/eventStore.test.ts +141 -0
  73. package/src/__tests__/hasToolContent.test.ts +63 -0
  74. package/src/__tests__/mapToolResult.test.ts +101 -0
  75. package/src/__tests__/middleware.edge.test.ts +126 -0
  76. package/src/__tests__/middleware.test.ts +233 -0
  77. package/src/__tests__/proxyContext.test.ts +140 -0
  78. package/src/__tests__/sanitizeCatalog.test.ts +380 -0
  79. package/src/__tests__/startHttpProxy.lifecycle.test.ts +675 -0
  80. package/src/__tests__/startHttpProxy.registry.test.ts +409 -0
  81. package/src/__tests__/startHttpProxy.replay.test.ts +116 -0
  82. package/src/__tests__/startHttpProxy.security.test.ts +288 -0
  83. package/src/__tests__/startHttpProxy.test.ts +1065 -0
  84. package/src/__tests__/testing.test.ts +250 -0
  85. package/src/__tests__/version.test.ts +12 -0
  86. package/src/backendClient.ts +83 -0
  87. package/src/core.ts +2129 -0
  88. package/src/delegation.ts +224 -0
  89. package/src/eventStore.ts +106 -0
  90. package/src/hiddenTools.ts +84 -0
  91. package/src/identity.ts +15 -0
  92. package/src/index.ts +63 -0
  93. package/src/mesh.ts +204 -0
  94. package/src/middleware.ts +101 -0
  95. package/src/proxyContext.ts +108 -0
  96. package/src/rejection.ts +62 -0
  97. package/src/sanitizeCatalog.ts +126 -0
  98. package/src/sessionRegistry.ts +142 -0
  99. package/src/telemetry.ts +46 -0
  100. package/src/testing.ts +174 -0
  101. 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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"eventStore.d.ts","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,oDAAoD,CAAC;AAGxG;;;;;;;GAOG;AACH,YAAY,EAAE,UAAU,IAAI,oBAAoB,EAAE,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,SAAO,GAAG,UAAU,CA8BrE"}
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"}
@@ -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
- const afterSeq = parseInt(lastEventId, 10) || 0;
23
- let latestStreamId = '';
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 latestStreamId;
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
@@ -1 +1 @@
1
- {"version":3,"file":"eventStore.js","sourceRoot":"","sources":["../src/eventStore.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAS,GAAG,IAAI;IACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4D,CAAC;IAClF,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO;YAChC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAY,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAC,OAAO;YACjC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,cAAc,GAAa,EAAc,CAAC;YAC9C,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;gBAChD,IAAI,QAAQ,CAAC,EAAY,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;oBAC1C,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBACxB,cAAc,GAAG,QAAQ,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
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"}