@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 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/a2a/producer/dispatcher.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,CAAC;AAC1C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,CAAC;AAC/C,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAK,CAAC;AA0E7C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAoB;IAC5D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IAElF,OAAO,KAAK,UAAU,aAAa,CACjC,GAAY,EACZ,GAAa;QAEb,oEAAoE;QACpE,uEAAuE;QACvE,sEAAsE;QACtE,mDAAmD;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAe,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,6BAA6B,CAC3B,GAAG,EACH,oFAAoF,CACrF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,6BAA6B,CAC3B,GAAG,EACH,qDAAqD,CACtD,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAA+B,CAAC;QACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,sEAAsE;YACtE,sEAAsE;YACtE,wDAAwD;YACxD,oEAAoE;YACpE,iEAAiE;YACjE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,uBAAuB,EAC3D,kEAAkE,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY;gBACf,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;oBAC7C,OAAO;oBACP,OAAO;oBACP,SAAS;oBACT,aAAa;oBACb,oBAAoB;iBACrB,CAAC,CAAC;gBACH,OAAO;YAET,KAAK,WAAW;gBACd,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACpD,OAAO;YAET,KAAK,cAAc;gBACjB,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACvD,OAAO;YAET,KAAK,qBAAqB,CAAC;YAC3B,KAAK,mBAAmB;gBACtB,+DAA+D;gBAC/D,gEAAgE;gBAChE,wEAAwE;gBACxE,2DAA2D;gBAC3D,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,wBAAwB,EAC5D,WAAW,MAAM,oCAAoC;oBACrD,iEAAiE,CAAC,CAAC,CAAC;gBACtE,OAAO;YAET;gBACE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,wBAAwB,EAC5D,4BAA4B,MAAM,KAAK;oBACvC,0GAA0G,CAAC,CAAC,CAAC;gBAC/G,OAAO;QACX,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,aAAa;AACb,4EAA4E;AAE5E,KAAK,UAAU,eAAe,CAC5B,IAAa,EACb,GAAa,EACb,KAAc,EACd,MAA+B,EAC/B,IAAoB;IAEpB,qDAAqD;IACrD,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjD,kEAAkE;IAClE,iEAAiE;IACjE,8DAA8D;IAC9D,gEAAgE;IAChE,gEAAgE;IAChE,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;QAClD,SAAS;QACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,sBAAsB,EAC1D,gBAAgB,MAAM,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,mBAAmB;IACnB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAC7D,IAAI,CAAC,OAAO,CAAC,OAAO,CACrB,CAAC;IACF,yEAAyE;IACzE,mEAAmE;IACnE,oBAAoB;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB;QAC5C,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC7B,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,aAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2DAA2D;QAC3D,mEAAmE;QACnE,6CAA6C;QAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;YACzB,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrD,gBAAgB,EAAE,QAAQ;YAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,gEAAgE;IAChE,yBAAyB;IACzB,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;QACzB,SAAS;QACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,gBAAgB,EAAE,QAAQ;QAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,YAAY;AACZ,4EAA4E;AAE5E,KAAK,UAAU,cAAc,CAC3B,GAAa,EACb,KAAc,EACd,MAA+B,EAC/B,SAAuB;IAEvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,sBAAsB,EAC1D,gDAAgD,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,sBAAsB,EAC1D,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IACD,kEAAkE;IAClE,kEAAkE;IAClE,oEAAoE;IACpE,iEAAiE;IACjE,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1E,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,eAAe;AACf,4EAA4E;AAE5E,KAAK,UAAU,iBAAiB,CAC9B,GAAa,EACb,KAAc,EACd,MAA+B,EAC/B,SAAuB;IAEvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,sBAAsB,EAC1D,mDAAmD,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,sBAAsB,EAC1D,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,uCAAuC;IACvC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,0CAA0C;YAC1C,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,qEAAqE;IACrE,sEAAsE;IACtE,oDAAoD;IACpD,IAAI,QAAiC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,IAAI,CAAC;YACnB,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,iEAAiE;QACjE,iCAAiC;QACjC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,kEAAkE;IAClE,qEAAqE;IACrE,YAAY;IACZ,MAAM,SAAS,GAAI,QAAQ,CAAC,QAAQ,CAAyC,CAAC;IAC9E,MAAM,KAAK,GAAG,OAAO,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,SAAS,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QACtC,8DAA8D;QAC9D,oEAAoE;QACpE,qBAAqB;QACrB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACzF,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IACD,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,8DAA8D;AAC9D,4EAA4E;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAc,EACd,MAA+B,EAC/B,IAAoB;IAEpB,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjD,8DAA8D;IAC9D,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE;QAClD,SAAS;QACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,+DAA+D;QAC/D,+DAA+D;QAC/D,uDAAuD;QACvD,OAAO,cAAc,CAAC,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EAAE,UAAU,EACzB,gBAAgB,MAAM,qBAAqB,EAAE,IAAI,EAAE,IAAI,CACxD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAC7D,IAAI,CAAC,OAAO,CAAC,OAAO,CACrB,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB;QAC5C,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC7B,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,aAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,iEAAiE;QACjE,uCAAuC;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;YACzB,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrD,gBAAgB,EAAE,MAAM;YACxB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CACjD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAC/C,CAAC;IACF,oEAAoE;IACpE,kCAAkC;IAClC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;QACzB,SAAS;QACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,gBAAgB,EAAE,QAAQ;QAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,MAA+B,EAC/B,SAAuB;IAEvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,oEAAoE;QACpE,0CAA0C;QAC1C,OAAO,QAAQ,CACb,YAAY,CAAC,KAAK,EAAE,sBAAsB,EACxC,wDAAwD,CAAC,EAC3D,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,QAAQ,CACb,YAAY,CAAC,KAAK,EAAE,sBAAsB,EACxC,oBAAoB,MAAM,EAAE,CAAC,EAC/B,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,+DAA+D;QAC/D,2CAA2C;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAwC,CAAC;QACvE,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,KAAK,GAAG,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAwC,CAAC;YACxE,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAwC,CAAC;oBAC9D,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACxC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAC1C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,mEAAmE;QACnE,oEAAoE;QACpE,iDAAiD;QACjD,OAAO,cAAc,CAAC,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EAAE,UAAU,EACzB,oEAAoE,EACpE,IAAI,EAAE,IAAI,CACX,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,4EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAuB,EACvB,MAAc,EACd,MAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9E,yEAAyE;IACzE,sEAAsE;IACtE,oEAAoE;IACpE,qCAAqC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAwC,CAAC;IAC5E,MAAM,KAAK,GAAG,SAAS,IAAI,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,QAAQ;QAC/D,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC9E,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,MAAc,EACd,MAAkB,EAClB,KAAe;IAEf,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAY,CAAC;QAC9C,MAAM,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAE,GAA+B;YAClC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sEAAsE;QACtE,qDAAqD;QACrD,OAAO,gBAAgB,CACrB,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAc,EACrB,uBAAuB,WAAW,CAAC,GAAG,CAAC,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErC,qEAAqE;IACrE,kEAAkE;IAClE,+DAA+D;IAC/D,kEAAkE;IAClE,iEAAiE;IACjE,2BAA2B;IAC3B,IAAI,WAAW,GAAY,IAAI,CAAC;IAChC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;YACzD,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CACxB,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,cAAc,EACrB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAuB,EACvB,MAAc;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IAC5D,OAAO,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,4EAA4E;AAC5E,qCAAqC;AACrC,4EAA4E;AAE5E;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,SAAiB,EACjB,cAAuC,EACvC,MAAe;IAEf,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO;QACL,EAAE,EAAE,MAAM;QACV,SAAS;QACT,MAAM,EAAE;YACN,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,UAAU,EAAE;SACxB;QACD,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,QAAQ;gBACd,kEAAkE;gBAClE,iDAAiD;gBACjD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC/B,KAAK,EAAE,CAAC;aACT;SACF;QACD,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,SAAiB,EACjB,cAAuC,EACvC,SAAiB;IAEjB,OAAO;QACL,EAAE,EAAE,MAAM;QACV,SAAS;QACT,MAAM,EAAE;YACN,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,UAAU,EAAE;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC3C;SACF;QACD,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,SAAiB,EACjB,cAAwC,EACxC,eAA+B,EAC/B,QAAwB;IAExB,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,UAAU,EAAE;KACxB,CAAC;IACF,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAA4B;QACxC,EAAE,EAAE,MAAM;QACV,SAAS;QACT,MAAM;QACN,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;KACzC,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,SAAiB,EACjB,cAAmD,EACnD,MAA0B;IAE1B,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,UAAU,EAAE;KACxB,CAAC;IACF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,MAAM;QACV,SAAS;QACT,MAAM;QACN,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,SAAiB,EACjB,cAAmD,EACnD,QAAgB,EAChB,UAAmC,EACnC,WAAoB,EACpB,cAAuB;IAEvB,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,UAAU,EAAE;KACxB,CAAC;IAEF,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC1C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAmC,EAAE,CAAC;IACrD,IAAI,cAAc,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7D,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,EAAE,EAAE,MAAM;QACV,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO,EAAE,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;KACzC,CAAC;IACF,qEAAqE;IACrE,+DAA+D;IAC/D,kEAAkE;IAClE,mEAAmE;IACnE,6DAA6D;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,QAAQ,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,uEAAuE;QACvE,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,cAAmD;IAEnD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,4EAA4E;AAC5E,+BAA+B;AAC/B,4EAA4E;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,MAAc,EACd,QAAgB,EAChB,WAAsC,EACtC,SAAkB,EAClB,QAAmC;IAEnC,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,UAAU,EAAE;KACxB,CAAC;IACF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA4B;QACtC,EAAE,EAAE,MAAM;QACV,MAAM;QACN,0CAA0C;QAC1C,KAAK,EAAE,SAAS;KACjB,CAAC;IACF,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,KAAK,IAAI,IAAI;QACjB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,MAAc,EACd,KAAc;IAEd,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,KAAK,IAAI,IAAI;QACjB,MAAM,EAAE;YACN,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,KAAK,EAAE,CAAC;aACT;SACF;KACF,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,qBAAqB;AACrB,4EAA4E;AAE5E;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,UAAU;QACjC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU;QAC/B,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,UAAU;QACjC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC/B,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,qBAAqB;AACrB,4EAA4E;AAE5E,SAAS,eAAe,CACtB,SAAuB,EACvB,MAAc,EACd,SAAiB,EACjB,OAAgC,EAChC,KAAe;IAEf,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;QACpB,SAAS;QACT,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACrD,gEAAgE;QAChE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,mBAAmB;AACnB,4EAA4E;AAE5E,SAAS,cAAc,CAAC,KAAc,EAAE,MAAe;IACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,IAAY,EACZ,OAAe;IAEf,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,EAAE,EAAE,KAAK,IAAI,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAa,EAAE,IAA6B;IAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,6BAA6B,CAAC,GAAa,EAAE,OAAe;IACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC3C,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE;QAC7C,EAAE,EAAE,IAAI;KACT,CAAC,CACH,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,2BAA2B;AAC3B,4EAA4E;AAE5E,SAAS,gBAAgB,CAAC,QAAiC;IACzD,oEAAoE;IACpE,uEAAuE;IACvE,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACvD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA+B,EAC/B,GAAW;IAEX,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CACpB,MAA+B,EAC/B,GAAW;IAEX,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,OAAO,EAAE,GAAI,CAA6B,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,MAAM,CAAC,GAA+C;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,CAAC;QACH,uEAAuE;QACvE,sEAAsE;QACtE,2CAA2C;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AA+CD,SAAS,QAAQ,CACf,SAAkC,EAClC,UAAkB;IAElB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,MAAc,EACd,aAAsC,EACtC,aAAsC;IAEtC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CACrB,KAAc,EACd,MAAc,EACd,KAAe;IAEf,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,uEAAuE;AACvE,mDAAmD;AACnD,OAAO,EACL,UAAU,IAAI,oBAAoB,GACnC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A producer barrel (issue #933).
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the public surface user code reaches for:
|
|
5
|
+
* - {@link mount} — the `mesh.a2a.mount(...)` entry point
|
|
6
|
+
* - {@link A2AMountConfig} — the mount config shape
|
|
7
|
+
* - {@link A2ADependencies} / {@link A2AHandler} — handler typing helpers
|
|
8
|
+
*
|
|
9
|
+
* Internal classes (`A2AProducerRegistry`, `A2ATaskStore`, dispatcher
|
|
10
|
+
* builders) are exported for advanced wiring / testability — they aren't
|
|
11
|
+
* promoted on the top-level `mesh.a2a` namespace.
|
|
12
|
+
*/
|
|
13
|
+
export { mount, __getA2ATaskStore, __buildCardRenderContextForTests } from "./mount.js";
|
|
14
|
+
export type { A2AMountConfig, A2ASurfaceMetadata, } from "./registry.js";
|
|
15
|
+
export { A2AProducerRegistry, } from "./registry.js";
|
|
16
|
+
export type { A2ADependencies, A2AHandler, DispatcherDeps, SseStreamPlan, } from "./dispatcher.js";
|
|
17
|
+
export { buildDispatcherMiddleware, buildSendSubscribeStream, buildResubscribeStream, buildCompletedTask, buildFailedTask, buildWorkingTask, buildCanceledTask, buildTaskFromStatus, buildTaskFromLiveStatus, buildStatusUpdateFrame, buildArtifactUpdateFrame, projectLiveStatus, stringifyResult, JSONRPC_PARSE_ERROR, JSONRPC_INVALID_REQUEST, JSONRPC_METHOD_NOT_FOUND, JSONRPC_INVALID_PARAMS, } from "./dispatcher.js";
|
|
18
|
+
export type { CardRenderContext } from "./card-builder.js";
|
|
19
|
+
export { buildAgentCard, DEFAULT_INPUT_MODES, DEFAULT_OUTPUT_MODES, } from "./card-builder.js";
|
|
20
|
+
export type { TaskRecord } from "./task-store.js";
|
|
21
|
+
export { A2ATaskStore, TERMINAL_EVICTION_MS, } from "./task-store.js";
|
|
22
|
+
export { buildBearerAuthMiddleware, JSONRPC_AUTH_ERROR, } from "./auth-filter.js";
|
|
23
|
+
export { buildSseDispatcherMiddleware, renderSsePlan, POLL_INTERVAL_MILLIS, KEEPALIVE_MILLIS, MAX_STREAM_MILLIS, MAX_CONSECUTIVE_STATUS_FAILURES, } from "./sse-emitter.js";
|
|
24
|
+
export { A2APublicUrlCache, buildLocalFallbackUrl, } from "./public-url-cache.js";
|
|
25
|
+
export { A2A_SUBMITTED, A2A_WORKING, A2A_COMPLETED, A2A_FAILED, A2A_CANCELED, fromMesh, isTerminal, isMeshTerminal, meshStatusOf, } from "./state-translator.js";
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2a/producer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAGxF,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A producer barrel (issue #933).
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the public surface user code reaches for:
|
|
5
|
+
* - {@link mount} — the `mesh.a2a.mount(...)` entry point
|
|
6
|
+
* - {@link A2AMountConfig} — the mount config shape
|
|
7
|
+
* - {@link A2ADependencies} / {@link A2AHandler} — handler typing helpers
|
|
8
|
+
*
|
|
9
|
+
* Internal classes (`A2AProducerRegistry`, `A2ATaskStore`, dispatcher
|
|
10
|
+
* builders) are exported for advanced wiring / testability — they aren't
|
|
11
|
+
* promoted on the top-level `mesh.a2a` namespace.
|
|
12
|
+
*/
|
|
13
|
+
// Public mount API
|
|
14
|
+
export { mount, __getA2ATaskStore, __buildCardRenderContextForTests } from "./mount.js";
|
|
15
|
+
export { A2AProducerRegistry, } from "./registry.js";
|
|
16
|
+
export { buildDispatcherMiddleware, buildSendSubscribeStream, buildResubscribeStream, buildCompletedTask, buildFailedTask, buildWorkingTask, buildCanceledTask, buildTaskFromStatus, buildTaskFromLiveStatus, buildStatusUpdateFrame, buildArtifactUpdateFrame, projectLiveStatus, stringifyResult, JSONRPC_PARSE_ERROR, JSONRPC_INVALID_REQUEST, JSONRPC_METHOD_NOT_FOUND, JSONRPC_INVALID_PARAMS, } from "./dispatcher.js";
|
|
17
|
+
export { buildAgentCard, DEFAULT_INPUT_MODES, DEFAULT_OUTPUT_MODES, } from "./card-builder.js";
|
|
18
|
+
export { A2ATaskStore, TERMINAL_EVICTION_MS, } from "./task-store.js";
|
|
19
|
+
export { buildBearerAuthMiddleware, JSONRPC_AUTH_ERROR, } from "./auth-filter.js";
|
|
20
|
+
export { buildSseDispatcherMiddleware, renderSsePlan, POLL_INTERVAL_MILLIS, KEEPALIVE_MILLIS, MAX_STREAM_MILLIS, MAX_CONSECUTIVE_STATUS_FAILURES, } from "./sse-emitter.js";
|
|
21
|
+
export { A2APublicUrlCache, buildLocalFallbackUrl, } from "./public-url-cache.js";
|
|
22
|
+
export { A2A_SUBMITTED, A2A_WORKING, A2A_COMPLETED, A2A_FAILED, A2A_CANCELED, fromMesh, isTerminal, isMeshTerminal, meshStatusOf, } from "./state-translator.js";
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/a2a/producer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAOxF,OAAO,EACL,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,YAAY,EACZ,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mesh.a2a.mount(app, config, handler)` — wire an Express app as an A2A
|
|
3
|
+
* v1.0 producer (issue #933).
|
|
4
|
+
*
|
|
5
|
+
* Mirrors Python's `mesh.a2a.mount(app, ...)` for FastAPI. The mount
|
|
6
|
+
* function owns both the `POST {path}` dispatch route and the
|
|
7
|
+
* `GET {path}/.well-known/agent.json` card route — having the wrapper own
|
|
8
|
+
* the wiring removes the boilerplate of registering two routes per skill.
|
|
9
|
+
*
|
|
10
|
+
* Mount-time side effects:
|
|
11
|
+
* 1. Validate the mount config (path non-empty + starts with `/`, skillId
|
|
12
|
+
* non-empty).
|
|
13
|
+
* 2. Register the dependencies as a synthetic route in `RouteRegistry` so
|
|
14
|
+
* DDDI events from the Rust core wire up resolved `McpMeshTool` proxies
|
|
15
|
+
* keyed by capability name — same plumbing `mesh.route()` uses.
|
|
16
|
+
* 3. Store surface metadata in {@link A2AProducerRegistry} for heartbeat,
|
|
17
|
+
* card render, and auth gate lookups.
|
|
18
|
+
* 4. Wire `app.post(path, [auth?,] dispatcher)` for JSON-RPC dispatch.
|
|
19
|
+
* 5. Wire `app.get(path + "/.well-known/agent.json", cardHandler)` for
|
|
20
|
+
* agent card discovery. The card endpoint is ALWAYS public regardless of
|
|
21
|
+
* `auth` (spec §6.2 + conformance checklist) so clients can discover the
|
|
22
|
+
* authentication scheme before authenticating.
|
|
23
|
+
* 6. Trigger `getApiRuntime().scheduleStart()` if any dependencies are
|
|
24
|
+
* declared — mirrors `mesh.route()`'s auto-init.
|
|
25
|
+
*/
|
|
26
|
+
import type { Application } from "express";
|
|
27
|
+
import type { AgentConfig } from "../../types.js";
|
|
28
|
+
import { type A2AMountConfig, type A2ASurfaceMetadata } from "./registry.js";
|
|
29
|
+
import { A2ATaskStore } from "./task-store.js";
|
|
30
|
+
import { type A2ADependencies, type A2AHandler } from "./dispatcher.js";
|
|
31
|
+
import { type CardRenderContext } from "./card-builder.js";
|
|
32
|
+
/**
|
|
33
|
+
* Public entry point. Mount an A2A v1.0 producer surface on an Express app.
|
|
34
|
+
*
|
|
35
|
+
* @param app - Express application instance
|
|
36
|
+
* @param config - Mount configuration (path, skill id, dependencies, ...)
|
|
37
|
+
* @param handler - User handler invoked on every `tasks/send` call. Receives
|
|
38
|
+
* resolved `McpMeshTool` dependency proxies and the A2A
|
|
39
|
+
* `tasks/send` `params` payload; returns a value (or
|
|
40
|
+
* Promise of one) that the framework wraps into the A2A
|
|
41
|
+
* `Task` envelope. Throw to surface as `state=failed`.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* mesh.a2a.mount(app, {
|
|
46
|
+
* path: "/agents/date",
|
|
47
|
+
* skillId: "get-date",
|
|
48
|
+
* skillName: "Get Date",
|
|
49
|
+
* description: "Get current date/time via A2A protocol",
|
|
50
|
+
* tags: ["system", "date"],
|
|
51
|
+
* dependencies: ["date_service"],
|
|
52
|
+
* auth: "bearer",
|
|
53
|
+
* }, async (deps, payload) => {
|
|
54
|
+
* const result = await deps.date_service.call({});
|
|
55
|
+
* return { date: result };
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function mount<D extends A2ADependencies = A2ADependencies>(app: Application, config: A2AMountConfig, handler: A2AHandler<D>): void;
|
|
60
|
+
/**
|
|
61
|
+
* Expose the per-process task store for advanced wiring (e.g., Chunk 1B's
|
|
62
|
+
* SSE emitter needs to mark records terminal). Not part of the public
|
|
63
|
+
* surface — tests + framework internals only.
|
|
64
|
+
*/
|
|
65
|
+
export declare function __getA2ATaskStore(): A2ATaskStore;
|
|
66
|
+
/**
|
|
67
|
+
* Side-effect-free helper for tests / advanced wiring: build a fresh
|
|
68
|
+
* card-render context using the current env / agent config. Lets tests
|
|
69
|
+
* pass a custom context into {@link buildAgentCard} without going through
|
|
70
|
+
* the mounted route. When no surface is provided, the public-URL cache
|
|
71
|
+
* is not consulted (tests can override via `overrides.publicUrl`).
|
|
72
|
+
*/
|
|
73
|
+
export declare function __buildCardRenderContextForTests(overrides?: Partial<CardRenderContext>, surface?: A2ASurfaceMetadata): CardRenderContext;
|
|
74
|
+
export type { AgentConfig };
|
|
75
|
+
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../../src/a2a/producer/mount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,SAAS,CAAC;AAIjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAqH3E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC/D,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,IAAI,CAmKN;AAeD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACtC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,iBAAiB,CAYnB;AAuHD,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import { resolveConfig } from "@mcpmesh/core";
|
|
2
|
+
import { RouteRegistry } from "../../route.js";
|
|
3
|
+
import { normalizeDependency } from "../../proxy.js";
|
|
4
|
+
import { getApiRuntime } from "../../api-runtime.js";
|
|
5
|
+
import { MeshJobSubmitter } from "../../mesh-job-submitter.js";
|
|
6
|
+
import { A2AProducerRegistry, } from "./registry.js";
|
|
7
|
+
import { A2ATaskStore } from "./task-store.js";
|
|
8
|
+
import { buildDispatcherMiddleware, } from "./dispatcher.js";
|
|
9
|
+
import { buildSseDispatcherMiddleware } from "./sse-emitter.js";
|
|
10
|
+
import { buildBearerAuthMiddleware } from "./auth-filter.js";
|
|
11
|
+
import { buildAgentCard } from "./card-builder.js";
|
|
12
|
+
import { A2APublicUrlCache, buildLocalFallbackUrl, } from "./public-url-cache.js";
|
|
13
|
+
/**
|
|
14
|
+
* Process-wide task store shared by every mounted surface. A single Map
|
|
15
|
+
* across the process is correct because `task_id` is globally unique
|
|
16
|
+
* (UUID4 by default + spec-allowed client-provided id); collisions are
|
|
17
|
+
* caught by the dispatcher's duplicate check.
|
|
18
|
+
*/
|
|
19
|
+
const SHARED_TASK_STORE = new A2ATaskStore();
|
|
20
|
+
/**
|
|
21
|
+
* Static JSON-RPC parse-error envelope (spec §4.1 `-32700`). Returned with
|
|
22
|
+
* HTTP 400 when Express's `express.json()` body parser rejects a malformed
|
|
23
|
+
* request body before our dispatcher runs. The body is fixed (no per-request
|
|
24
|
+
* id since the request was never parseable), so we hold it as a constant
|
|
25
|
+
* rather than re-rendering on every error — mirrors Java's
|
|
26
|
+
* `MeshA2ADispatcherController.PARSE_ERROR_BODY` (#934 W5 refactor).
|
|
27
|
+
*
|
|
28
|
+
* Without this envelope Express returns its default HTML 400 page when
|
|
29
|
+
* body-parser fails — A2A clients sending malformed JSON would receive HTML
|
|
30
|
+
* instead of a structured JSON-RPC error.
|
|
31
|
+
*/
|
|
32
|
+
const PARSE_ERROR_BODY = JSON.stringify({
|
|
33
|
+
jsonrpc: "2.0",
|
|
34
|
+
error: { code: -32700, message: "Parse error" },
|
|
35
|
+
id: null,
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Detect a body-parser parse failure. Express 4 + 5's `express.json()`
|
|
39
|
+
* surfaces malformed-JSON failures as a `SyntaxError` with
|
|
40
|
+
* `type === "entity.parse.failed"` and `status === 400` (set by the
|
|
41
|
+
* underlying `body-parser` package). We check both so the predicate stays
|
|
42
|
+
* robust if Express ever ships a different SyntaxError subclass.
|
|
43
|
+
*/
|
|
44
|
+
function isBodyParserParseError(err) {
|
|
45
|
+
if (!err || typeof err !== "object")
|
|
46
|
+
return false;
|
|
47
|
+
const e = err;
|
|
48
|
+
if (e.type === "entity.parse.failed")
|
|
49
|
+
return true;
|
|
50
|
+
if (err instanceof SyntaxError) {
|
|
51
|
+
const code = (typeof e.status === "number" ? e.status : e.statusCode);
|
|
52
|
+
if (code === 400)
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the path-scoped Express error handler that converts body-parser
|
|
59
|
+
* parse failures into a `-32700 Parse error` JSON-RPC envelope. Falls
|
|
60
|
+
* through (calls `next(err)`) for any other error so the host app's own
|
|
61
|
+
* error pipeline still owns non-body-parser failures.
|
|
62
|
+
*
|
|
63
|
+
* Mounted at `app.use(config.path, ...)` so it only intercepts errors
|
|
64
|
+
* under the producer route — global JSON parse failures on unrelated user
|
|
65
|
+
* routes still get Express's default behavior.
|
|
66
|
+
*/
|
|
67
|
+
function buildParseErrorHandler() {
|
|
68
|
+
return function a2aParseErrorHandler(err, _req, res, next) {
|
|
69
|
+
if (!isBodyParserParseError(err)) {
|
|
70
|
+
next(err);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
res.status(400).type("application/json").send(PARSE_ERROR_BODY);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The card-render context inferred lazily at first request — pulled from
|
|
78
|
+
* the same env vars / agent config as `mesh.agent()` so the producer's
|
|
79
|
+
* card name matches what the rest of the SDK advertises.
|
|
80
|
+
*
|
|
81
|
+
* Public-URL resolution order at card-render time (spec §2.4):
|
|
82
|
+
* 1. Registry-stamped FQDN from {@link A2APublicUrlCache} keyed by
|
|
83
|
+
* `(path, skillId)`. Populated when the registry returns
|
|
84
|
+
* `surfaces[].public_url` on its heartbeat response (the Rust core
|
|
85
|
+
* does not currently emit this event to TS — see
|
|
86
|
+
* {@link A2APublicUrlCache} for the wiring status).
|
|
87
|
+
* 2. Local-fallback `http://{host}:{port}{path}` built from the
|
|
88
|
+
* `MCP_MESH_HTTP_HOST` / `MCP_MESH_HTTP_PORT` env vars.
|
|
89
|
+
* 3. Omitted (`undefined`) when neither is available — the card emits
|
|
90
|
+
* no `url` rather than a blank one (spec conformance checklist).
|
|
91
|
+
*/
|
|
92
|
+
function buildCardRenderContext(surface) {
|
|
93
|
+
const agentName = resolveConfig("agent_name", null) || "agent";
|
|
94
|
+
const cachedUrl = A2APublicUrlCache.getInstance().get(surface.path, surface.skillId);
|
|
95
|
+
let publicUrl = cachedUrl;
|
|
96
|
+
if (!publicUrl) {
|
|
97
|
+
const httpHost = resolveConfig("http_host", null);
|
|
98
|
+
const httpPortRaw = resolveConfig("http_port", null);
|
|
99
|
+
const httpPort = httpPortRaw ? Number.parseInt(httpPortRaw, 10) : NaN;
|
|
100
|
+
if (httpHost) {
|
|
101
|
+
publicUrl = buildLocalFallbackUrl(httpHost, Number.isFinite(httpPort) ? httpPort : undefined, surface.path);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Mount-time we have no separate version env var beyond what `mesh()`
|
|
105
|
+
// applies — default to "1.0.0" per spec §3.2.
|
|
106
|
+
return {
|
|
107
|
+
agentName,
|
|
108
|
+
agentVersion: "1.0.0",
|
|
109
|
+
agentDescription: undefined,
|
|
110
|
+
publicUrl,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Public entry point. Mount an A2A v1.0 producer surface on an Express app.
|
|
115
|
+
*
|
|
116
|
+
* @param app - Express application instance
|
|
117
|
+
* @param config - Mount configuration (path, skill id, dependencies, ...)
|
|
118
|
+
* @param handler - User handler invoked on every `tasks/send` call. Receives
|
|
119
|
+
* resolved `McpMeshTool` dependency proxies and the A2A
|
|
120
|
+
* `tasks/send` `params` payload; returns a value (or
|
|
121
|
+
* Promise of one) that the framework wraps into the A2A
|
|
122
|
+
* `Task` envelope. Throw to surface as `state=failed`.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* mesh.a2a.mount(app, {
|
|
127
|
+
* path: "/agents/date",
|
|
128
|
+
* skillId: "get-date",
|
|
129
|
+
* skillName: "Get Date",
|
|
130
|
+
* description: "Get current date/time via A2A protocol",
|
|
131
|
+
* tags: ["system", "date"],
|
|
132
|
+
* dependencies: ["date_service"],
|
|
133
|
+
* auth: "bearer",
|
|
134
|
+
* }, async (deps, payload) => {
|
|
135
|
+
* const result = await deps.date_service.call({});
|
|
136
|
+
* return { date: result };
|
|
137
|
+
* });
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export function mount(app, config, handler) {
|
|
141
|
+
// ── Validate ─────────────────────────────────────────────────────────
|
|
142
|
+
if (!config.path || config.path.length === 0) {
|
|
143
|
+
throw new Error("mesh.a2a.mount: config.path is required and must be non-empty");
|
|
144
|
+
}
|
|
145
|
+
if (!config.path.startsWith("/")) {
|
|
146
|
+
throw new Error(`mesh.a2a.mount: config.path must start with '/': got '${config.path}'`);
|
|
147
|
+
}
|
|
148
|
+
if (config.path === "/") {
|
|
149
|
+
// Mounting at root would produce '//.well-known/agent.json' (double
|
|
150
|
+
// slash, unreachable). Spec §3.1 requires a non-empty mount path so
|
|
151
|
+
// the card endpoint is well-formed. Match Java's MeshA2AMountValidator.
|
|
152
|
+
throw new Error("mesh.a2a.mount: config.path must not be '/': mount under a real " +
|
|
153
|
+
"path so the agent-card URL is well-formed (spec §3.1)");
|
|
154
|
+
}
|
|
155
|
+
if (config.path.length > 1 && config.path.endsWith("/")) {
|
|
156
|
+
throw new Error(`mesh.a2a.mount: config.path must not end with '/': got '${config.path}' ` +
|
|
157
|
+
`(trailing-slash normalization is implicit at request time)`);
|
|
158
|
+
}
|
|
159
|
+
if (!config.skillId || config.skillId.length === 0) {
|
|
160
|
+
throw new Error("mesh.a2a.mount: config.skillId is required and must be non-empty");
|
|
161
|
+
}
|
|
162
|
+
if (config.auth !== undefined && config.auth !== "bearer") {
|
|
163
|
+
throw new Error(`mesh.a2a.mount: config.auth must be undefined or "bearer" (Phase 1); got: ${String(config.auth)}`);
|
|
164
|
+
}
|
|
165
|
+
const dependencies = config.dependencies ?? [];
|
|
166
|
+
const normalizedDeps = dependencies.map(normalizeDependency);
|
|
167
|
+
// ── Register dependencies via RouteRegistry (DDDI) ───────────────────
|
|
168
|
+
// The producer reuses the same dependency-resolution machinery as
|
|
169
|
+
// mesh.route(). Each surface registers a synthetic route in
|
|
170
|
+
// RouteRegistry with method/path placeholders; the Rust core's
|
|
171
|
+
// dependency-resolution events then drive resolved McpMeshTool proxies
|
|
172
|
+
// into the registry, keyed by capability name, which the dispatcher
|
|
173
|
+
// pulls out via getDependenciesForRoute(routeId).
|
|
174
|
+
const routeRegistry = RouteRegistry.getInstance();
|
|
175
|
+
const routeId = routeRegistry.registerRoute("A2A", config.path, dependencies);
|
|
176
|
+
// Stable normalised surface metadata.
|
|
177
|
+
const surface = {
|
|
178
|
+
path: config.path,
|
|
179
|
+
skillId: config.skillId,
|
|
180
|
+
skillName: config.skillName ?? config.skillId,
|
|
181
|
+
description: config.description ?? "",
|
|
182
|
+
tags: config.tags ? [...config.tags] : [],
|
|
183
|
+
dependencies: normalizedDeps,
|
|
184
|
+
auth: config.auth === "bearer" ? "bearer" : "",
|
|
185
|
+
routeId,
|
|
186
|
+
};
|
|
187
|
+
// ── Register in A2AProducerRegistry ──────────────────────────────────
|
|
188
|
+
A2AProducerRegistry.getInstance().register(surface);
|
|
189
|
+
// ── Build a lazy MeshJobSubmitter provider (issue #936) ──────────────
|
|
190
|
+
// The submitter is bound to the producer's task capability + the
|
|
191
|
+
// api-runtime singleton's service id + the resolved registry URL.
|
|
192
|
+
// Lazy because the api-runtime's `serviceId` is `""` until its first
|
|
193
|
+
// tick, so we can't construct the submitter at mount time — instead
|
|
194
|
+
// we resolve on first request that actually uses it, then memoize.
|
|
195
|
+
const submitterCapability = pickSubmitterCapability(surface);
|
|
196
|
+
const jobSubmitterProvider = buildJobSubmitterProvider(submitterCapability, surface.path, surface.skillId);
|
|
197
|
+
// ── Wire dispatch route ──────────────────────────────────────────────
|
|
198
|
+
// Per spec §4.6 / §4.7, `tasks/sendSubscribe` and `tasks/resubscribe`
|
|
199
|
+
// emit a `text/event-stream` body while the other three verbs emit a
|
|
200
|
+
// JSON body. Two sibling middlewares share the same route: the SSE
|
|
201
|
+
// middleware consumes the request when the body's `method` matches
|
|
202
|
+
// either SSE verb and falls through (calls `next()`) otherwise. This
|
|
203
|
+
// mirrors Java's MeshA2ADispatcherController split.
|
|
204
|
+
const dispatcherDeps = {
|
|
205
|
+
surface,
|
|
206
|
+
handler: handler,
|
|
207
|
+
taskStore: SHARED_TASK_STORE,
|
|
208
|
+
routeRegistry,
|
|
209
|
+
jobSubmitterProvider,
|
|
210
|
+
};
|
|
211
|
+
const sseDispatcher = buildSseDispatcherMiddleware(dispatcherDeps);
|
|
212
|
+
const jsonDispatcher = buildDispatcherMiddleware(dispatcherDeps);
|
|
213
|
+
const postHandlers = [];
|
|
214
|
+
if (surface.auth === "bearer") {
|
|
215
|
+
postHandlers.push(buildBearerAuthMiddleware());
|
|
216
|
+
}
|
|
217
|
+
postHandlers.push(sseDispatcher);
|
|
218
|
+
postHandlers.push(jsonDispatcher);
|
|
219
|
+
app.post(config.path, ...postHandlers);
|
|
220
|
+
// Path-scoped error handler: convert body-parser SyntaxError (malformed
|
|
221
|
+
// JSON body) into a `-32700 Parse error` JSON-RPC envelope per spec §4.1.
|
|
222
|
+
// Without this, `express.json()` rejects malformed bodies with Express's
|
|
223
|
+
// default HTML 400 page — A2A clients would not see a structured error.
|
|
224
|
+
// Scoping by path (`app.use(config.path, ...)`) keeps the handler from
|
|
225
|
+
// intercepting parse errors on unrelated user routes mounted on the same
|
|
226
|
+
// app.
|
|
227
|
+
app.use(config.path, buildParseErrorHandler());
|
|
228
|
+
// ── Wire agent-card route ────────────────────────────────────────────
|
|
229
|
+
// The card endpoint is ALWAYS public regardless of `auth` (spec §6.2)
|
|
230
|
+
// so clients can discover the authentication scheme before
|
|
231
|
+
// authenticating.
|
|
232
|
+
const cardPath = config.path + "/.well-known/agent.json";
|
|
233
|
+
const cardHandler = buildCardHandler(surface);
|
|
234
|
+
app.get(cardPath, cardHandler);
|
|
235
|
+
// Trailing-slash tolerance per spec §3.1 — `{path}/.well-known/agent.json/`
|
|
236
|
+
// returns the same card.
|
|
237
|
+
app.get(cardPath + "/", cardHandler);
|
|
238
|
+
// ── Trigger API runtime auto-init ────────────────────────────────────
|
|
239
|
+
// Mirrors mesh.route()'s behavior: scheduling start on first mount with
|
|
240
|
+
// dependencies lets all surfaces register before connecting to the mesh.
|
|
241
|
+
// We trigger even without dependencies so surfaces with auth-only mounts
|
|
242
|
+
// still surface on the heartbeat envelope (the api-runtime would
|
|
243
|
+
// otherwise sit idle).
|
|
244
|
+
const runtime = getApiRuntime();
|
|
245
|
+
runtime.scheduleStart();
|
|
246
|
+
// Issue #938: push the updated surfaces + agent_type into the Rust core
|
|
247
|
+
// so deferred mounts (mounts called after `startAgent()` / first
|
|
248
|
+
// heartbeat) are reflected in the next heartbeat envelope. No-op when
|
|
249
|
+
// the runtime hasn't started yet — startup-time computation in
|
|
250
|
+
// `ApiRuntime.start()` already picks up the current registry state via
|
|
251
|
+
// `buildAgentSpecContribution()`. Smart-diffed inside the Rust runtime,
|
|
252
|
+
// so the canonical "mount before startAgent" pattern (which queues
|
|
253
|
+
// multiple mounts before the first heartbeat fires) generates at most
|
|
254
|
+
// one redundant no-op command.
|
|
255
|
+
//
|
|
256
|
+
// Tolerant of test fixtures that mock the api-runtime singleton with
|
|
257
|
+
// a partial object — same defensive pattern as the job submitter
|
|
258
|
+
// provider above.
|
|
259
|
+
//
|
|
260
|
+
// KNOWN LIMITATION — explicit `MeshExpress` instances:
|
|
261
|
+
// This push always targets the auto-init `ApiRuntime` singleton via
|
|
262
|
+
// `getApiRuntime()`. Users who construct an explicit `MeshExpress(app,
|
|
263
|
+
// config)` get a SEPARATE runtime handle that is NOT subscribed to this
|
|
264
|
+
// push — mid-flight mounts won't be reflected on those runtimes' next
|
|
265
|
+
// heartbeat. Workarounds:
|
|
266
|
+
// 1. Rely on the canonical mount-before-start ordering — the
|
|
267
|
+
// startup-time computation in the runtime's `start()` /
|
|
268
|
+
// `startHeartbeat()` already snapshots all registered surfaces.
|
|
269
|
+
// 2. Avoid `MeshExpress` for A2A producer apps; the auto-init
|
|
270
|
+
// `ApiRuntime` (the default for `mesh.route()`-style apps) is the
|
|
271
|
+
// supported path for `mesh.a2a.mount(...)`.
|
|
272
|
+
// Tracked: https://github.com/dhyansraj/mcp-mesh/issues/942 — extend the
|
|
273
|
+
// push to all live runtime handles so explicit `MeshExpress` users also
|
|
274
|
+
// see deferred mounts on the next heartbeat.
|
|
275
|
+
if (typeof runtime.pushSurfacesUpdate === "function") {
|
|
276
|
+
runtime.pushSurfacesUpdate();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Build the Express handler for `GET {path}/.well-known/agent.json`. The
|
|
281
|
+
* handler is bound to a single surface — multi-mount apps get one card
|
|
282
|
+
* handler per surface, mirroring spec §3.2 (one card per skill).
|
|
283
|
+
*/
|
|
284
|
+
function buildCardHandler(surface) {
|
|
285
|
+
return function cardHandler(_req, res) {
|
|
286
|
+
const ctx = buildCardRenderContext(surface);
|
|
287
|
+
const card = buildAgentCard(surface, ctx);
|
|
288
|
+
res.status(200).type("application/json").send(JSON.stringify(card));
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Expose the per-process task store for advanced wiring (e.g., Chunk 1B's
|
|
293
|
+
* SSE emitter needs to mark records terminal). Not part of the public
|
|
294
|
+
* surface — tests + framework internals only.
|
|
295
|
+
*/
|
|
296
|
+
export function __getA2ATaskStore() {
|
|
297
|
+
return SHARED_TASK_STORE;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Side-effect-free helper for tests / advanced wiring: build a fresh
|
|
301
|
+
* card-render context using the current env / agent config. Lets tests
|
|
302
|
+
* pass a custom context into {@link buildAgentCard} without going through
|
|
303
|
+
* the mounted route. When no surface is provided, the public-URL cache
|
|
304
|
+
* is not consulted (tests can override via `overrides.publicUrl`).
|
|
305
|
+
*/
|
|
306
|
+
export function __buildCardRenderContextForTests(overrides, surface) {
|
|
307
|
+
if (surface) {
|
|
308
|
+
return { ...buildCardRenderContext(surface), ...overrides };
|
|
309
|
+
}
|
|
310
|
+
const agentName = resolveConfig("agent_name", null) || "agent";
|
|
311
|
+
return {
|
|
312
|
+
agentName,
|
|
313
|
+
agentVersion: "1.0.0",
|
|
314
|
+
agentDescription: undefined,
|
|
315
|
+
publicUrl: undefined,
|
|
316
|
+
...overrides,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
320
|
+
// MeshJobSubmitter auto-injection helpers (issue #936)
|
|
321
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
322
|
+
/**
|
|
323
|
+
* Pick the capability the framework-injected {@link MeshJobSubmitter}
|
|
324
|
+
* should target for the given surface. Resolution order matches Java's
|
|
325
|
+
* {@code MeshA2ADispatcher.pickSubmitterCapability}:
|
|
326
|
+
*
|
|
327
|
+
* 1. The first declared dependency capability on the mount config — matches
|
|
328
|
+
* what user code typically hand-constructs the submitter against today.
|
|
329
|
+
* 2. The `skillId` with `-` replaced by `_` (kebab-to-snake). Matches the
|
|
330
|
+
* existing producer-report-agent example: skill `"generate-report"`
|
|
331
|
+
* becomes capability `"generate_report"`.
|
|
332
|
+
*
|
|
333
|
+
* Returns `null` only when neither source yields a non-empty capability —
|
|
334
|
+
* the dispatcher then injects `null` into the handler's `jobSubmitter`
|
|
335
|
+
* arg and the user code must surface a clear error (mirrors Java's
|
|
336
|
+
* fallback).
|
|
337
|
+
*/
|
|
338
|
+
function pickSubmitterCapability(surface) {
|
|
339
|
+
if (surface.dependencies && surface.dependencies.length > 0) {
|
|
340
|
+
const first = surface.dependencies[0]?.capability;
|
|
341
|
+
if (typeof first === "string" && first.length > 0) {
|
|
342
|
+
return first;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (surface.skillId && surface.skillId.length > 0) {
|
|
346
|
+
return surface.skillId.replace(/-/g, "_");
|
|
347
|
+
}
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Build a `() => MeshJobSubmitter | null` provider for the dispatcher.
|
|
352
|
+
* Memoizes the first successful construction; before that point (when
|
|
353
|
+
* `getApiRuntime().getServiceId()` is still empty) it logs once and
|
|
354
|
+
* returns `null` so the dispatcher can pass `null` through to the
|
|
355
|
+
* handler. The handler observes the null and surfaces a clear error —
|
|
356
|
+
* the same fallback path Java uses when MeshRuntime isn't yet
|
|
357
|
+
* available.
|
|
358
|
+
*
|
|
359
|
+
* The registry URL is resolved on first call (env-var lookup is cheap
|
|
360
|
+
* but we still avoid doing it per-request once we have a submitter).
|
|
361
|
+
*/
|
|
362
|
+
function buildJobSubmitterProvider(capability, path, skillId) {
|
|
363
|
+
let cached = null;
|
|
364
|
+
let warnedUnresolvable = false;
|
|
365
|
+
if (!capability) {
|
|
366
|
+
return () => {
|
|
367
|
+
if (!warnedUnresolvable) {
|
|
368
|
+
warnedUnresolvable = true;
|
|
369
|
+
console.warn(`mesh.a2a.mount(${path}): MeshJobSubmitter cannot be built — ` +
|
|
370
|
+
`no capability resolvable from dependencies[] or skillId='${skillId}'. ` +
|
|
371
|
+
`Handler's jobSubmitter arg will be null.`);
|
|
372
|
+
}
|
|
373
|
+
return null;
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
return () => {
|
|
377
|
+
if (cached !== null)
|
|
378
|
+
return cached;
|
|
379
|
+
let agentId;
|
|
380
|
+
try {
|
|
381
|
+
// getServiceId() may be missing in test fixtures that mock the
|
|
382
|
+
// api-runtime singleton with a partial object; treat that as
|
|
383
|
+
// "runtime not started yet" rather than a hard failure so the
|
|
384
|
+
// dispatcher's user-facing fallback (handler observes null
|
|
385
|
+
// jobSubmitter and surfaces a clear error) still fires.
|
|
386
|
+
const runtime = getApiRuntime();
|
|
387
|
+
agentId = typeof runtime.getServiceId === "function"
|
|
388
|
+
? runtime.getServiceId()
|
|
389
|
+
: undefined;
|
|
390
|
+
}
|
|
391
|
+
catch {
|
|
392
|
+
agentId = undefined;
|
|
393
|
+
}
|
|
394
|
+
if (!agentId) {
|
|
395
|
+
// api-runtime not yet started — handler observes null. Common on
|
|
396
|
+
// the very first tasks/send if the client races the agent's
|
|
397
|
+
// scheduled start; subsequent requests succeed.
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
// Match the original example's resolution path so users see the
|
|
401
|
+
// same behavior. process.env.MCP_MESH_REGISTRY_URL is the env var
|
|
402
|
+
// the SDK's resolveConfig("registry_url", ...) reads.
|
|
403
|
+
const registryUrl = process.env.MCP_MESH_REGISTRY_URL ?? "http://localhost:8000";
|
|
404
|
+
try {
|
|
405
|
+
cached = new MeshJobSubmitter(capability, agentId, registryUrl);
|
|
406
|
+
return cached;
|
|
407
|
+
}
|
|
408
|
+
catch (err) {
|
|
409
|
+
const msg = err?.message ?? String(err);
|
|
410
|
+
// Don't memoize transient construction failures — try again on
|
|
411
|
+
// the next request. The submitter constructor itself is currently
|
|
412
|
+
// trivial (no I/O until submit() fires) so failures here are rare.
|
|
413
|
+
if (!warnedUnresolvable) {
|
|
414
|
+
warnedUnresolvable = true;
|
|
415
|
+
console.warn(`mesh.a2a.mount(${path}): failed to construct MeshJobSubmitter ` +
|
|
416
|
+
`(capability='${capability}'): ${msg}`);
|
|
417
|
+
}
|
|
418
|
+
return null;
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=mount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../../../src/a2a/producer/mount.ts"],"names":[],"mappings":"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"}
|