@mcpmesh/sdk 1.3.4 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/a2a/a2a-bearer.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.js +58 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-client.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-client.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-client.spec.js +334 -0
- package/dist/__tests__/a2a/a2a-client.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-job.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-job.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-job.spec.js +255 -0
- package/dist/__tests__/a2a/a2a-job.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-stream.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-stream.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-stream.spec.js +278 -0
- package/dist/__tests__/a2a/a2a-stream.spec.js.map +1 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.d.ts +2 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.js +262 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.js +127 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.js +113 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.js +850 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.js +164 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/mount.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/mount.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/mount.spec.js +433 -0
- package/dist/__tests__/a2a/producer/mount.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.js +116 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.js +754 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.js +124 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/task-store.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/task-store.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/task-store.spec.js +180 -0
- package/dist/__tests__/a2a/producer/task-store.spec.js.map +1 -0
- package/dist/__tests__/agent-add-tool.spec.d.ts +2 -0
- package/dist/__tests__/agent-add-tool.spec.d.ts.map +1 -0
- package/dist/__tests__/agent-add-tool.spec.js +483 -0
- package/dist/__tests__/agent-add-tool.spec.js.map +1 -0
- package/dist/__tests__/api-runtime-race.spec.d.ts +2 -0
- package/dist/__tests__/api-runtime-race.spec.d.ts.map +1 -0
- package/dist/__tests__/api-runtime-race.spec.js +193 -0
- package/dist/__tests__/api-runtime-race.spec.js.map +1 -0
- package/dist/__tests__/claim-dispatcher.spec.d.ts +2 -0
- package/dist/__tests__/claim-dispatcher.spec.d.ts.map +1 -0
- package/dist/__tests__/claim-dispatcher.spec.js +408 -0
- package/dist/__tests__/claim-dispatcher.spec.js.map +1 -0
- package/dist/__tests__/inbound-job-dispatch.spec.d.ts +2 -0
- package/dist/__tests__/inbound-job-dispatch.spec.d.ts.map +1 -0
- package/dist/__tests__/inbound-job-dispatch.spec.js +185 -0
- package/dist/__tests__/inbound-job-dispatch.spec.js.map +1 -0
- package/dist/__tests__/job-controller-progress.spec.d.ts +2 -0
- package/dist/__tests__/job-controller-progress.spec.d.ts.map +1 -0
- package/dist/__tests__/job-controller-progress.spec.js +85 -0
- package/dist/__tests__/job-controller-progress.spec.js.map +1 -0
- package/dist/__tests__/jobs-cancel-route.spec.d.ts +2 -0
- package/dist/__tests__/jobs-cancel-route.spec.d.ts.map +1 -0
- package/dist/__tests__/jobs-cancel-route.spec.js +88 -0
- package/dist/__tests__/jobs-cancel-route.spec.js.map +1 -0
- package/dist/__tests__/llm-agent-stream.test.d.ts +14 -0
- package/dist/__tests__/llm-agent-stream.test.d.ts.map +1 -0
- package/dist/__tests__/llm-agent-stream.test.js +341 -0
- package/dist/__tests__/llm-agent-stream.test.js.map +1 -0
- package/dist/__tests__/llm-provider.test.js +22 -1
- package/dist/__tests__/llm-provider.test.js.map +1 -1
- package/dist/__tests__/media-resolver.test.js +40 -0
- package/dist/__tests__/media-resolver.test.js.map +1 -1
- package/dist/__tests__/mesh-job-submitter.spec.d.ts +2 -0
- package/dist/__tests__/mesh-job-submitter.spec.d.ts.map +1 -0
- package/dist/__tests__/mesh-job-submitter.spec.js +110 -0
- package/dist/__tests__/mesh-job-submitter.spec.js.map +1 -0
- package/dist/__tests__/proxy-stream.test.d.ts +9 -0
- package/dist/__tests__/proxy-stream.test.d.ts.map +1 -0
- package/dist/__tests__/proxy-stream.test.js +347 -0
- package/dist/__tests__/proxy-stream.test.js.map +1 -0
- package/dist/__tests__/resolver-meshjob.spec.d.ts +26 -0
- package/dist/__tests__/resolver-meshjob.spec.d.ts.map +1 -0
- package/dist/__tests__/resolver-meshjob.spec.js +201 -0
- package/dist/__tests__/resolver-meshjob.spec.js.map +1 -0
- package/dist/__tests__/schema-verdict-policy.test.d.ts +6 -0
- package/dist/__tests__/schema-verdict-policy.test.d.ts.map +1 -0
- package/dist/__tests__/schema-verdict-policy.test.js +126 -0
- package/dist/__tests__/schema-verdict-policy.test.js.map +1 -0
- package/dist/__tests__/sse-stream.test.d.ts +12 -0
- package/dist/__tests__/sse-stream.test.d.ts.map +1 -0
- package/dist/__tests__/sse-stream.test.js +170 -0
- package/dist/__tests__/sse-stream.test.js.map +1 -0
- package/dist/a2a/a2a-bearer.d.ts +27 -0
- package/dist/a2a/a2a-bearer.d.ts.map +1 -0
- package/dist/a2a/a2a-bearer.js +63 -0
- package/dist/a2a/a2a-bearer.js.map +1 -0
- package/dist/a2a/a2a-client.d.ts +114 -0
- package/dist/a2a/a2a-client.d.ts.map +1 -0
- package/dist/a2a/a2a-client.js +405 -0
- package/dist/a2a/a2a-client.js.map +1 -0
- package/dist/a2a/a2a-event.d.ts +25 -0
- package/dist/a2a/a2a-event.d.ts.map +1 -0
- package/dist/a2a/a2a-event.js +9 -0
- package/dist/a2a/a2a-event.js.map +1 -0
- package/dist/a2a/a2a-job.d.ts +58 -0
- package/dist/a2a/a2a-job.d.ts.map +1 -0
- package/dist/a2a/a2a-job.js +264 -0
- package/dist/a2a/a2a-job.js.map +1 -0
- package/dist/a2a/a2a-stream.d.ts +39 -0
- package/dist/a2a/a2a-stream.d.ts.map +1 -0
- package/dist/a2a/a2a-stream.js +290 -0
- package/dist/a2a/a2a-stream.js.map +1 -0
- package/dist/a2a/errors.d.ts +29 -0
- package/dist/a2a/errors.d.ts.map +1 -0
- package/dist/a2a/errors.js +48 -0
- package/dist/a2a/errors.js.map +1 -0
- package/dist/a2a/index.d.ts +12 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +11 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/producer/auth-filter.d.ts +34 -0
- package/dist/a2a/producer/auth-filter.d.ts.map +1 -0
- package/dist/a2a/producer/auth-filter.js +39 -0
- package/dist/a2a/producer/auth-filter.js.map +1 -0
- package/dist/a2a/producer/card-builder.d.ts +59 -0
- package/dist/a2a/producer/card-builder.d.ts.map +1 -0
- package/dist/a2a/producer/card-builder.js +59 -0
- package/dist/a2a/producer/card-builder.js.map +1 -0
- package/dist/a2a/producer/dispatcher.d.ts +276 -0
- package/dist/a2a/producer/dispatcher.d.ts.map +1 -0
- package/dist/a2a/producer/dispatcher.js +896 -0
- package/dist/a2a/producer/dispatcher.js.map +1 -0
- package/dist/a2a/producer/index.d.ts +26 -0
- package/dist/a2a/producer/index.d.ts.map +1 -0
- package/dist/a2a/producer/index.js +23 -0
- package/dist/a2a/producer/index.js.map +1 -0
- package/dist/a2a/producer/mount.d.ts +75 -0
- package/dist/a2a/producer/mount.d.ts.map +1 -0
- package/dist/a2a/producer/mount.js +422 -0
- package/dist/a2a/producer/mount.js.map +1 -0
- package/dist/a2a/producer/public-url-cache.d.ts +73 -0
- package/dist/a2a/producer/public-url-cache.d.ts.map +1 -0
- package/dist/a2a/producer/public-url-cache.js +0 -0
- package/dist/a2a/producer/public-url-cache.js.map +1 -0
- package/dist/a2a/producer/registry.d.ts +138 -0
- package/dist/a2a/producer/registry.d.ts.map +1 -0
- package/dist/a2a/producer/registry.js +117 -0
- package/dist/a2a/producer/registry.js.map +1 -0
- package/dist/a2a/producer/sse-emitter.d.ts +85 -0
- package/dist/a2a/producer/sse-emitter.d.ts.map +1 -0
- package/dist/a2a/producer/sse-emitter.js +405 -0
- package/dist/a2a/producer/sse-emitter.js.map +1 -0
- package/dist/a2a/producer/state-translator.d.ts +63 -0
- package/dist/a2a/producer/state-translator.d.ts.map +1 -0
- package/dist/a2a/producer/state-translator.js +108 -0
- package/dist/a2a/producer/state-translator.js.map +1 -0
- package/dist/a2a/producer/task-store.d.ts +128 -0
- package/dist/a2a/producer/task-store.d.ts.map +1 -0
- package/dist/a2a/producer/task-store.js +128 -0
- package/dist/a2a/producer/task-store.js.map +1 -0
- package/dist/agent.d.ts +99 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +754 -19
- package/dist/agent.js.map +1 -1
- package/dist/api-runtime.d.ts +25 -0
- package/dist/api-runtime.d.ts.map +1 -1
- package/dist/api-runtime.js +75 -2
- package/dist/api-runtime.js.map +1 -1
- package/dist/claim-dispatcher.d.ts +126 -0
- package/dist/claim-dispatcher.d.ts.map +1 -0
- package/dist/claim-dispatcher.js +478 -0
- package/dist/claim-dispatcher.js.map +1 -0
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +33 -6
- package/dist/express.js.map +1 -1
- package/dist/inbound-job-dispatch.d.ts +105 -0
- package/dist/inbound-job-dispatch.d.ts.map +1 -0
- package/dist/inbound-job-dispatch.js +335 -0
- package/dist/inbound-job-dispatch.js.map +1 -0
- package/dist/index.d.ts +40 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -3
- package/dist/index.js.map +1 -1
- package/dist/job-context.d.ts +107 -0
- package/dist/job-context.d.ts.map +1 -0
- package/dist/job-context.js +95 -0
- package/dist/job-context.js.map +1 -0
- package/dist/jobs-cancel-route.d.ts +36 -0
- package/dist/jobs-cancel-route.d.ts.map +1 -0
- package/dist/jobs-cancel-route.js +60 -0
- package/dist/jobs-cancel-route.js.map +1 -0
- package/dist/jobs-helper-tools.d.ts +48 -0
- package/dist/jobs-helper-tools.d.ts.map +1 -0
- package/dist/jobs-helper-tools.js +133 -0
- package/dist/jobs-helper-tools.js.map +1 -0
- package/dist/llm-agent.d.ts +62 -53
- package/dist/llm-agent.d.ts.map +1 -1
- package/dist/llm-agent.js +211 -292
- package/dist/llm-agent.js.map +1 -1
- package/dist/llm-provider.d.ts +11 -4
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +57 -4
- package/dist/llm-provider.js.map +1 -1
- package/dist/llm.d.ts +4 -1
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +7 -17
- package/dist/llm.js.map +1 -1
- package/dist/media/resolver.d.ts.map +1 -1
- package/dist/media/resolver.js +3 -2
- package/dist/media/resolver.js.map +1 -1
- package/dist/mesh-job-submitter.d.ts +83 -0
- package/dist/mesh-job-submitter.d.ts.map +1 -0
- package/dist/mesh-job-submitter.js +143 -0
- package/dist/mesh-job-submitter.js.map +1 -0
- package/dist/provider-handlers/gemini-handler.js +5 -0
- package/dist/provider-handlers/gemini-handler.js.map +1 -1
- package/dist/proxy.d.ts +40 -0
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +375 -2
- package/dist/proxy.js.map +1 -1
- package/dist/resolver-meshjob.d.ts +170 -0
- package/dist/resolver-meshjob.d.ts.map +1 -0
- package/dist/resolver-meshjob.js +159 -0
- package/dist/resolver-meshjob.js.map +1 -0
- package/dist/route.d.ts +4 -0
- package/dist/route.d.ts.map +1 -1
- package/dist/route.js.map +1 -1
- package/dist/schema-normalize.d.ts +62 -0
- package/dist/schema-normalize.d.ts.map +1 -0
- package/dist/schema-normalize.js +128 -0
- package/dist/schema-normalize.js.map +1 -0
- package/dist/sse-stream.d.ts +44 -0
- package/dist/sse-stream.d.ts.map +1 -0
- package/dist/sse-stream.js +173 -0
- package/dist/sse-stream.js.map +1 -0
- package/dist/tool-worker-entry.d.ts +21 -0
- package/dist/tool-worker-entry.d.ts.map +1 -0
- package/dist/tool-worker-entry.js +162 -0
- package/dist/tool-worker-entry.js.map +1 -0
- package/dist/tool-worker-pool.d.ts +49 -0
- package/dist/tool-worker-pool.d.ts.map +1 -0
- package/dist/tool-worker-pool.js +272 -0
- package/dist/tool-worker-pool.js.map +1 -0
- package/dist/types.d.ts +351 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-local A2A task store (spec §4.8).
|
|
3
|
+
*
|
|
4
|
+
* Two record shapes coexist:
|
|
5
|
+
* - Terminal: `tasks/send` returned a sync value (or the handler raised).
|
|
6
|
+
* `terminalEnvelope` + `terminalAt` are populated; `jobProxy` is `null`.
|
|
7
|
+
* Cached for 300s so subsequent `tasks/get` requests return the same
|
|
8
|
+
* envelope (spec Appendix B item 5 — match Python / Java exactly for
|
|
9
|
+
* cross-runtime parity).
|
|
10
|
+
* - Long-running: handler returned a `JobProxy`. `jobProxy` is populated;
|
|
11
|
+
* `terminalEnvelope` / `terminalAt` are `undefined` until the SSE
|
|
12
|
+
* stream / `tasks/cancel` / `tasks/get` observes a terminal mesh state
|
|
13
|
+
* and calls {@link A2ATaskStore.markTerminal}.
|
|
14
|
+
*
|
|
15
|
+
* Eviction is lazy: every read/write sweeps entries whose `terminalAt`
|
|
16
|
+
* timestamp is older than `TERMINAL_EVICTION_MS`. No background sweeper is
|
|
17
|
+
* required (spec §4.8). JavaScript's single-threaded event loop avoids the
|
|
18
|
+
* race windows that Java needs `computeIfPresent` for — but we still
|
|
19
|
+
* defensively re-check `terminalAt === undefined` before flipping a record
|
|
20
|
+
* to terminal so concurrent async handlers can't clobber each other.
|
|
21
|
+
*
|
|
22
|
+
* Non-terminal records are never auto-evicted; long-running paths keep
|
|
23
|
+
* them alive across arbitrary durations.
|
|
24
|
+
*
|
|
25
|
+
* Cross-replica semantics: the store is process-local. A `tasks/get`
|
|
26
|
+
* against a replica that doesn't own the task returns `Unknown task id`
|
|
27
|
+
* per spec Appendix B item 3.
|
|
28
|
+
*/
|
|
29
|
+
import type { JobProxy } from "@mcpmesh/core";
|
|
30
|
+
/**
|
|
31
|
+
* Cached A2A task envelope plus the metadata needed to keep it alive during
|
|
32
|
+
* the 300s idempotency window.
|
|
33
|
+
*
|
|
34
|
+
* Fields:
|
|
35
|
+
* - `sessionId` — the A2A session id (defaults to `taskId` per spec §4.2)
|
|
36
|
+
* - `requestMessage` — the originating request `message` object (echoed
|
|
37
|
+
* into `result.history[]`); `undefined` when the client omitted it
|
|
38
|
+
* - `terminalEnvelope` — the full Task envelope cached for `tasks/get`
|
|
39
|
+
* lookups; `undefined` for non-terminal records (long-running paths
|
|
40
|
+
* stamp this on terminal transition)
|
|
41
|
+
* - `terminalAt` — `Date.now()` timestamp when the task first entered a
|
|
42
|
+
* terminal state, or `undefined` when still in-flight
|
|
43
|
+
* - `jobProxy` — the parked `JobProxy` for long-running tasks (handler
|
|
44
|
+
* returned a `JobProxy` instance); `null` for sync-completed records
|
|
45
|
+
* so the field stays present + type-stable.
|
|
46
|
+
*/
|
|
47
|
+
export interface TaskRecord {
|
|
48
|
+
readonly sessionId: string;
|
|
49
|
+
readonly requestMessage?: Record<string, unknown>;
|
|
50
|
+
readonly terminalEnvelope?: Record<string, unknown>;
|
|
51
|
+
readonly terminalAt?: number;
|
|
52
|
+
readonly jobProxy?: JobProxy | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Grace window in milliseconds before a terminal-state task is evicted from
|
|
56
|
+
* the store. Matches Python's `_TERMINAL_GRACE_SECS = 300` and Java's
|
|
57
|
+
* `MeshA2ATaskStore.TERMINAL_EVICTION_MILLIS` exactly for cross-runtime
|
|
58
|
+
* parity (spec Appendix B item 5).
|
|
59
|
+
*/
|
|
60
|
+
export declare const TERMINAL_EVICTION_MS = 300000;
|
|
61
|
+
/**
|
|
62
|
+
* Process-local A2A task store.
|
|
63
|
+
*/
|
|
64
|
+
export declare class A2ATaskStore {
|
|
65
|
+
private readonly store;
|
|
66
|
+
/**
|
|
67
|
+
* Store the task record for `taskId`. Caller is responsible for having
|
|
68
|
+
* checked for duplicates via {@link contains} when uniqueness matters
|
|
69
|
+
* (spec §4.3 idempotency window).
|
|
70
|
+
*/
|
|
71
|
+
put(taskId: string, record: TaskRecord): void;
|
|
72
|
+
/**
|
|
73
|
+
* Atomically reserve `taskId` for an in-flight request by inserting a
|
|
74
|
+
* placeholder record. Returns `true` when the slot was free and is now
|
|
75
|
+
* reserved by the caller; returns `false` when the slot was already taken
|
|
76
|
+
* (caller must surface the spec §4.3 "already in use" error).
|
|
77
|
+
*
|
|
78
|
+
* Closes the race window between `contains(taskId)` and `put(taskId, ...)`
|
|
79
|
+
* for two concurrently-arriving `tasks/send` requests with the same id:
|
|
80
|
+
* Node's event loop is single-threaded, but `await deps.handler(...)`
|
|
81
|
+
* between the pre-check and the final `put()` yields control, letting
|
|
82
|
+
* another request slip its own check through.
|
|
83
|
+
*/
|
|
84
|
+
reserveTask(taskId: string, placeholder: TaskRecord): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Drop a previously-reserved placeholder for `taskId`. Used by callers
|
|
87
|
+
* when the handler raised before producing a terminal envelope and the
|
|
88
|
+
* reservation needs to be released so the failure envelope can be put
|
|
89
|
+
* cleanly. No-op when the record is absent.
|
|
90
|
+
*/
|
|
91
|
+
remove(taskId: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* @returns the record for `taskId`, or `undefined` when missing or
|
|
94
|
+
* already evicted. Triggers a lazy sweep on each call.
|
|
95
|
+
*/
|
|
96
|
+
get(taskId: string): TaskRecord | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* @returns `true` when the store currently holds a record for `taskId`
|
|
99
|
+
* and that record has not been evicted by the lazy sweep.
|
|
100
|
+
*/
|
|
101
|
+
contains(taskId: string): boolean;
|
|
102
|
+
/** @returns current size (post-sweep). For diagnostics + tests. */
|
|
103
|
+
size(): number;
|
|
104
|
+
/**
|
|
105
|
+
* Atomically mark a previously parked non-terminal record as terminal by
|
|
106
|
+
* stamping `terminalEnvelope` + `terminalAt`. No-op when the record is
|
|
107
|
+
* absent or already terminal (idempotent — spec §4.5 "Idempotent;
|
|
108
|
+
* best-effort"). First-write-wins is preserved.
|
|
109
|
+
*
|
|
110
|
+
* Used by Chunk 1B's long-running path to flip a `state=working` record
|
|
111
|
+
* to a cached terminal envelope so subsequent `tasks/get` calls return
|
|
112
|
+
* the same payload deterministically.
|
|
113
|
+
*
|
|
114
|
+
* @returns the new (or existing) terminal record, or `undefined` when
|
|
115
|
+
* the task is unknown
|
|
116
|
+
*/
|
|
117
|
+
markTerminal(taskId: string, terminalEnvelope: Record<string, unknown>): TaskRecord | undefined;
|
|
118
|
+
/** Clear all stored tasks. Mainly for testing. */
|
|
119
|
+
clear(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Lazy sweep: evict any record whose terminal-state timestamp is older
|
|
122
|
+
* than {@link TERMINAL_EVICTION_MS}. Non-terminal records are never
|
|
123
|
+
* evicted (long-running paths keep them alive across arbitrary
|
|
124
|
+
* durations).
|
|
125
|
+
*/
|
|
126
|
+
private sweepExpired;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=task-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../../../src/a2a/producer/task-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAE5C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEvD;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAK7C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO;IAS7D;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAK3C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKjC,mEAAmE;IACnE,IAAI,IAAI,MAAM;IAKd;;;;;;;;;;;;OAYG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,UAAU,GAAG,SAAS;IAuBzB,kDAAkD;IAClD,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CASrB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grace window in milliseconds before a terminal-state task is evicted from
|
|
3
|
+
* the store. Matches Python's `_TERMINAL_GRACE_SECS = 300` and Java's
|
|
4
|
+
* `MeshA2ATaskStore.TERMINAL_EVICTION_MILLIS` exactly for cross-runtime
|
|
5
|
+
* parity (spec Appendix B item 5).
|
|
6
|
+
*/
|
|
7
|
+
export const TERMINAL_EVICTION_MS = 300_000;
|
|
8
|
+
/**
|
|
9
|
+
* Process-local A2A task store.
|
|
10
|
+
*/
|
|
11
|
+
export class A2ATaskStore {
|
|
12
|
+
store = new Map();
|
|
13
|
+
/**
|
|
14
|
+
* Store the task record for `taskId`. Caller is responsible for having
|
|
15
|
+
* checked for duplicates via {@link contains} when uniqueness matters
|
|
16
|
+
* (spec §4.3 idempotency window).
|
|
17
|
+
*/
|
|
18
|
+
put(taskId, record) {
|
|
19
|
+
this.sweepExpired();
|
|
20
|
+
this.store.set(taskId, record);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Atomically reserve `taskId` for an in-flight request by inserting a
|
|
24
|
+
* placeholder record. Returns `true` when the slot was free and is now
|
|
25
|
+
* reserved by the caller; returns `false` when the slot was already taken
|
|
26
|
+
* (caller must surface the spec §4.3 "already in use" error).
|
|
27
|
+
*
|
|
28
|
+
* Closes the race window between `contains(taskId)` and `put(taskId, ...)`
|
|
29
|
+
* for two concurrently-arriving `tasks/send` requests with the same id:
|
|
30
|
+
* Node's event loop is single-threaded, but `await deps.handler(...)`
|
|
31
|
+
* between the pre-check and the final `put()` yields control, letting
|
|
32
|
+
* another request slip its own check through.
|
|
33
|
+
*/
|
|
34
|
+
reserveTask(taskId, placeholder) {
|
|
35
|
+
this.sweepExpired();
|
|
36
|
+
if (this.store.has(taskId)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
this.store.set(taskId, placeholder);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Drop a previously-reserved placeholder for `taskId`. Used by callers
|
|
44
|
+
* when the handler raised before producing a terminal envelope and the
|
|
45
|
+
* reservation needs to be released so the failure envelope can be put
|
|
46
|
+
* cleanly. No-op when the record is absent.
|
|
47
|
+
*/
|
|
48
|
+
remove(taskId) {
|
|
49
|
+
this.store.delete(taskId);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @returns the record for `taskId`, or `undefined` when missing or
|
|
53
|
+
* already evicted. Triggers a lazy sweep on each call.
|
|
54
|
+
*/
|
|
55
|
+
get(taskId) {
|
|
56
|
+
this.sweepExpired();
|
|
57
|
+
return this.store.get(taskId);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @returns `true` when the store currently holds a record for `taskId`
|
|
61
|
+
* and that record has not been evicted by the lazy sweep.
|
|
62
|
+
*/
|
|
63
|
+
contains(taskId) {
|
|
64
|
+
this.sweepExpired();
|
|
65
|
+
return this.store.has(taskId);
|
|
66
|
+
}
|
|
67
|
+
/** @returns current size (post-sweep). For diagnostics + tests. */
|
|
68
|
+
size() {
|
|
69
|
+
this.sweepExpired();
|
|
70
|
+
return this.store.size;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Atomically mark a previously parked non-terminal record as terminal by
|
|
74
|
+
* stamping `terminalEnvelope` + `terminalAt`. No-op when the record is
|
|
75
|
+
* absent or already terminal (idempotent — spec §4.5 "Idempotent;
|
|
76
|
+
* best-effort"). First-write-wins is preserved.
|
|
77
|
+
*
|
|
78
|
+
* Used by Chunk 1B's long-running path to flip a `state=working` record
|
|
79
|
+
* to a cached terminal envelope so subsequent `tasks/get` calls return
|
|
80
|
+
* the same payload deterministically.
|
|
81
|
+
*
|
|
82
|
+
* @returns the new (or existing) terminal record, or `undefined` when
|
|
83
|
+
* the task is unknown
|
|
84
|
+
*/
|
|
85
|
+
markTerminal(taskId, terminalEnvelope) {
|
|
86
|
+
this.sweepExpired();
|
|
87
|
+
const existing = this.store.get(taskId);
|
|
88
|
+
if (!existing) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
if (existing.terminalAt !== undefined) {
|
|
92
|
+
return existing;
|
|
93
|
+
}
|
|
94
|
+
const next = {
|
|
95
|
+
sessionId: existing.sessionId,
|
|
96
|
+
requestMessage: existing.requestMessage,
|
|
97
|
+
terminalEnvelope,
|
|
98
|
+
terminalAt: Date.now(),
|
|
99
|
+
// Preserve the JobProxy reference on the terminal record — callers
|
|
100
|
+
// may want to read `proxy.status()` one last time for diagnostics
|
|
101
|
+
// before the eviction sweep drops it (300s grace window).
|
|
102
|
+
jobProxy: existing.jobProxy ?? null,
|
|
103
|
+
};
|
|
104
|
+
this.store.set(taskId, next);
|
|
105
|
+
return next;
|
|
106
|
+
}
|
|
107
|
+
/** Clear all stored tasks. Mainly for testing. */
|
|
108
|
+
clear() {
|
|
109
|
+
this.store.clear();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Lazy sweep: evict any record whose terminal-state timestamp is older
|
|
113
|
+
* than {@link TERMINAL_EVICTION_MS}. Non-terminal records are never
|
|
114
|
+
* evicted (long-running paths keep them alive across arbitrary
|
|
115
|
+
* durations).
|
|
116
|
+
*/
|
|
117
|
+
sweepExpired() {
|
|
118
|
+
const now = Date.now();
|
|
119
|
+
for (const [taskId, record] of this.store) {
|
|
120
|
+
if (record.terminalAt === undefined)
|
|
121
|
+
continue;
|
|
122
|
+
if (now - record.terminalAt > TERMINAL_EVICTION_MS) {
|
|
123
|
+
this.store.delete(taskId);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=task-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-store.js","sourceRoot":"","sources":["../../../src/a2a/producer/task-store.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.d.ts
CHANGED
|
@@ -12,6 +12,32 @@ import type { FastMCP } from "fastmcp";
|
|
|
12
12
|
import type { z } from "zod";
|
|
13
13
|
import { type JsAgentHandle } from "@mcpmesh/core";
|
|
14
14
|
import type { AgentConfig, ResolvedAgentConfig, MeshToolDef, McpMeshTool, LlmProviderConfig } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Globally-set symbol that user agent code can check to detect whether it
|
|
17
|
+
* is running inside a mesh tool-isolation worker. The mesh runtime sets
|
|
18
|
+
* this on globalThis BEFORE importing the user module in worker mode.
|
|
19
|
+
*
|
|
20
|
+
* Use this to guard module-top-level side effects that should run only in
|
|
21
|
+
* the main process — e.g. HTTP servers you start manually, OpenTelemetry
|
|
22
|
+
* SDK init, prometheus registries, file watchers, etc.:
|
|
23
|
+
*
|
|
24
|
+
* if (!globalThis[Symbol.for("@mcpmesh/sdk/in-worker")]) {
|
|
25
|
+
* await myCustomServer.listen(8081);
|
|
26
|
+
* myMetrics.start();
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* mesh's own setup (FastMCP server start, Express health endpoints,
|
|
30
|
+
* registry heartbeat) is automatically guarded; users only need this
|
|
31
|
+
* symbol if they have their own top-level side effects.
|
|
32
|
+
*/
|
|
33
|
+
export declare const IN_WORKER_SYMBOL: unique symbol;
|
|
34
|
+
/**
|
|
35
|
+
* Internal: returns the worker-side tool map.
|
|
36
|
+
*
|
|
37
|
+
* Used exclusively by tool-worker-entry.ts after dynamic-importing the user
|
|
38
|
+
* module. Not part of the public API.
|
|
39
|
+
*/
|
|
40
|
+
export declare function __getWorkerToolMap(): Map<string, (...args: unknown[]) => unknown>;
|
|
15
41
|
/**
|
|
16
42
|
* MeshAgent wraps a FastMCP server with MCP Mesh capabilities.
|
|
17
43
|
*
|
|
@@ -46,6 +72,42 @@ export declare class MeshAgent {
|
|
|
46
72
|
* different tags/settings without overwriting each other.
|
|
47
73
|
*/
|
|
48
74
|
private resolvedDeps;
|
|
75
|
+
private _workerMode;
|
|
76
|
+
/**
|
|
77
|
+
* Phase 1 MeshJob substrate: per-tool ClaimHandler for `task: true`
|
|
78
|
+
* tools. Indexed by capability so the ClaimDispatcher can look up
|
|
79
|
+
* the local handler without re-traversing the tools map. Populated
|
|
80
|
+
* by addTool() at registration time; consumed by _autoStart() to
|
|
81
|
+
* spawn one dispatcher per task tool.
|
|
82
|
+
*
|
|
83
|
+
* Issue #894: also carries the per-tool retryOn whitelist so the
|
|
84
|
+
* dispatcher can pass it into `runWithJobContext` for the
|
|
85
|
+
* release-lease-on-retry-eligible-throw path.
|
|
86
|
+
*/
|
|
87
|
+
private _taskHandlers;
|
|
88
|
+
/**
|
|
89
|
+
* Active claim dispatchers (one per task=true capability). Started
|
|
90
|
+
* during _autoStart(); stopped during shutdown(). Empty for agents
|
|
91
|
+
* that own no task=true tools.
|
|
92
|
+
*/
|
|
93
|
+
private _claimDispatchers;
|
|
94
|
+
/**
|
|
95
|
+
* Issue #917: cache of `A2AClient` instances keyed by their
|
|
96
|
+
* `(url, skillId, auth, timeoutMs)` tuple so multiple consumer
|
|
97
|
+
* tools targeting the same backend share one outbound connection
|
|
98
|
+
* pool. Closed via `close()` on agent shutdown.
|
|
99
|
+
*/
|
|
100
|
+
private _a2aClients;
|
|
101
|
+
/**
|
|
102
|
+
* Issue #917: stable opaque IDs for `A2ABearer` instances used in
|
|
103
|
+
* the A2AClient cache key. Bearer fields are private so we cannot
|
|
104
|
+
* fingerprint by content (would also be a security risk — two
|
|
105
|
+
* tools with distinct literal tokens must NEVER share a cache
|
|
106
|
+
* entry). Identity-based keying is the safe default. `WeakMap`
|
|
107
|
+
* lets bearers be GC'd when the registering tool is removed.
|
|
108
|
+
*/
|
|
109
|
+
private _bearerIds;
|
|
110
|
+
private _nextBearerId;
|
|
49
111
|
constructor(server: FastMCP, config: AgentConfig);
|
|
50
112
|
/**
|
|
51
113
|
* Add a tool to the agent.
|
|
@@ -74,6 +136,31 @@ export declare class MeshAgent {
|
|
|
74
136
|
* ```
|
|
75
137
|
*/
|
|
76
138
|
addLlmProvider(config: LlmProviderConfig): this;
|
|
139
|
+
/**
|
|
140
|
+
* Issue #917: build an `A2ABearer` (or undefined) from the
|
|
141
|
+
* user-friendly auth config supported on `MeshA2AConfig.auth`. The
|
|
142
|
+
* config can be either an `{ token, tokenEnv }` shorthand object OR
|
|
143
|
+
* a pre-built `A2ABearer` instance the user constructed manually.
|
|
144
|
+
*
|
|
145
|
+
* Tightened to `instanceof A2ABearer` so a stray `{ token,
|
|
146
|
+
* authorizationHeader: () => ... }` object cannot duck-type its way
|
|
147
|
+
* past A2ABearer's validation (which catches blank tokens and
|
|
148
|
+
* mutually-exclusive `token`/`tokenEnv`).
|
|
149
|
+
*/
|
|
150
|
+
private _buildBearerFromConfig;
|
|
151
|
+
/**
|
|
152
|
+
* Issue #917: cache `A2AClient` instances by their config tuple so
|
|
153
|
+
* multiple consumer tools targeting the same backend share one
|
|
154
|
+
* outbound connection pool. Auth instances participate in the cache
|
|
155
|
+
* key by reference (same `A2ABearer` ref → same client); two
|
|
156
|
+
* separately-constructed bearers — even ones holding identical
|
|
157
|
+
* tokens — get separate clients. Identity-based keying is the safe
|
|
158
|
+
* default: A2ABearer's private fields make content-fingerprinting
|
|
159
|
+
* impossible from outside, and a content-derived key risks leaking
|
|
160
|
+
* tool-A's bearer onto tool-B's outbound traffic.
|
|
161
|
+
*/
|
|
162
|
+
private _bearerCacheKey;
|
|
163
|
+
private _getOrBuildA2AClient;
|
|
77
164
|
/**
|
|
78
165
|
* Convert Zod schema to JSON Schema.
|
|
79
166
|
*/
|
|
@@ -82,6 +169,18 @@ export declare class MeshAgent {
|
|
|
82
169
|
* Internal: Start the agent (called by auto-start mechanism).
|
|
83
170
|
*/
|
|
84
171
|
_autoStart(): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Phase 1 MeshJob substrate: register the three framework helper
|
|
174
|
+
* tools on the FastMCP server AND in the agent's tool catalog so
|
|
175
|
+
* the heartbeat ships them to the registry as visible capabilities.
|
|
176
|
+
*/
|
|
177
|
+
private registerJobsHelperTools;
|
|
178
|
+
/**
|
|
179
|
+
* Phase 1 MeshJob substrate: spawn ClaimDispatchers for every
|
|
180
|
+
* task=true tool registered. Skipped if no registry URL or no task
|
|
181
|
+
* handlers are present.
|
|
182
|
+
*/
|
|
183
|
+
private startClaimDispatchers;
|
|
85
184
|
/**
|
|
86
185
|
* Register LLM tools from LlmToolRegistry.
|
|
87
186
|
* This adds tool metadata for LLM tools created via mesh.llm().
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EAEX,WAAW,EAEX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA6CpB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,eAAuC,CAAC;AAiBrE;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAEjF;AAqBD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAoC;IACjD;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,UAAU,CAAC,CAA8B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAAuC;IAK3D,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa,CAMP;IACd;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAyB;IAElD;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAqC;IAExD;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW;IAqChD;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAomBvD;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAyC/C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyJjC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;YACW,cAAc;IAyL5B;;OAEG;YACW,YAAY;IA6G1B;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IA6CjC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAiCnC;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAYrD;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAI1E;;OAEG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI9C;;OAEG;IACH,SAAS,IAAI,aAAa,GAAG,IAAI;IAIjC;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ChC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAEpE"}
|