@stigmer/mcp-server 3.12.6 → 3.12.8
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/cli/mcp-server-stigmer.js +4 -4
- package/config.d.ts +4 -1
- package/config.d.ts.map +1 -1
- package/config.js +2 -2
- package/config.js.map +1 -1
- package/domains/memory/calls.d.ts +8 -0
- package/domains/memory/calls.d.ts.map +1 -0
- package/domains/memory/calls.js +60 -0
- package/domains/memory/calls.js.map +1 -0
- package/domains/memory/context.d.ts +56 -0
- package/domains/memory/context.d.ts.map +1 -0
- package/domains/memory/context.js +92 -0
- package/domains/memory/context.js.map +1 -0
- package/domains/memory/errors.d.ts +21 -0
- package/domains/memory/errors.d.ts.map +1 -0
- package/domains/memory/errors.js +72 -0
- package/domains/memory/errors.js.map +1 -0
- package/domains/memory/tools.d.ts +12 -0
- package/domains/memory/tools.d.ts.map +1 -0
- package/domains/memory/tools.js +48 -0
- package/domains/memory/tools.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/server.d.ts +22 -4
- package/server.d.ts.map +1 -1
- package/server.js +32 -4
- package/server.js.map +1 -1
- package/src/config.ts +6 -3
- package/src/domains/memory/calls.ts +74 -0
- package/src/domains/memory/context.test.ts +95 -0
- package/src/domains/memory/context.ts +125 -0
- package/src/domains/memory/errors.ts +89 -0
- package/src/domains/memory/memory.integration.test.ts +248 -0
- package/src/domains/memory/tools.ts +75 -0
- package/src/http.integration.test.ts +1 -0
- package/src/index.ts +2 -0
- package/src/server.ts +38 -4
package/server.js
CHANGED
|
@@ -25,6 +25,8 @@ import { registerEnvironmentTools } from "./domains/environments/tools.js";
|
|
|
25
25
|
import { registerExecutionControlTools } from "./domains/executions/tools.js";
|
|
26
26
|
import { registerMcpServerResources } from "./domains/mcpservers/resources.js";
|
|
27
27
|
import { registerMcpServerTools } from "./domains/mcpservers/tools.js";
|
|
28
|
+
import { loadCaptureContextFromEnv, } from "./domains/memory/context.js";
|
|
29
|
+
import { registerMemoryTools } from "./domains/memory/tools.js";
|
|
28
30
|
import { registerSearchTools } from "./domains/search/tools.js";
|
|
29
31
|
import { registerSkillResources } from "./domains/skills/resources.js";
|
|
30
32
|
import { registerSkillTools } from "./domains/skills/tools.js";
|
|
@@ -94,6 +96,25 @@ export function createConversationServer(target) {
|
|
|
94
96
|
log.info("tools registered (conversation roster)", { count: tools.length, tools });
|
|
95
97
|
return server;
|
|
96
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Build a memory-only MCP server: remember with the agent-facing argument
|
|
101
|
+
* surface, and nothing else (DD-005 D1 — the channels-roster pattern).
|
|
102
|
+
* This is the roster the runner-synthesized memory attachment connects
|
|
103
|
+
* to; the structural guarantee mirrors the channels roster's. Served on
|
|
104
|
+
* the /memory HTTP route and as the stdio roster when
|
|
105
|
+
* STIGMER_MCP_ROSTER=memory.
|
|
106
|
+
*
|
|
107
|
+
* `startupContext` is the stdio-shape capture context, read from the
|
|
108
|
+
* runner-set STIGMER_MEMORY_* environment at construction (the startup
|
|
109
|
+
* API key pattern). Over HTTP each request's provenance headers
|
|
110
|
+
* supersede it, so the http factory's env read is a harmless no-op.
|
|
111
|
+
*/
|
|
112
|
+
export function createMemoryServer(target, startupContext = loadCaptureContextFromEnv()) {
|
|
113
|
+
const server = new McpServer({ name: "mcp-server-stigmer-memory", version: SERVER_VERSION });
|
|
114
|
+
const tools = registerMemoryTools(server, target, startupContext);
|
|
115
|
+
log.info("tools registered (memory roster)", { count: tools.length, tools });
|
|
116
|
+
return server;
|
|
117
|
+
}
|
|
97
118
|
/**
|
|
98
119
|
* Wire up every domain's tools. Each domain returns the names it registered so
|
|
99
120
|
* the startup log's count and roster cannot drift from what is actually wired,
|
|
@@ -159,10 +180,13 @@ export const FULL_ROUTE = "/";
|
|
|
159
180
|
export const CHANNELS_ROUTE = "/channels";
|
|
160
181
|
/** HTTP route serving the conversation-only roster (channel-conversations A14). */
|
|
161
182
|
export const CONVERSATION_ROUTE = "/conversation";
|
|
183
|
+
/** HTTP route serving the memory-only roster (memory capture, DD-005 D1). */
|
|
184
|
+
export const MEMORY_ROUTE = "/memory";
|
|
162
185
|
/**
|
|
163
186
|
* The standard HTTP route dispatch: the full roster on {@link FULL_ROUTE},
|
|
164
187
|
* the channels-only roster on {@link CHANNELS_ROUTE}, the
|
|
165
|
-
* conversation-only roster on {@link CONVERSATION_ROUTE}
|
|
188
|
+
* conversation-only roster on {@link CONVERSATION_ROUTE}, the
|
|
189
|
+
* memory-only roster on {@link MEMORY_ROUTE} — and NOTHING
|
|
166
190
|
* anywhere else.
|
|
167
191
|
*
|
|
168
192
|
* The closed route table is load-bearing, not tidiness. This dispatch
|
|
@@ -183,6 +207,8 @@ export function routedServerFactory(target) {
|
|
|
183
207
|
return createChannelsServer(target);
|
|
184
208
|
if (path === CONVERSATION_ROUTE)
|
|
185
209
|
return createConversationServer(target);
|
|
210
|
+
if (path === MEMORY_ROUTE)
|
|
211
|
+
return createMemoryServer(target);
|
|
186
212
|
return undefined;
|
|
187
213
|
};
|
|
188
214
|
}
|
|
@@ -365,13 +391,15 @@ async function routeRequest(req, res, sessions, makeServer, cfg, checkReady) {
|
|
|
365
391
|
await transport.handleRequest(req, res, body);
|
|
366
392
|
}
|
|
367
393
|
/**
|
|
368
|
-
* The stdio server for the configured roster: the channels-only
|
|
369
|
-
* when STIGMER_MCP_ROSTER names
|
|
370
|
-
*
|
|
394
|
+
* The stdio server for the configured roster: the channels-only or
|
|
395
|
+
* memory-only roster when STIGMER_MCP_ROSTER names one (what the OSS
|
|
396
|
+
* runner-synthesized attachments spawn), the full roster otherwise.
|
|
371
397
|
*/
|
|
372
398
|
export function stdioServer(target, cfg) {
|
|
373
399
|
if (cfg.roster === "channels")
|
|
374
400
|
return createChannelsServer(target);
|
|
401
|
+
if (cfg.roster === "memory")
|
|
402
|
+
return createMemoryServer(target);
|
|
375
403
|
return createServer(target);
|
|
376
404
|
}
|
|
377
405
|
/**
|
package/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAE3E,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAA6C,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC;AAEvE,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACtF,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,MAAiB,EAAE,MAAqB;IAC7D,MAAM,KAAK,GAAG;QACZ,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;QACtC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxC,GAAG,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC;QACnD,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxC,GAAG,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC;QACjD,GAAG,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC;QAChD,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAiB,EAAE,MAAqB;IACjE,MAAM,SAAS,GAAG;QAChB,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5C,GAAG,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC;KAChD,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAiB,EAAE,MAAmB;IACrE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAC3B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAE1C,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI,KAAK,cAAc;YAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,kBAAkB;YAAE,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAA8B,EAC9B,GAAW,EACX,MAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAClE,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,KAAK,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;YAC3C,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;YACH,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC3F,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE;oBAAE,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB,EAAE,GAAW,EAAE,MAAmB;IACrF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG;QACZ,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;KAC3D,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,YAAY,CACzB,GAA0C,EAC1C,GAAmB,EACnB,QAAoD,EACpD,UAA8B,EAC9B,GAAW,EACX,UAA0C;IAE1C,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,0BAA0B;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,gCAAgC,EAAE,CAAC;QAC/E,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,kDAAkD;IAClD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,uEAAuE;YACvE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC9C,CAAC,CAAC,SAAS,CAAC;YACd,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,mDAAmD,EAAE,SAAS,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAErD,mDAAmD;IACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,wEAAwE;YACxE,wEAAwE;YACxE,uEAAuE;YACvE,kEAAkE;YAClE,wCAAwC;YACxC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,qDAAqD;IACrD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,gDAAgD,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,kEAAkE,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,4DAA4D;IAC5D,sDAAsD;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAkC,IAAI,6BAA6B,CAAC;QACjF,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QACtC,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;YACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,GAAW;IAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,GAAmB,EACnB,MAAc,EACd,IAAY,EACZ,OAAe,EACf,OAAgC;IAEhC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,GAAoB,EAAE,IAAY;IACrD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,GAAoB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,SAAS,WAAW,CAAC,GAAoB;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAoB,EAAE,GAAmB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YACvB,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;YACtB,MAAM,EAAE,GAAG,CAAC,UAAU;YACtB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,8BAA8B,CACrC,GAAoB,EACpB,GAAmB,EACnB,GAAW;IAEX,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;QAC5B,qBAAqB,EAAE,GAAG,CAAC,KAAK,CAAC,oBAAoB;QACrD,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,aAAa,EAAE,oBAAoB;KACpC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;IACxD,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,gCAAgC,CAAC;IAC9F,MAAM,MAAM,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,WAAW,GAAG,CAAC,CAAC;IACzE,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;IAC7C,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;IACjD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEnF,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAE3E,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAA6C,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,yBAAyB,GAE1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC;AAEvE,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AAEjF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACtF,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,iBAAiC,yBAAyB,EAAE;IAE5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAClE,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,MAAiB,EAAE,MAAqB;IAC7D,MAAM,KAAK,GAAG;QACZ,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;QACtC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,GAAG,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxC,GAAG,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC;QACnD,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxC,GAAG,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC;QACjD,GAAG,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC;QAChD,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAiB,EAAE,MAAqB;IACjE,MAAM,SAAS,GAAG;QAChB,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC7C,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5C,GAAG,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC;KAChD,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAiB,EAAE,MAAmB;IACrE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAC3B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAE1C,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI,KAAK,cAAc;YAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,kBAAkB;YAAE,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAA8B,EAC9B,GAAW,EACX,MAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAClE,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,KAAK,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEhC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;YAC3C,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;YACH,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC3F,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE;oBAAE,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAqB,EAAE,GAAW,EAAE,MAAmB;IACrF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG;QACZ,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;KAC3D,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,YAAY,CACzB,GAA0C,EAC1C,GAAmB,EACnB,QAAoD,EACpD,UAA8B,EAC9B,GAAW,EACX,UAA0C;IAE1C,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,0BAA0B;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,gCAAgC,EAAE,CAAC;QAC/E,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,kDAAkD;IAClD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,uEAAuE;YACvE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC9C,CAAC,CAAC,SAAS,CAAC;YACd,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,mDAAmD,EAAE,SAAS,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAErD,mDAAmD;IACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,wEAAwE;YACxE,wEAAwE;YACxE,uEAAuE;YACvE,kEAAkE;YAClE,wCAAwC;YACxC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,qDAAqD;IACrD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,gDAAgD,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,kEAAkE,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,4DAA4D;IAC5D,sDAAsD;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAkC,IAAI,6BAA6B,CAAC;QACjF,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QACtC,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;YACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,GAAW;IAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,GAAmB,EACnB,MAAc,EACd,IAAY,EACZ,OAAe,EACf,OAAgC;IAEhC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,GAAoB,EAAE,IAAY;IACrD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,GAAoB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,SAAS,WAAW,CAAC,GAAoB;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAoB,EAAE,GAAmB;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YACvB,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;YACtB,MAAM,EAAE,GAAG,CAAC,UAAU;YACtB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,8BAA8B,CACrC,GAAoB,EACpB,GAAmB,EACnB,GAAW;IAEX,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;QAC5B,qBAAqB,EAAE,GAAG,CAAC,KAAK,CAAC,oBAAoB;QACrD,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,aAAa,EAAE,oBAAoB;KACpC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;IACxD,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,gCAAgC,CAAC;IAC9F,MAAM,MAAM,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,WAAW,GAAG,CAAC,CAAC;IACzE,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;IAC7C,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;IACjD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEnF,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACpE,CAAC"}
|
package/src/config.ts
CHANGED
|
@@ -19,8 +19,11 @@ export type Transport = "stdio" | "http" | "both";
|
|
|
19
19
|
* D8) with the agent-facing argument surface. This is what the
|
|
20
20
|
* runner-synthesized channel attachment spawns over stdio; over HTTP
|
|
21
21
|
* the same roster is served on the /channels route.
|
|
22
|
+
* - "memory": only remember (memory capture, DD-005 D1). What the
|
|
23
|
+
* runner-synthesized memory attachment spawns over stdio in local
|
|
24
|
+
* mode; over HTTP the same roster is served on the /memory route.
|
|
22
25
|
*/
|
|
23
|
-
export type Roster = "full" | "channels";
|
|
26
|
+
export type Roster = "full" | "channels" | "memory";
|
|
24
27
|
|
|
25
28
|
/**
|
|
26
29
|
* OAuth 2.0 Protected Resource Metadata (RFC 9728) discovery settings.
|
|
@@ -58,7 +61,7 @@ export interface Config {
|
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
const VALID_TRANSPORTS: readonly string[] = ["stdio", "http", "both"];
|
|
61
|
-
const VALID_ROSTERS: readonly string[] = ["full", "channels"];
|
|
64
|
+
const VALID_ROSTERS: readonly string[] = ["full", "channels", "memory"];
|
|
62
65
|
const VALID_LOG_FORMATS: readonly string[] = ["text", "json"];
|
|
63
66
|
const VALID_LOG_LEVELS: readonly string[] = ["debug", "info", "warn", "error"];
|
|
64
67
|
|
|
@@ -98,7 +101,7 @@ export function validateConfig(cfg: Config): void {
|
|
|
98
101
|
|
|
99
102
|
if (!VALID_ROSTERS.includes(cfg.roster)) {
|
|
100
103
|
throw new Error(
|
|
101
|
-
`invalid STIGMER_MCP_ROSTER "${cfg.roster}": must be full or
|
|
104
|
+
`invalid STIGMER_MCP_ROSTER "${cfg.roster}": must be full, channels, or memory`,
|
|
102
105
|
);
|
|
103
106
|
}
|
|
104
107
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Memory RPC invocation for the remember tool — a 1:1 projection of
|
|
2
|
+
// MemoryCommandController.create (DD-005 D2: the tool layer adds no
|
|
3
|
+
// semantics; enablement, the caller gate, subject derivation, the 500-char
|
|
4
|
+
// contract, and the 100-record cap all live in the server's create path).
|
|
5
|
+
//
|
|
6
|
+
// The channels-domain calls.ts shape: build request, call, marshal. The
|
|
7
|
+
// answer is a single JSON payload serving both audiences at once:
|
|
8
|
+
//
|
|
9
|
+
// { "outcome": "<honest one-liner for the model>", "memory": {…} }
|
|
10
|
+
//
|
|
11
|
+
// `outcome` is the DD-005 D2 relay — the fact was PROPOSED and awaits the
|
|
12
|
+
// user's decision, so the model never claims "I'll remember that". `memory`
|
|
13
|
+
// is the created record, verbatim proto JSON — the machine-checked contract
|
|
14
|
+
// the SDK's normalizeToolResult parses to render the consent chip (pinned
|
|
15
|
+
// in test/fixtures/tool-view/result-views.json).
|
|
16
|
+
|
|
17
|
+
import { create, toJson } from "@bufbuild/protobuf";
|
|
18
|
+
import { MemorySchema } from "@stigmer/protos/ai/stigmer/agentic/memory/v1/api_pb";
|
|
19
|
+
import { MemoryCommandController } from "@stigmer/protos/ai/stigmer/agentic/memory/v1/command_pb";
|
|
20
|
+
import {
|
|
21
|
+
MemoryProvenanceSchema,
|
|
22
|
+
MemorySpecSchema,
|
|
23
|
+
} from "@stigmer/protos/ai/stigmer/agentic/memory/v1/spec_pb";
|
|
24
|
+
import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
|
|
25
|
+
|
|
26
|
+
import { withClient } from "../client.js";
|
|
27
|
+
import type { CaptureContext } from "./context.js";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The model-facing outcome line. Honest by design: the record starts
|
|
31
|
+
* `proposed`, and only the user's confirm makes it recallable.
|
|
32
|
+
*/
|
|
33
|
+
export const PROPOSED_OUTCOME =
|
|
34
|
+
"Proposed — the user decides. Nothing is remembered unless they confirm this fact.";
|
|
35
|
+
|
|
36
|
+
export async function proposeMemory(
|
|
37
|
+
serverAddress: string,
|
|
38
|
+
token: string,
|
|
39
|
+
fact: string,
|
|
40
|
+
context: CaptureContext,
|
|
41
|
+
): Promise<string> {
|
|
42
|
+
const request = create(MemorySchema, {
|
|
43
|
+
apiVersion: "agentic.stigmer.ai/v1",
|
|
44
|
+
kind: "Memory",
|
|
45
|
+
metadata: create(ApiResourceMetadataSchema, {
|
|
46
|
+
// Org comes from the runner-threaded context, never from the model
|
|
47
|
+
// (no org argument exists — the channels rule). Name stays empty:
|
|
48
|
+
// memories are id-addressed and the server defaults the name.
|
|
49
|
+
org: context.org,
|
|
50
|
+
}),
|
|
51
|
+
spec: create(MemorySpecSchema, {
|
|
52
|
+
content: fact,
|
|
53
|
+
// subject_identity_account_id is deliberately absent: the server
|
|
54
|
+
// derives it from the calling credential (DD-005 D2) and ignores
|
|
55
|
+
// any supplied value.
|
|
56
|
+
provenance: create(MemoryProvenanceSchema, {
|
|
57
|
+
agentId: context.agentId,
|
|
58
|
+
sessionId: context.sessionId,
|
|
59
|
+
agentExecutionId: context.agentExecutionId,
|
|
60
|
+
// tool_call_id stays empty in v1 — MCP does not carry the
|
|
61
|
+
// harness's tool-call identity to the tool handler.
|
|
62
|
+
}),
|
|
63
|
+
}),
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return withClient(MemoryCommandController, serverAddress, token, async (client, opts) => {
|
|
67
|
+
const created = await client.create(request, opts);
|
|
68
|
+
const answer = {
|
|
69
|
+
outcome: PROPOSED_OUTCOME,
|
|
70
|
+
memory: toJson(MemorySchema, created, { useProtoFieldName: true }),
|
|
71
|
+
};
|
|
72
|
+
return JSON.stringify(answer, null, 2);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// Unit tests for the capture-context resolution — the attribution twin of
|
|
2
|
+
// client.ts resolveToken: per-request headers (http) supersede the
|
|
3
|
+
// startup environment (stdio), whole-object, never mixed per-field.
|
|
4
|
+
|
|
5
|
+
import { describe, expect, it } from "vitest";
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
EMPTY_CAPTURE_CONTEXT,
|
|
9
|
+
loadCaptureContextFromEnv,
|
|
10
|
+
resolveCaptureContext,
|
|
11
|
+
type CaptureContext,
|
|
12
|
+
} from "./context";
|
|
13
|
+
|
|
14
|
+
const startup: CaptureContext = {
|
|
15
|
+
org: "env-org",
|
|
16
|
+
agentId: "agt_env",
|
|
17
|
+
sessionId: "ses_env",
|
|
18
|
+
agentExecutionId: "aex_env",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe("loadCaptureContextFromEnv", () => {
|
|
22
|
+
it("reads the four STIGMER_MEMORY_* variables", () => {
|
|
23
|
+
const ctx = loadCaptureContextFromEnv({
|
|
24
|
+
STIGMER_MEMORY_ORG: "acme",
|
|
25
|
+
STIGMER_MEMORY_AGENT_ID: "agt_1",
|
|
26
|
+
STIGMER_MEMORY_SESSION_ID: "ses_1",
|
|
27
|
+
STIGMER_MEMORY_EXECUTION_ID: "aex_1",
|
|
28
|
+
});
|
|
29
|
+
expect(ctx).toEqual({
|
|
30
|
+
org: "acme",
|
|
31
|
+
agentId: "agt_1",
|
|
32
|
+
sessionId: "ses_1",
|
|
33
|
+
agentExecutionId: "aex_1",
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("degrades missing variables to empty strings (best-effort attribution)", () => {
|
|
38
|
+
expect(loadCaptureContextFromEnv({})).toEqual(EMPTY_CAPTURE_CONTEXT);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe("resolveCaptureContext", () => {
|
|
43
|
+
it("uses the startup context when the transport carries no request info (stdio)", () => {
|
|
44
|
+
expect(resolveCaptureContext(undefined, startup)).toEqual(startup);
|
|
45
|
+
expect(resolveCaptureContext({}, startup)).toEqual(startup);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("uses the request headers when present (http), superseding startup wholesale", () => {
|
|
49
|
+
const ctx = resolveCaptureContext(
|
|
50
|
+
{
|
|
51
|
+
requestInfo: {
|
|
52
|
+
headers: {
|
|
53
|
+
"x-stigmer-memory-org": "acme",
|
|
54
|
+
"x-stigmer-memory-agent-id": "agt_http",
|
|
55
|
+
"x-stigmer-memory-session-id": "ses_http",
|
|
56
|
+
"x-stigmer-memory-execution-id": "aex_http",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
startup,
|
|
61
|
+
);
|
|
62
|
+
expect(ctx).toEqual({
|
|
63
|
+
org: "acme",
|
|
64
|
+
agentId: "agt_http",
|
|
65
|
+
sessionId: "ses_http",
|
|
66
|
+
agentExecutionId: "aex_http",
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it("never mixes carriers: a header set missing a field yields empty, not the env value", () => {
|
|
71
|
+
// The two carriers are written by different processes; falling back
|
|
72
|
+
// per-field would attribute an http request to a stale stdio env.
|
|
73
|
+
const ctx = resolveCaptureContext(
|
|
74
|
+
{ requestInfo: { headers: { "x-stigmer-memory-org": "acme" } } },
|
|
75
|
+
startup,
|
|
76
|
+
);
|
|
77
|
+
expect(ctx).toEqual({ org: "acme", agentId: "", sessionId: "", agentExecutionId: "" });
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("looks headers up case-insensitively and collapses Node's array form", () => {
|
|
81
|
+
const ctx = resolveCaptureContext(
|
|
82
|
+
{
|
|
83
|
+
requestInfo: {
|
|
84
|
+
headers: {
|
|
85
|
+
"X-Stigmer-Memory-Org": "acme",
|
|
86
|
+
"x-stigmer-memory-agent-id": ["agt_1", "agt_dup"],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
startup,
|
|
91
|
+
);
|
|
92
|
+
expect(ctx.org).toBe("acme");
|
|
93
|
+
expect(ctx.agentId).toBe("agt_1");
|
|
94
|
+
});
|
|
95
|
+
});
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// The capture context a remember call attaches to the Memory it creates —
|
|
2
|
+
// org addressing plus provenance (agent, session, execution), threaded from
|
|
3
|
+
// the runner that synthesized the memory attachment (DD-005 D2; Stage 3
|
|
4
|
+
// provenance decision, owner-ratified 2026-08-22).
|
|
5
|
+
//
|
|
6
|
+
// Resolution mirrors the credential exactly (client.ts resolveToken): the
|
|
7
|
+
// per-request HTTP headers when the bridge transport carries them, falling
|
|
8
|
+
// back to the STIGMER_MEMORY_* environment captured at stdio startup. Each
|
|
9
|
+
// transport uses its natural carrier — headers are per-request on the
|
|
10
|
+
// bridge's /memory route, env is per-process on the runner-spawned stdio
|
|
11
|
+
// child — and both are written by the SAME author, the runner's
|
|
12
|
+
// synthesized attachment (memory-attachment.ts in the runner is the
|
|
13
|
+
// cross-repo twin; its test pins these names too).
|
|
14
|
+
//
|
|
15
|
+
// Trust posture: these values are attribution, never authorization. The
|
|
16
|
+
// cloud create handler accepts them only from a session-sandbox credential
|
|
17
|
+
// and overrides session/org with the token's own claims; the OSS server
|
|
18
|
+
// stores them under the local single-user trust model. A missing field
|
|
19
|
+
// degrades to empty — provenance is best-effort, the fact itself is not.
|
|
20
|
+
|
|
21
|
+
/** Header carrying the execution's org (per-request, bridge route). */
|
|
22
|
+
export const MEMORY_ORG_HEADER = "x-stigmer-memory-org";
|
|
23
|
+
/** Header carrying the executing agent's id. */
|
|
24
|
+
export const MEMORY_AGENT_ID_HEADER = "x-stigmer-memory-agent-id";
|
|
25
|
+
/** Header carrying the session id the execution belongs to. */
|
|
26
|
+
export const MEMORY_SESSION_ID_HEADER = "x-stigmer-memory-session-id";
|
|
27
|
+
/** Header carrying the agent execution id. */
|
|
28
|
+
export const MEMORY_EXECUTION_ID_HEADER = "x-stigmer-memory-execution-id";
|
|
29
|
+
|
|
30
|
+
/** Env var carrying the execution's org (per-process, stdio child). */
|
|
31
|
+
export const MEMORY_ORG_ENV = "STIGMER_MEMORY_ORG";
|
|
32
|
+
/** Env var carrying the executing agent's id. */
|
|
33
|
+
export const MEMORY_AGENT_ID_ENV = "STIGMER_MEMORY_AGENT_ID";
|
|
34
|
+
/** Env var carrying the session id the execution belongs to. */
|
|
35
|
+
export const MEMORY_SESSION_ID_ENV = "STIGMER_MEMORY_SESSION_ID";
|
|
36
|
+
/** Env var carrying the agent execution id. */
|
|
37
|
+
export const MEMORY_EXECUTION_ID_ENV = "STIGMER_MEMORY_EXECUTION_ID";
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Where a proposed memory came from: the org the create is addressed to,
|
|
41
|
+
* plus the provenance triple stamped onto the record. Every field may be
|
|
42
|
+
* empty (best-effort attribution).
|
|
43
|
+
*/
|
|
44
|
+
export interface CaptureContext {
|
|
45
|
+
readonly org: string;
|
|
46
|
+
readonly agentId: string;
|
|
47
|
+
readonly sessionId: string;
|
|
48
|
+
readonly agentExecutionId: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** A context with no attribution — the resolve fallback of last resort. */
|
|
52
|
+
export const EMPTY_CAPTURE_CONTEXT: CaptureContext = {
|
|
53
|
+
org: "",
|
|
54
|
+
agentId: "",
|
|
55
|
+
sessionId: "",
|
|
56
|
+
agentExecutionId: "",
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The subset of the MCP request `extra` this layer reads to resolve the
|
|
61
|
+
* capture context (the RequestAuth shape in client.ts, for headers).
|
|
62
|
+
* `headers` is the SDK's IsomorphicHeaders: a plain record whose values
|
|
63
|
+
* may be string arrays (Node folds repeated headers that way).
|
|
64
|
+
*/
|
|
65
|
+
export interface RequestHeaders {
|
|
66
|
+
readonly requestInfo?: {
|
|
67
|
+
readonly headers?: Record<string, string | string[] | undefined>;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Read the capture context from the process environment — the stdio
|
|
73
|
+
* shape, captured once at server construction exactly like the startup
|
|
74
|
+
* API key. Deliberately NOT part of config.ts: Config mirrors the Go
|
|
75
|
+
* server's operator-facing surface, while these values are
|
|
76
|
+
* runner-injected per execution and owned by this domain.
|
|
77
|
+
*/
|
|
78
|
+
export function loadCaptureContextFromEnv(env: NodeJS.ProcessEnv = process.env): CaptureContext {
|
|
79
|
+
return {
|
|
80
|
+
org: env[MEMORY_ORG_ENV] ?? "",
|
|
81
|
+
agentId: env[MEMORY_AGENT_ID_ENV] ?? "",
|
|
82
|
+
sessionId: env[MEMORY_SESSION_ID_ENV] ?? "",
|
|
83
|
+
agentExecutionId: env[MEMORY_EXECUTION_ID_ENV] ?? "",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Resolve the capture context for an inbound remember call: the
|
|
89
|
+
* per-request headers when the transport carries request info (http),
|
|
90
|
+
* otherwise the startup context (stdio). Whole-object, not per-field —
|
|
91
|
+
* the two carriers are set by different processes and never mix.
|
|
92
|
+
*/
|
|
93
|
+
export function resolveCaptureContext(
|
|
94
|
+
extra: RequestHeaders | undefined,
|
|
95
|
+
startup: CaptureContext,
|
|
96
|
+
): CaptureContext {
|
|
97
|
+
const headers = extra?.requestInfo?.headers;
|
|
98
|
+
if (headers === undefined) return startup;
|
|
99
|
+
return {
|
|
100
|
+
org: headerValue(headers, MEMORY_ORG_HEADER),
|
|
101
|
+
agentId: headerValue(headers, MEMORY_AGENT_ID_HEADER),
|
|
102
|
+
sessionId: headerValue(headers, MEMORY_SESSION_ID_HEADER),
|
|
103
|
+
agentExecutionId: headerValue(headers, MEMORY_EXECUTION_ID_HEADER),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Case-insensitive single-value header lookup. Node lowercases incoming
|
|
109
|
+
* header names but the web-standard transport may not; scanning keeps the
|
|
110
|
+
* lookup honest for both without depending on transport internals.
|
|
111
|
+
*/
|
|
112
|
+
function headerValue(
|
|
113
|
+
headers: Record<string, string | string[] | undefined>,
|
|
114
|
+
name: string,
|
|
115
|
+
): string {
|
|
116
|
+
const direct = headers[name];
|
|
117
|
+
if (direct !== undefined) return Array.isArray(direct) ? (direct[0] ?? "") : direct;
|
|
118
|
+
const lower = name.toLowerCase();
|
|
119
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
120
|
+
if (key.toLowerCase() === lower && value !== undefined) {
|
|
121
|
+
return Array.isArray(value) ? (value[0] ?? "") : value;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return "";
|
|
125
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// The memory-domain error mapper — the channels-domain sibling (DD-004
|
|
2
|
+
// S-7's recorded posture: siblings share the idiom, never an abstraction
|
|
3
|
+
// over it; each domain documents its own contract).
|
|
4
|
+
//
|
|
5
|
+
// Memory create errors carry agent-relayable messages that are contract
|
|
6
|
+
// bytes (DD-005 D2 / DD-006 D5): the visible-full refusal ("memory is
|
|
7
|
+
// full — review and delete existing memories"), the fail-closed
|
|
8
|
+
// enablement refusals (org or member has memory off), the strict caller
|
|
9
|
+
// gate's PERMISSION_DENIED, and the 1..500-char content contract. The
|
|
10
|
+
// shared ../rpcerr.ts would rewrite these into transport advice; here the
|
|
11
|
+
// domain codes pass the server's message through VERBATIM as isError JSON
|
|
12
|
+
// `{error, code, reason}` so the model can relay honestly — "memory is
|
|
13
|
+
// full" is something the user must act on, not something to retry.
|
|
14
|
+
// Transport codes still delegate to the shared helper, whose advice is
|
|
15
|
+
// right for them.
|
|
16
|
+
//
|
|
17
|
+
// The successful answer (outcome + created record) never reaches this
|
|
18
|
+
// file: a proposal is an ANSWER, never an error.
|
|
19
|
+
|
|
20
|
+
import { Code, ConnectError } from "@connectrpc/connect";
|
|
21
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
22
|
+
import { ErrorInfoSchema } from "@stigmer/protos/google/rpc/error_details_pb";
|
|
23
|
+
import { rpcError } from "../rpcerr.js";
|
|
24
|
+
import { errorResult, textResult } from "../toolresult.js";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The gRPC codes whose messages are the memory-domain contract: the
|
|
28
|
+
* strict caller gate (PERMISSION_DENIED), the content contract
|
|
29
|
+
* (INVALID_ARGUMENT — 1..500 chars), and actionable preconditions
|
|
30
|
+
* (FAILED_PRECONDITION — enablement off at either scope, the visible
|
|
31
|
+
* cap, the OSS/cloud edition refusals).
|
|
32
|
+
*/
|
|
33
|
+
const DOMAIN_CODES: ReadonlySet<Code> = new Set([
|
|
34
|
+
Code.PermissionDenied,
|
|
35
|
+
Code.InvalidArgument,
|
|
36
|
+
Code.FailedPrecondition,
|
|
37
|
+
]);
|
|
38
|
+
|
|
39
|
+
/** The structured error payload memory tools return for domain errors. */
|
|
40
|
+
export interface MemoryToolError {
|
|
41
|
+
/** The server's relayable message, byte-for-byte. */
|
|
42
|
+
error: string;
|
|
43
|
+
/** gRPC status name in SCREAMING_SNAKE (e.g. FAILED_PRECONDITION). */
|
|
44
|
+
code: string;
|
|
45
|
+
/** ErrorInfo reason, when the server attached one. */
|
|
46
|
+
reason?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Run a memory-tool body: a string payload becomes a text result; a
|
|
51
|
+
* domain error becomes an isError JSON result carrying the verbatim
|
|
52
|
+
* message; a transport error delegates to the shared classifier. The
|
|
53
|
+
* only try/catch in this domain.
|
|
54
|
+
*/
|
|
55
|
+
export async function memoryResult(
|
|
56
|
+
toolContext: string,
|
|
57
|
+
produce: () => Promise<string>,
|
|
58
|
+
): Promise<CallToolResult> {
|
|
59
|
+
try {
|
|
60
|
+
return textResult(await produce());
|
|
61
|
+
} catch (err) {
|
|
62
|
+
const ce = ConnectError.from(err);
|
|
63
|
+
if (DOMAIN_CODES.has(ce.code)) {
|
|
64
|
+
return {
|
|
65
|
+
content: [{ type: "text", text: JSON.stringify(domainError(ce)) }],
|
|
66
|
+
isError: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return errorResult(rpcError(ce, toolContext));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Project a domain ConnectError into the structured tool payload. */
|
|
74
|
+
export function domainError(ce: ConnectError): MemoryToolError {
|
|
75
|
+
const payload: MemoryToolError = {
|
|
76
|
+
error: ce.rawMessage,
|
|
77
|
+
code: grpcStatusName(ce.code),
|
|
78
|
+
};
|
|
79
|
+
const details = ce.findDetails(ErrorInfoSchema);
|
|
80
|
+
if (details.length > 0 && details[0].reason !== "") {
|
|
81
|
+
payload.reason = details[0].reason;
|
|
82
|
+
}
|
|
83
|
+
return payload;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Connect's PascalCase code name → the gRPC SCREAMING_SNAKE status name. */
|
|
87
|
+
function grpcStatusName(code: Code): string {
|
|
88
|
+
return Code[code].replace(/([a-z0-9])([A-Z])/g, "$1_$2").toUpperCase();
|
|
89
|
+
}
|