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.
- package/package.json +3 -2
- package/src/assets/web-panel/assets/{AIOps-vAVAFNJ4.js → AIOps-DV0Q9zKL.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BnRHFCKM.js → ActionButton-C6vH8rhL.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BOjwqWqG.js → Analytics-BvPDc2ui.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-Dc0D1Txn.js → AppLayout-CWnyqTqY.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-dd_2efaZ.js → Audit-BzenidV4.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-HF1jgm8G.js → Backup-CSl7bNwK.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CCtzmoKe.js → BaseInput-DAY3iHIq.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BNfH1c3p.js → Chat-Jyhm9fgk.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DCWFqmI4.js → ChatBubbleRenderer-CwlAnVjy.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-BOr-NscK.js → Checkbox-D4rwURAi.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DE058N7-.js → Codegen-DYdjTEfC.js} +1 -1
- package/src/assets/web-panel/assets/{Col-SOREo1XE.js → Col-DsVyZ_fS.js} +1 -1
- package/src/assets/web-panel/assets/{Community-sOvNZo9f.js → Community-CjCpl27Q.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DnBe558D.js → Compact-kt18dsjm.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-o-r6CUbg.js → Compliance-BV5urquU.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-D6_k9mHP.js → Cowork-C4SovPWC.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-CEV3Xkrm.js → Cron-uuNs_xzA.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-eJ1lQWKU.js → Crosschain-DR5a65tR.js} +1 -1
- package/src/assets/web-panel/assets/{DID-B-WqM9Hp.js → DID-B1KTf2-5.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-ZnKPcsHN.js → Dashboard-Dkj7XgED.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-B8uLWDIP.js → Dropdown-BhXCuJ19.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-Jmj2Y7aH.js → EmailListRenderer-DG8365Iv.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Cb2xetG-.js → FamilyGuardDashboard-BdHGPu39.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-C_07GXoq.js → Federation-Dwvxl0zR.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-D3kbYrMU.js → FormItemContext-BVmhCVWU.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-9xgqvGPg.js → GenericCardRenderer-DDPjvF2s.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BlwWlMMB.js → Git-foK6WTSr.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-DxN3wQZ_.js → Governance-CfqMdu6Y.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-ls7pSw_D.js → Inference-BKrLO4GO.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-_n9hYuPI.js → KnowledgeGraph-6o6Q-mmF.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-CvEVY5TK.js → Logs-L5ZIW0Dz.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-C3qvQJT7.js → Marketplace-BWkfEocP.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DiwKpnKx.js → McpTools-BPebQbWU.js} +4 -4
- package/src/assets/web-panel/assets/{Memory-CIBPi_da.js → Memory-C0Dq-X3C.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-D-v0Se8y.js → MobileBridge-DRBoutTY.js} +2 -2
- package/src/assets/web-panel/assets/{MobileProjects-cP1apTQD.js → MobileProjects-BMP6eLp1.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BMFWrI65.js → Mtc-Cj3QPM9p.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-2s8LaHtR.js → MtcAudit-rBQYbfQR.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-dL_nvj7d.js → Multisig-Dbuy4OY4.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-BbrJp06R.js → NLProgramming-CMnt1se-.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-jR9irwy3.js → Notes-BX9tSCiF.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-Dk-STCIX.js → NotificationSettings-BFeirVRq.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-CqqfY6zq.js → OrderTableRenderer-ybiMlKQW.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BCK5jylo.js → Organization-kTfRxKqk.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BRAY7Smt.js → Overflow-CtuCAzwV.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BltVRGjb.js → P2P-KfbciaP3.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-CV8UbXHe.js → PdhVaultBrowser-bqEUFhgC.js} +5 -5
- package/src/assets/web-panel/assets/{Permissions-_tNl47Qh.js → Permissions-BgMypz-z.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Cgc4HjpX.js → PersonalDataHub-C3zUE-1z.js} +2 -2
- package/src/assets/web-panel/assets/{Pipeline-Bn_QU4mu.js → Pipeline-iX-pYHpC.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-jzJowp5P.js → Privacy-B01uzeFM.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-B_1pJ8qd.js → ProjectInit-TsfbzJp7.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-CPVZpXzs.js → ProjectSettings-iGvMp8sM.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-CQsHOWnT.js → Projects-Be9k29iQ.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-CzzMiLC0.js → Providers-C9Pc8dqo.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-MxBKIn9o.js → QuickAsk-DN_yFiVO.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-D8lN6Lis.js → Recommend-CvSNgl7H.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-CfYK-IrV.js → Reputation-S6BCz8xH.js} +1 -1
- package/src/assets/web-panel/assets/{Row-Bg7NZDP9.js → Row-CTRYCaqP.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-BOVNJhj0.js → RssFeed-Cu8_P5ll.js} +3 -3
- package/src/assets/web-panel/assets/{Search-B38qzmhY.js → Search-rZ1Xza_U.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CjqleZpe.js → Security-CF43IJHX.js} +4 -4
- package/src/assets/web-panel/assets/{Services-Bu9JSJap.js → Services-BobNHzne.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-B2RvRkaX.js → Skeleton-DWJ2kfuI.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-_h42mxMN.js → Skills-AmEZgHYr.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BssLs56D.js → Sla-DTS-fBiY.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DCxFYHsd.js → SpeechSettings-DEr6MHRU.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-D2xQuNLE.js → SyncSettings-CVs9alv_.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DhpOGOlo.js → Tasks-BcVDAxdi.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CYG-R-aS.js → Templates-CTNjZRKA.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BQRYLsvP.js → Tenant-DPbXg0Pg.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-imKU7N5j.js → Terminal-DhKXcPw2.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-BIZzBftk.js → TimelineRenderer-B0DMZOpk.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-uMLH5p_a.js → Tokens-RvWuBXgg.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-BzS6XPqx.js → Trigger-2O-BaTQG.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-R4zhHufZ.js → Trust-6qY35L-C.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-DATQCoGe.js → UkeySign-DhV1wYtQ.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-ClUmKOtS.js → VideoEditing-DgqA5UZm.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DzJTbQzD.js → Wallet-DJRYdUAK.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CrXrLmzQ.js → WebAuthn-C2W-x0cg.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-CpvZ0Tma.js → WorkflowEditor-BP2tkDHe.js} +1 -1
- package/src/assets/web-panel/assets/{chat-a6wpYmVL.js → chat-CGVfeoTn.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CXJADb1t.js → colors-BmjRolM1.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CL2pohS_.js → compact-item-BvJJkjZE.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-xFi_1G5_.js → createContext-DyhlvRYs.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-CetO0WH0.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-Bchh1rAi.js → hasIn-BoBMR89s.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2eMYASq.js → index-39VDXdn6.js} +1 -1
- package/src/assets/web-panel/assets/{index-CR3kFPuC.js → index-81tWFqfN.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTRd7vkq.js → index-BT1SQ9nj.js} +1 -1
- package/src/assets/web-panel/assets/index-BZVz-WfV.js +1 -0
- package/src/assets/web-panel/assets/{index-D-TT9Swq.js → index-Beh7jDbS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BrbJBnT-.js → index-Bm_MmdwP.js} +1 -1
- package/src/assets/web-panel/assets/{index-dsLc7t6W.js → index-BqGNmoKy.js} +1 -1
- package/src/assets/web-panel/assets/{index-DEYcLAl7.js → index-BuQrONgf.js} +1 -1
- package/src/assets/web-panel/assets/{index-KCib1PTw.js → index-BvvNnWXe.js} +1 -1
- package/src/assets/web-panel/assets/{index-DxahxRP7.js → index-ByWpNjTj.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6NehWty.js → index-BycpeGfj.js} +1 -1
- package/src/assets/web-panel/assets/{index-DTEu7TSF.js → index-C0xn6hOr.js} +1 -1
- package/src/assets/web-panel/assets/{index-BH9t10pe.js → index-C1t-r7yV.js} +1 -1
- package/src/assets/web-panel/assets/{index-B7wT5VRi.js → index-CDPMHKQi.js} +1 -1
- package/src/assets/web-panel/assets/{index-majCS3s2.js → index-CIaGw7vl.js} +1 -1
- package/src/assets/web-panel/assets/{index-EPERz4Pu.js → index-CQJVedQ3.js} +1 -1
- package/src/assets/web-panel/assets/{index-IkvkNxbc.js → index-CSgbOGaP.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQ_hw_5P.js → index-Cbh-lCxq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CMybtJY6.js → index-CzDVBBcg.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4zNisy9.js → index-Czsbrn75.js} +1 -1
- package/src/assets/web-panel/assets/{index-M8SZI11a.js → index-D-93XwJd.js} +1 -1
- package/src/assets/web-panel/assets/index-D0-bvFy3.js +1 -0
- package/src/assets/web-panel/assets/{index-TxbHusq2.js → index-D0YToIi_.js} +1 -1
- package/src/assets/web-panel/assets/{index-B7knYOpm.js → index-DIPZ6hbJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGq4HQno.js → index-DeeLHcMY.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdU8BwRW.js → index-DgbWSwr5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4yBRKT4.js → index-DtKdCXHW.js} +1 -1
- package/src/assets/web-panel/assets/{index-jMcv1u5o.js → index-DwTgvhOL.js} +1 -1
- package/src/assets/web-panel/assets/{index-B3Tpv7-d.js → index-DyS4I4L-.js} +1 -1
- package/src/assets/web-panel/assets/{index-u8K1y_lh.js → index-FKFT-QTk.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cua_P8St.js → index-Te0ruvY_.js} +1 -1
- package/src/assets/web-panel/assets/{index-DVo1GJoj.js → index-VXVukhBA.js} +1 -1
- package/src/assets/web-panel/assets/{index-BPH5ESqs.js → index-Y1b8i0NV.js} +3 -3
- package/src/assets/web-panel/assets/{index-DsbMVBj1.js → index-ZNIms1nA.js} +1 -1
- package/src/assets/web-panel/assets/{index-BoaRB-4a.js → index-n-N19np-.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmsIKzyu.js → index-vF1pR00A.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuehgDOp.js → index-wLAjVpmJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjdOL159.js → index-xPSzUoWT.js} +1 -1
- package/src/assets/web-panel/assets/{index-BF4xx1_b.js → index-xZdOioVg.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DYn3Gc09.js → initDefaultProps-BLKSE8he.js} +1 -1
- package/src/assets/web-panel/assets/{motion-ZS3eolb9.js → motion-Bb59qqLK.js} +1 -1
- package/src/assets/web-panel/assets/{move-CEw4uqr3.js → move-CB3pYCk6.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DlHFZnPp.js → omit-iImQWuU7.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-eZQvV5fA.js → pickAttrs-DRP2Chqo.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-B31jQwa-.js → placementArrow-BrlfD4tF.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DAsNmVto.js → responsiveObserve-Cqxkuh5H.js} +1 -1
- package/src/assets/web-panel/assets/{slide-gPQPrYZC.js → slide-nxKEuLMj.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DwWKX5co.js → statusUtils-30E47KSk.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B3VOtXuH.js → styleChecker-Dn2_-5bn.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-6ADctM2r.js → useFlexGapSupport-DkZ00X6F.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-6Zx1SSKs.js → useFs-ByrwSCOr.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-BzReowln.js → usePersonalDataHub-BDY6jtUD.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-C8IpEQbD.js → vnode-BL2q5BLv.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-ruc9vHr0.js → zoom-BSkPKE42.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/agent.js +31 -0
- package/src/commands/cli-anything.js +14 -6
- package/src/commands/loop.js +450 -0
- package/src/commands/mcp.js +236 -6
- package/src/harness/mcp-client.js +70 -1
- package/src/index.js +2 -0
- package/src/lib/loop.js +198 -0
- package/src/lib/settings-hooks.cjs +1 -0
- package/src/repl/agent-repl.js +57 -20
- package/src/repl/mcp-prompt.js +122 -0
- package/src/runtime/agent-core.js +123 -17
- package/src/runtime/headless-runner.js +34 -9
- package/src/runtime/mcp-config.js +118 -9
- package/src/runtime/policies/agent-policy.js +3 -0
- package/src/assets/web-panel/assets/devWarning-BtmELbtB.js +0 -1
- package/src/assets/web-panel/assets/index-B4l4vLTB.js +0 -1
- 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:
|
|
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
|
-
|
|
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:
|
|
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(
|
|
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};
|