chainlesschain 0.163.7 → 0.163.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/assets/web-panel/assets/{AIOps-axqQfwv8.js → AIOps-CavM7W3k.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DV-Ro0By.js → ActionButton-CUvZGabQ.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Bt72WEVu.js → Analytics-DeBnWnbe.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BtepG55E.js → AppLayout-DbI5kxvd.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-B7KaJ7S_.js → Artifacts-D93bigKm.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-FNFaUg7A.js → Audit-CBNvfUZa.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-DFb6J2wQ.js → BackgroundAgents-CJLyh_YU.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CC7YBhyj.js → Backup-D_0yoehD.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-RkgTNVtj.js → BaseInput-TJxmbObW.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-hHEmGZy-.js → Chat-CE0dto1q.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CAP9YhHv.js → ChatBubbleRenderer-CZ5-yYiD.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-z5wXOQP1.js → Checkbox-Ck1RVIVo.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DVaDJnxy.js → Codegen-qpoyf6DK.js} +1 -1
- package/src/assets/web-panel/assets/{Col-CJmaRDR5.js → Col-DUyPWjIE.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DF29_2bI.js → Community-D_S1BemS.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DtkQkBzn.js → Compact-BjxeK-Gc.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-xoHDxp7I.js → Compliance-Dd3CEJsu.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BUm-R7ht.js → Cowork-B4QG7-ad.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-Cgl14ZkB.js → Cron-BtZnids5.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BNcbmoqh.js → Crosschain-CHPfCBFD.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Bwja0Zo9.js → DID-DT8DCEOK.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-Bk5XjEdJ.js → Dashboard-COQab5_U.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-Ci36Oitq.js → Dropdown-BY1PsQuU.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer--U04ZN4q.js → EmailListRenderer-CsuAuaq3.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-B2gNPR2s.js → FamilyGuardDashboard-BqpinD-j.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-C4KghYn7.js → Federation-D0gkfQFv.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-QL7x_Q_0.js → FormItemContext-BqgE-axK.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-F3Ryltwm.js → GenericCardRenderer-D0hJ2KvC.js} +1 -1
- package/src/assets/web-panel/assets/{Git-2HassK5k.js → Git-CmMB0uPY.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-DoBIp7oe.js → Governance-BnVEI0Dk.js} +1 -1
- package/src/assets/web-panel/assets/{Inference--W01QhZ-.js → Inference-YTAMihRP.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DmvwqGpT.js → KnowledgeGraph-0ax7VHop.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-BBJ4yAel.js → Logs-B9TRcokL.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-yySN5YNM.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-D5lNngSI.js → Marketplace-B6CSuD_H.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CkEVOMKH.js → McpTools-CjMXvOVU.js} +4 -4
- package/src/assets/web-panel/assets/{Memory-B1Ow1xVE.js → Memory-CXRF71U3.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-SgYbUfb6.js → MobileBridge-DQgNp_oS.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-BWdOvQAj.js → MobileProjects-DlPwcCbq.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-DcTXSSma.js → Mtc-6hDTRPe1.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-Dt3WG4oj.js → MtcAudit-BlVHU1DS.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-B9B38UZx.js → Multisig-DP9pzEbV.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-B0S4GGvG.js → NLProgramming-Djorh8EV.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DZ5U58Ng.js → Notes-oLZ-JkUg.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-PjL5ZW34.js → NotificationSettings-Cg288VH3.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-DrAX2ESt.js → OrderTableRenderer-Bb1O3Ofr.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-Cv1GYs-c.js → Organization-CBdo-bHs.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Bbkp_PL3.js → Overflow-qZdnVumx.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BD8QUgoZ.js → P2P-D4kNfGNQ.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-BO-2PeaB.js → PdhVaultBrowser-DnlMemM7.js} +5 -5
- package/src/assets/web-panel/assets/{Permissions-D_OPVa02.js → Permissions-DHucHFBJ.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-mh-pEmaB.js → PersonalDataHub-BovlOIPR.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-6JC2EDdb.js → Pipeline-Deru3CQY.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-CUshzUAG.js → Privacy-Bq5oTTbU.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-Cs2Aalri.js → ProjectInit-BfzxVWAz.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-1ak49tcj.js → ProjectSettings-CKC6XBtH.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BV4oApsm.js → Projects-CMolGhae.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-CXXxvafH.js → Providers-C_jx4TWX.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-PTcDsF58.js → QrScannerModal-BdIHeVGC.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CDwucrJw.js → QuickAsk-BwZwAcPD.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CJlLVRXR.js → Recommend-BNTt0L-m.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DlN-ETsO.js → RemoteSession-Biyn2-Ro.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-DI23LR6m.js → Reputation-D6VpG32B.js} +1 -1
- package/src/assets/web-panel/assets/{Row-Cl7UQMrM.js → Row-D_74OvQQ.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CexHNfh8.js → RssFeed-BTr0a-BQ.js} +3 -3
- package/src/assets/web-panel/assets/{Search-BneBWvRN.js → Search-C3MCFoNU.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DX7Phgrp.js → Security-CqW9aJ6s.js} +4 -4
- package/src/assets/web-panel/assets/{Services-BWXO8Mte.js → Services-Cw5GNaHF.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-DCyOjKPJ.js → Skeleton-DZps5qeY.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CXqERsTB.js → Skills-C6NQ1znT.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-bhbrbz8E.js → Sla-DFP8G2Sh.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-3IPU0HBZ.js → SpeechSettings-ESt6MB6v.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-DBNTQLbM.js → SyncSettings-BHnN98aM.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-quP0bkN-.js → Tasks-NiSCaOf-.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BouWmgho.js → Templates-DsKFhW2C.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-qv0D9s7z.js → Tenant-CQ0E0ze5.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-BxvbE8BB.js → Terminal-D_rBu_by.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-D-IeLnJ2.js → TimelineRenderer-D3Vm4Po4.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-CFMKKyVG.js → Tokens-DNTxRH6q.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-L8as3UuJ.js → Trigger-Dgprz1ms.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-MxmA4VZG.js → Trust-B2rUnVBD.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-C0VvJYRi.js → UkeySign-DEGQNc6_.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Bf5QZj8N.js → VideoEditing-jlsAx3Eh.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-BIJ9riRz.js → Wallet-8jQih1ij.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-B8p9Mhkw.js → WebAuthn-XLeO6xIB.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-BVsuaPen.js → WorkflowEditor-De_dgDAG.js} +1 -1
- package/src/assets/web-panel/assets/{chat-BfkjoKpV.js → chat-CI19R_Sk.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DeAlsWK8.js → colors-DsYTOYN3.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Cs97bz5j.js → compact-item-CM3-t_Qr.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BqbG60LH.js → createContext-BjxlBRZv.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-S1ld2LwU.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-i_RY0b1X.js → hasIn-RDaWX_4i.js} +1 -1
- package/src/assets/web-panel/assets/{index-U4f5izHz.js → index-9R6BxAr0.js} +1 -1
- package/src/assets/web-panel/assets/{index-0-agYlWL.js → index-B-Z8eFUJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1CbOH1i.js → index-B0PMlbMs.js} +1 -1
- package/src/assets/web-panel/assets/{index-DqBgBpgp.js → index-B5REnKt8.js} +1 -1
- package/src/assets/web-panel/assets/{index-BcUXAB2s.js → index-B7WBt_4T.js} +1 -1
- package/src/assets/web-panel/assets/{index-CIG8fQ2_.js → index-B9O9YyWE.js} +1 -1
- package/src/assets/web-panel/assets/{index-gyFpvL7l.js → index-BCnZyIMA.js} +1 -1
- package/src/assets/web-panel/assets/{index-yObj1O4n.js → index-BGqqJfL0.js} +1 -1
- package/src/assets/web-panel/assets/{index-DiSkx4UB.js → index-BHNYPO0b.js} +3 -3
- package/src/assets/web-panel/assets/{index-Bm7lLR4c.js → index-BKJr-TZp.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOVkf1K3.js → index-BN6UPD2E.js} +1 -1
- package/src/assets/web-panel/assets/{index-BESLFt4q.js → index-Bi46Xu4u.js} +1 -1
- package/src/assets/web-panel/assets/{index-CE2VtTlp.js → index-BlT2VAEK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DmbfhJUP.js → index-C0yx-jtQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYUVuwKt.js → index-C4gkzxkw.js} +1 -1
- package/src/assets/web-panel/assets/{index-CeWoNHau.js → index-CVQMeiwH.js} +1 -1
- package/src/assets/web-panel/assets/{index-PT_5sBMA.js → index-Cd3euP_4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CgsqdnRV.js → index-Cd9OJhHG.js} +1 -1
- package/src/assets/web-panel/assets/{index-B-3tEpTc.js → index-CiECJi-Q.js} +1 -1
- package/src/assets/web-panel/assets/{index-BkBi5TmC.js → index-CjTrRt13.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2B4VPyP.js → index-CnHH7bnD.js} +1 -1
- package/src/assets/web-panel/assets/{index-dIHr4B_u.js → index-Cpqm1qfU.js} +1 -1
- package/src/assets/web-panel/assets/{index-B5UkyA3c.js → index-CyOGN6a5.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dk7-v4hP.js → index-D0zcy54x.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZxO_-E8a.js → index-D6sm5-Xq.js} +1 -1
- package/src/assets/web-panel/assets/{index-B-JVTrpr.js → index-DIUnNOjG.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dk2qouAz.js → index-DX7tuWVJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BuLQobzW.js → index-DXXtGMUJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DUUrv141.js → index-DcPFB8qJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-D9evtvg2.js → index-DoQA0-52.js} +1 -1
- package/src/assets/web-panel/assets/{index-COdGA-8n.js → index-Drlnwr8F.js} +1 -1
- package/src/assets/web-panel/assets/index-Drz6yq0m.js +1 -0
- package/src/assets/web-panel/assets/{index-CED2PL_y.js → index-Dsij_KsN.js} +1 -1
- package/src/assets/web-panel/assets/{index-79V_zv1s.js → index-Dxge-xWl.js} +1 -1
- package/src/assets/web-panel/assets/{index-CG3PRyAL.js → index-DyIWssPC.js} +1 -1
- package/src/assets/web-panel/assets/{index-YXgLng0K.js → index-IeiL9RKc.js} +1 -1
- package/src/assets/web-panel/assets/{index-s1opAL-M.js → index-nAH87mQP.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cf3WCLmy.js → index-pPL66J85.js} +1 -1
- package/src/assets/web-panel/assets/index-uWiUs7S_.js +1 -0
- package/src/assets/web-panel/assets/{initDefaultProps-C9h9yKL3.js → initDefaultProps-BTL88of4.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BvmLsPdu.js → motion-BUB2pXwB.js} +1 -1
- package/src/assets/web-panel/assets/{move-CoL4ekU1.js → move-egCkkOMm.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-C4pMy6xV.js → mtc-parser-DAWhZC8c.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DPuJfNxx.js → omit-CvOxe_6d.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-D0KEeaK2.js → pickAttrs-DZUSLZ5Z.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-BpkyINxt.js → placementArrow-BERxGNMY.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DQI_wOq8.js → responsiveObserve-DZuDfZ9n.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DYfdDiRg.js → slide-DO756sgI.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-B5dtvb0D.js → statusUtils-BRQlIz28.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CF310mSj.js → styleChecker-DCSfdybl.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-D1Qp4BLp.js → useFlexGapSupport-LD8dWVve.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-C7_iyvJK.js → useFs-BX9uW2LK.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DZUt_fIm.js → usePersonalDataHub-BPSlPuHU.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-D3dsi0lZ.js → vnode-BmOILC9V.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-WdbOlvdQ.js → zoom-1iKowKGg.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +3 -3
- package/src/commands/automation.js +103 -1
- package/src/commands/team-merge-review.js +937 -0
- package/src/commands/team.js +2 -0
- package/src/data/changelog.json +14 -1
- package/src/lib/agent-schedule-store.js +139 -28
- package/src/lib/agent-team/team-merge-review-store.js +765 -0
- package/src/lib/agent-team/team-merge-review-transaction.js +1223 -0
- package/src/lib/agent-team/team-merge-review.js +1847 -0
- package/src/lib/automation-center-incidents.js +314 -0
- package/src/lib/automation-center-runtime.js +448 -0
- package/src/lib/automation-center.js +182 -38
- package/src/lib/automation-engine.js +41 -0
- package/src/lib/automation-execution-authority.js +241 -12
- package/src/lib/automation-execution-incident.js +737 -0
- package/src/lib/cowork-cron.js +85 -14
- package/src/lib/scheduler-kernel/agenda-adapter.js +17 -7
- package/src/lib/scheduler-kernel/automation-adapter.js +105 -11
- package/src/lib/scheduler-kernel/automation-event-adapter.js +87 -11
- package/src/lib/scheduler-kernel/contract.js +91 -0
- package/src/lib/scheduler-kernel/cowork-cron-adapter.js +12 -1
- package/src/lib/scheduler-kernel/loop-adapter.js +7 -1
- package/src/lib/scheduler-kernel/routine-adapter.js +7 -1
- package/src/lib/scheduler-kernel/runtime-control-capabilities.js +31 -0
- package/src/lib/scheduler-kernel/runtime.js +176 -3
- package/src/lib/scheduler-kernel/store.js +1253 -45
- package/src/runtime/agent-core.js +10 -0
- package/src/runtime/mcp-config.js +81 -10
- package/src/assets/web-panel/assets/MarkdownRenderer-BLCZMzhJ.js +0 -1
- package/src/assets/web-panel/assets/devWarning-DPty0mGN.js +0 -1
- package/src/assets/web-panel/assets/index-Bt7g0Vq_.js +0 -1
- package/src/assets/web-panel/assets/index-ChVT0p9u.js +0 -1
|
@@ -6873,6 +6873,16 @@ async function executeToolInner(
|
|
|
6873
6873
|
});
|
|
6874
6874
|
}
|
|
6875
6875
|
try {
|
|
6876
|
+
if (localToolExecutor.op === "list-templates") {
|
|
6877
|
+
const resourceTemplates =
|
|
6878
|
+
typeof mcpClient.listResourceTemplates === "function"
|
|
6879
|
+
? mcpClient.listResourceTemplates(args?.server || undefined)
|
|
6880
|
+
: [];
|
|
6881
|
+
return attachDescriptor({
|
|
6882
|
+
count: resourceTemplates.length,
|
|
6883
|
+
resourceTemplates,
|
|
6884
|
+
});
|
|
6885
|
+
}
|
|
6876
6886
|
if (localToolExecutor.op === "list") {
|
|
6877
6887
|
const resources =
|
|
6878
6888
|
typeof mcpClient.listResources === "function"
|
|
@@ -332,7 +332,8 @@ export function mcpAuthHint(url, errMessage) {
|
|
|
332
332
|
* @param {object} servers `{ name: { command|url, args, env, transport, headers } }`
|
|
333
333
|
* @param {object} [deps] { writeErr, createClient }
|
|
334
334
|
* @returns {Promise<{mcpClient, extraToolDefinitions, externalToolExecutors,
|
|
335
|
-
* externalToolDescriptors, connected
|
|
335
|
+
* externalToolDescriptors, connected, resources,
|
|
336
|
+
* resourceTemplates, prompts}>}
|
|
336
337
|
*/
|
|
337
338
|
export async function setupMcpFromConfig(servers, deps = {}) {
|
|
338
339
|
const writeErr = deps.writeErr || (() => {});
|
|
@@ -354,6 +355,7 @@ export async function setupMcpFromConfig(servers, deps = {}) {
|
|
|
354
355
|
externalToolDescriptors: {},
|
|
355
356
|
connected: [],
|
|
356
357
|
resources: [],
|
|
358
|
+
resourceTemplates: [],
|
|
357
359
|
prompts: [],
|
|
358
360
|
};
|
|
359
361
|
if (!(result._mcpServerNameReservations instanceof Set)) {
|
|
@@ -362,9 +364,12 @@ export async function setupMcpFromConfig(servers, deps = {}) {
|
|
|
362
364
|
configurable: true,
|
|
363
365
|
});
|
|
364
366
|
}
|
|
365
|
-
// Back-fill the resource/prompt accumulators when an older
|
|
366
|
-
// (created before
|
|
367
|
+
// Back-fill the resource/template/prompt accumulators when an older
|
|
368
|
+
// `deps.into` object (created before these fields existed) is passed in.
|
|
367
369
|
if (!Array.isArray(result.resources)) result.resources = [];
|
|
370
|
+
if (!Array.isArray(result.resourceTemplates)) {
|
|
371
|
+
result.resourceTemplates = [];
|
|
372
|
+
}
|
|
368
373
|
if (!Array.isArray(result.prompts)) result.prompts = [];
|
|
369
374
|
// Per-server usage instructions from the MCP initialize response (surfaced
|
|
370
375
|
// by tool search; absent for servers that send none).
|
|
@@ -477,6 +482,9 @@ export async function setupMcpFromConfig(servers, deps = {}) {
|
|
|
477
482
|
toolMetadataError = error;
|
|
478
483
|
}
|
|
479
484
|
const resources = Array.isArray(res?.resources) ? res.resources : [];
|
|
485
|
+
const resourceTemplates = Array.isArray(res?.resourceTemplates)
|
|
486
|
+
? res.resourceTemplates
|
|
487
|
+
: [];
|
|
480
488
|
const prompts = Array.isArray(res?.prompts) ? res.prompts : [];
|
|
481
489
|
// A server can connect (initialize OK) yet have its tools/list fail — the
|
|
482
490
|
// mcp-client surfaces that as `res.toolsError` (Claude-Code 2.1.181
|
|
@@ -507,6 +515,10 @@ export async function setupMcpFromConfig(servers, deps = {}) {
|
|
|
507
515
|
if (!r || !r.uri) continue;
|
|
508
516
|
result.resources.push({ ...r, server: name });
|
|
509
517
|
}
|
|
518
|
+
for (const template of resourceTemplates) {
|
|
519
|
+
if (!template || !template.uriTemplate) continue;
|
|
520
|
+
result.resourceTemplates.push({ ...template, server: name });
|
|
521
|
+
}
|
|
510
522
|
for (const p of prompts) {
|
|
511
523
|
if (!p || !p.name) continue;
|
|
512
524
|
result.prompts.push({ ...p, server: name });
|
|
@@ -566,13 +578,16 @@ export async function setupMcpFromConfig(servers, deps = {}) {
|
|
|
566
578
|
}
|
|
567
579
|
}
|
|
568
580
|
|
|
569
|
-
// Expose MCP resources to the LLM as
|
|
570
|
-
//
|
|
571
|
-
//
|
|
572
|
-
// accumulating `deps.into` batches.
|
|
573
|
-
if (result.resources.length > 0) {
|
|
581
|
+
// Expose MCP resources to the LLM as generic read-only tools. A
|
|
582
|
+
// templates-only server still needs the read tool so the model can
|
|
583
|
+
// instantiate a URI template and explicitly read that URI. Registration is
|
|
584
|
+
// re-entrant safe for accumulating `deps.into` batches.
|
|
585
|
+
if (result.resources.length > 0 || result.resourceTemplates.length > 0) {
|
|
574
586
|
registerMcpResourceTools(result);
|
|
575
587
|
}
|
|
588
|
+
if (result.resourceTemplates.length > 0) {
|
|
589
|
+
registerMcpResourceTemplateTool(result);
|
|
590
|
+
}
|
|
576
591
|
|
|
577
592
|
return result;
|
|
578
593
|
}
|
|
@@ -615,14 +630,14 @@ export function registerMcpResourceTools(result) {
|
|
|
615
630
|
name: "read_mcp_resource",
|
|
616
631
|
description:
|
|
617
632
|
"Read the contents of an MCP resource by its URI. Use " +
|
|
618
|
-
"list_mcp_resources first to discover
|
|
633
|
+
"list_mcp_resources or list_mcp_resource_templates first to discover a URI.",
|
|
619
634
|
parameters: {
|
|
620
635
|
type: "object",
|
|
621
636
|
properties: {
|
|
622
637
|
server: {
|
|
623
638
|
type: "string",
|
|
624
639
|
description:
|
|
625
|
-
"MCP server name that owns the resource
|
|
640
|
+
"MCP server name that owns the resource or resource template.",
|
|
626
641
|
},
|
|
627
642
|
uri: {
|
|
628
643
|
type: "string",
|
|
@@ -689,6 +704,62 @@ export function registerMcpResourceTools(result) {
|
|
|
689
704
|
};
|
|
690
705
|
}
|
|
691
706
|
|
|
707
|
+
/** Register the read-only resource-template discovery tool once. */
|
|
708
|
+
function registerMcpResourceTemplateTool(result) {
|
|
709
|
+
const {
|
|
710
|
+
extraToolDefinitions,
|
|
711
|
+
externalToolExecutors,
|
|
712
|
+
externalToolDescriptors,
|
|
713
|
+
} = result;
|
|
714
|
+
if (externalToolExecutors.list_mcp_resource_templates) return;
|
|
715
|
+
|
|
716
|
+
extraToolDefinitions.push({
|
|
717
|
+
type: "function",
|
|
718
|
+
function: {
|
|
719
|
+
name: "list_mcp_resource_templates",
|
|
720
|
+
description:
|
|
721
|
+
"List URI templates exposed by connected MCP servers. Fill a template " +
|
|
722
|
+
"with concrete arguments, then pass the resulting URI and returned " +
|
|
723
|
+
"server name to read_mcp_resource.",
|
|
724
|
+
parameters: {
|
|
725
|
+
type: "object",
|
|
726
|
+
properties: {
|
|
727
|
+
server: {
|
|
728
|
+
type: "string",
|
|
729
|
+
description: "Optional MCP server name to filter by.",
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
},
|
|
733
|
+
},
|
|
734
|
+
});
|
|
735
|
+
externalToolExecutors.list_mcp_resource_templates = {
|
|
736
|
+
kind: "mcp-resource",
|
|
737
|
+
op: "list-templates",
|
|
738
|
+
};
|
|
739
|
+
externalToolDescriptors.list_mcp_resource_templates = {
|
|
740
|
+
name: "list_mcp_resource_templates",
|
|
741
|
+
kind: "mcp-resource",
|
|
742
|
+
category: "mcp",
|
|
743
|
+
source: "mcp",
|
|
744
|
+
isReadOnly: true,
|
|
745
|
+
riskLevel: "low",
|
|
746
|
+
effectContract: {
|
|
747
|
+
version: 1,
|
|
748
|
+
declaredEffect: "read",
|
|
749
|
+
authorizedEffect: "read",
|
|
750
|
+
riskLevel: "low",
|
|
751
|
+
sourceTrusted: true,
|
|
752
|
+
provenance: "host:mcp-resource-wrapper",
|
|
753
|
+
annotations: {
|
|
754
|
+
readOnlyHint: true,
|
|
755
|
+
destructiveHint: false,
|
|
756
|
+
idempotentHint: true,
|
|
757
|
+
openWorldHint: false,
|
|
758
|
+
},
|
|
759
|
+
},
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
|
|
692
763
|
/**
|
|
693
764
|
* Read + parse a `--mcp-config` file and connect its servers.
|
|
694
765
|
* Throws on an unreadable/empty config (fail fast — the user asked for MCP).
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as c,J as p,b as s}from"./vendor-Bn1JzzAn.js";import{r as a}from"./markdown-Yo_c6Krv.js";import{_ as d}from"./index-DiSkx4UB.js";const _={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(t,{expose:o}){o();const e=t,r=s(()=>a(e.content||"")),n={props:e,rendered:r,computed:s,get renderMarkdown(){return a}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},i=["innerHTML"];function m(t,o,e,r,n,u){return c(),p("div",{class:"markdown-content",innerHTML:r.rendered},null,8,i)}const w=d(_,[["render",m],["__scopeId","data-v-0b0b9f63"],["__file","/tmp/cc-web-panel-2QdDpX/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-DiSkx4UB.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-CJmaRDR5.js";import{a0 as t}from"./index-DiSkx4UB.js";import"./vendor-Bn1JzzAn.js";import"./index-BOVkf1K3.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-Cl7UQMrM.js";import{a0 as t}from"./index-DiSkx4UB.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-DQI_wOq8.js";import"./useFlexGapSupport-D1Qp4BLp.js";import"./styleChecker-CF310mSj.js";import"./index-BOVkf1K3.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|