aws-runtime-bridge 1.9.153 → 1.9.162
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/CHANGELOG.md +462 -0
- package/dist/adapter/AcodeSdkAdapter.d.ts +29 -6
- package/dist/adapter/AcodeSdkAdapter.js +6 -5
- package/dist/adapter/prompts.d.ts +1 -1
- package/dist/adapter/prompts.js +1 -1
- package/dist/adapter/types.d.ts +0 -16
- package/dist/routes/acode-todos.js +1 -1
- package/dist/routes/ltr.js +1 -1
- package/dist/routes/sessions.d.ts +18 -74
- package/dist/routes/sessions.js +1 -1
- package/dist/routes/terminal.d.ts +8 -0
- package/dist/routes/terminal.js +24 -24
- package/dist/services/instance-features.d.ts +16 -2
- package/dist/services/instance-features.js +1 -1
- package/dist/services/workspace-files.js +1 -1
- package/dist/services/workspace-watch.js +1 -1
- package/package/acode/dist/ask-user-question-tool.js +1 -1
- package/package/acode/dist/await-complete-tool.js +1 -1
- package/package/acode/dist/background-command-manager.js +1 -1
- package/package/acode/dist/background-command-tools.js +1 -1
- package/package/acode/dist/built-in-file-tools.d.ts +18 -2
- package/package/acode/dist/built-in-file-tools.js +2 -2
- package/package/acode/dist/built-in-symbols-tool.js +1 -1
- package/package/acode/dist/context-overflow.d.ts +19 -0
- package/package/acode/dist/context-overflow.js +2 -0
- package/package/acode/dist/grammars/grammars/tree-sitter-lua.wasm +0 -0
- package/package/acode/dist/index.d.ts +3 -1
- package/package/acode/dist/index.js +1 -1
- package/package/acode/dist/parsers/ast-cache.d.ts +12 -1
- package/package/acode/dist/parsers/ast-cache.js +1 -1
- package/package/acode/dist/parsers/language-queries.js +1 -1
- package/package/acode/dist/parsers/symbol-extractor.js +2 -2
- package/package/acode/dist/parsers/tree-sitter-loader.d.ts +1 -1
- package/package/acode/dist/parsers/tree-sitter-loader.js +1 -1
- package/package/acode/dist/plugin-types.d.ts +5 -0
- package/package/acode/dist/plugin-types.js +1 -0
- package/package/acode/dist/read-file-state.d.ts +48 -0
- package/package/acode/dist/read-file-state.js +2 -0
- package/package/acode/dist/runtime.d.ts +63 -9
- package/package/acode/dist/runtime.js +30 -27
- package/package/acode/dist/skill-tool.js +3 -3
- package/package/acode/dist/sub-agent-manager.js +1 -1
- package/package/acode/dist/sub-agent-tools.js +5 -5
- package/package/acode/dist/todo-tool.js +3 -3
- package/package/acode/dist/tool-concurrency/index.d.ts +5 -0
- package/package/acode/dist/tool-concurrency/index.js +2 -0
- package/package/acode/dist/tool-concurrency/observability.d.ts +46 -0
- package/package/acode/dist/tool-concurrency/observability.js +3 -0
- package/package/acode/dist/tool-concurrency/resource-lock.d.ts +25 -0
- package/package/acode/dist/tool-concurrency/resource-lock.js +2 -0
- package/package/acode/dist/tool-concurrency/scheduler.d.ts +30 -0
- package/package/acode/dist/tool-concurrency/scheduler.js +2 -0
- package/package/acode/dist/tool-concurrency/types.d.ts +80 -0
- package/package/acode/dist/tool-concurrency/types.js +2 -0
- package/package/acode/dist/tool-group-manager.d.ts +116 -0
- package/package/acode/dist/tool-group-manager.js +14 -0
- package/package/acode/dist/types.d.ts +12 -2
- package/package/acode/package.json +2 -2
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +3 -27
- package/package/aws-client-agent-mcp/dist/agent-client.js +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +46 -8
- package/package/aws-client-agent-mcp/dist/mcp-server.js +30 -30
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +29 -3
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +146 -21
- package/package/aws-client-agent-mcp/dist/office/office-equation.d.ts +5 -0
- package/package/aws-client-agent-mcp/dist/office/office-equation.js +2 -0
- package/package/aws-client-agent-mcp/dist/office/office-image.d.ts +12 -0
- package/package/aws-client-agent-mcp/dist/office/office-image.js +2 -0
- package/package/aws-client-agent-mcp/dist/office/office-workspace.d.ts +25 -0
- package/package/aws-client-agent-mcp/dist/office/office-workspace.js +2 -0
- package/package/aws-client-agent-mcp/dist/tool-groups.js +2 -2
- package/package/aws-client-agent-mcp/dist/types.d.ts +6 -2
- package/package/aws-client-agent-mcp/package.json +2 -1
- package/package.json +1 -1
- package/package/acode/dist/capability-prompt.d.ts +0 -16
- package/package/acode/dist/capability-prompt.js +0 -3
- package/package/acode/dist/plugin-tools.d.ts +0 -14
- package/package/acode/dist/plugin-tools.js +0 -9
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import S from"temml";const O="http://schemas.openxmlformats.org/officeDocument/2006/math",b=new Set(["\u2211","\u220F","\u2210","\u222B","\u222C","\u222D","\u222E","\u222F","\u22C3","\u22C2","\u2A04","\u2A01","\u2A02","\u2A00"]),T=new Set(["lim","max","min","sup","inf","det","dim","gcd","lcm","lg","ln","log"]),L=new Set(["\u02C6","~","\u203E","\u2192","\u2190","\u2194","\u02D9","\xA8","\u02D8","\u02C7","`","\xB4","\u23DE","\u23DF","\u20D7"]);function C(r){let e=0;const t={tag:"#root",attrs:{},children:[],text:""},m=[t];for(;e<r.length;){const n=r.indexOf("<",e);if(n<0){w(m[m.length-1],r.slice(e));break}n>e&&w(m[m.length-1],r.slice(e,n));const c=r.indexOf(">",n);if(c<0)break;const i=r.slice(n+1,c).trim();if(i.startsWith("?")||i.startsWith("!")){e=c+1;continue}if(i.startsWith("/")){const P=i.slice(1).trim();m.length>1&&m[m.length-1].tag===P&&m.pop(),e=c+1;continue}const o=i.endsWith("/"),u=o?i.slice(0,-1).trim():i,a=u.search(/\s/),h=a<0?u:u.slice(0,a),v=a<0?"":u.slice(a+1),$={tag:h,attrs:E(v),children:[],text:""};m[m.length-1].children.push($),o||m.push($),e=c+1}return t}function w(r,e){e&&(r.text+=e)}function E(r){const e={},t=/([\w:.-]+)\s*=\s*"([^"]*)"|([\w:.-]+)\s*=\s*'([^']*)'/g;let m;for(;(m=t.exec(r))!==null;)m[1]?e[m[1]]=m[2]??"":m[3]&&(e[m[3]]=m[4]??"");return e}function l(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function f(r){let e=r.text;for(const t of r.children)e+=f(t);return e}function d(r){return r.children.filter(e=>e.tag!=="mspace"&&!(e.tag==="#text"&&!e.text.trim()))}function s(r){switch(r.tag){case"math":case"mrow":case"semantics":return p(r);case"annotation":case"annotation-xml":return"";case"mi":case"mn":case"mo":case"mtext":{const e=f(r);return e?x(e,r.tag==="mi"&&/^[A-Za-z]$/.test(e)?"i":"p"):""}case"msup":return g(r,"sup");case"msub":return g(r,"sub");case"msubsup":return g(r,"subsup");case"mfrac":{const e=d(r),t=e[0]?s(e[0]):"",m=e[1]?s(e[1]):"";return`<m:f><m:fPr/><m:num>${t}</m:num><m:den>${m}</m:den></m:f>`}case"msqrt":return`<m:rad><m:radPr><m:degHide m:val="1"/></m:radPr><m:deg/><m:e>${p(r)}</m:e></m:rad>`;case"mroot":{const e=d(r),t=e[0]?s(e[0]):"";return`<m:rad><m:radPr/><m:deg>${e[1]?s(e[1]):""}</m:deg><m:e>${t}</m:e></m:rad>`}case"mover":case"munder":case"munderover":return X(r);case"mtable":return`<m:m>${M(r)}</m:m>`;case"mfenced":{const e=r.attrs.open??"(",t=r.attrs.close??")",m=p(r);return`<m:d><m:dPr><m:begChr m:val="${l(e)}"/><m:endChr m:val="${l(t)}"/></m:dPr><m:e>${m}</m:e></m:d>`}case"mspace":return"";case"mpadded":case"mstyle":case"menclose":return p(r);default:return p(r)}}function p(r){let e="";r.text.trim()&&(e+=x(r.text,"p"));const t=r.children;let m=0;for(;m<t.length;){const n=t[m];if(y(n)){const c=A(t,m+1);if(c>m){const o=f(n).trim(),u=f(t[c]).trim();let a="";for(let h=m+1;h<c;h++)a+=s(t[h]);e+=`<m:d><m:dPr><m:begChr m:val="${l(o)}"/><m:endChr m:val="${l(u)}"/></m:dPr><m:e>${a}</m:e></m:d>`,m=c+1;continue}if(n.attrs.stretchy==="true"&&c<0){const o=f(n).trim();let u="";for(let a=m+1;a<t.length;a++)u+=s(t[a]);e+=`<m:d><m:dPr><m:begChr m:val="${l(o)}"/><m:endChr m:val=""/></m:dPr><m:e>${u}</m:e></m:d>`,m=t.length;continue}}e+=s(n),m++}return e}function y(r){if(r.tag!=="mo")return!1;const e=f(r).trim();return["(","[","{","|","\u2016","\u27E8","\u230A","\u2308"].includes(e)?r.attrs.fence==="true"||r.attrs.stretchy==="true":!1}function A(r,e){let t=0;for(let m=e;m<r.length;m++){const n=r[m];if(y(n)){t++;continue}if(n.tag==="mo"&&n.attrs.fence==="true"&&n.attrs.form==="postfix"){if(t===0)return m;t--}}return-1}function x(r,e="p"){if(!r)return"";const t=r.replace(/\u2061|\u2062|\u2063|\u2064/g,"");return t?`<m:r><m:rPr><m:sty m:val="${e}"/></m:rPr><m:t xml:space="preserve">${l(t)}</m:t></m:r>`:""}function g(r,e){const t=d(r),m=t[0]?s(t[0]):"",n=t[0]?f(t[0]).trim():"";if(b.has(n)){const o=e!=="sup"&&t[1]?s(t[1]):"",u=e==="sup"?t[1]?s(t[1]):"":t[2]?s(t[2]):"";return`<m:nary><m:naryPr><m:chr m:val="${l(n)}"/><m:limLoc m:val="undOvr"/></m:naryPr><m:sub>${o}</m:sub><m:sup>${u}</m:sup><m:e/></m:nary>`}if(e==="sub"&&t[0]?.tag==="mi"&&T.has(n)){const o=t[1]?s(t[1]):"";return`<m:limLow><m:e>${m}</m:e><m:lim>${o}</m:lim></m:limLow>`}if(e==="sup"){const o=t[1]?s(t[1]):"";return`<m:sSup><m:e>${m}</m:e><m:sup>${o}</m:sup></m:sSup>`}if(e==="sub"){const o=t[1]?s(t[1]):"";return`<m:sSub><m:e>${m}</m:e><m:sub>${o}</m:sub></m:sSub>`}const c=t[1]?s(t[1]):"",i=t[2]?s(t[2]):"";return`<m:sSubSup><m:e>${m}</m:e><m:sub>${c}</m:sub><m:sup>${i}</m:sup></m:sSubSup>`}function X(r){const e=d(r),t=e[0],m=r.tag==="munderover"||r.tag==="munder"?e[1]:void 0,n=r.tag==="munderover"?e[2]:r.tag==="mover"?e[1]:void 0,c=t?f(t).trim():"";if(b.has(c)){const o=m?s(m):"",u=n?s(n):"";return`<m:nary><m:naryPr><m:chr m:val="${l(c)}"/><m:limLoc m:val="undOvr"/></m:naryPr><m:sub>${o}</m:sub><m:sup>${u}</m:sup><m:e/></m:nary>`}const i=n?f(n).trim():"";return n&&(L.has(i)||n.attrs.stretchy==="false")?`<m:acc><m:accPr><m:chr m:val="${l(i||"\u0302")}"/></m:accPr><m:e>${t?s(t):""}</m:e></m:acc>`:m&&n?`<m:limLow><m:e><m:limUpp><m:e>${t?s(t):""}</m:e><m:lim>${s(n)}</m:lim></m:limUpp></m:e><m:lim>${s(m)}</m:lim></m:limLow>`:m?`<m:limLow><m:e>${t?s(t):""}</m:e><m:lim>${s(m)}</m:lim></m:limLow>`:n?`<m:limUpp><m:e>${t?s(t):""}</m:e><m:lim>${s(n)}</m:lim></m:limUpp>`:t?s(t):""}function M(r){let e="";for(const t of r.children){if(t.tag!=="mtr")continue;const m=t.children.filter(n=>n.tag==="mtd");if(m.length===0){e+=`<m:mr><m:e>${p(t)}</m:e></m:mr>`;continue}e+="<m:mr>";for(const n of m)e+=`<m:e>${p(n)}</m:e>`;e+="</m:mr>"}return e}function R(r,e=!1){if(!r||!r.trim())throw new Error("\u516C\u5F0F LaTeX \u4E0D\u80FD\u4E3A\u7A7A");let t;try{t=S.renderToString(r,{displayMode:e,throwOnError:!0})}catch(i){throw new Error(`LaTeX \u89E3\u6790\u5931\u8D25: ${i instanceof Error?i.message:String(i)}\uFF08\u516C\u5F0F\uFF1A${r.slice(0,80)}\uFF09`)}const n=C(t).children.find(i=>i.tag==="math");if(!n)throw new Error(`LaTeX \u8F6C\u6362\u7ED3\u679C\u7F3A\u5C11 math \u6839\u5143\u7D20\uFF08\u516C\u5F0F\uFF1A${r.slice(0,80)}\uFF09`);const c=s(n);if(!c.trim())throw new Error(`\u516C\u5F0F\u8F6C\u6362\u7ED3\u679C\u4E3A\u7A7A\uFF08\u516C\u5F0F\uFF1A${r.slice(0,80)}\uFF09`);return`<m:oMath xmlns:m="${O}">${c}</m:oMath>`}function I(r){if(Array.isArray(r))for(const e of r){if(!e||typeof e!="object")continue;const t=e.props;if(!t||typeof t!="object")continue;const m=t.latex;!m||typeof m!="string"||!m.trim()||typeof t.omml=="string"&&t.omml.trim()||(t.omml=R(m,t.displayMode===!0))}}export{R as latexToOmml,I as prepareOfficeEquationCommands};
|
|
2
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export interface ResolvedImage {
|
|
4
|
+
bytes: Buffer;
|
|
5
|
+
base64: string;
|
|
6
|
+
ext: string;
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export declare function officeResolveImageSource(source: string, workspaceRoot?: string): Promise<ResolvedImage>;
|
|
11
|
+
|
|
12
|
+
export declare function prepareOfficeImageCommands(commands: unknown[], workspaceRoot?: string): Promise<void>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import x from"node:fs";import h from"node:path";import{officeWorkspaceRoot as u}from"./office-workspace.js";const c=8*1024*1024,l=[{magic:[137,80,78,71,13,10,26,10],ext:"png",mime:"image/png"},{magic:[255,216,255],ext:"jpg",mime:"image/jpeg"},{magic:[71,73,70,56,55,97],ext:"gif",mime:"image/gif"},{magic:[71,73,70,56,57,97],ext:"gif",mime:"image/gif"},{magic:[66,77],ext:"bmp",mime:"image/bmp"},{magic:[73,73,42,0],ext:"tif",mime:"image/tiff"},{magic:[77,77,0,42],ext:"tif",mime:"image/tiff"}],M=[82,73,70,70],d=15e3;async function E(t,o){if(!t||typeof t!="string"||!t.trim())throw new Error("\u56FE\u7247 source \u4E0D\u80FD\u4E3A\u7A7A\u3002\u6765\u6E90\uFF1A\u5DE5\u4F5C\u533A\u8DEF\u5F84\u3001http(s) URL\u3001data:image URL");const e=t.trim();if(e.startsWith("data:")){const m=/^data:image\/([a-zA-Z0-9+.-]+)(?:;base64)?,(.+)$/.exec(e);if(!m)throw new Error("data:image URL \u683C\u5F0F\u4E0D\u5408\u6CD5\uFF08\u9700\u8981 data:image/xxx;base64,...\uFF09");const a=m[1]?.toLowerCase().replace("jpeg","jpg")||"png";if(a==="webp"||a==="svg"||a==="ico")throw new Error(`\u4E0D\u652F\u6301\u7684\u56FE\u7247\u683C\u5F0F: ${a}\uFF0C\u4EC5\u652F\u6301 PNG/JPEG/GIF/BMP/TIFF`);const i=m[2]?.trim();if(!i)throw new Error("data:image URL \u5185\u5BB9\u4E3A\u7A7A");const s=Buffer.from(i,"base64");return w(s,a,`image.${a}`)}if(/^https?:\/\//i.test(e)){const m=await $(e);return p(m,e)}const r=o||u(),n=h.resolve(r,e);if(!x.existsSync(n))throw new Error(`\u56FE\u7247\u6587\u4EF6\u4E0D\u5B58\u5728: ${e}\uFF08\u89E3\u6790\u4E3A ${n}\uFF09`);const f=x.statSync(n);if(!f.isFile())throw new Error(`\u4E0D\u662F\u666E\u901A\u6587\u4EF6: ${e}`);if(f.size>c)throw new Error(`\u56FE\u7247\u6587\u4EF6\u8D85\u9650\uFF08\u4E0A\u9650 ${c/1024/1024}MB\uFF09: ${e}`);const g=x.readFileSync(n);return p(g,h.basename(n))}async function $(t){let o;try{o=new URL(t)}catch{throw new Error(`\u65E0\u6548\u7684\u56FE\u7247 URL: ${t}`)}if(o.protocol!=="http:"&&o.protocol!=="https:")throw new Error(`\u4E0D\u652F\u6301\u7684 URL \u534F\u8BAE: ${o.protocol}\uFF08\u4EC5\u652F\u6301 http/https\uFF09`);let e;try{e=await fetch(t,{signal:AbortSignal.timeout(d)})}catch(i){throw new Error(`\u56FE\u7247\u4E0B\u8F7D\u5931\u8D25: ${t}\uFF08${i instanceof Error?i.message:String(i)}\uFF09`)}if(!e.ok)throw new Error(`\u56FE\u7247\u4E0B\u8F7D\u5931\u8D25: ${t}\uFF08HTTP ${e.status}\uFF09`);const r=(e.headers.get("content-type")||"").split(";")[0]?.trim().toLowerCase()||"";if(r&&!r.startsWith("image/"))throw new Error(`URL \u8FD4\u56DE\u7684\u4E0D\u662F\u56FE\u7247\uFF08content-type: ${r}\uFF09: ${t}`);const n=Number(e.headers.get("content-length")||"");if(Number.isFinite(n)&&n>c)throw new Error(`\u56FE\u7247\u592A\u5927: ${t}\uFF08${n} > ${c} \u5B57\u8282\uFF09`);const f=e.body;if(!f){const i=Buffer.from(await e.arrayBuffer());if(i.length>c)throw new Error(`\u56FE\u7247\u592A\u5927: ${t}\uFF08${i.length} > ${c} \u5B57\u8282\uFF09`);return i}const g=f.getReader(),m=[];let a=0;for(;;){const{done:i,value:s}=await g.read();if(i)break;if(s){if(a+=s.byteLength,a>c)throw g.cancel().catch(()=>{}),new Error(`\u56FE\u7247\u592A\u5927: ${t}\uFF08> ${c/1024/1024}MB\uFF09`);m.push(Buffer.from(s))}}return Buffer.concat(m,a)}function p(t,o){if(t.length===0)throw new Error("\u56FE\u7247\u5185\u5BB9\u4E3A\u7A7A");if(t.length>c)throw new Error(`\u56FE\u7247\u8D85\u9650\uFF08\u4E0A\u9650 ${c/1024/1024}MB\uFF09`);const e=B(t);if(!e){const r=t.length>0?`0x${t.slice(0,4).toString("hex").toUpperCase()}`:"";throw new Error(`\u4E0D\u652F\u6301\u7684\u56FE\u7247\u683C\u5F0F\uFF08\u9B54\u6570 ${r}\uFF09\uFF0C\u4EC5\u652F\u6301 PNG/JPEG/GIF/BMP/TIFF`)}return w(t,e,o)}function w(t,o,e){return{bytes:t,base64:t.toString("base64"),ext:o,name:e.match(/[\w.-]+$/)?e:`image.${o}`}}function B(t){if(t.length<4||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&t.length>=12&&t[8]===87&&t[9]===69&&t[10]===66&&t[11]===80)return null;for(const o of l)if(t.length>=o.magic.length){let e=!0;for(let r=0;r<o.magic.length;r++)if(t[r]!==o.magic[r]){e=!1;break}if(e)return o.ext}return null}async function A(t,o){if(Array.isArray(t))for(const e of t){if(!e||typeof e!="object")continue;const r=e.props;if(!r||typeof r!="object")continue;const n=r.source;if(!n||typeof n!="string"||!n.trim()||r.imageBase64)continue;const f=await E(n,o);r.imageBase64=f.base64,r.imageName||(r.imageName=f.name)}}export{E as officeResolveImageSource,A as prepareOfficeImageCommands};
|
|
2
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export declare function officeKindOf(filePath: string): "docx" | "xlsx" | "pptx" | null;
|
|
4
|
+
|
|
5
|
+
export declare function officeWorkspaceRoot(): string;
|
|
6
|
+
|
|
7
|
+
export declare function resolveOfficeFile(rawFile: string, workspaceRoot?: string): string;
|
|
8
|
+
|
|
9
|
+
export interface PackedOfficeFile {
|
|
10
|
+
|
|
11
|
+
absolutePath: string;
|
|
12
|
+
|
|
13
|
+
fileName: string;
|
|
14
|
+
|
|
15
|
+
fileBase64: string;
|
|
16
|
+
|
|
17
|
+
sizeKb: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export declare function packOfficeFile(rawFile: string, workspaceRoot?: string): PackedOfficeFile;
|
|
21
|
+
|
|
22
|
+
export declare function writeOfficeFileAtomic(rawFile: string, fileBase64: string, workspaceRoot?: string): {
|
|
23
|
+
absolutePath: string;
|
|
24
|
+
sizeKb: number;
|
|
25
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import i from"node:fs";import o from"node:path";const h={".docx":"docx",".docm":"docx",".xlsx":"xlsx",".xlsm":"xlsx",".pptx":"pptx",".pptm":"pptx"};function x(t){return h[o.extname(t).toLowerCase()]??null}function p(){return o.resolve(process.env.AWS_WORKSPACE_PATH||process.cwd())}function l(t,s=p()){const e=t.trim();if(!e)throw new Error("file \u4E0D\u80FD\u4E3A\u7A7A");return o.resolve(s,e)}const m=16*1024*1024;function E(t,s=p()){const e=l(t,s),n=o.basename(e);if(!x(e))throw new Error(`\u4E0D\u652F\u6301\u7684\u6587\u6863\u7C7B\u578B: ${t}\uFF08\u4EC5\u652F\u6301 .docx/.docm\u3001.xlsx/.xlsm\u3001.pptx/.pptm\uFF09`);let r;try{r=i.statSync(e)}catch{throw new Error(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${t}\uFF08\u89E3\u6790\u4E3A ${e}\uFF09`)}if(!r.isFile())throw new Error(`\u4E0D\u662F\u666E\u901A\u6587\u4EF6: ${t}`);if(r.size>m)throw new Error(`\u6587\u4EF6\u8FC7\u5927\uFF08\u4E0A\u9650 ${Math.floor(m/1024/1024)}MB\uFF09: ${t}`);const c=i.readFileSync(e);return{absolutePath:e,fileName:n,fileBase64:c.toString("base64"),sizeKb:Math.ceil(c.length/1024)}}function d(t,s,e=p()){const n=l(t,e),r=typeof s=="string"?s.trim():"";if(!r)throw new Error("\u8FD4\u56DE\u7684\u6587\u4EF6\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u5DF2\u653E\u5F03\u5199\u56DE");if(!/^[A-Za-z0-9+/]+={0,2}$/.test(r)||r.length%4!==0)throw new Error("\u8FD4\u56DE\u7684 fileBase64 \u4E0D\u662F\u5408\u6CD5 Base64 \u5185\u5BB9");const c=Buffer.from(r,"base64");if(c.length===0)throw new Error("\u8FD4\u56DE\u7684\u6587\u4EF6\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u5DF2\u653E\u5F03\u5199\u56DE");i.mkdirSync(o.dirname(n),{recursive:!0});const f=o.join(o.dirname(n),`.${o.basename(n)}.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`);i.writeFileSync(f,c);try{i.renameSync(f,n)}catch(a){try{i.rmSync(f,{force:!0})}catch{}throw new Error(`\u5199\u56DE\u5931\u8D25\uFF08\u6587\u4EF6\u53EF\u80FD\u6B63\u88AB\u5176\u4ED6\u7A0B\u5E8F\u5360\u7528\uFF09: ${t} - ${a instanceof Error?a.message:String(a)}`)}return{absolutePath:n,sizeKb:Math.ceil(c.length/1024)}}export{x as officeKindOf,p as officeWorkspaceRoot,E as packOfficeFile,l as resolveOfficeFile,d as writeOfficeFileAtomic};
|
|
2
|
+
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`)}export{r as BRIDGE_LAZY_CAPABILITIES,
|
|
1
|
+
import{DEBUG_LOG_TOOL_NAMES as n,DRAW_TOOL_NAMES as u,FILE_CHANGES_HISTORY_TOOL_NAMES as s,HIRE_TOOL_NAMES as i,LAUNCH_CONFIG_TOOL_NAMES as d,MEETING_TOOL_NAMES as f,OFFICE_TOOL_NAMES as p,PENCIL_TOOL_NAMES as c,TASK_TOOL_NAMES as y}from"./mcp-tools.js";const m=new Set(["disabled","collapsed","expanded"]);function O(e){if(e===!0)return"expanded";if(e===!1)return"disabled";if(typeof e=="string"&&m.has(e))return e}const a=[{key:"launch",label:"\u542F\u52A8\u9879\u7BA1\u7406",featureKey:"agentSys.launchItem",toolNames:d,collapsible:!0,defaultState:"collapsed",summary:"\u7BA1\u7406\u5F00\u53D1\u670D\u52A1\u8FDB\u7A0B\uFF08\u542F\u52A8/\u505C\u6B62/\u91CD\u542F/\u67E5\u770B\u65E5\u5FD7\uFF09"},{key:"hire",label:"\u62DB\u8058\u5DE5\u5177",featureKey:"agentSys.hire",toolNames:i,collapsible:!0,defaultState:"collapsed",summary:"\u62DB\u8058\u65B0\u7684\u540C\u4E8B Agent\uFF08\u5355\u4E2A\u6216\u6279\u91CF\uFF09"},{key:"pencil",label:"\u8BBE\u8BA1\u753B\u5E03(pencil)",featureKey:"pencil",toolNames:c,collapsible:!0,defaultState:"collapsed",summary:"UI design editor. Open-source Figma alternative."},{key:"draw",label:"\u7ED8\u56FE",featureKey:"draw",toolNames:u,collapsible:!0,defaultState:"collapsed",summary:"\u7ED8\u5236 draw.io \u6D41\u7A0B\u56FE / \u6CF3\u9053\u56FE\uFF0C\u5BFC\u51FA XML"},{key:"office",label:"Office \u6587\u4EF6",featureKey:"office",toolNames:p,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA\u4E0E\u7F16\u8F91 Word/Excel/PowerPoint\uFF08docx/xlsx/pptx\uFF0CApache POI \u683C\u5F0F\u5C42\uFF09\uFF1AWord \u652F\u6301 run/\u5355\u5143\u683C\u7EA7\u7CBE\u51C6\u7F16\u8F91\u3001\u6279\u6CE8\u3001\u4FEE\u8BA2\u3001\u516C\u5F0F\u3001\u76EE\u5F55\u9875\u7801\u3001\u4E09\u7EBF\u8868\u3001\u6807\u9898\u7F16\u53F7\u4E0E\u683C\u5F0F\u89C4\u8303\u68C0\u67E5/\u4E00\u952E\u4FEE\u6B63\uFF1B\u6821\u9A8C\u3001\u751F\u6210 HTML \u9884\u89C8\u3001\u5728 Dashboard \u9762\u677F\u4E2D\u5B9E\u65F6\u67E5\u770B\uFF0C\u53EF\u53D1\u6D88\u606F\u5361\u7247\u5206\u4EAB\u6587\u4EF6\uFF1B\u6587\u6863\u81EA\u52A8\u767B\u8BB0\u4E3A\u4E91\u6587\u6863\uFF0C\u652F\u6301\u5217\u51FA/\u5206\u4EAB\u7ED9\u5176\u4ED6 Agent \u534F\u4F5C\uFF08read|write\uFF09\u4E0E\u8FFD\u8D76\u53D8\u66F4"},{key:"task",label:"\u6D41\u7A0B\u4EFB\u52A1",featureKey:"collaboration.task",toolNames:y,collapsible:!0,defaultState:"collapsed",summary:"\u5904\u7406\u6D41\u7A0B\u7EBF\u4EFB\u52A1\uFF1A\u67E5\u770B\u5F53\u524D\u4EFB\u52A1\u3001\u63D0\u4EA4\u6267\u884C\u7ED3\u679C\u3001\u62D2\u7EDD/\u7EC8\u6B62/\u56DE\u9000\u4EFB\u52A1\u3001\u7ED9\u6D41\u7A0B\u5B9E\u4F8B\u7559\u8A00"},{key:"meeting",label:"\u4F1A\u8BAE",featureKey:"collaboration.meeting",toolNames:f,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA/\u52A0\u5165\u4F1A\u8BAE\u3001\u53D1\u8A00\u3001\u67E5\u770B\u4F1A\u8BAE\u4FE1\u606F\u3001\u79BB\u5F00/\u7ED3\u675F\u4F1A\u8BAE"},{key:"debug",label:"\u8C03\u8BD5\u65E5\u5FD7",featureKey:"collaboration.debug",toolNames:n,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u6761\u4EF6\u5206\u9875\u67E5\u8BE2 Debug \u65E5\u5FD7\u4E0E\u83B7\u53D6\u65E5\u5FD7\u4E0A\u62A5\u914D\u7F6E"},{key:"fileHistory",label:"\u6587\u4EF6\u53D8\u66F4\u5386\u53F2",featureKey:"collaboration.fileHistory",toolNames:s,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u89D2\u8272/\u5B9E\u4F8B/\u6587\u4EF6\u8DEF\u5F84\u8FC7\u6EE4\u67E5\u8BE2\u6587\u4EF6\u53D8\u66F4\u5386\u53F2"}],b=new Map(a.map(e=>[e.key,e])),_=(()=>{const e=new Map;for(const t of a)for(const l of t.toolNames)e.set(l,t);return e})();function N(e){return b.get(e)}const r=[{key:"browser",label:"\u6D4F\u89C8\u5668\u64CD\u4F5C",featureKey:"browser",defaultState:"collapsed",summary:"\u542F\u52A8\u6D4F\u89C8\u5668\u4F1A\u8BDD\u3001\u5BFC\u822A\u3001\u622A\u56FE\u4E0E\u9875\u9762\u4EA4\u4E92"},{key:"desktop",label:"\u684C\u9762\u64CD\u4F5C",featureKey:"desktop",defaultState:"disabled",summary:"\u622A\u5C4F\u3001\u9F20\u6807\u952E\u76D8\u63A7\u5236\u4E0E UI \u81EA\u52A8\u5316\uFF08Computer Use\uFF09"}];function T(e){return r.find(t=>t.key===e)}function E(e){return _.get(e)}function x(e){const t=a.find(o=>o.featureKey===e);return t?t.defaultState:r.find(o=>o.featureKey===e)?.defaultState}function A(e){return r.find(t=>e.startsWith(`${t.key}_`))}function k(){return a.filter(e=>e.collapsible).map(e=>e.key)}function L(e,t,l){return e.featureKey&&t==="disabled"?"disabled":e.collapsible&&t==="collapsed"&&!l?"collapsed":"expanded"}function g(e){return e.length===0?void 0:["## \u6309\u9700\u5DE5\u5177\u96C6","","\u4EE5\u4E0B\u5DE5\u5177\u96C6\u9ED8\u8BA4\u6536\u8D77\u4EE5\u4FDD\u6301\u5DE5\u5177\u5217\u8868\u7A33\u5B9A\u5E76\u8282\u7701\u4E0A\u4E0B\u6587\u3002\u5F53\u4EFB\u52A1\u9700\u8981\u65F6\uFF0C\u5148\u8C03\u7528 expand_tools \u5C55\u5F00\uFF0C","\u5DE5\u5177\u5B9A\u4E49\uFF08\u540D\u79F0/\u8BF4\u660E/\u53C2\u6570 schema\uFF09\u968F expand_tools \u7684\u8FD4\u56DE\u7ED3\u679C\u4E0B\u53D1\uFF0C\u5F53\u8F6E\u5373\u53EF\u7ECF call_tool \u8C03\u7528\uFF1A",'call_tool({ name: "<\u5DE5\u5177\u540D>", arguments: {...} })',"",...e.map(l=>`- ${l.key}\uFF08${l.label}\uFF09\uFF1A${l.summary}`),"",'\u793A\u4F8B\uFF1Aexpand_tools({ group: "pencil" })'].join(`
|
|
2
|
+
`)}export{r as BRIDGE_LAZY_CAPABILITIES,a as TOOL_GROUPS,g as buildToolGroupPrompt,k as collapsibleToolGroupKeys,x as defaultStateForFeatureKey,A as findBridgeCapabilityByToolName,T as findBridgeLazyCapability,N as findToolGroup,E as findToolGroupByToolName,O as normalizeFeatureState,L as resolveToolGroupState};
|
|
3
3
|
|
|
@@ -428,13 +428,17 @@ export interface HireBatchResult {
|
|
|
428
428
|
|
|
429
429
|
export type McpToolName = "get_colleague" | "get_group_rooms" | "get_profile" | "hire_colleague" | "send_group" | "send_private" | "poll_message" | "get_message" | "get_dm_history" | "get_group_history" | "start_listening" | "stop_listening";
|
|
430
430
|
|
|
431
|
-
export type CardType = "pencil" | "draw";
|
|
431
|
+
export type CardType = "pencil" | "draw" | "office";
|
|
432
432
|
|
|
433
433
|
export interface Card {
|
|
434
434
|
|
|
435
435
|
type: CardType;
|
|
436
436
|
|
|
437
|
-
docId
|
|
437
|
+
docId?: string;
|
|
438
|
+
|
|
439
|
+
filePath?: string;
|
|
440
|
+
|
|
441
|
+
previewUrl?: string;
|
|
438
442
|
|
|
439
443
|
title?: string;
|
|
440
444
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"build": "tsc && node ../../scripts/minify-dist.mjs",
|
|
16
16
|
"dev": "tsc --watch",
|
|
17
17
|
"start": "node dist/index.js",
|
|
18
|
-
"test": "npm run build && tsc -p tsconfig.test.json && node --test --test-timeout=60000 dist-test
|
|
18
|
+
"test": "npm run build && tsc -p tsconfig.test.json && node --test --test-timeout=60000 \"dist-test/**/*.test.js\"",
|
|
19
19
|
"prepare": "npm run build",
|
|
20
20
|
"lint": "eslint src --max-warnings 0",
|
|
21
21
|
"lint:fix": "eslint src --fix",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
36
36
|
"aws-runtime-bridge": "file:../..",
|
|
37
|
+
"temml": "^0.13.5",
|
|
37
38
|
"ws": "^8.14.2",
|
|
38
39
|
"yaml": "^2.3.4"
|
|
39
40
|
},
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type CapabilityState = "disabled" | "collapsed" | "expanded";
|
|
4
|
-
|
|
5
|
-
export interface CapabilityPromptEntry {
|
|
6
|
-
|
|
7
|
-
featureKey: string;
|
|
8
|
-
|
|
9
|
-
label: string;
|
|
10
|
-
|
|
11
|
-
summary: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export declare const CAPABILITY_PROMPT_ENTRIES: readonly CapabilityPromptEntry[];
|
|
15
|
-
|
|
16
|
-
export declare function buildCapabilityPrompt(stateOf: (featureKey: string) => CapabilityState | undefined): string;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const o=[{featureKey:"agentSys.launchItem",label:"\u542F\u52A8\u9879\u7BA1\u7406",summary:"\u7BA1\u7406\u5F00\u53D1\u670D\u52A1\u8FDB\u7A0B\uFF08\u542F\u52A8 / \u505C\u6B62 / \u91CD\u542F / \u67E5\u770B\u65E5\u5FD7\uFF09"},{featureKey:"agentSys.hire",label:"\u62DB\u8058\u5DE5\u5177",summary:"\u62DB\u8058\u65B0\u7684\u540C\u4E8B Agent"},{featureKey:"pencil",label:"\u8BBE\u8BA1\u753B\u5E03(pencil)",summary:"UI design editor. Open-source Figma alternative."},{featureKey:"draw",label:"\u7ED8\u56FE",summary:"\u7ED8\u5236 draw.io \u6D41\u7A0B\u56FE / \u6CF3\u9053\u56FE\uFF0C\u5BFC\u51FA XML"},{featureKey:"browser",label:"\u6D4F\u89C8\u5668\u64CD\u4F5C",summary:"\u542F\u52A8\u6D4F\u89C8\u5668\u4F1A\u8BDD\u3001\u5BFC\u822A\u3001\u622A\u56FE\u4E0E\u9875\u9762\u4EA4\u4E92"},{featureKey:"desktop",label:"\u684C\u9762\u64CD\u4F5C",summary:"\u622A\u5C4F\u3001\u9F20\u6807\u952E\u76D8\u63A7\u5236\u4E0E UI \u81EA\u52A8\u5316\uFF08Computer Use\uFF09"}];function u(n){const l=[],a=[],t=[];for(const e of o){const r=n(e.featureKey)??"disabled";r==="disabled"?t.push(e):r==="collapsed"?a.push(e):l.push(e)}const s=["## \u53EF\u7528\u80FD\u529B",""];if(l.length>0||a.length>0){s.push("\u5DF2\u5F00\u542F\uFF1A");for(const e of l)s.push(`- ${e.label}\uFF1A${e.summary}\uFF08\u5DE5\u5177\u5DF2\u53EF\u76F4\u63A5\u8C03\u7528\uFF09`);for(const e of a)s.push(`- ${e.label}\uFF1A${e.summary}\uFF08\u5DE5\u5177\u5DF2\u6536\u8D77\uFF09`);a.length>0&&(s.push(""),s.push("\u6807\u8BB0\u300C\u5DE5\u5177\u5DF2\u6536\u8D77\u300D\u7684\u80FD\u529B\uFF1A\u5DE5\u5177\u9ED8\u8BA4\u6536\u8D77\u4EE5\u4FDD\u6301\u5DE5\u5177\u5217\u8868\u7A33\u5B9A\u5E76\u8282\u7701\u4E0A\u4E0B\u6587\uFF0C\u4EFB\u52A1\u9700\u8981\u65F6\u5148\u8C03\u7528 expand_tools \u5C55\u5F00\uFF0C\u5DE5\u5177\u5B9A\u4E49\u968F\u7ED3\u679C\u8FD4\u56DE\u540E\u5373\u53EF\u7ECF call_tool \u8C03\u7528\u3002"))}else s.push("\u5F53\u524D\u6CA1\u6709\u5DF2\u5F00\u542F\u7684\u6269\u5C55\u80FD\u529B\u3002");if(t.length>0){s.push(""),s.push("\u672A\u5F00\u542F\uFF08\u5DE5\u5177\u4E0D\u5728\u4F60\u7684\u5217\u8868\u4E2D\uFF09\u3002\u82E5\u4EFB\u52A1\u786E\u5B9E\u9700\u8981\uFF0C\u8BF7\u544A\u77E5\u7528\u6237\u53BB\u300C\u80FD\u529B\u914D\u7F6E\u300D\u4E2D\u5F00\u542F\u5BF9\u5E94\u5F00\u5173\uFF0C\u4E0D\u8981\u81EA\u884C\u5047\u8BBE\u4F60\u6709\u8BE5\u80FD\u529B\uFF1A");for(const e of t)s.push(`- ${e.label}\uFF1A${e.summary}`)}return s.join(`
|
|
2
|
-
`)}export{o as CAPABILITY_PROMPT_ENTRIES,u as buildCapabilityPrompt};
|
|
3
|
-
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { ACodeBuiltInTool } from "./built-in-file-tools.js";
|
|
3
|
-
import type { ACodePluginBridge } from "./plugin-types.js";
|
|
4
|
-
export interface PluginToolsDeps {
|
|
5
|
-
pluginBridge?: ACodePluginBridge;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export declare function splitQualifiedToolName(qualifiedName: string): {
|
|
9
|
-
plugin: string;
|
|
10
|
-
tool: string;
|
|
11
|
-
} | null;
|
|
12
|
-
export declare function createPluginTools(deps: PluginToolsDeps): ACodeBuiltInTool[];
|
|
13
|
-
|
|
14
|
-
export declare function buildPluginPrompt(): string;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const h=/^[a-z0-9][a-z0-9-]*$/,d=`\u8C03\u7528\u63D2\u4EF6\u5C42\u6CE8\u5165\u7684\u5DE5\u5177\uFF08\u4E09\u65B9\u5DE5\u5177\u7ECF\u63D2\u4EF6\u63A5\u5165\u540E\u7684\u7EDF\u4E00\u8C03\u7528\u5165\u53E3\uFF09\u3002
|
|
2
|
-
\u63D2\u4EF6\u5DE5\u5177\u4E0D\u5728\u4F60\u7684\u9759\u6001\u5DE5\u5177\u5217\u8868\u4E2D\uFF1A\u53EF\u7528\u5DE5\u5177\u7684\u7D27\u51D1\u76EE\u5F55\u968F poll_message \u7ED3\u679C\u7684 pluginCatalog \u5B57\u6BB5\u8FD4\u56DE\uFF08\u542B\u63D2\u4EF6\u540D\u3001\u5DE5\u5177\u540D\u3001\u4E00\u53E5\u8BDD\u63CF\u8FF0\u3001\u5FC5\u586B\u53C2\u6570\uFF09\uFF0C\u63D2\u4EF6\u4E8B\u4EF6\u6D88\u606F\u5C3E\u90E8\u4F1A\u9644 toolHints \u63D0\u793A\u5EFA\u8BAE\u8C03\u7528\u7684\u5DE5\u5177\u3002
|
|
3
|
-
\u7528\u6CD5\uFF1A
|
|
4
|
-
- action=call\uFF08\u9ED8\u8BA4\uFF09\uFF1Atool \u4F20\u9650\u5B9A\u540D "\u63D2\u4EF6\u540D.\u5DE5\u5177\u540D"\uFF08\u5982 "wechat-cli.send_msg"\uFF09\uFF0Cparams \u4F20\u52A8\u6001\u53C2\u6570\u5BF9\u8C61\uFF1B\u53C2\u6570\u6309\u63D2\u4EF6\u58F0\u660E\u7684 JSON Schema \u6821\u9A8C\uFF0C\u6821\u9A8C\u5931\u8D25\u65F6\u8FD4\u56DE\u7ED3\u679C\u4F1A\u9644\u5E26\u5B8C\u6574 inputSchema\uFF0C\u8BF7\u4FEE\u6B63\u540E\u91CD\u8BD5\u3002
|
|
5
|
-
- action=schema\uFF1Atool \u4F20\u9650\u5B9A\u540D\uFF08\u652F\u6301 "\u63D2\u4EF6\u540D.*"\uFF09\uFF0C\u8FD4\u56DE\u8BE5\u5DE5\u5177\uFF08\u6216\u63D2\u4EF6\u5168\u90E8\u5DE5\u5177\uFF09\u7684\u5B8C\u6574 JSON Schema \u5B9A\u4E49\u3002\u76EE\u5F55\u63CF\u8FF0\u4E0D\u591F\u7528\u3001\u6216\u53C2\u6570\u6821\u9A8C\u53CD\u590D\u5931\u8D25\u65F6\u5148\u53D6 schema\u3002
|
|
6
|
-
- action=catalog\uFF1A\u8FD4\u56DE\u5F53\u524D\u5168\u90E8\u63D2\u4EF6\u7684\u7D27\u51D1\u76EE\u5F55\uFF08\u5B89\u88C5\u65B0\u63D2\u4EF6\u540E\u53EF\u7528\u5B83\u7ACB\u5373\u611F\u77E5\uFF09\u3002
|
|
7
|
-
\u6CE8\u610F\uFF1A\u63D2\u4EF6\u672A\u5B89\u88C5/\u5DF2\u505C\u7528/\u5DE5\u5177\u4E0D\u5B58\u5728\u65F6\u8FD4\u56DE\u660E\u786E\u9519\u8BEF\uFF0C\u4E0D\u8981\u51ED\u7A7A\u7F16\u9020\u5DE5\u5177\u540D\u3002`;function _(o){const t=o.indexOf(".");if(t<=0||t>=o.length-1)return null;const c=o.slice(0,t),a=o.slice(t+1);return!h.test(c)||!a.trim()?null:{plugin:c,tool:a.trim()}}function S(o){const t=o.pluginBridge;return t?[y(t)]:[]}function y(o){return{kind:"builtin",toolName:"function_call",exposedName:"function_call",category:"plugin",description:d,inputSchema:{type:"object",properties:{action:{type:"string",enum:["call","schema","catalog"],default:"call",description:"call=\u8C03\u7528\u63D2\u4EF6\u5DE5\u5177\uFF1Bschema=\u53D6\u5B8C\u6574\u53C2\u6570\u5B9A\u4E49\uFF1Bcatalog=\u53D6\u63D2\u4EF6\u5DE5\u5177\u76EE\u5F55"},tool:{type:"string",description:'\u9650\u5B9A\u540D "\u63D2\u4EF6\u540D.\u5DE5\u5177\u540D"\uFF08\u5982 "wechat-cli.send_msg"\uFF09\uFF1Baction=schema \u65F6\u652F\u6301 "\u63D2\u4EF6\u540D.*" \u53D6\u6574\u7EC4\u5B9A\u4E49'},params:{type:"object",description:"call \u7684\u52A8\u6001\u53C2\u6570\u5BF9\u8C61\uFF0C\u6309\u63D2\u4EF6\u58F0\u660E\u7684 inputSchema \u6821\u9A8C"}},required:["tool"],additionalProperties:!1},async execute(t,c){const a=typeof t.action=="string"?t.action:"call",n=typeof t.tool=="string"?t.tool.trim():"";try{if(a==="catalog")return await o.getCatalog();if(!n)return{error:'\u7F3A\u5C11 tool \u53C2\u6570\uFF08\u9650\u5B9A\u540D "\u63D2\u4EF6\u540D.\u5DE5\u5177\u540D"\uFF09'};if(a==="schema"){if(n.endsWith(".*")){const i=n.slice(0,-2),m=await o.getCatalog(),g=m.plugins.find(s=>s.plugin===i);if(!g)return{error:`\u63D2\u4EF6 ${i} \u672A\u5B89\u88C5\u6216\u5DF2\u505C\u7528`,catalog:m.plugins};const f=await Promise.all(g.tools.map(s=>o.getToolSchema(`${i}.${s.name}`)));return{plugin:i,schemas:f.filter(Boolean)}}const p=await o.getToolSchema(n);return p||{error:`\u672A\u77E5\u63D2\u4EF6\u5DE5\u5177: ${n}\uFF08\u53EF\u5148 action=catalog \u67E5\u770B\u76EE\u5F55\uFF09`}}if(a!=="call")return{error:`\u672A\u77E5 action: ${a}\uFF08\u5141\u8BB8\uFF1Acall / schema / catalog\uFF09`};const e=_(n);if(!e)return{error:`tool \u9650\u5B9A\u540D\u4E0D\u5408\u6CD5: ${n}\uFF08\u5E94\u4E3A "\u63D2\u4EF6\u540D.\u5DE5\u5177\u540D"\uFF0C\u63D2\u4EF6\u540D\u4E3A kebab-case\uFF09`};const u=t.params&&typeof t.params=="object"&&!Array.isArray(t.params)?t.params:{},l=await o.invokeTool(e.plugin,e.tool,u,{toolCallId:c?.toolCallId});if(l.ok)return l.result??{ok:!0};const r={error:l.error??"\u63D2\u4EF6\u5DE5\u5177\u8C03\u7528\u5931\u8D25"};return l.inputSchema!==void 0&&(r.inputSchema=l.inputSchema),typeof l.durationMs=="number"&&(r.durationMs=l.durationMs),r}catch(e){return{error:`function_call \u5931\u8D25: ${e instanceof Error?e.message:String(e)}`}}}}}function C(){return["## \u63D2\u4EF6\u7CFB\u7EDF",'- \u4E09\u65B9\u5DE5\u5177\u4EE5\u63D2\u4EF6\u5F62\u5F0F\u63A5\u5165\u3002\u63D2\u4EF6\u5DE5\u5177\u4E0D\u5728\u4F60\u7684\u9759\u6001\u5DE5\u5177\u5217\u8868\u4E2D\uFF1A\u7D27\u51D1\u76EE\u5F55\u968F poll_message \u7ED3\u679C\u7684 pluginCatalog \u5B57\u6BB5\u8FD4\u56DE\uFF1B\u7528 function_call \u8C03\u7528\uFF08tool="\u63D2\u4EF6\u540D.\u5DE5\u5177\u540D"\uFF0Cparams \u4E3A\u52A8\u6001\u53C2\u6570\uFF09\u3002','- \u53C2\u6570\u4E0D\u7B26\u5408\u63D2\u4EF6 schema \u65F6\uFF0Cfunction_call \u4F1A\u8FD4\u56DE\u9519\u8BEF\u5E76\u9644\u5B8C\u6574 inputSchema\uFF0C\u8BF7\u4FEE\u6B63\u540E\u91CD\u8BD5\uFF1B\u76EE\u5F55\u63CF\u8FF0\u4E0D\u8DB3\u65F6\u7528 function_call {action:"schema"} \u53D6\u5B8C\u6574\u5B9A\u4E49\u3002',"- \u63D2\u4EF6\u4E8B\u4EF6\u4EE5 [plugin-event] \u5F00\u5934\u7684\u6D88\u606F\u51FA\u73B0\u5728 poll_message \u7ED3\u679C\u4E2D\uFF0C\u6D88\u606F\u5C3E\u90E8\u6709 toolHints\uFF08\u5EFA\u8BAE\u8C03\u7528\u7684\u5DE5\u5177\uFF09\u4E0E payload\uFF08\u4E8B\u4EF6\u6570\u636E\uFF09\uFF0C\u6309\u63D0\u793A\u7528 function_call \u5904\u7406\u3002",'- \u63D2\u4EF6\u751F\u547D\u5468\u671F\uFF08\u5B89\u88C5/\u5378\u8F7D/\u91CD\u8F7D/\u542F\u505C/\u5217\u8868\uFF09\u4E5F\u662F\u63D2\u4EF6\u5DE5\u5177\uFF1A\u7ECF function_call \u8C03\u7528\u5185\u7F6E\u63D2\u4EF6 plugin-manager \u7684 manage \u5DE5\u5177\uFF0C\u5373 function_call {tool:"plugin-manager.manage", params:{action:"...", ...}}\uFF08plugin-manager \u5728 pluginCatalog \u4E2D\u53EF\u67E5\uFF09\u3002\u672A\u7ECF\u7528\u6237\u660E\u786E\u8981\u6C42\u4E0D\u8981\u5B89\u88C5\u6216\u5378\u8F7D\u63D2\u4EF6\u3002\u5F00\u53D1\u63D2\u4EF6\u5148\u7528\u5185\u7F6E /create-plugin \u547D\u4EE4\u83B7\u53D6\u5F00\u53D1\u89C4\u8303\uFF0C\u5199\u5B8C\u63D2\u4EF6\u76EE\u5F55\u540E\u518D\u7528 function_call \u8C03 plugin-manager.manage install \u751F\u6548\u3002'].join(`
|
|
8
|
-
`)}export{C as buildPluginPrompt,S as createPluginTools,_ as splitQualifiedToolName};
|
|
9
|
-
|