chainlesschain 0.162.36 → 0.162.38

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.
Files changed (160) hide show
  1. package/package.json +3 -2
  2. package/src/assets/web-panel/assets/{AIOps-vAVAFNJ4.js → AIOps-DV0Q9zKL.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-BnRHFCKM.js → ActionButton-C6vH8rhL.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-BOjwqWqG.js → Analytics-BvPDc2ui.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-Dc0D1Txn.js → AppLayout-CWnyqTqY.js} +5 -5
  6. package/src/assets/web-panel/assets/{Audit-dd_2efaZ.js → Audit-BzenidV4.js} +1 -1
  7. package/src/assets/web-panel/assets/{Backup-HF1jgm8G.js → Backup-CSl7bNwK.js} +1 -1
  8. package/src/assets/web-panel/assets/{BaseInput-CCtzmoKe.js → BaseInput-DAY3iHIq.js} +1 -1
  9. package/src/assets/web-panel/assets/{Chat-BNfH1c3p.js → Chat-Jyhm9fgk.js} +6 -6
  10. package/src/assets/web-panel/assets/{ChatBubbleRenderer-DCWFqmI4.js → ChatBubbleRenderer-CwlAnVjy.js} +1 -1
  11. package/src/assets/web-panel/assets/{Checkbox-BOr-NscK.js → Checkbox-D4rwURAi.js} +1 -1
  12. package/src/assets/web-panel/assets/{Codegen-DE058N7-.js → Codegen-DYdjTEfC.js} +1 -1
  13. package/src/assets/web-panel/assets/{Col-SOREo1XE.js → Col-DsVyZ_fS.js} +1 -1
  14. package/src/assets/web-panel/assets/{Community-sOvNZo9f.js → Community-CjCpl27Q.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compact-DnBe558D.js → Compact-kt18dsjm.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compliance-o-r6CUbg.js → Compliance-BV5urquU.js} +1 -1
  17. package/src/assets/web-panel/assets/{Cowork-D6_k9mHP.js → Cowork-C4SovPWC.js} +3 -3
  18. package/src/assets/web-panel/assets/{Cron-CEV3Xkrm.js → Cron-uuNs_xzA.js} +2 -2
  19. package/src/assets/web-panel/assets/{Crosschain-eJ1lQWKU.js → Crosschain-DR5a65tR.js} +1 -1
  20. package/src/assets/web-panel/assets/{DID-B-WqM9Hp.js → DID-B1KTf2-5.js} +2 -2
  21. package/src/assets/web-panel/assets/{Dashboard-ZnKPcsHN.js → Dashboard-Dkj7XgED.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dropdown-B8uLWDIP.js → Dropdown-BhXCuJ19.js} +1 -1
  23. package/src/assets/web-panel/assets/{EmailListRenderer-Jmj2Y7aH.js → EmailListRenderer-DG8365Iv.js} +1 -1
  24. package/src/assets/web-panel/assets/{FamilyGuardDashboard-Cb2xetG-.js → FamilyGuardDashboard-BdHGPu39.js} +1 -1
  25. package/src/assets/web-panel/assets/{Federation-C_07GXoq.js → Federation-Dwvxl0zR.js} +1 -1
  26. package/src/assets/web-panel/assets/{FormItemContext-D3kbYrMU.js → FormItemContext-BVmhCVWU.js} +1 -1
  27. package/src/assets/web-panel/assets/{GenericCardRenderer-9xgqvGPg.js → GenericCardRenderer-DDPjvF2s.js} +1 -1
  28. package/src/assets/web-panel/assets/{Git-BlwWlMMB.js → Git-foK6WTSr.js} +2 -2
  29. package/src/assets/web-panel/assets/{Governance-DxN3wQZ_.js → Governance-CfqMdu6Y.js} +1 -1
  30. package/src/assets/web-panel/assets/{Inference-ls7pSw_D.js → Inference-BKrLO4GO.js} +1 -1
  31. package/src/assets/web-panel/assets/{KnowledgeGraph-_n9hYuPI.js → KnowledgeGraph-6o6Q-mmF.js} +1 -1
  32. package/src/assets/web-panel/assets/{Logs-CvEVY5TK.js → Logs-L5ZIW0Dz.js} +2 -2
  33. package/src/assets/web-panel/assets/{Marketplace-C3qvQJT7.js → Marketplace-BWkfEocP.js} +1 -1
  34. package/src/assets/web-panel/assets/{McpTools-DiwKpnKx.js → McpTools-BPebQbWU.js} +4 -4
  35. package/src/assets/web-panel/assets/{Memory-CIBPi_da.js → Memory-C0Dq-X3C.js} +2 -2
  36. package/src/assets/web-panel/assets/{MobileBridge-D-v0Se8y.js → MobileBridge-DRBoutTY.js} +2 -2
  37. package/src/assets/web-panel/assets/{MobileProjects-cP1apTQD.js → MobileProjects-BMP6eLp1.js} +1 -1
  38. package/src/assets/web-panel/assets/{Mtc-BMFWrI65.js → Mtc-Cj3QPM9p.js} +4 -4
  39. package/src/assets/web-panel/assets/{MtcAudit-2s8LaHtR.js → MtcAudit-rBQYbfQR.js} +2 -2
  40. package/src/assets/web-panel/assets/{Multisig-dL_nvj7d.js → Multisig-Dbuy4OY4.js} +3 -3
  41. package/src/assets/web-panel/assets/{NLProgramming-BbrJp06R.js → NLProgramming-CMnt1se-.js} +1 -1
  42. package/src/assets/web-panel/assets/{Notes-jR9irwy3.js → Notes-BX9tSCiF.js} +4 -4
  43. package/src/assets/web-panel/assets/{NotificationSettings-Dk-STCIX.js → NotificationSettings-BFeirVRq.js} +1 -1
  44. package/src/assets/web-panel/assets/{OrderTableRenderer-CqqfY6zq.js → OrderTableRenderer-ybiMlKQW.js} +1 -1
  45. package/src/assets/web-panel/assets/{Organization-BCK5jylo.js → Organization-kTfRxKqk.js} +4 -4
  46. package/src/assets/web-panel/assets/{Overflow-BRAY7Smt.js → Overflow-CtuCAzwV.js} +1 -1
  47. package/src/assets/web-panel/assets/{P2P-BltVRGjb.js → P2P-KfbciaP3.js} +2 -2
  48. package/src/assets/web-panel/assets/{PdhVaultBrowser-CV8UbXHe.js → PdhVaultBrowser-bqEUFhgC.js} +5 -5
  49. package/src/assets/web-panel/assets/{Permissions-_tNl47Qh.js → Permissions-BgMypz-z.js} +4 -4
  50. package/src/assets/web-panel/assets/{PersonalDataHub-Cgc4HjpX.js → PersonalDataHub-C3zUE-1z.js} +2 -2
  51. package/src/assets/web-panel/assets/{Pipeline-Bn_QU4mu.js → Pipeline-iX-pYHpC.js} +1 -1
  52. package/src/assets/web-panel/assets/{Privacy-jzJowp5P.js → Privacy-B01uzeFM.js} +1 -1
  53. package/src/assets/web-panel/assets/{ProjectInit-B_1pJ8qd.js → ProjectInit-TsfbzJp7.js} +2 -2
  54. package/src/assets/web-panel/assets/{ProjectSettings-CPVZpXzs.js → ProjectSettings-iGvMp8sM.js} +2 -2
  55. package/src/assets/web-panel/assets/{Projects-CQsHOWnT.js → Projects-Be9k29iQ.js} +1 -1
  56. package/src/assets/web-panel/assets/{Providers-CzzMiLC0.js → Providers-C9Pc8dqo.js} +1 -1
  57. package/src/assets/web-panel/assets/{QuickAsk-MxBKIn9o.js → QuickAsk-DN_yFiVO.js} +1 -1
  58. package/src/assets/web-panel/assets/{Recommend-D8lN6Lis.js → Recommend-CvSNgl7H.js} +1 -1
  59. package/src/assets/web-panel/assets/{Reputation-CfYK-IrV.js → Reputation-S6BCz8xH.js} +1 -1
  60. package/src/assets/web-panel/assets/{Row-Bg7NZDP9.js → Row-CTRYCaqP.js} +1 -1
  61. package/src/assets/web-panel/assets/{RssFeed-BOVNJhj0.js → RssFeed-Cu8_P5ll.js} +3 -3
  62. package/src/assets/web-panel/assets/{Search-B38qzmhY.js → Search-rZ1Xza_U.js} +1 -1
  63. package/src/assets/web-panel/assets/{Security-CjqleZpe.js → Security-CF43IJHX.js} +4 -4
  64. package/src/assets/web-panel/assets/{Services-Bu9JSJap.js → Services-BobNHzne.js} +2 -2
  65. package/src/assets/web-panel/assets/{Skeleton-B2RvRkaX.js → Skeleton-DWJ2kfuI.js} +1 -1
  66. package/src/assets/web-panel/assets/{Skills-_h42mxMN.js → Skills-AmEZgHYr.js} +1 -1
  67. package/src/assets/web-panel/assets/{Sla-BssLs56D.js → Sla-DTS-fBiY.js} +1 -1
  68. package/src/assets/web-panel/assets/{SpeechSettings-DCxFYHsd.js → SpeechSettings-DEr6MHRU.js} +1 -1
  69. package/src/assets/web-panel/assets/{SyncSettings-D2xQuNLE.js → SyncSettings-CVs9alv_.js} +2 -2
  70. package/src/assets/web-panel/assets/{Tasks-DhpOGOlo.js → Tasks-BcVDAxdi.js} +1 -1
  71. package/src/assets/web-panel/assets/{Templates-CYG-R-aS.js → Templates-CTNjZRKA.js} +1 -1
  72. package/src/assets/web-panel/assets/{Tenant-BQRYLsvP.js → Tenant-DPbXg0Pg.js} +1 -1
  73. package/src/assets/web-panel/assets/{Terminal-imKU7N5j.js → Terminal-DhKXcPw2.js} +2 -2
  74. package/src/assets/web-panel/assets/{TimelineRenderer-BIZzBftk.js → TimelineRenderer-B0DMZOpk.js} +1 -1
  75. package/src/assets/web-panel/assets/{Tokens-uMLH5p_a.js → Tokens-RvWuBXgg.js} +1 -1
  76. package/src/assets/web-panel/assets/{Trigger-BzS6XPqx.js → Trigger-2O-BaTQG.js} +1 -1
  77. package/src/assets/web-panel/assets/{Trust-R4zhHufZ.js → Trust-6qY35L-C.js} +1 -1
  78. package/src/assets/web-panel/assets/{UkeySign-DATQCoGe.js → UkeySign-DhV1wYtQ.js} +1 -1
  79. package/src/assets/web-panel/assets/{VideoEditing-ClUmKOtS.js → VideoEditing-DgqA5UZm.js} +1 -1
  80. package/src/assets/web-panel/assets/{Wallet-DzJTbQzD.js → Wallet-DJRYdUAK.js} +4 -4
  81. package/src/assets/web-panel/assets/{WebAuthn-CrXrLmzQ.js → WebAuthn-C2W-x0cg.js} +5 -5
  82. package/src/assets/web-panel/assets/{WorkflowEditor-CpvZ0Tma.js → WorkflowEditor-BP2tkDHe.js} +1 -1
  83. package/src/assets/web-panel/assets/{chat-a6wpYmVL.js → chat-CGVfeoTn.js} +1 -1
  84. package/src/assets/web-panel/assets/{colors-CXJADb1t.js → colors-BmjRolM1.js} +1 -1
  85. package/src/assets/web-panel/assets/{compact-item-CL2pohS_.js → compact-item-BvJJkjZE.js} +1 -1
  86. package/src/assets/web-panel/assets/{createContext-xFi_1G5_.js → createContext-DyhlvRYs.js} +1 -1
  87. package/src/assets/web-panel/assets/devWarning-CetO0WH0.js +1 -0
  88. package/src/assets/web-panel/assets/{hasIn-Bchh1rAi.js → hasIn-BoBMR89s.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-C2eMYASq.js → index-39VDXdn6.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-CR3kFPuC.js → index-81tWFqfN.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-CTRd7vkq.js → index-BT1SQ9nj.js} +1 -1
  92. package/src/assets/web-panel/assets/index-BZVz-WfV.js +1 -0
  93. package/src/assets/web-panel/assets/{index-D-TT9Swq.js → index-Beh7jDbS.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-BrbJBnT-.js → index-Bm_MmdwP.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-dsLc7t6W.js → index-BqGNmoKy.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-DEYcLAl7.js → index-BuQrONgf.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-KCib1PTw.js → index-BvvNnWXe.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DxahxRP7.js → index-ByWpNjTj.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-B6NehWty.js → index-BycpeGfj.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DTEu7TSF.js → index-C0xn6hOr.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-BH9t10pe.js → index-C1t-r7yV.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-B7wT5VRi.js → index-CDPMHKQi.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-majCS3s2.js → index-CIaGw7vl.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-EPERz4Pu.js → index-CQJVedQ3.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-IkvkNxbc.js → index-CSgbOGaP.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-DQ_hw_5P.js → index-Cbh-lCxq.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-CMybtJY6.js → index-CzDVBBcg.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-B4zNisy9.js → index-Czsbrn75.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-M8SZI11a.js → index-D-93XwJd.js} +1 -1
  110. package/src/assets/web-panel/assets/index-D0-bvFy3.js +1 -0
  111. package/src/assets/web-panel/assets/{index-TxbHusq2.js → index-D0YToIi_.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-B7knYOpm.js → index-DIPZ6hbJ.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-CGq4HQno.js → index-DeeLHcMY.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-CdU8BwRW.js → index-DgbWSwr5.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-C4yBRKT4.js → index-DtKdCXHW.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-jMcv1u5o.js → index-DwTgvhOL.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-B3Tpv7-d.js → index-DyS4I4L-.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-u8K1y_lh.js → index-FKFT-QTk.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-Cua_P8St.js → index-Te0ruvY_.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DVo1GJoj.js → index-VXVukhBA.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-BPH5ESqs.js → index-Y1b8i0NV.js} +3 -3
  122. package/src/assets/web-panel/assets/{index-DsbMVBj1.js → index-ZNIms1nA.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BoaRB-4a.js → index-n-N19np-.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-BmsIKzyu.js → index-vF1pR00A.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-CuehgDOp.js → index-wLAjVpmJ.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-DjdOL159.js → index-xPSzUoWT.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-BF4xx1_b.js → index-xZdOioVg.js} +1 -1
  128. package/src/assets/web-panel/assets/{initDefaultProps-DYn3Gc09.js → initDefaultProps-BLKSE8he.js} +1 -1
  129. package/src/assets/web-panel/assets/{motion-ZS3eolb9.js → motion-Bb59qqLK.js} +1 -1
  130. package/src/assets/web-panel/assets/{move-CEw4uqr3.js → move-CB3pYCk6.js} +1 -1
  131. package/src/assets/web-panel/assets/{omit-DlHFZnPp.js → omit-iImQWuU7.js} +1 -1
  132. package/src/assets/web-panel/assets/{pickAttrs-eZQvV5fA.js → pickAttrs-DRP2Chqo.js} +1 -1
  133. package/src/assets/web-panel/assets/{placementArrow-B31jQwa-.js → placementArrow-BrlfD4tF.js} +1 -1
  134. package/src/assets/web-panel/assets/{responsiveObserve-DAsNmVto.js → responsiveObserve-Cqxkuh5H.js} +1 -1
  135. package/src/assets/web-panel/assets/{slide-gPQPrYZC.js → slide-nxKEuLMj.js} +1 -1
  136. package/src/assets/web-panel/assets/{statusUtils-DwWKX5co.js → statusUtils-30E47KSk.js} +1 -1
  137. package/src/assets/web-panel/assets/{styleChecker-B3VOtXuH.js → styleChecker-Dn2_-5bn.js} +1 -1
  138. package/src/assets/web-panel/assets/{useFlexGapSupport-6ADctM2r.js → useFlexGapSupport-DkZ00X6F.js} +1 -1
  139. package/src/assets/web-panel/assets/{useFs-6Zx1SSKs.js → useFs-ByrwSCOr.js} +1 -1
  140. package/src/assets/web-panel/assets/{usePersonalDataHub-BzReowln.js → usePersonalDataHub-BDY6jtUD.js} +1 -1
  141. package/src/assets/web-panel/assets/{vnode-C8IpEQbD.js → vnode-BL2q5BLv.js} +1 -1
  142. package/src/assets/web-panel/assets/{zoom-ruc9vHr0.js → zoom-BSkPKE42.js} +1 -1
  143. package/src/assets/web-panel/index.html +1 -1
  144. package/src/commands/agent.js +31 -0
  145. package/src/commands/cli-anything.js +14 -6
  146. package/src/commands/loop.js +450 -0
  147. package/src/commands/mcp.js +236 -6
  148. package/src/harness/mcp-client.js +70 -1
  149. package/src/index.js +2 -0
  150. package/src/lib/loop.js +198 -0
  151. package/src/lib/settings-hooks.cjs +1 -0
  152. package/src/repl/agent-repl.js +57 -20
  153. package/src/repl/mcp-prompt.js +122 -0
  154. package/src/runtime/agent-core.js +123 -17
  155. package/src/runtime/headless-runner.js +34 -9
  156. package/src/runtime/mcp-config.js +118 -9
  157. package/src/runtime/policies/agent-policy.js +3 -0
  158. package/src/assets/web-panel/assets/devWarning-BtmELbtB.js +0 -1
  159. package/src/assets/web-panel/assets/index-B4l4vLTB.js +0 -1
  160. package/src/assets/web-panel/assets/index-B7Ek5iiY.js +0 -1
@@ -41,7 +41,8 @@ export function parseMcpServers(raw) {
41
41
  env: cfg.env && typeof cfg.env === "object" ? cfg.env : {},
42
42
  url: cfg.url,
43
43
  transport: cfg.transport,
44
- headers: cfg.headers && typeof cfg.headers === "object" ? cfg.headers : {},
44
+ headers:
45
+ cfg.headers && typeof cfg.headers === "object" ? cfg.headers : {},
45
46
  };
46
47
  }
47
48
  return out;
@@ -75,7 +76,13 @@ export async function setupMcpFromConfig(servers, deps = {}) {
75
76
  externalToolExecutors: {},
76
77
  externalToolDescriptors: {},
77
78
  connected: [],
79
+ resources: [],
80
+ prompts: [],
78
81
  };
82
+ // Back-fill the resource/prompt accumulators when an older `deps.into` object
83
+ // (created before this field existed) is passed in.
84
+ if (!Array.isArray(result.resources)) result.resources = [];
85
+ if (!Array.isArray(result.prompts)) result.prompts = [];
79
86
  const {
80
87
  mcpClient,
81
88
  extraToolDefinitions,
@@ -92,11 +99,7 @@ export async function setupMcpFromConfig(servers, deps = {}) {
92
99
  // unless the config already supplies an Authorization header. Best-effort:
93
100
  // no token / a refresh failure just connects unauthenticated.
94
101
  let connectCfg = cfg;
95
- if (
96
- cfg.url &&
97
- !cfg.headers?.Authorization &&
98
- !cfg.headers?.authorization
99
- ) {
102
+ if (cfg.url && !cfg.headers?.Authorization && !cfg.headers?.authorization) {
100
103
  try {
101
104
  const { ensureValidToken } = await import("../lib/mcp-oauth.js");
102
105
  const token = await ensureValidToken(cfg.url);
@@ -118,7 +121,22 @@ export async function setupMcpFromConfig(servers, deps = {}) {
118
121
  continue;
119
122
  }
120
123
  const tools = Array.isArray(res?.tools) ? res.tools : [];
121
- connected.push({ server: name, tools: tools.length });
124
+ const resources = Array.isArray(res?.resources) ? res.resources : [];
125
+ const prompts = Array.isArray(res?.prompts) ? res.prompts : [];
126
+ connected.push({
127
+ server: name,
128
+ tools: tools.length,
129
+ resources: resources.length,
130
+ prompts: prompts.length,
131
+ });
132
+ for (const r of resources) {
133
+ if (!r || !r.uri) continue;
134
+ result.resources.push({ ...r, server: name });
135
+ }
136
+ for (const p of prompts) {
137
+ if (!p || !p.name) continue;
138
+ result.prompts.push({ ...p, server: name });
139
+ }
122
140
  for (const t of tools) {
123
141
  if (!t || !t.name) continue;
124
142
  const full = mcpToolName(name, t.name);
@@ -126,7 +144,8 @@ export async function setupMcpFromConfig(servers, deps = {}) {
126
144
  type: "function",
127
145
  function: {
128
146
  name: full,
129
- description: t.description || `MCP tool "${t.name}" on server "${name}"`,
147
+ description:
148
+ t.description || `MCP tool "${t.name}" on server "${name}"`,
130
149
  parameters: t.inputSchema || { type: "object", properties: {} },
131
150
  },
132
151
  });
@@ -144,9 +163,97 @@ export async function setupMcpFromConfig(servers, deps = {}) {
144
163
  }
145
164
  }
146
165
 
166
+ // Expose MCP resources to the LLM as two generic tools (Claude-Code parity:
167
+ // ListMcpResourcesTool / ReadMcpResourceTool). Registered once, only when at
168
+ // least one connected server advertises a resource, and re-entrant safe for
169
+ // accumulating `deps.into` batches.
170
+ if (result.resources.length > 0) {
171
+ registerMcpResourceTools(result);
172
+ }
173
+
147
174
  return result;
148
175
  }
149
176
 
177
+ /**
178
+ * Register the `list_mcp_resources` + `read_mcp_resource` generic tools on the
179
+ * agent wiring object, unless already present. Their executors are dispatched
180
+ * by agent-core via `kind: "mcp-resource"`.
181
+ */
182
+ export function registerMcpResourceTools(result) {
183
+ const {
184
+ extraToolDefinitions,
185
+ externalToolExecutors,
186
+ externalToolDescriptors,
187
+ } = result;
188
+ if (externalToolExecutors.read_mcp_resource) return; // already registered
189
+
190
+ extraToolDefinitions.push(
191
+ {
192
+ type: "function",
193
+ function: {
194
+ name: "list_mcp_resources",
195
+ description:
196
+ "List resources exposed by connected MCP servers (documents, files, " +
197
+ "or data the server makes available). Optionally filter by server.",
198
+ parameters: {
199
+ type: "object",
200
+ properties: {
201
+ server: {
202
+ type: "string",
203
+ description: "Optional MCP server name to filter by.",
204
+ },
205
+ },
206
+ },
207
+ },
208
+ },
209
+ {
210
+ type: "function",
211
+ function: {
212
+ name: "read_mcp_resource",
213
+ description:
214
+ "Read the contents of an MCP resource by its URI. Use " +
215
+ "list_mcp_resources first to discover available URIs.",
216
+ parameters: {
217
+ type: "object",
218
+ properties: {
219
+ server: {
220
+ type: "string",
221
+ description:
222
+ "MCP server name that owns the resource (from list_mcp_resources).",
223
+ },
224
+ uri: {
225
+ type: "string",
226
+ description: "Resource URI to read.",
227
+ },
228
+ },
229
+ required: ["uri"],
230
+ },
231
+ },
232
+ },
233
+ );
234
+
235
+ externalToolExecutors.list_mcp_resources = {
236
+ kind: "mcp-resource",
237
+ op: "list",
238
+ };
239
+ externalToolExecutors.read_mcp_resource = {
240
+ kind: "mcp-resource",
241
+ op: "read",
242
+ };
243
+ externalToolDescriptors.list_mcp_resources = {
244
+ name: "list_mcp_resources",
245
+ kind: "mcp-resource",
246
+ category: "mcp",
247
+ source: "mcp",
248
+ };
249
+ externalToolDescriptors.read_mcp_resource = {
250
+ name: "read_mcp_resource",
251
+ kind: "mcp-resource",
252
+ category: "mcp",
253
+ source: "mcp",
254
+ };
255
+ }
256
+
150
257
  /**
151
258
  * Read + parse a `--mcp-config` file and connect its servers.
152
259
  * Throws on an unreadable/empty config (fail fast — the user asked for MCP).
@@ -377,7 +484,9 @@ export function makePermissionPromptConfirmer({
377
484
  return allow;
378
485
  } catch (err) {
379
486
  if (isText) {
380
- writeErr(` permission(${ctx?.tool}): deny (tool error: ${err.message})\n`);
487
+ writeErr(
488
+ ` permission(${ctx?.tool}): deny (tool error: ${err.message})\n`,
489
+ );
381
490
  }
382
491
  return false; // fail-closed
383
492
  }
@@ -35,6 +35,9 @@ export function resolveAgentPolicy({
35
35
  fallbackModel: overrides.fallbackModel || null,
36
36
  mcpConfig: overrides.mcpConfig || null,
37
37
  useRegisteredMcp: overrides.useRegisteredMcp !== false,
38
+ // IDE bridge tri-state (undefined=auto / true=--ide / false=--no-ide); the
39
+ // REPL forwards it to resolveAgentMcp so --ide/--no-ide work interactively.
40
+ ide: overrides.ide,
38
41
  };
39
42
  }
40
43
 
@@ -1 +0,0 @@
1
- import{O as r}from"./index-BPH5ESqs.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-Bg7NZDP9.js";import{U as t}from"./index-BPH5ESqs.js";import"./vendor-BvqAck49.js";import"./responsiveObserve-DAsNmVto.js";import"./useFlexGapSupport-6ADctM2r.js";import"./styleChecker-B3VOtXuH.js";import"./index-M8SZI11a.js";import"./icons-DP3uiYxy.js";const l=t(o);export{l as default};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-SOREo1XE.js";import{U as t}from"./index-BPH5ESqs.js";import"./vendor-BvqAck49.js";import"./index-M8SZI11a.js";import"./icons-DP3uiYxy.js";const s=t(o);export{s as default};