sealbridge 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +43 -0
- package/README.ja.md +397 -0
- package/README.md +567 -1
- package/dist/cli/dist/acp.d.ts +2 -0
- package/dist/cli/dist/acp.js +6 -0
- package/dist/cli/dist/acp.js.map +1 -0
- package/dist/cli/dist/approval-summary.d.ts +2 -0
- package/dist/cli/dist/approval-summary.js +32 -0
- package/dist/cli/dist/approval-summary.js.map +1 -0
- package/dist/cli/dist/board.d.ts +47 -0
- package/dist/cli/dist/board.js +255 -0
- package/dist/cli/dist/board.js.map +1 -0
- package/dist/cli/dist/contacts.d.ts +18 -0
- package/dist/cli/dist/contacts.js +154 -0
- package/dist/cli/dist/contacts.js.map +1 -0
- package/dist/cli/dist/doctor.d.ts +13 -0
- package/dist/cli/dist/doctor.js +30 -0
- package/dist/cli/dist/doctor.js.map +1 -0
- package/dist/cli/dist/error-messages.d.ts +2 -0
- package/dist/cli/dist/error-messages.js +24 -0
- package/dist/cli/dist/error-messages.js.map +1 -0
- package/dist/cli/dist/index.d.ts +2 -0
- package/dist/cli/dist/index.js +194 -0
- package/dist/cli/dist/index.js.map +1 -0
- package/dist/cli/dist/invite-share.d.ts +16 -0
- package/dist/cli/dist/invite-share.js +163 -0
- package/dist/cli/dist/invite-share.js.map +1 -0
- package/dist/cli/dist/mcp.d.ts +17 -0
- package/dist/cli/dist/mcp.js +105 -0
- package/dist/cli/dist/mcp.js.map +1 -0
- package/dist/cli/dist/network.d.ts +1 -0
- package/dist/cli/dist/network.js +396 -0
- package/dist/cli/dist/network.js.map +1 -0
- package/dist/cli/dist/public-settings.d.ts +27 -0
- package/dist/cli/dist/public-settings.js +33 -0
- package/dist/cli/dist/public-settings.js.map +1 -0
- package/dist/cli/dist/receipt.d.ts +39 -0
- package/dist/cli/dist/receipt.js +90 -0
- package/dist/cli/dist/receipt.js.map +1 -0
- package/dist/cli/dist/receive-hook.d.ts +2 -0
- package/dist/cli/dist/receive-hook.js +35 -0
- package/dist/cli/dist/receive-hook.js.map +1 -0
- package/dist/cli/dist/task-input.d.ts +2 -0
- package/dist/cli/dist/task-input.js +19 -0
- package/dist/cli/dist/task-input.js.map +1 -0
- package/dist/cli/dist/wake-hook.d.ts +3 -0
- package/dist/cli/dist/wake-hook.js +32 -0
- package/dist/cli/dist/wake-hook.js.map +1 -0
- package/dist/examples/two-owner-demo/alice-policy.json +4 -0
- package/dist/examples/two-owner-demo/bob-policy.json +4 -0
- package/dist/examples/two-owner-demo/dist/run-demo.d.ts +71 -0
- package/dist/examples/two-owner-demo/dist/run-demo.js +383 -0
- package/dist/examples/two-owner-demo/dist/run-demo.js.map +1 -0
- package/dist/package.json +1 -0
- package/dist/packages/adapters/dist/command.d.ts +122 -0
- package/dist/packages/adapters/dist/command.js +378 -0
- package/dist/packages/adapters/dist/command.js.map +1 -0
- package/dist/packages/adapters/dist/credential-proxy.d.ts +37 -0
- package/dist/packages/adapters/dist/credential-proxy.js +363 -0
- package/dist/packages/adapters/dist/credential-proxy.js.map +1 -0
- package/dist/packages/adapters/dist/index.d.ts +6 -0
- package/dist/packages/adapters/dist/index.js +6 -0
- package/dist/packages/adapters/dist/index.js.map +1 -0
- package/dist/packages/adapters/dist/mcp.d.ts +32 -0
- package/dist/packages/adapters/dist/mcp.js +87 -0
- package/dist/packages/adapters/dist/mcp.js.map +1 -0
- package/dist/packages/adapters/dist/openai.d.ts +23 -0
- package/dist/packages/adapters/dist/openai.js +81 -0
- package/dist/packages/adapters/dist/openai.js.map +1 -0
- package/dist/packages/adapters/dist/sandbox.d.ts +45 -0
- package/dist/packages/adapters/dist/sandbox.js +60 -0
- package/dist/packages/adapters/dist/sandbox.js.map +1 -0
- package/dist/packages/core/dist/capability.d.ts +36 -0
- package/dist/packages/core/dist/capability.js +203 -0
- package/dist/packages/core/dist/capability.js.map +1 -0
- package/dist/packages/core/dist/contract.d.ts +33 -0
- package/dist/packages/core/dist/contract.js +97 -0
- package/dist/packages/core/dist/contract.js.map +1 -0
- package/dist/packages/core/dist/crypto.d.ts +34 -0
- package/dist/packages/core/dist/crypto.js +329 -0
- package/dist/packages/core/dist/crypto.js.map +1 -0
- package/dist/packages/core/dist/discovery.d.ts +129 -0
- package/dist/packages/core/dist/discovery.js +527 -0
- package/dist/packages/core/dist/discovery.js.map +1 -0
- package/dist/packages/core/dist/edge.d.ts +4 -0
- package/dist/packages/core/dist/edge.js +6 -0
- package/dist/packages/core/dist/edge.js.map +1 -0
- package/dist/packages/core/dist/index.d.ts +9 -0
- package/dist/packages/core/dist/index.js +10 -0
- package/dist/packages/core/dist/index.js.map +1 -0
- package/dist/packages/core/dist/receipts.d.ts +9 -0
- package/dist/packages/core/dist/receipts.js +67 -0
- package/dist/packages/core/dist/receipts.js.map +1 -0
- package/dist/packages/core/dist/relay-auth.d.ts +40 -0
- package/dist/packages/core/dist/relay-auth.js +106 -0
- package/dist/packages/core/dist/relay-auth.js.map +1 -0
- package/dist/packages/core/dist/revocation.d.ts +58 -0
- package/dist/packages/core/dist/revocation.js +112 -0
- package/dist/packages/core/dist/revocation.js.map +1 -0
- package/dist/packages/core/dist/schema.d.ts +11 -0
- package/dist/packages/core/dist/schema.js +48 -0
- package/dist/packages/core/dist/schema.js.map +1 -0
- package/dist/packages/core/dist/types.d.ts +172 -0
- package/dist/packages/core/dist/types.js +2 -0
- package/dist/packages/core/dist/types.js.map +1 -0
- package/dist/packages/ledger/dist/index.d.ts +84 -0
- package/dist/packages/ledger/dist/index.js +269 -0
- package/dist/packages/ledger/dist/index.js.map +1 -0
- package/dist/packages/relay/dist/fetch.d.ts +250 -0
- package/dist/packages/relay/dist/fetch.js +1401 -0
- package/dist/packages/relay/dist/fetch.js.map +1 -0
- package/dist/packages/relay/dist/index.d.ts +103 -0
- package/dist/packages/relay/dist/index.js +855 -0
- package/dist/packages/relay/dist/index.js.map +1 -0
- package/dist/packages/relay/dist/journal.d.ts +77 -0
- package/dist/packages/relay/dist/journal.js +339 -0
- package/dist/packages/relay/dist/journal.js.map +1 -0
- package/dist/packages/relay/dist/notifications.d.ts +63 -0
- package/dist/packages/relay/dist/notifications.js +55 -0
- package/dist/packages/relay/dist/notifications.js.map +1 -0
- package/dist/packages/relay/dist/retry.d.ts +12 -0
- package/dist/packages/relay/dist/retry.js +59 -0
- package/dist/packages/relay/dist/retry.js.map +1 -0
- package/dist/packages/relay/dist/ssrf.d.ts +32 -0
- package/dist/packages/relay/dist/ssrf.js +213 -0
- package/dist/packages/relay/dist/ssrf.js.map +1 -0
- package/dist/packages/relay/dist/worker.d.ts +92 -0
- package/dist/packages/relay/dist/worker.js +460 -0
- package/dist/packages/relay/dist/worker.js.map +1 -0
- package/dist/packages/runtime/dist/a2a.d.ts +8 -0
- package/dist/packages/runtime/dist/a2a.js +69 -0
- package/dist/packages/runtime/dist/a2a.js.map +1 -0
- package/dist/packages/runtime/dist/adapter.d.ts +51 -0
- package/dist/packages/runtime/dist/adapter.js +2 -0
- package/dist/packages/runtime/dist/adapter.js.map +1 -0
- package/dist/packages/runtime/dist/approval-providers.d.ts +99 -0
- package/dist/packages/runtime/dist/approval-providers.js +269 -0
- package/dist/packages/runtime/dist/approval-providers.js.map +1 -0
- package/dist/packages/runtime/dist/daily-limit.d.ts +2 -0
- package/dist/packages/runtime/dist/daily-limit.js +54 -0
- package/dist/packages/runtime/dist/daily-limit.js.map +1 -0
- package/dist/packages/runtime/dist/gateway.d.ts +35 -0
- package/dist/packages/runtime/dist/gateway.js +92 -0
- package/dist/packages/runtime/dist/gateway.js.map +1 -0
- package/dist/packages/runtime/dist/inbox.d.ts +10 -0
- package/dist/packages/runtime/dist/inbox.js +24 -0
- package/dist/packages/runtime/dist/inbox.js.map +1 -0
- package/dist/packages/runtime/dist/index.d.ts +13 -0
- package/dist/packages/runtime/dist/index.js +14 -0
- package/dist/packages/runtime/dist/index.js.map +1 -0
- package/dist/packages/runtime/dist/mcp-server.d.ts +90 -0
- package/dist/packages/runtime/dist/mcp-server.js +647 -0
- package/dist/packages/runtime/dist/mcp-server.js.map +1 -0
- package/dist/packages/runtime/dist/mcp-tool-catalog.d.ts +3 -0
- package/dist/packages/runtime/dist/mcp-tool-catalog.js +507 -0
- package/dist/packages/runtime/dist/mcp-tool-catalog.js.map +1 -0
- package/dist/packages/runtime/dist/mcp.d.ts +73 -0
- package/dist/packages/runtime/dist/mcp.js +67 -0
- package/dist/packages/runtime/dist/mcp.js.map +1 -0
- package/dist/packages/runtime/dist/policy.d.ts +19 -0
- package/dist/packages/runtime/dist/policy.js +41 -0
- package/dist/packages/runtime/dist/policy.js.map +1 -0
- package/dist/packages/runtime/dist/quota.d.ts +39 -0
- package/dist/packages/runtime/dist/quota.js +147 -0
- package/dist/packages/runtime/dist/quota.js.map +1 -0
- package/dist/packages/runtime/dist/session-audit.d.ts +107 -0
- package/dist/packages/runtime/dist/session-audit.js +520 -0
- package/dist/packages/runtime/dist/session-audit.js.map +1 -0
- package/dist/packages/runtime/dist/session-timeouts.d.ts +33 -0
- package/dist/packages/runtime/dist/session-timeouts.js +62 -0
- package/dist/packages/runtime/dist/session-timeouts.js.map +1 -0
- package/dist/packages/runtime/dist/session.d.ts +323 -0
- package/dist/packages/runtime/dist/session.js +2252 -0
- package/dist/packages/runtime/dist/session.js.map +1 -0
- package/dist/packages/runtime/dist/task-journal.d.ts +36 -0
- package/dist/packages/runtime/dist/task-journal.js +104 -0
- package/dist/packages/runtime/dist/task-journal.js.map +1 -0
- package/dist/packages/runtime/dist/verifier.d.ts +64 -0
- package/dist/packages/runtime/dist/verifier.js +109 -0
- package/dist/packages/runtime/dist/verifier.js.map +1 -0
- package/dist/packages/sandbox/dist/container.d.ts +33 -0
- package/dist/packages/sandbox/dist/container.js +189 -0
- package/dist/packages/sandbox/dist/container.js.map +1 -0
- package/dist/packages/sandbox/dist/index.d.ts +34 -0
- package/dist/packages/sandbox/dist/index.js +179 -0
- package/dist/packages/sandbox/dist/index.js.map +1 -0
- package/dist/packages/sandbox/dist/permission.d.ts +58 -0
- package/dist/packages/sandbox/dist/permission.js +90 -0
- package/dist/packages/sandbox/dist/permission.js.map +1 -0
- package/dist/spec/README.ja.md +76 -0
- package/dist/spec/README.md +135 -0
- package/dist/spec/ack-receipt.schema.json +77 -0
- package/dist/spec/agent-card.schema.json +83 -0
- package/dist/spec/approval-receipt.schema.json +94 -0
- package/dist/spec/audit-entry.schema.json +101 -0
- package/dist/spec/capability-token.schema.json +133 -0
- package/dist/spec/envelope.schema.json +197 -0
- package/dist/spec/examples/sample-ack-receipt.json +16 -0
- package/dist/spec/examples/sample-agent-card.json +35 -0
- package/dist/spec/examples/sample-approval-receipt.json +18 -0
- package/dist/spec/examples/sample-audit-entry.json +37 -0
- package/dist/spec/examples/sample-capability-token.json +39 -0
- package/dist/spec/examples/sample-envelope.json +21 -0
- package/dist/spec/examples/sample-task-manifest.json +141 -0
- package/dist/spec/examples/sample-usage-receipt.json +19 -0
- package/dist/spec/task-manifest.schema.json +422 -0
- package/dist/spec/usage-receipt.schema.json +91 -0
- package/package.json +61 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,EACN,yBAAyB,EACzB,UAAU,EACV,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAqDhE,MAAM,QAAS,SAAQ,KAAK;IAEf;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;IAIvB,CAAC;CACF;AAED,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,MAAM,eAAe,GAAG,mDAAmD,CAAC;AAC5E;;;GAGG;AACH,MAAM,mBAAmB,GACvB,s9BAAs9B,CAAC;AAEz9B,SAAS,QAAQ,CAAC,EAAW,EAAE,IAAY,EAAE,OAAe;IAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,UAAU,CAAC,KAAW,EAAE,OAAO,GAAG,KAAK;IAC9C,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO;KACR,CAAC;IACF,2EAA2E;IAC3E,iFAAiF;IACjF,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B;IACjD,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB;QAC3F,wBAAwB,EAAE,qBAAqB,CAAU,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC/C,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,IAA0B;IACjD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,IAA0B,EAC1B,iBAAsC;IAEtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,wBAAwB,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAA4B;IAClD,IAAI,OAAO,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,gBAAgB,CAAC;IAC9D,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE;YAChD,GAAG,EAAE,OAAO,CAAC,kBAAkB;YAC/B,KAAK,EAAE,OAAO,CAAC,sBAAsB;YACrC,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;QACvC,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE;YACvD,KAAK,EAAE,OAAO,CAAC,aAAa;YAC5B,MAAM,EAAE,OAAO,CAAC,cAAc;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,oGAAoG;AACpG,MAAM,OAAO,YAAY;IAMF;IALZ,UAAU,CAAqB;IACvB,cAAc,CAAuB;IACrC,aAAa,CAAuB;IACpC,QAAQ,CAAmB;IACpC,MAAM,CAAsB;IACpC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,kBAAkB;YAAE,wBAAwB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACrF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACnE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,OAAqB,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpE,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAU,EAAE,MAAM,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7D,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,2FAA2F;IAC3F,KAAK,CAAC,KAAK,CAAC,KAAe,EAAE,MAAgB;QAC3C,IAAI,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACO,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAgB;QAClD,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;oBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;qBACxD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;oBACvF,MAAM;YACb,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,SAAS,GAAG,CAAC;oBAAE,MAAM;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM;oBAAE,MAAM;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,OAAO,GAAG,CAAC;oBAAE,MAAM;gBACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3E,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,EAAE;oBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,KAAK,CAAC,KAAK,CAAC,MAAgB,EAAE,IAAY;QAChD,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IACO,KAAK,CAAC,MAAgB,EAAE,KAAW;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;;YAC3F,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IACO,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,MAAe;QACpD,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO;gBACL,eAAe,EAAE,gBAAgB;gBACjC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;gBAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE;gBAC/D,YAAY,EAAE,mBAAmB;aAClC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,2BAA2B;YAAE,OAAO,EAAE,CAAC;QACtD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjD,CAAC;IACO,KAAK,CAAC,SAAS,CAAC,MAAe;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3C,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA6B;QAChE,IAAI,IAAI,KAAK,mBAAmB;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,oBAAoB;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,IAAI,KAAK,yBAAyB;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,mBAAmB;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,IAAI,KAAK,sBAAsB;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,yBAAyB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC7C,CAAC;IACO,MAAM,CAAC,KAA0C;QACvD,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjD,OAAO,IAAI,eAAe,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,KAAK,EAAE,QAAQ;YACf,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;SAClD,CAAC,CAAC;IACL,CAAC;IACO,QAAQ,CAAC,KAAa;QAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IACO,WAAW,CAAC,KAAa;QAC/B,OAAO,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;YAClD,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;SAClD,CAAC,CAAC;IACL,CAAC;IACD,qDAAqD;IAC7C,YAAY,CAAC,MAA0B,EAAE,SAA6B;QAC5E,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtF,OAAO;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAChF,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD;;;;OAIG;IACK,YAAY,CAAC,QAAkB,EAAE,UAAoB;QAC3D,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAClD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvF,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1F,CAAC;IACO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,YAAY,0BAA0B,CAAC,CAAC;QAChF,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7F,CAAC;IACD,6EAA6E;IACrE,KAAK,CAAC,eAAe,CAAC,OAAa;QACzC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAAE,OAAO;QAC7C,MAAM,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C,MAAM;YACN,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;SACrC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACpF,CAAC;IACO,KAAK,CAAC,YAAY,CAAC,IAA6B;QACtD,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACpF,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC1D,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAClD,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACzE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAS;YACnC,OAAO,EAAE;gBACP;oBACE,SAAS,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;oBACjC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;oBAClC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;iBACnC;aACF;YACD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjG,CAAC,CAAC;QACH,MAAM,OAAO,GAAoB;YAC/B,GAAG,YAAY,CAAC,IAAI,CAAC;YACrB,EAAE;YACF,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACzE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAS;YACnC,YAAY,EAAE,IAAI,CAAC,YAAkC;YACrD,MAAM,EAAE,IAAI,CAAC,MAAyC;YACtD,qBAAqB,EACnB,OAAO,IAAI,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;SAC1F,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;gBACnC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;gBACjD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;IACO,KAAK,CAAC,aAAa,CAAC,IAA6B;QACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YAClF,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,KAAK;YAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAW,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;gBAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACrF,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAI,MAAM;gBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,SAAS;gBAC7C,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;gBAClC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;aACnC,CAAC,CAAC;YACH,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW;gBACX,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;aACpE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACzE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAS;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBACnC,CAAC,CAAC,IAAI,CAAC,UAAU;gBACjB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACnB,MAAM,OAAO,GAAyB;YACpC,GAAG,YAAY,CAAC,IAAI,CAAC;YACrB,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACzE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAS;YACnC,YAAY,EAAE,IAAI,CAAC,YAAkC;YACrD,MAAM,EAAE,IAAI,CAAC,MAAyC;YACtD,qBAAqB,EACnB,OAAO,IAAI,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;SAC1F,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrF,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAA0B;YAC1C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK;gBACxC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;gBACpC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;aACnD,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACO,SAAS,CAAC,QAAkB,EAAE,UAAoB;QACxD,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACO,YAAY,CAAC,IAA6B;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAqB,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAChE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/E,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAkC,CAAC;YACvD,oEAAoE;YACpE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;YAC7B,OAAO,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,MAAM;gBACZ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBACxD,CAAC,CAAE,MAAM,CAAC,MAA2B;oBACrC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACf,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAChE,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBACrF,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC/C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACrD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,OAAO,IAAI,CAAC,qBAAqB,KAAK,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;gBAC3F,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC/C,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC3D,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC1C,IACE,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ;gBAC3C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBAC9C,IAAI,CAAC,kBAAkB,GAAG,CAAC;gBAE3B,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC/C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACrD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnE,OAAO,MAAyB,CAAC;IACnC,CAAC;IACO,YAAY,CAAC,IAA6B;QAChD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5F,MAAM,IAAI,GAAG,qBAAqB,CAChC;YACE,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,mBAAmB,CAAC;YAC5F,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,QAAQ;YAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACjD,EACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CACxE,CAAC;QACF,MAAM,aAAa,GAA0D;YAC3E,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxF,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACzD,CAAC;QACD,OAAO;YACL,WAAW,EAAE,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAClE,CAAC;IACJ,CAAC;IACO,WAAW,CAAC,IAA6B;QAC/C,IACE,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC;YAClE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YACjC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAE/B,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,sBAAsB,CACnC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC7E,IAAI,CAAC,OAAO,CAAC,KAAK,CACnB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,MAAyB,EAAE,CAAC;IAC/C,CAAC;IACO,KAAK,CAAC,eAAe,CAAC,IAA6B;QACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAClE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC9B,wBAAwB,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5F,MAAM,SAAS,GACb,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACtF,CAAC,CAAC,QAAQ,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1E,OAAO;YACL,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACxD,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAA4B;oBACtC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBACvB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;oBACzC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACxC,MAAM,IAAI,GAA4B,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;wBACzE,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;4BAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;wBAChF,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC;oBACF,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;oBACnC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;oBACjC,SAAS,EAAE,IAAI,CAAC,SAA4B;iBAC7C,CAAC;gBACF,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;oBAC9B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAkC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IACO,kBAAkB,CAAC,IAA6B;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACpE,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY;YAC7E,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,IAAI,CAAC,UAAsC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,QAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAChE,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YACzE,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACjF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAA4B;YACtC,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,OAAO,EAAE,OAA0B;SACpC,CAAC;QACF,IAAI,UAAU,IAAI,QAAQ,KAAK,SAAS;YACtC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool catalog for {@link AcpMcpServer}.
|
|
3
|
+
* Every property description, annotation, and output schema is part of the
|
|
4
|
+
* contract clients and tool-quality reviewers read from `tools/list`.
|
|
5
|
+
*/
|
|
6
|
+
function described(description, schema) {
|
|
7
|
+
if (!schema || typeof schema !== 'object' || Array.isArray(schema))
|
|
8
|
+
return { description };
|
|
9
|
+
return { ...schema, description };
|
|
10
|
+
}
|
|
11
|
+
function objectSchema(description, properties, required) {
|
|
12
|
+
const schema = {
|
|
13
|
+
type: 'object',
|
|
14
|
+
additionalProperties: false,
|
|
15
|
+
description,
|
|
16
|
+
properties,
|
|
17
|
+
};
|
|
18
|
+
if (required && required.length > 0)
|
|
19
|
+
schema.required = required;
|
|
20
|
+
return schema;
|
|
21
|
+
}
|
|
22
|
+
function jsonValue(description) {
|
|
23
|
+
return {
|
|
24
|
+
description,
|
|
25
|
+
type: ['object', 'array', 'string', 'number', 'boolean', 'null'],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const signatureSchema = objectSchema('Ed25519 signature over the RFC 8785 JCS payload.', {
|
|
29
|
+
signerDid: described('did:key that produced this signature.', { type: 'string' }),
|
|
30
|
+
canonicalization: described('Canonicalization used before signing. Sealbridge signatures use RFC8785-JCS.', {
|
|
31
|
+
type: 'string',
|
|
32
|
+
enum: ['RFC8785-JCS'],
|
|
33
|
+
}),
|
|
34
|
+
payloadDigest: described('SHA-256 digest of the JCS payload that was signed.', { type: 'string' }),
|
|
35
|
+
signedAt: described('ISO-8601 timestamp when the signature was produced.', { type: 'string' }),
|
|
36
|
+
signature: described('Base64url-encoded Ed25519 signature bytes.', { type: 'string' }),
|
|
37
|
+
}, ['signerDid', 'canonicalization', 'payloadDigest', 'signedAt', 'signature']);
|
|
38
|
+
const auditBodySchema = objectSchema('Audit entry body. seq starts at 0 and prevEntryHash chains to the previous entry, or null for the first entry.', {
|
|
39
|
+
taskId: described('Task id shared by every entry in this bundle.', { type: 'string' }),
|
|
40
|
+
seq: described('Zero-based position of this entry in the bundle.', {
|
|
41
|
+
type: 'integer',
|
|
42
|
+
minimum: 0,
|
|
43
|
+
}),
|
|
44
|
+
prevEntryHash: described('Hash of the previous entry, or null on the first entry.', {
|
|
45
|
+
type: ['string', 'null'],
|
|
46
|
+
}),
|
|
47
|
+
actorDid: described('did:key of the party that appended this entry.', { type: 'string' }),
|
|
48
|
+
receiverDid: described('did:key of the counterparty that acknowledged this entry.', {
|
|
49
|
+
type: 'string',
|
|
50
|
+
}),
|
|
51
|
+
eventType: described('Protocol event name, such as PROPOSE, ACCEPT, PROGRESS, DELIVER, or SETTLED.', {
|
|
52
|
+
type: 'string',
|
|
53
|
+
}),
|
|
54
|
+
payload: jsonValue('JSON payload for this event. Shape depends on eventType.'),
|
|
55
|
+
}, ['taskId', 'seq', 'prevEntryHash', 'actorDid', 'receiverDid', 'eventType', 'payload']);
|
|
56
|
+
const ackPayloadSchema = objectSchema('Acknowledgement bound to one audit entry hash.', {
|
|
57
|
+
type: described('Always AckReceipt. This object acknowledges one audit entry hash.', {
|
|
58
|
+
type: 'string',
|
|
59
|
+
enum: ['AckReceipt'],
|
|
60
|
+
}),
|
|
61
|
+
taskId: described('Task id of the acknowledged entry.', { type: 'string' }),
|
|
62
|
+
entryHash: described('Hash of the audit entry this acknowledgement covers.', { type: 'string' }),
|
|
63
|
+
actorDid: described('did:key of the party that appended the entry.', { type: 'string' }),
|
|
64
|
+
receiverDid: described('did:key of the party that acknowledged the entry.', { type: 'string' }),
|
|
65
|
+
}, ['type', 'taskId', 'entryHash', 'actorDid', 'receiverDid']);
|
|
66
|
+
const auditEntrySchema = objectSchema('One countersigned audit entry. The hash chain and both signatures must verify.', {
|
|
67
|
+
body: auditBodySchema,
|
|
68
|
+
entryHash: described('JCS SHA-256 of body. The next entry stores this value as prevEntryHash.', {
|
|
69
|
+
type: 'string',
|
|
70
|
+
}),
|
|
71
|
+
actorSignature: signatureSchema,
|
|
72
|
+
counterSignature: objectSchema('Receiver acknowledgement. payload is the AckReceipt and signature is the receiver Ed25519 signature.', {
|
|
73
|
+
payload: ackPayloadSchema,
|
|
74
|
+
signature: signatureSchema,
|
|
75
|
+
}, ['payload', 'signature']),
|
|
76
|
+
}, ['body', 'entryHash', 'actorSignature', 'counterSignature']);
|
|
77
|
+
const checkpointPayloadSchema = objectSchema('Bilateral checkpoint covering the whole entry list.', {
|
|
78
|
+
type: described('Always AuditCheckpoint. This payload seals the full entry list.', {
|
|
79
|
+
type: 'string',
|
|
80
|
+
enum: ['AuditCheckpoint'],
|
|
81
|
+
}),
|
|
82
|
+
taskId: described('Task id bound into the checkpoint.', { type: 'string' }),
|
|
83
|
+
count: described('Number of audit entries. Must equal entries.length.', {
|
|
84
|
+
type: 'integer',
|
|
85
|
+
minimum: 0,
|
|
86
|
+
}),
|
|
87
|
+
head: described('Hash of the last entry, or null when entries is empty.', {
|
|
88
|
+
type: ['string', 'null'],
|
|
89
|
+
}),
|
|
90
|
+
actors: described('Ordered pair of distinct actor DIDs that countersigned the log.', {
|
|
91
|
+
type: 'array',
|
|
92
|
+
minItems: 2,
|
|
93
|
+
maxItems: 2,
|
|
94
|
+
items: described('One actor did:key. Order must match the checkpoint.', { type: 'string' }),
|
|
95
|
+
}),
|
|
96
|
+
}, ['type', 'taskId', 'count', 'head', 'actors']);
|
|
97
|
+
const signedCheckpointSchema = objectSchema('Checkpoint signed by one actor.', {
|
|
98
|
+
payload: checkpointPayloadSchema,
|
|
99
|
+
signature: signatureSchema,
|
|
100
|
+
}, ['payload', 'signature']);
|
|
101
|
+
const bundleSchema = objectSchema('Bilateral AuditBundle to verify offline. The server checks signatures and the hash chain locally and does not contact a relay.', {
|
|
102
|
+
entries: described('Ordered audit entries. An empty list cannot form a valid checkpoint.', {
|
|
103
|
+
type: 'array',
|
|
104
|
+
items: auditEntrySchema,
|
|
105
|
+
}),
|
|
106
|
+
checkpoint: objectSchema('Bilateral seal. actor signs the checkpoint, and receiver signs that signed checkpoint.', {
|
|
107
|
+
actor: signedCheckpointSchema,
|
|
108
|
+
receiver: objectSchema('Counter-signature over the actor signed checkpoint. payload equals checkpoint.actor.', {
|
|
109
|
+
payload: signedCheckpointSchema,
|
|
110
|
+
signature: signatureSchema,
|
|
111
|
+
}, ['payload', 'signature']),
|
|
112
|
+
}, ['actor', 'receiver']),
|
|
113
|
+
}, ['entries', 'checkpoint']);
|
|
114
|
+
const taskTimeoutProperties = {
|
|
115
|
+
executionTimeoutMs: { type: 'integer', minimum: 1000, maximum: 2147483647,
|
|
116
|
+
description: 'Execution wall-clock ceiling in milliseconds; whole seconds are proposed as the contract budget. Default budget: 60000 ms.' },
|
|
117
|
+
taskTimeoutMs: { type: 'integer', minimum: 1, maximum: 2147483647,
|
|
118
|
+
description: 'Overall task timeout including approval and settlement. Default 600000 ms.' },
|
|
119
|
+
waitTimeoutMs: { type: 'integer', minimum: 1, maximum: 2147483647,
|
|
120
|
+
description: 'Peer or owner approval wait phase timeout. Default 600000 ms.' },
|
|
121
|
+
connectTimeoutMs: { type: 'integer', minimum: 1, maximum: 2147483647,
|
|
122
|
+
description: 'Relay request/connect timeout. Default 45000 ms.' },
|
|
123
|
+
transportIdleTimeoutMs: { type: 'integer', minimum: 1, maximum: 2147483647,
|
|
124
|
+
description: 'Authenticated peer idle limit during execution. Default 90000 ms.' },
|
|
125
|
+
heartbeatIntervalMs: { type: 'integer', minimum: 1, maximum: 2147483647,
|
|
126
|
+
description: 'Expected worker heartbeat cadence for timeout compatibility checks. Default 15000 ms. Configure the worker separately.' },
|
|
127
|
+
};
|
|
128
|
+
const budgetSchema = objectSchema('Optional task quota. Omitted fields keep the manifest defaults: costBearer worker_byok, maxInputTokens 50000, maxOutputTokens 10000, maxToolInvocations 10, maxWallClockSeconds 60, and onOverrun hard_stop.', {
|
|
129
|
+
costBearer: described('Who accounts for model cost. Default worker_byok. Raw provider keys are never sent to the worker.', {
|
|
130
|
+
type: 'string',
|
|
131
|
+
enum: ['worker_byok', 'bilateral_quota', 'external_settlement_plugin'],
|
|
132
|
+
default: 'worker_byok',
|
|
133
|
+
}),
|
|
134
|
+
maxInputTokens: described('Maximum input tokens charged to the task before onOverrun. Default 50000.', {
|
|
135
|
+
type: 'integer',
|
|
136
|
+
minimum: 0,
|
|
137
|
+
maximum: 100000000,
|
|
138
|
+
default: 50000,
|
|
139
|
+
}),
|
|
140
|
+
maxOutputTokens: described('Maximum output tokens charged to the task before onOverrun. Default 10000.', {
|
|
141
|
+
type: 'integer',
|
|
142
|
+
minimum: 0,
|
|
143
|
+
maximum: 100000000,
|
|
144
|
+
default: 10000,
|
|
145
|
+
}),
|
|
146
|
+
maxToolInvocations: described('Maximum tool calls the worker may report before onOverrun. Default 10.', {
|
|
147
|
+
type: 'integer',
|
|
148
|
+
minimum: 0,
|
|
149
|
+
maximum: 100000,
|
|
150
|
+
default: 10,
|
|
151
|
+
}),
|
|
152
|
+
maxWallClockSeconds: described('Maximum wall-clock seconds for the task before onOverrun. Default 60.', {
|
|
153
|
+
type: 'integer',
|
|
154
|
+
minimum: 1,
|
|
155
|
+
maximum: 604800,
|
|
156
|
+
default: 60,
|
|
157
|
+
}),
|
|
158
|
+
onOverrun: described('What the worker does when a quota is exceeded. Default hard_stop. request_hitl_amendment asks for a budget change instead of stopping.', { type: 'string', enum: ['hard_stop', 'request_hitl_amendment'], default: 'hard_stop' }),
|
|
159
|
+
settlementExtension: described('Optional plugin metadata for off-protocol settlement. Omit it for ordinary worker_byok tasks. Keys are defined by that plugin.', { type: 'object', additionalProperties: true }),
|
|
160
|
+
});
|
|
161
|
+
const anchorSchema = objectSchema('Legacy trust anchor. Setting taskId, actors, or head checks log truncation. Do not contradict the same fact with expectedFinalState, expectedLastEntryHash, or expectedEntryCount.', {
|
|
162
|
+
taskId: described('Expected checkpoint taskId. A different id returns valid false.', {
|
|
163
|
+
type: 'string',
|
|
164
|
+
}),
|
|
165
|
+
actors: described('Expected ordered pair of distinct actor DIDs. Order must match the checkpoint.', {
|
|
166
|
+
type: 'array',
|
|
167
|
+
minItems: 2,
|
|
168
|
+
maxItems: 2,
|
|
169
|
+
items: described('One actor did:key in checkpoint order.', { type: 'string' }),
|
|
170
|
+
}),
|
|
171
|
+
head: described('Expected checkpoint head, the hash of the last entry. A shorter prefix fails this pin.', {
|
|
172
|
+
type: 'string',
|
|
173
|
+
}),
|
|
174
|
+
});
|
|
175
|
+
const workerTargetSchema = objectSchema('One remote worker. workerDid is always required. inviteToken authenticates that worker, and relayUrl overrides the call-level relay for this worker only.', {
|
|
176
|
+
workerDid: described('did:key of this worker. Required even when inviteToken is set. The allowlist checks workerDid only when inviteToken is omitted; an invite matches on its agentDid or ownerDid.', { type: 'string' }),
|
|
177
|
+
inviteToken: described('Optional acp-invite or acp://invite token for this worker. When set, its embedded relay URL is allowlisted before dialing and its agentDid or ownerDid satisfies allowedWorkerDids.', { type: 'string' }),
|
|
178
|
+
relayUrl: described('Optional relay URL for this worker. Normalized to origin plus pathname with no trailing slash and checked against allowedRelayUrls. Falls back to the call-level relayUrl, then the server relay.', { type: 'string' }),
|
|
179
|
+
}, ['workerDid']);
|
|
180
|
+
const taskInputSchema = jsonValue('JSON payload transmitted to the worker. Any JSON value is accepted, and an omitted value is sent as null. Do not include secrets, API keys, or private keys.');
|
|
181
|
+
const taskOutputSchema = described('JSON Schema object the worker deliverable must satisfy. Omit it to accept any JSON value. This is the task contract, separate from this tool result schema.', { type: 'object', additionalProperties: true });
|
|
182
|
+
const taskTitleSchema = described('Task title copied into the signed manifest. It must be 1 to 200 characters or the call fails with SCHEMA_VIOLATION.', { type: 'string', minLength: 1, maxLength: 200 });
|
|
183
|
+
const taskDescriptionSchema = described('Task detail copied into the manifest and shown to the worker. It must be 1 to 32768 characters. An omitted value is sent as an empty string and fails with SCHEMA_VIOLATION.', { type: 'string', minLength: 1, maxLength: 32768 });
|
|
184
|
+
const isolationSchema = described('Lowest sandbox the worker must attest. Omit it to keep subprocess_restricted, which is not kernel network isolation. Set oci_container for untrusted code; that level requires a network-none container and execution attestation.', {
|
|
185
|
+
type: 'string',
|
|
186
|
+
enum: ['subprocess_restricted', 'oci_container'],
|
|
187
|
+
default: 'subprocess_restricted',
|
|
188
|
+
});
|
|
189
|
+
const delegateRelaySchema = described('Relay dialed when the call does not rely on an invite or the configured server relay. Normalized to origin plus pathname with no trailing slash and rejected with MCP_RELAY_NOT_ALLOWED when it is outside allowedRelayUrls.', { type: 'string' });
|
|
190
|
+
const inviteTokenSchema = described('acp-invite or acp://invite token. When set, it identifies the worker instead of workerDid: allowedWorkerDids matches the invite agentDid or ownerDid, and the embedded relay URL must pass the relay allowlist. The dial target is relayUrl if set, otherwise the server relay, otherwise the invite relay.', { type: 'string' });
|
|
191
|
+
const workerDidSchema = described('Worker did:key used only when inviteToken is omitted. It must appear exactly in allowedWorkerDids when that allowlist is set, and relayUrl or the server relay selects the relay.', { type: 'string' });
|
|
192
|
+
const auditSummarySchema = objectSchema('Local verification of the bilateral audit bundle returned with the deliverable.', {
|
|
193
|
+
valid: described('True when the bundle signatures and hash chain verify.', { type: 'boolean' }),
|
|
194
|
+
status: described('VALID or INVALID from the audit verifier.', {
|
|
195
|
+
type: 'string',
|
|
196
|
+
enum: ['VALID', 'INVALID'],
|
|
197
|
+
}),
|
|
198
|
+
count: described('Number of audit entries in the bundle.', { type: 'integer', minimum: 0 }),
|
|
199
|
+
head: described('Checkpoint head hash, or null when the bundle has no entries.', {
|
|
200
|
+
type: ['string', 'null'],
|
|
201
|
+
}),
|
|
202
|
+
taskId: described('Task id of this worker session.', { type: 'string' }),
|
|
203
|
+
}, ['valid', 'status', 'count', 'head', 'taskId']);
|
|
204
|
+
const verificationReportSchema = objectSchema('Offline audit verification report. An invalid bundle is this report with valid false, not a tool error.', {
|
|
205
|
+
valid: described('True only when signatures, the hash chain, and any supplied anchor all match.', {
|
|
206
|
+
type: 'boolean',
|
|
207
|
+
}),
|
|
208
|
+
status: described('VALID or INVALID. INVALID is still a successful tool result.', {
|
|
209
|
+
type: 'string',
|
|
210
|
+
enum: ['VALID', 'INVALID'],
|
|
211
|
+
}),
|
|
212
|
+
statusLabel: described('VALID, INVALID, or VALID (no trust anchor: truncation not checked) when no anchor or expected tail field was supplied.', { type: 'string' }),
|
|
213
|
+
trustAnchorVerified: described('True when a supplied anchor or expected tail field matched the checkpoint.', {
|
|
214
|
+
type: 'boolean',
|
|
215
|
+
}),
|
|
216
|
+
truncationChecked: described('True when an anchor or expected tail field was supplied, including when that check failed.', { type: 'boolean' }),
|
|
217
|
+
reason: described('Present when valid is false. Explains the first check that failed.', {
|
|
218
|
+
type: 'string',
|
|
219
|
+
}),
|
|
220
|
+
}, ['valid', 'status', 'statusLabel', 'trustAnchorVerified', 'truncationChecked']);
|
|
221
|
+
const revocationPayloadSchema = objectSchema('RevocationNotice body signed by the server owner.', {
|
|
222
|
+
type: described('Always RevocationNotice. This body is the signed revocation record.', {
|
|
223
|
+
type: 'string',
|
|
224
|
+
enum: ['RevocationNotice'],
|
|
225
|
+
}),
|
|
226
|
+
revocationId: described('Unique id of this notice. A repeat revoke mints a new id.', {
|
|
227
|
+
type: 'string',
|
|
228
|
+
}),
|
|
229
|
+
issuerDid: described('did:key of the server owner that signed the notice.', { type: 'string' }),
|
|
230
|
+
targetType: described('invite revokes an invite digest. capability revokes a capability id.', {
|
|
231
|
+
type: 'string',
|
|
232
|
+
enum: ['invite', 'capability'],
|
|
233
|
+
}),
|
|
234
|
+
targetId: described('Invite revocation digest or capability id. For invites this is not the raw acp-invite string.', { type: 'string' }),
|
|
235
|
+
reason: described('Human-readable reason stored on the notice.', { type: 'string' }),
|
|
236
|
+
revokedAt: described('ISO-8601 time when the notice was signed.', { type: 'string' }),
|
|
237
|
+
}, ['type', 'revocationId', 'issuerDid', 'targetType', 'targetId', 'reason', 'revokedAt']);
|
|
238
|
+
const signedRevocationSchema = objectSchema('Signed RevocationNotice recorded in this server in-memory registry.', {
|
|
239
|
+
payload: revocationPayloadSchema,
|
|
240
|
+
signature: signatureSchema,
|
|
241
|
+
}, ['payload', 'signature']);
|
|
242
|
+
const skillSchema = objectSchema('One skill advertised on a signed agent card. description is omitted when the card has none.', {
|
|
243
|
+
id: described('Stable skill id from the agent card.', { type: 'string' }),
|
|
244
|
+
name: described('Human-readable skill name.', { type: 'string' }),
|
|
245
|
+
description: described('Skill detail from the card, present only when the publisher set one.', {
|
|
246
|
+
type: 'string',
|
|
247
|
+
}),
|
|
248
|
+
}, ['id', 'name']);
|
|
249
|
+
const discoveredWorkerSchema = objectSchema('Public projection of one signed agent card. The server has already verified the signature.', {
|
|
250
|
+
name: described('Display name from the agent card.', { type: 'string' }),
|
|
251
|
+
description: described('Card description published by the worker owner.', { type: 'string' }),
|
|
252
|
+
ownerDid: described('Owner did:key that signed the card.', { type: 'string' }),
|
|
253
|
+
agentDid: described('Agent did:key that will receive delegated tasks.', { type: 'string' }),
|
|
254
|
+
relayEndpoint: described('Relay URL embedded in the card.', { type: 'string' }),
|
|
255
|
+
expiresAt: described('ISO-8601 expiry after which the card must be rejected.', { type: 'string' }),
|
|
256
|
+
version: described('Card version string published by the worker.', { type: 'string' }),
|
|
257
|
+
costModes: described('Cost bearers the worker advertises, such as worker_byok.', {
|
|
258
|
+
type: 'array',
|
|
259
|
+
items: described('One advertised costBearer value.', { type: 'string' }),
|
|
260
|
+
}),
|
|
261
|
+
skills: described('Skills advertised on the card.', { type: 'array', items: skillSchema }),
|
|
262
|
+
signerDid: described('did:key that signed the card. Matches ownerDid for a valid card.', {
|
|
263
|
+
type: 'string',
|
|
264
|
+
}),
|
|
265
|
+
signedAt: described('ISO-8601 time when the card was signed.', { type: 'string' }),
|
|
266
|
+
signature: signatureSchema,
|
|
267
|
+
agentDelegation: described('Present only when agentDid differs from ownerDid. Signature by the agent key over the owner, agent, relay, and expiry.', signatureSchema),
|
|
268
|
+
}, [
|
|
269
|
+
'name',
|
|
270
|
+
'description',
|
|
271
|
+
'ownerDid',
|
|
272
|
+
'agentDid',
|
|
273
|
+
'relayEndpoint',
|
|
274
|
+
'expiresAt',
|
|
275
|
+
'version',
|
|
276
|
+
'costModes',
|
|
277
|
+
'skills',
|
|
278
|
+
'signerDid',
|
|
279
|
+
'signedAt',
|
|
280
|
+
'signature',
|
|
281
|
+
]);
|
|
282
|
+
function tool(options) {
|
|
283
|
+
return {
|
|
284
|
+
name: options.name,
|
|
285
|
+
title: options.title,
|
|
286
|
+
description: options.description,
|
|
287
|
+
inputSchema: options.inputSchema,
|
|
288
|
+
outputSchema: options.outputSchema,
|
|
289
|
+
annotations: {
|
|
290
|
+
title: options.title,
|
|
291
|
+
readOnlyHint: options.readOnlyHint,
|
|
292
|
+
destructiveHint: options.destructiveHint,
|
|
293
|
+
idempotentHint: options.idempotentHint,
|
|
294
|
+
openWorldHint: options.openWorldHint,
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
/** Tools returned by `tools/list`, in catalog order. */
|
|
299
|
+
export const mcpTools = [
|
|
300
|
+
tool({
|
|
301
|
+
name: 'acp_delegate_task',
|
|
302
|
+
title: 'Delegate one task',
|
|
303
|
+
description: 'Delegate one JSON task to a single remote Sealbridge worker and return the verified deliverable, taskId, status, and audit summary. Use acp_delegate_multi for race or quorum, and acp_verify_audit_bundle to check a bundle you already hold. Pass inviteToken, or workerDid plus relayUrl: an invite matches allowedWorkerDids on agentDid or ownerDid and embeds its relay, while a bare DID must be listed exactly. The server signs with its Ed25519 owner key, enforces worker and relay allowlists, and obtains approval before task input is transmitted externally over the relay; each call opens a new session and is not idempotent. Bad arguments are JSON-RPC -32602, and operational failure returns isError true with { error: CODE } without sending input.',
|
|
304
|
+
readOnlyHint: false,
|
|
305
|
+
destructiveHint: false,
|
|
306
|
+
idempotentHint: false,
|
|
307
|
+
openWorldHint: true,
|
|
308
|
+
inputSchema: objectSchema('Arguments for delegating one task to one worker.', {
|
|
309
|
+
relayUrl: delegateRelaySchema,
|
|
310
|
+
inviteToken: inviteTokenSchema,
|
|
311
|
+
workerDid: workerDidSchema,
|
|
312
|
+
title: taskTitleSchema,
|
|
313
|
+
description: taskDescriptionSchema,
|
|
314
|
+
input: taskInputSchema,
|
|
315
|
+
outputSchema: taskOutputSchema,
|
|
316
|
+
budget: budgetSchema,
|
|
317
|
+
...taskTimeoutProperties,
|
|
318
|
+
minimumIsolationLevel: isolationSchema,
|
|
319
|
+
}, ['title']),
|
|
320
|
+
outputSchema: objectSchema('Success payload in structuredContent. Operational failures use isError and do not use this shape.', {
|
|
321
|
+
taskId: described('Protocol task id of the opened session.', { type: 'string' }),
|
|
322
|
+
status: described('SETTLED when the deliverable verified, or CANCELLED when the session was cancelled.', {
|
|
323
|
+
type: 'string',
|
|
324
|
+
enum: ['SETTLED', 'CANCELLED'],
|
|
325
|
+
}),
|
|
326
|
+
deliverable: jsonValue('JSON value the worker returned after verification. Null when the session was cancelled.'),
|
|
327
|
+
auditBundle: auditSummarySchema,
|
|
328
|
+
}, ['taskId', 'status', 'deliverable', 'auditBundle']),
|
|
329
|
+
}),
|
|
330
|
+
tool({
|
|
331
|
+
name: 'acp_delegate_multi',
|
|
332
|
+
title: 'Delegate to multiple workers',
|
|
333
|
+
description: 'Delegate one JSON task to several remote Sealbridge workers and return the winning deliverable, output digest, task ids, and per-worker audit summaries. Use acp_delegate_task for a single worker; do not use this to mint invites or revoke tokens. mode race keeps the first verified deliverable and cancels the rest, while mode quorum waits until quorumSize workers agree on one output digest (default is floor of the worker count over 2, plus 1) or fails with QUORUM_NOT_REACHED. Each workers item needs workerDid and may include inviteToken or relayUrl; allowlists, Ed25519 signing, and outbound approval run before input is transmitted externally to the worker agents over the relay. The call is not idempotent, bad arguments are JSON-RPC -32602, and other failures return isError true with { error: CODE } and no partial deliverable.',
|
|
334
|
+
readOnlyHint: false,
|
|
335
|
+
destructiveHint: false,
|
|
336
|
+
idempotentHint: false,
|
|
337
|
+
openWorldHint: true,
|
|
338
|
+
inputSchema: objectSchema('Arguments for race or quorum delegation.', {
|
|
339
|
+
workers: described('Workers that each receive the same task. At least one entry is required.', { type: 'array', minItems: 1, items: workerTargetSchema }),
|
|
340
|
+
mode: described('race returns the first verified deliverable and cancels the other workers. quorum returns a deliverable only after enough workers produce the same output digest.', { type: 'string', enum: ['race', 'quorum'] }),
|
|
341
|
+
quorumSize: described('Agreement count used only when mode is quorum. Omit it to use floor of the worker count over 2, plus 1. Ignored when mode is race. The call fails with QUORUM_NOT_REACHED when that many matching digests are impossible.', { type: 'integer', minimum: 1 }),
|
|
342
|
+
relayUrl: delegateRelaySchema,
|
|
343
|
+
title: taskTitleSchema,
|
|
344
|
+
description: taskDescriptionSchema,
|
|
345
|
+
input: taskInputSchema,
|
|
346
|
+
outputSchema: taskOutputSchema,
|
|
347
|
+
budget: budgetSchema,
|
|
348
|
+
...taskTimeoutProperties,
|
|
349
|
+
minimumIsolationLevel: isolationSchema,
|
|
350
|
+
}, ['workers', 'mode', 'title']),
|
|
351
|
+
outputSchema: objectSchema('Success payload in structuredContent. Quorum or transport failure is isError rather than this object.', {
|
|
352
|
+
mode: described('race or quorum, matching the request.', {
|
|
353
|
+
type: 'string',
|
|
354
|
+
enum: ['race', 'quorum'],
|
|
355
|
+
}),
|
|
356
|
+
status: described('SETTLED when a winning verified deliverable was selected.', {
|
|
357
|
+
type: 'string',
|
|
358
|
+
enum: ['SETTLED'],
|
|
359
|
+
}),
|
|
360
|
+
deliverable: jsonValue('Winning JSON deliverable shared by the winning workers.'),
|
|
361
|
+
outputDigest: described('JCS SHA-256 of the winning deliverable.', { type: 'string' }),
|
|
362
|
+
taskIds: described('Task id of every worker session that was opened.', {
|
|
363
|
+
type: 'array',
|
|
364
|
+
items: described('Task id of one worker session opened for this delegation.', {
|
|
365
|
+
type: 'string',
|
|
366
|
+
}),
|
|
367
|
+
}),
|
|
368
|
+
winners: described('Workers whose verified output matched the winning digest.', {
|
|
369
|
+
type: 'array',
|
|
370
|
+
items: objectSchema('One worker included in the winning set.', {
|
|
371
|
+
workerDid: described('did:key of a winning worker.', { type: 'string' }),
|
|
372
|
+
taskId: described('Task id of that worker session.', { type: 'string' }),
|
|
373
|
+
outputDigest: described('JCS SHA-256 of that worker deliverable.', { type: 'string' }),
|
|
374
|
+
}, ['workerDid', 'taskId', 'outputDigest']),
|
|
375
|
+
}),
|
|
376
|
+
cancelled: described('Worker DIDs whose sessions were cancelled after a winner was chosen.', {
|
|
377
|
+
type: 'array',
|
|
378
|
+
items: described('did:key of a cancelled worker.', { type: 'string' }),
|
|
379
|
+
}),
|
|
380
|
+
auditBundles: described('Per-worker audit summary for every receipt the call collected.', {
|
|
381
|
+
type: 'array',
|
|
382
|
+
items: objectSchema('Audit summary for one worker receipt.', {
|
|
383
|
+
workerDid: described('did:key of the worker that produced this receipt.', { type: 'string' }),
|
|
384
|
+
taskId: described('Task id of that worker session.', { type: 'string' }),
|
|
385
|
+
outputDigest: described('JCS SHA-256 of that worker deliverable.', { type: 'string' }),
|
|
386
|
+
valid: described('True when that worker audit bundle verified.', { type: 'boolean' }),
|
|
387
|
+
count: described('Number of audit entries in that bundle.', {
|
|
388
|
+
type: 'integer',
|
|
389
|
+
minimum: 0,
|
|
390
|
+
}),
|
|
391
|
+
head: described('Checkpoint head of that bundle, or null when it has no entries.', {
|
|
392
|
+
type: ['string', 'null'],
|
|
393
|
+
}),
|
|
394
|
+
}, ['workerDid', 'taskId', 'outputDigest', 'valid', 'count', 'head']),
|
|
395
|
+
}),
|
|
396
|
+
}, [
|
|
397
|
+
'mode',
|
|
398
|
+
'status',
|
|
399
|
+
'deliverable',
|
|
400
|
+
'outputDigest',
|
|
401
|
+
'taskIds',
|
|
402
|
+
'winners',
|
|
403
|
+
'cancelled',
|
|
404
|
+
'auditBundles',
|
|
405
|
+
]),
|
|
406
|
+
}),
|
|
407
|
+
tool({
|
|
408
|
+
name: 'acp_verify_audit_bundle',
|
|
409
|
+
title: 'Verify an audit bundle',
|
|
410
|
+
description: 'Verify one bilateral AuditBundle locally and return valid, status, statusLabel, trustAnchorVerified, and truncationChecked. Use this for a bundle you already hold; use acp_delegate_task or acp_delegate_multi to produce one. With no anchor, expectedFinalState, expectedLastEntryHash, or expectedEntryCount, a valid chain is labeled VALID (no trust anchor: truncation not checked) and an older prefix is not ruled out. Any of those pins checks the tail: a match sets trustAnchorVerified and truncationChecked, and a truncated bundle returns valid false with status INVALID in the report rather than isError. The check is read-only, idempotent, and offline, and bad arguments are JSON-RPC -32602.',
|
|
411
|
+
readOnlyHint: true,
|
|
412
|
+
destructiveHint: false,
|
|
413
|
+
idempotentHint: true,
|
|
414
|
+
openWorldHint: false,
|
|
415
|
+
inputSchema: objectSchema('Bundle plus optional tail pins. Supplying any pin enables truncation checks.', {
|
|
416
|
+
bundle: bundleSchema,
|
|
417
|
+
anchor: anchorSchema,
|
|
418
|
+
expectedFinalState: described('Event type required on the last audit entry, such as SETTLED. Setting it checks the tail, and a mismatch returns valid false.', { type: 'string' }),
|
|
419
|
+
expectedLastEntryHash: described('Entry hash required on the last audit entry. It equals the checkpoint head of a complete log, and a shorter prefix fails.', { type: 'string' }),
|
|
420
|
+
expectedEntryCount: described('Entry count required on the checkpoint. Setting it rejects a log whose length differs, including a truncated prefix.', { type: 'integer', minimum: 0 }),
|
|
421
|
+
}, ['bundle']),
|
|
422
|
+
outputSchema: verificationReportSchema,
|
|
423
|
+
}),
|
|
424
|
+
tool({
|
|
425
|
+
name: 'acp_create_invite',
|
|
426
|
+
title: 'Create an invite token',
|
|
427
|
+
description: 'Sign an acp-invite token for this server owner and return it for a requester to pass to acp_delegate_task. Use this to mint a shareable invite, use acp_revoke_token to invalidate one, and use acp_discover_workers to list registered workers instead of guessing a DID. relayUrl is required and is embedded in the token, name defaults to the server name or Sealbridge Worker, expiresInSeconds defaults to 3600 and must be an integer from 1 to 2592000, and agentDid defaults to the owner DID. A different agentDid is signed only when this server holds that agent key; otherwise the call fails with AGENT_DELEGATION_REQUIRED. Signing is local Ed25519 with no relay traffic, each call mints a distinct token so it is not idempotent, and bad arguments are JSON-RPC -32602 while other failures return isError true with { error: CODE }.',
|
|
428
|
+
readOnlyHint: false,
|
|
429
|
+
destructiveHint: false,
|
|
430
|
+
idempotentHint: false,
|
|
431
|
+
openWorldHint: false,
|
|
432
|
+
inputSchema: objectSchema('Arguments for minting one acp-invite token.', {
|
|
433
|
+
relayUrl: described('Relay URL embedded in the invite and the signed agent card. Required. The token does not contact this URL.', { type: 'string' }),
|
|
434
|
+
name: described('Display name stored on the signed agent card inside the invite. Defaults to the server name, or Sealbridge Worker when the server has no name.', { type: 'string' }),
|
|
435
|
+
expiresInSeconds: described('Invite lifetime in seconds. Defaults to 3600 when omitted. Values outside the integers 1 through 2592000 fail with INVALID_INVITE_EXPIRY.', { type: 'integer', minimum: 1, maximum: 2592000, default: 3600 }),
|
|
436
|
+
agentDid: described('did:key placed on the invite. Defaults to the server owner. A different DID requires agentKey on the server and fails with AGENT_DELEGATION_REQUIRED when that key is missing.', { type: 'string' }),
|
|
437
|
+
}, ['relayUrl']),
|
|
438
|
+
outputSchema: objectSchema('Success payload in structuredContent. The token embeds the public card and relay URL, not a private key.', {
|
|
439
|
+
inviteToken: described('Signed acp-invite token to share with a requester. Pass it to acp_delegate_task as inviteToken.', { type: 'string' }),
|
|
440
|
+
}, ['inviteToken']),
|
|
441
|
+
}),
|
|
442
|
+
tool({
|
|
443
|
+
name: 'acp_revoke_token',
|
|
444
|
+
title: 'Revoke an invite or capability',
|
|
445
|
+
description: 'Sign a RevocationNotice with this server owner key and store it in the in-memory registry, returning the signed notice. Use this to invalidate an invite or capability, use acp_inspect_revocations to read that registry, and use acp_create_invite to mint a replacement. targetType invite expects targetId to be the invite revocation digest, while targetType capability expects the capability id, and reason is required text stored on the notice. Repeating a call replaces the stored notice, so it is not idempotent, but the target remains revoked, and the notice is not sent to a worker inbox. Bad arguments are JSON-RPC -32602, and other failures return isError true with { error: CODE }.',
|
|
446
|
+
readOnlyHint: false,
|
|
447
|
+
destructiveHint: true,
|
|
448
|
+
idempotentHint: false,
|
|
449
|
+
openWorldHint: false,
|
|
450
|
+
inputSchema: objectSchema('Arguments for recording one local revocation.', {
|
|
451
|
+
targetType: described('invite revokes an invite whose targetId is the JCS digest of the verified invite. capability revokes a capability id. The two id spaces are not interchangeable.', { type: 'string', enum: ['invite', 'capability'] }),
|
|
452
|
+
targetId: described('Identifier to revoke. For targetType invite, pass the invite revocation digest, not the raw acp-invite string. For targetType capability, pass the capability id.', { type: 'string' }),
|
|
453
|
+
reason: described('Required reason stored on the signed notice and returned by acp_inspect_revocations.', {
|
|
454
|
+
type: 'string',
|
|
455
|
+
}),
|
|
456
|
+
}, ['targetType', 'targetId', 'reason']),
|
|
457
|
+
outputSchema: objectSchema('Success payload in structuredContent. The notice is stored only in this process.', { notice: signedRevocationSchema }, ['notice']),
|
|
458
|
+
}),
|
|
459
|
+
tool({
|
|
460
|
+
name: 'acp_discover_workers',
|
|
461
|
+
title: 'Discover registered workers',
|
|
462
|
+
description: 'List signed agent cards on a Blind Relay and return each card\'s public name, DIDs, skills, endpoint, expiry, and signature. Use this to choose a worker before acp_delegate_task or acp_delegate_multi, and do not use it to register or edit cards. relayUrl is optional when the server has a relay; it is normalized and must satisfy allowedRelayUrls or the call fails with MCP_RELAY_NOT_ALLOWED before any request. The tool is a read-only directory fetch that verifies card signatures, sends no task input, and does not ask for delegation approval. It is idempotent, bad arguments are JSON-RPC -32602, and transport failures return isError true with { error: CODE }.',
|
|
463
|
+
readOnlyHint: true,
|
|
464
|
+
destructiveHint: false,
|
|
465
|
+
idempotentHint: true,
|
|
466
|
+
openWorldHint: true,
|
|
467
|
+
inputSchema: objectSchema('Arguments for reading one relay agent directory.', {
|
|
468
|
+
relayUrl: described('Directory relay to query. Omit it to use the server relay. Normalized to origin plus pathname with no trailing slash and rejected with MCP_RELAY_NOT_ALLOWED when it is outside allowedRelayUrls. Private and loopback relays stay blocked unless the server was started with allowPrivateRelay.', { type: 'string' }),
|
|
469
|
+
}),
|
|
470
|
+
outputSchema: objectSchema('Success payload in structuredContent. Cards that fail signature checks raise INVALID_AGENT_CARD instead of appearing here.', {
|
|
471
|
+
relayUrl: described('Relay URL that was queried, or null when the server relay is an in-memory transport with no URL.', { type: ['string', 'null'] }),
|
|
472
|
+
count: described('Number of verified cards returned in workers.', {
|
|
473
|
+
type: 'integer',
|
|
474
|
+
minimum: 0,
|
|
475
|
+
}),
|
|
476
|
+
workers: described('Verified agent cards. Delegation still enforces allowedWorkerDids separately.', {
|
|
477
|
+
type: 'array',
|
|
478
|
+
items: discoveredWorkerSchema,
|
|
479
|
+
}),
|
|
480
|
+
}, ['relayUrl', 'count', 'workers']),
|
|
481
|
+
}),
|
|
482
|
+
tool({
|
|
483
|
+
name: 'acp_inspect_revocations',
|
|
484
|
+
title: 'Inspect revocation notices',
|
|
485
|
+
description: 'List RevocationNotices in this server process and return the matches, a count, and whether one target is revoked. Use this to read local revocation state, use acp_revoke_token to add a notice, and do not treat the result as proof that a remote worker has ingested it. Omit both filters to export every notice, pass targetType alone to filter by invite or capability, or pass both targetType and targetId to include revoked. targetId is the same identifier acp_revoke_token stores, not the raw acp-invite string, and an unknown pair returns revoked false. The read is local, idempotent, and side-effect free; bad arguments are JSON-RPC -32602.',
|
|
486
|
+
readOnlyHint: true,
|
|
487
|
+
destructiveHint: false,
|
|
488
|
+
idempotentHint: true,
|
|
489
|
+
openWorldHint: false,
|
|
490
|
+
inputSchema: objectSchema('Optional filters for the in-memory revocation registry. targetId requires targetType.', {
|
|
491
|
+
targetType: described('Optional invite or capability filter. Omit it together with targetId to list every notice. Required when targetId is set.', { type: 'string', enum: ['invite', 'capability'] }),
|
|
492
|
+
targetId: described('Optional target paired with targetType. For an invite this is the revocation digest, not the raw acp-invite string. For a capability this is the capability id. Passing it without targetType is JSON-RPC -32602.', { type: 'string' }),
|
|
493
|
+
}),
|
|
494
|
+
outputSchema: objectSchema('Success payload in structuredContent. revoked is present only when both filters were supplied.', {
|
|
495
|
+
count: described('Number of notices in this result after filtering.', {
|
|
496
|
+
type: 'integer',
|
|
497
|
+
minimum: 0,
|
|
498
|
+
}),
|
|
499
|
+
revoked: described('True when both filters were supplied and that target is in the registry. False for an unknown pair. Omitted when either filter was omitted.', { type: 'boolean' }),
|
|
500
|
+
notices: described('Signed notices that matched the filter, newest replacement included when a target was revoked twice.', {
|
|
501
|
+
type: 'array',
|
|
502
|
+
items: signedRevocationSchema,
|
|
503
|
+
}),
|
|
504
|
+
}, ['count', 'notices']),
|
|
505
|
+
}),
|
|
506
|
+
];
|
|
507
|
+
//# sourceMappingURL=mcp-tool-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-catalog.js","sourceRoot":"","sources":["../src/mcp-tool-catalog.ts"],"names":[],"mappings":"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"}
|