@agentdevjs/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BasicAgent-RPYJHYCM.js +12 -0
- package/dist/BasicAgent-RPYJHYCM.js.map +1 -0
- package/dist/ExplorerAgent-ITTSJRJI.js +12 -0
- package/dist/ExplorerAgent-ITTSJRJI.js.map +1 -0
- package/dist/chunk-574NG4UB.js +1259 -0
- package/dist/chunk-574NG4UB.js.map +1 -0
- package/dist/chunk-BVF7RUXV.js +136 -0
- package/dist/chunk-BVF7RUXV.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-KO4DJKM6.js +99 -0
- package/dist/chunk-KO4DJKM6.js.map +1 -0
- package/dist/chunk-TIJV6GJW.js +51 -0
- package/dist/chunk-TIJV6GJW.js.map +1 -0
- package/dist/chunk-UCEIJEM5.js +61 -0
- package/dist/chunk-UCEIJEM5.js.map +1 -0
- package/dist/chunk-YFSM6IYU.js +6572 -0
- package/dist/chunk-YFSM6IYU.js.map +1 -0
- package/dist/features/example-feature/templates/example-tool.render.d.ts +3 -0
- package/dist/features/example-feature/templates/example-tool.render.js +20 -0
- package/dist/features/example-feature/templates/example-tool.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/edit.render.d.ts +12 -0
- package/dist/features/opencode-basic/templates/edit.render.js +44 -0
- package/dist/features/opencode-basic/templates/edit.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/glob.render.d.ts +13 -0
- package/dist/features/opencode-basic/templates/glob.render.js +44 -0
- package/dist/features/opencode-basic/templates/glob.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/grep.render.d.ts +13 -0
- package/dist/features/opencode-basic/templates/grep.render.js +67 -0
- package/dist/features/opencode-basic/templates/grep.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/ls.render.d.ts +12 -0
- package/dist/features/opencode-basic/templates/ls.render.js +35 -0
- package/dist/features/opencode-basic/templates/ls.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/read.render.d.ts +13 -0
- package/dist/features/opencode-basic/templates/read.render.js +83 -0
- package/dist/features/opencode-basic/templates/read.render.js.map +1 -0
- package/dist/features/opencode-basic/templates/write.render.d.ts +13 -0
- package/dist/features/opencode-basic/templates/write.render.js +44 -0
- package/dist/features/opencode-basic/templates/write.render.js.map +1 -0
- package/dist/features/skill/templates/skill.render.d.ts +13 -0
- package/dist/features/skill/templates/skill.render.js +33 -0
- package/dist/features/skill/templates/skill.render.js.map +1 -0
- package/dist/features/subagent/templates/agent-close.render.d.ts +9 -0
- package/dist/features/subagent/templates/agent-close.render.js +29 -0
- package/dist/features/subagent/templates/agent-close.render.js.map +1 -0
- package/dist/features/subagent/templates/agent-list.render.d.ts +9 -0
- package/dist/features/subagent/templates/agent-list.render.js +23 -0
- package/dist/features/subagent/templates/agent-list.render.js.map +1 -0
- package/dist/features/subagent/templates/agent-send.render.d.ts +9 -0
- package/dist/features/subagent/templates/agent-send.render.js +37 -0
- package/dist/features/subagent/templates/agent-send.render.js.map +1 -0
- package/dist/features/subagent/templates/agent-spawn.render.d.ts +9 -0
- package/dist/features/subagent/templates/agent-spawn.render.js +38 -0
- package/dist/features/subagent/templates/agent-spawn.render.js.map +1 -0
- package/dist/features/subagent/templates/wait.render.d.ts +9 -0
- package/dist/features/subagent/templates/wait.render.js +29 -0
- package/dist/features/subagent/templates/wait.render.js.map +1 -0
- package/dist/features/todo/templates/task-clear.render.d.ts +12 -0
- package/dist/features/todo/templates/task-clear.render.js +32 -0
- package/dist/features/todo/templates/task-clear.render.js.map +1 -0
- package/dist/features/todo/templates/task-create.render.d.ts +12 -0
- package/dist/features/todo/templates/task-create.render.js +56 -0
- package/dist/features/todo/templates/task-create.render.js.map +1 -0
- package/dist/features/todo/templates/task-list.render.d.ts +12 -0
- package/dist/features/todo/templates/task-list.render.js +72 -0
- package/dist/features/todo/templates/task-list.render.js.map +1 -0
- package/dist/features/todo/templates/task-update.render.d.ts +12 -0
- package/dist/features/todo/templates/task-update.render.js +58 -0
- package/dist/features/todo/templates/task-update.render.js.map +1 -0
- package/dist/index.d.ts +6831 -0
- package/dist/index.js +8376 -0
- package/dist/index.js.map +1 -0
- package/dist/notification-5DFBYKKN.js +32 -0
- package/dist/notification-5DFBYKKN.js.map +1 -0
- package/dist/resolver-F5SM2RHQ.js +8 -0
- package/dist/resolver-F5SM2RHQ.js.map +1 -0
- package/dist/session-events-TETMQI45.js +18 -0
- package/dist/session-events-TETMQI45.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/subagent/templates/agent-list.render.ts
|
|
4
|
+
var agent_list_render_default = {
|
|
5
|
+
call: '<div class="bash-command">List agents (filter: {{filter}})</div>',
|
|
6
|
+
result: (data) => {
|
|
7
|
+
if (!data.agents || data.agents.length === 0) {
|
|
8
|
+
return `<div style="color:var(--warning-color)">No agents found</div>`;
|
|
9
|
+
}
|
|
10
|
+
return `<div style="font-size:12px;">
|
|
11
|
+
<div>Total: ${data.total} | Running: ${data.running}</div>
|
|
12
|
+
${data.agents.map((a) => `
|
|
13
|
+
<div style="margin-top:4px; padding:4px; background:var(--code-bg); border-radius:4px;">
|
|
14
|
+
<strong>${a.agentId}</strong> (${a.type}) - <span style="color:${a.status === "idle" || a.status === "busy" ? "var(--success-color)" : "var(--warning-color)"}">${a.status}</span>
|
|
15
|
+
</div>
|
|
16
|
+
`).join("")}
|
|
17
|
+
</div>`;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
agent_list_render_default as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=agent-list.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/subagent/templates/agent-list.render.ts"],"sourcesContent":["/**\n * agent-list 工具渲染模板\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\n/**\n * HTML 转义辅助函数\n */\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nexport default {\n call: '<div class=\"bash-command\">List agents (filter: {{filter}})</div>',\n result: (data: any) => {\n if (!data.agents || data.agents.length === 0) {\n return `<div style=\"color:var(--warning-color)\">No agents found</div>`;\n }\n return `<div style=\"font-size:12px;\">\n <div>Total: ${data.total} | Running: ${data.running}</div>\n ${data.agents.map((a: any) => `\n <div style=\"margin-top:4px; padding:4px; background:var(--code-bg); border-radius:4px;\">\n <strong>${a.agentId}</strong> (${a.type}) - <span style=\"color:${a.status === 'idle' || a.status === 'busy' ? 'var(--success-color)' : 'var(--warning-color)'}\">${a.status}</span>\n </div>\n `).join('')}\n </div>`;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AAqBA,IAAO,4BAAQ;AAAA,EACb,MAAM;AAAA,EACN,QAAQ,CAAC,SAAc;AACrB,QAAI,CAAC,KAAK,UAAU,KAAK,OAAO,WAAW,GAAG;AAC5C,aAAO;AAAA,IACT;AACA,WAAO;AAAA,oBACS,KAAK,KAAK,eAAe,KAAK,OAAO;AAAA,QACjD,KAAK,OAAO,IAAI,CAAC,MAAW;AAAA;AAAA,oBAEhB,EAAE,OAAO,cAAc,EAAE,IAAI,0BAA0B,EAAE,WAAW,UAAU,EAAE,WAAW,SAAS,yBAAyB,sBAAsB,KAAK,EAAE,MAAM;AAAA;AAAA,OAE7K,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,EAEf;AACF;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/subagent/templates/agent-send.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
var agent_send_render_default = {
|
|
16
|
+
call: (args) => {
|
|
17
|
+
return `<div class="bash-command">\u53D1\u9001\u6307\u4EE4\u5230 <span class="pattern">${escapeHtml(args.agentId || "")}</span></div>`;
|
|
18
|
+
},
|
|
19
|
+
result: (data) => {
|
|
20
|
+
if (data.error) {
|
|
21
|
+
return `<div style="color:var(--error-color)">\u2717 ${escapeHtml(data.error)}</div>`;
|
|
22
|
+
}
|
|
23
|
+
let output = `<div style="color:var(--success-color)">\u2713 \u6307\u4EE4\u5DF2\u53D1\u9001</div>`;
|
|
24
|
+
if (data.allAgents && data.allAgents.length > 0) {
|
|
25
|
+
const agentsList = data.allAgents.map((a) => {
|
|
26
|
+
const statusText = a.status === "busy" ? "[\u8FD0\u884C\u4E2D]" : a.status === "idle" ? "[\u7A7A\u95F2]" : "[\u5DF2\u5B8C\u6210]";
|
|
27
|
+
return `${statusText} ${escapeHtml(a.agentId)}`;
|
|
28
|
+
}).join(" \xB7 ");
|
|
29
|
+
output += `<div style="font-size:11px; color:var(--text-secondary); margin-left:4px; margin-top:4px;">${agentsList}</div>`;
|
|
30
|
+
}
|
|
31
|
+
return output;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
export {
|
|
35
|
+
agent_send_render_default as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=agent-send.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/subagent/templates/agent-send.render.ts"],"sourcesContent":["/**\n * agent-send 工具渲染模板\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\n/**\n * HTML 转义辅助函数\n */\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nexport default {\n call: (args: any) => {\n return `<div class=\"bash-command\">发送指令到 <span class=\"pattern\">${escapeHtml(args.agentId || '')}</span></div>`;\n },\n result: (data: any) => {\n if (data.error) {\n return `<div style=\"color:var(--error-color)\">✗ ${escapeHtml(data.error)}</div>`;\n }\n let output = `<div style=\"color:var(--success-color)\">✓ 指令已发送</div>`;\n\n // 显示所有 agent 列表\n if (data.allAgents && data.allAgents.length > 0) {\n const agentsList = data.allAgents.map((a: any) => {\n const statusText = a.status === 'busy' ? '[运行中]' : a.status === 'idle' ? '[空闲]' : '[已完成]';\n return `${statusText} ${escapeHtml(a.agentId)}`;\n }).join(' · ');\n output += `<div style=\"font-size:11px; color:var(--text-secondary); margin-left:4px; margin-top:4px;\">${agentsList}</div>`;\n }\n return output;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,IAAO,4BAAQ;AAAA,EACb,MAAM,CAAC,SAAc;AACnB,WAAO,kFAAyD,WAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EAChG;AAAA,EACA,QAAQ,CAAC,SAAc;AACrB,QAAI,KAAK,OAAO;AACd,aAAO,gDAA2C,WAAW,KAAK,KAAK,CAAC;AAAA,IAC1E;AACA,QAAI,SAAS;AAGb,QAAI,KAAK,aAAa,KAAK,UAAU,SAAS,GAAG;AAC/C,YAAM,aAAa,KAAK,UAAU,IAAI,CAAC,MAAW;AAChD,cAAM,aAAa,EAAE,WAAW,SAAS,yBAAU,EAAE,WAAW,SAAS,mBAAS;AAClF,eAAO,GAAG,UAAU,IAAI,WAAW,EAAE,OAAO,CAAC;AAAA,MAC/C,CAAC,EAAE,KAAK,QAAK;AACb,gBAAU,8FAA8F,UAAU;AAAA,IACpH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/subagent/templates/agent-spawn.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
var agent_spawn_render_default = {
|
|
16
|
+
call: (args) => {
|
|
17
|
+
return `<div class="bash-command">\u542F\u52A8 <span class="pattern">${escapeHtml(args.type || "")}</span> \u5B50\u4EE3\u7406</div>`;
|
|
18
|
+
},
|
|
19
|
+
result: (data) => {
|
|
20
|
+
if (data.error) {
|
|
21
|
+
return `<div style="color:var(--error-color)">\u2717 ${escapeHtml(data.error)}</div>`;
|
|
22
|
+
}
|
|
23
|
+
let output = `<div class="bash-command">\u5DF2\u521B\u5EFA <span class="pattern">${escapeHtml(data.agentId || "")}</span></div>`;
|
|
24
|
+
output += `<div style="font-size:11px; color:var(--text-secondary); margin-left:4px;">\u7C7B\u578B: ${escapeHtml(data.type || "")} \xB7 \u72B6\u6001: ${escapeHtml(data.status || "")}</div>`;
|
|
25
|
+
if (data.allAgents && data.allAgents.length > 0) {
|
|
26
|
+
const agentsList = data.allAgents.map((a) => {
|
|
27
|
+
const statusText = a.status === "busy" ? "[\u8FD0\u884C\u4E2D]" : a.status === "idle" ? "[\u7A7A\u95F2]" : "[\u5DF2\u5B8C\u6210]";
|
|
28
|
+
return `${statusText} ${escapeHtml(a.agentId)}`;
|
|
29
|
+
}).join(" \xB7 ");
|
|
30
|
+
output += `<div style="font-size:11px; color:var(--text-secondary); margin-left:4px; margin-top:4px;">${agentsList}</div>`;
|
|
31
|
+
}
|
|
32
|
+
return output;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
agent_spawn_render_default as default
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=agent-spawn.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/subagent/templates/agent-spawn.render.ts"],"sourcesContent":["/**\n * agent-spawn 工具渲染模板\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\n/**\n * HTML 转义辅助函数\n */\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nexport default {\n call: (args: any) => {\n return `<div class=\"bash-command\">启动 <span class=\"pattern\">${escapeHtml(args.type || '')}</span> 子代理</div>`;\n },\n result: (data: any) => {\n if (data.error) {\n return `<div style=\"color:var(--error-color)\">✗ ${escapeHtml(data.error)}</div>`;\n }\n let output = `<div class=\"bash-command\">已创建 <span class=\"pattern\">${escapeHtml(data.agentId || '')}</span></div>`;\n output += `<div style=\"font-size:11px; color:var(--text-secondary); margin-left:4px;\">类型: ${escapeHtml(data.type || '')} · 状态: ${escapeHtml(data.status || '')}</div>`;\n\n // 显示所有 agent 列表\n if (data.allAgents && data.allAgents.length > 0) {\n const agentsList = data.allAgents.map((a: any) => {\n const statusText = a.status === 'busy' ? '[运行中]' : a.status === 'idle' ? '[空闲]' : '[已完成]';\n return `${statusText} ${escapeHtml(a.agentId)}`;\n }).join(' · ');\n output += `<div style=\"font-size:11px; color:var(--text-secondary); margin-left:4px; margin-top:4px;\">${agentsList}</div>`;\n }\n return output;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,IAAO,6BAAQ;AAAA,EACb,MAAM,CAAC,SAAc;AACnB,WAAO,gEAAsD,WAAW,KAAK,QAAQ,EAAE,CAAC;AAAA,EAC1F;AAAA,EACA,QAAQ,CAAC,SAAc;AACrB,QAAI,KAAK,OAAO;AACd,aAAO,gDAA2C,WAAW,KAAK,KAAK,CAAC;AAAA,IAC1E;AACA,QAAI,SAAS,sEAAuD,WAAW,KAAK,WAAW,EAAE,CAAC;AAClG,cAAU,4FAAkF,WAAW,KAAK,QAAQ,EAAE,CAAC,uBAAU,WAAW,KAAK,UAAU,EAAE,CAAC;AAG9J,QAAI,KAAK,aAAa,KAAK,UAAU,SAAS,GAAG;AAC/C,YAAM,aAAa,KAAK,UAAU,IAAI,CAAC,MAAW;AAChD,cAAM,aAAa,EAAE,WAAW,SAAS,yBAAU,EAAE,WAAW,SAAS,mBAAS;AAClF,eAAO,GAAG,UAAU,IAAI,WAAW,EAAE,OAAO,CAAC;AAAA,MAC/C,CAAC,EAAE,KAAK,QAAK;AACb,gBAAU,8FAA8F,UAAU;AAAA,IACpH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/subagent/templates/wait.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
var wait_render_default = {
|
|
16
|
+
call: () => {
|
|
17
|
+
return `<div class="bash-command">\u7B49\u5F85\u5B50\u4EE3\u7406\u8FD0\u884C\u5B8C\u6210......</div>`;
|
|
18
|
+
},
|
|
19
|
+
result: (data) => {
|
|
20
|
+
if (data.error) {
|
|
21
|
+
return `<div style="color:var(--error-color)">\u2717 ${escapeHtml(data.error)}</div>`;
|
|
22
|
+
}
|
|
23
|
+
return `<div style="color:var(--info-color)">${escapeHtml(data.message || "\u7B49\u5F85\u5B50\u4EE3\u7406\u8FD0\u884C\u7ED3\u679C...")}</div>`;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
wait_render_default as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=wait.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/subagent/templates/wait.render.ts"],"sourcesContent":["/**\n * wait 工具渲染模板\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\n/**\n * HTML 转义辅助函数\n */\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nexport default {\n call: () => {\n return `<div class=\"bash-command\">等待子代理运行完成......</div>`;\n },\n result: (data: any) => {\n if (data.error) {\n return `<div style=\"color:var(--error-color)\">✗ ${escapeHtml(data.error)}</div>`;\n }\n return `<div style=\"color:var(--info-color)\">${escapeHtml(data.message || '等待子代理运行结果...')}</div>`;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,IAAO,sBAAQ;AAAA,EACb,MAAM,MAAM;AACV,WAAO;AAAA,EACT;AAAA,EACA,QAAQ,CAAC,SAAc;AACrB,QAAI,KAAK,OAAO;AACd,aAAO,gDAA2C,WAAW,KAAK,KAAK,CAAC;AAAA,IAC1E;AACA,WAAO,wCAAwC,WAAW,KAAK,WAAW,2DAAc,CAAC;AAAA,EAC3F;AACF;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task_clear 工具渲染模板
|
|
3
|
+
*
|
|
4
|
+
* 注意:execute 返回 withDisplay,模型只看 { ok, cancelledCount },
|
|
5
|
+
* 前端通过 display 数据渲染完整卡片(message)。
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
readonly call: () => string;
|
|
9
|
+
readonly result: (data: any, success?: boolean) => string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { _default as default };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/todo/templates/task-clear.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
var task_clear_render_default = {
|
|
16
|
+
call: () => {
|
|
17
|
+
return `<div class="bash-command">\u53D6\u6D88\u672A\u5B8C\u6210\u4EFB\u52A1\u5E76\u4FDD\u7559\u5386\u53F2</div>`;
|
|
18
|
+
},
|
|
19
|
+
result: (data, success) => {
|
|
20
|
+
if (!success || data?.error || data?.ok === false) {
|
|
21
|
+
return `<div class="tool-error">
|
|
22
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
|
|
23
|
+
<span>${escapeHtml(data?.error || "\u53D6\u6D88\u4EFB\u52A1\u5931\u8D25")}</span>
|
|
24
|
+
</div>`;
|
|
25
|
+
}
|
|
26
|
+
return `<div style="color:var(--success-color)">\u2713 ${escapeHtml(data.message || "\u672A\u5B8C\u6210\u4EFB\u52A1\u5DF2\u53D6\u6D88")}</div>`;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
task_clear_render_default as default
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=task-clear.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/todo/templates/task-clear.render.ts"],"sourcesContent":["/**\n * task_clear 工具渲染模板\n *\n * 注意:execute 返回 withDisplay,模型只看 { ok, cancelledCount },\n * 前端通过 display 数据渲染完整卡片(message)。\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nexport default {\n call: () => {\n return `<div class=\"bash-command\">取消未完成任务并保留历史</div>`;\n },\n result: (data: any, success?: boolean) => {\n if (!success || data?.error || data?.ok === false) {\n return `<div class=\"tool-error\">\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>\n <span>${escapeHtml(data?.error || '取消任务失败')}</span>\n </div>`;\n }\n return `<div style=\"color:var(--success-color)\">✓ ${escapeHtml(data.message || '未完成任务已取消')}</div>`;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IAAS,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAU,KAAK;AAAA,EAC9D;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,IAAO,4BAAQ;AAAA,EACb,MAAM,MAAM;AACV,WAAO;AAAA,EACT;AAAA,EACA,QAAQ,CAAC,MAAW,YAAsB;AACxC,QAAI,CAAC,WAAW,MAAM,SAAS,MAAM,OAAO,OAAO;AACjD,aAAO;AAAA;AAAA,gBAEG,WAAW,MAAM,SAAS,sCAAQ,CAAC;AAAA;AAAA,IAE/C;AACA,WAAO,kDAA6C,WAAW,KAAK,WAAW,kDAAU,CAAC;AAAA,EAC5F;AACF;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task_create 工具渲染模板
|
|
3
|
+
*
|
|
4
|
+
* 注意:execute 返回 withDisplay,模型只看极简 JSON,
|
|
5
|
+
* 前端通过 display 数据渲染完整卡片(allTasks + message)。
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
readonly call: (args: any) => string;
|
|
9
|
+
readonly result: (data: any, success?: boolean) => string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { _default as default };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/todo/templates/task-create.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
function getStatusColor(status) {
|
|
16
|
+
const colors = {
|
|
17
|
+
pending: "var(--warning-color)",
|
|
18
|
+
in_progress: "var(--info-color)",
|
|
19
|
+
completed: "var(--success-color)",
|
|
20
|
+
deleted: "var(--text-secondary)"
|
|
21
|
+
};
|
|
22
|
+
return colors[status] || "var(--text-secondary)";
|
|
23
|
+
}
|
|
24
|
+
function renderTaskList(tasks) {
|
|
25
|
+
return `<div style="font-family:"Fira Code", "Cascadia Code", "Source Code Pro", "JetBrains Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace; font-size:12px; max-height:300px; overflow:auto;">
|
|
26
|
+
${tasks.map((t) => `
|
|
27
|
+
<div style="display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--border-color);">
|
|
28
|
+
<span style="color:var(--text-secondary); min-width:24px;">#${t.id}</span>
|
|
29
|
+
<span style="color:var(--text-primary); flex:1;">${escapeHtml(t.subject)}</span>
|
|
30
|
+
<span style="color:${getStatusColor(t.status)}; font-size:11px;">${t.status}</span>
|
|
31
|
+
</div>
|
|
32
|
+
`).join("")}
|
|
33
|
+
</div>`;
|
|
34
|
+
}
|
|
35
|
+
var task_create_render_default = {
|
|
36
|
+
call: (args) => {
|
|
37
|
+
return `<div class="bash-command">\u521B\u5EFA\u4EFB\u52A1 <span class="pattern">${escapeHtml(args.subject || "")}</span></div>`;
|
|
38
|
+
},
|
|
39
|
+
result: (data, success) => {
|
|
40
|
+
if (!success || data?.error || data?.ok === false) {
|
|
41
|
+
return `<div class="tool-error">
|
|
42
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
|
|
43
|
+
<span>${escapeHtml(data?.error || "\u521B\u5EFA\u4EFB\u52A1\u5931\u8D25")}</span>
|
|
44
|
+
</div>`;
|
|
45
|
+
}
|
|
46
|
+
let output = `<div style="color:var(--success-color)">\u2713 ${escapeHtml(data.message || "\u4EFB\u52A1\u5DF2\u521B\u5EFA")}</div>`;
|
|
47
|
+
if (data.allTasks && data.allTasks.length > 0) {
|
|
48
|
+
output += renderTaskList(data.allTasks);
|
|
49
|
+
}
|
|
50
|
+
return output;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
task_create_render_default as default
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=task-create.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/todo/templates/task-create.render.ts"],"sourcesContent":["/**\n * task_create 工具渲染模板\n *\n * 注意:execute 返回 withDisplay,模型只看极简 JSON,\n * 前端通过 display 数据渲染完整卡片(allTasks + message)。\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nfunction getStatusColor(status: string): string {\n const colors: Record<string, string> = {\n pending: 'var(--warning-color)',\n in_progress: 'var(--info-color)',\n completed: 'var(--success-color)',\n deleted: 'var(--text-secondary)',\n };\n return colors[status] || 'var(--text-secondary)';\n}\n\nfunction renderTaskList(tasks: Array<{ id: string; subject: string; status: string }>): string {\n return `<div style=\"font-family:\"Fira Code\", \"Cascadia Code\", \"Source Code Pro\", \"JetBrains Mono\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace; font-size:12px; max-height:300px; overflow:auto;\">\n ${tasks.map(t => `\n <div style=\"display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--border-color);\">\n <span style=\"color:var(--text-secondary); min-width:24px;\">#${t.id}</span>\n <span style=\"color:var(--text-primary); flex:1;\">${escapeHtml(t.subject)}</span>\n <span style=\"color:${getStatusColor(t.status)}; font-size:11px;\">${t.status}</span>\n </div>\n `).join('')}\n </div>`;\n}\n\nexport default {\n call: (args: any) => {\n return `<div class=\"bash-command\">创建任务 <span class=\"pattern\">${escapeHtml(args.subject || '')}</span></div>`;\n },\n result: (data: any, success?: boolean) => {\n if (!success || data?.error || data?.ok === false) {\n return `<div class=\"tool-error\">\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>\n <span>${escapeHtml(data?.error || '创建任务失败')}</span>\n </div>`;\n }\n let output = `<div style=\"color:var(--success-color)\">✓ ${escapeHtml(data.message || '任务已创建')}</div>`;\n if (data.allTasks && data.allTasks.length > 0) {\n output += renderTaskList(data.allTasks);\n }\n return output;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IAAS,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAU,KAAK;AAAA,EAC9D;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,SAAS,eAAe,QAAwB;AAC9C,QAAM,SAAiC;AAAA,IACrC,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACA,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEA,SAAS,eAAe,OAAuE;AAC7F,SAAO;AAAA,MACH,MAAM,IAAI,OAAK;AAAA;AAAA,sEAEiD,EAAE,EAAE;AAAA,2DACf,WAAW,EAAE,OAAO,CAAC;AAAA,6BACnD,eAAe,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM;AAAA;AAAA,KAE9E,EAAE,KAAK,EAAE,CAAC;AAAA;AAEf;AAEA,IAAO,6BAAQ;AAAA,EACb,MAAM,CAAC,SAAc;AACnB,WAAO,4EAAwD,WAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EAC/F;AAAA,EACA,QAAQ,CAAC,MAAW,YAAsB;AACxC,QAAI,CAAC,WAAW,MAAM,SAAS,MAAM,OAAO,OAAO;AACjD,aAAO;AAAA;AAAA,gBAEG,WAAW,MAAM,SAAS,sCAAQ,CAAC;AAAA;AAAA,IAE/C;AACA,QAAI,SAAS,kDAA6C,WAAW,KAAK,WAAW,gCAAO,CAAC;AAC7F,QAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAC7C,gBAAU,eAAe,KAAK,QAAQ;AAAA,IACxC;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task_list 工具渲染模板
|
|
3
|
+
*
|
|
4
|
+
* 注意:execute 返回 withDisplay,模型只看 { tasks },
|
|
5
|
+
* 前端通过 display 数据渲染完整卡片(含 summary)。
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
readonly call: (args: any) => string;
|
|
9
|
+
readonly result: (data: any, success?: boolean) => string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { _default as default };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/todo/templates/task-list.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
function getStatusColor(status) {
|
|
16
|
+
const colors = {
|
|
17
|
+
pending: "var(--warning-color)",
|
|
18
|
+
in_progress: "var(--info-color)",
|
|
19
|
+
completed: "var(--success-color)",
|
|
20
|
+
deleted: "var(--text-secondary)"
|
|
21
|
+
};
|
|
22
|
+
return colors[status] || "var(--text-secondary)";
|
|
23
|
+
}
|
|
24
|
+
function getStatusText(status) {
|
|
25
|
+
const texts = {
|
|
26
|
+
pending: "\u5F85\u6267\u884C",
|
|
27
|
+
in_progress: "\u8FDB\u884C\u4E2D",
|
|
28
|
+
completed: "\u5DF2\u5B8C\u6210",
|
|
29
|
+
deleted: "\u5DF2\u5220\u9664"
|
|
30
|
+
};
|
|
31
|
+
return texts[status] || status;
|
|
32
|
+
}
|
|
33
|
+
function renderTaskList(tasks) {
|
|
34
|
+
return `<div style="font-family:"Fira Code", "Cascadia Code", "Source Code Pro", "JetBrains Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace; font-size:12px; max-height:300px; overflow:auto;">
|
|
35
|
+
${tasks.map((t) => `
|
|
36
|
+
<div style="display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--border-color);">
|
|
37
|
+
<span style="color:var(--text-secondary); min-width:24px;">#${t.id}</span>
|
|
38
|
+
<span style="color:var(--text-primary); flex:1;">${escapeHtml(t.subject)}</span>
|
|
39
|
+
<span style="color:${getStatusColor(t.status)}; font-size:11px;">${getStatusText(t.status)}</span>
|
|
40
|
+
</div>
|
|
41
|
+
`).join("")}
|
|
42
|
+
</div>`;
|
|
43
|
+
}
|
|
44
|
+
var task_list_render_default = {
|
|
45
|
+
call: (args) => {
|
|
46
|
+
const filter = args.status === "all" ? "" : ` (\u7B5B\u9009: ${escapeHtml(args.status || "")})`;
|
|
47
|
+
return `<div class="bash-command">\u5217\u51FA\u4EFB\u52A1${filter}</div>`;
|
|
48
|
+
},
|
|
49
|
+
result: (data, success) => {
|
|
50
|
+
if (!success || data?.error) {
|
|
51
|
+
return `<div class="tool-error">
|
|
52
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
|
|
53
|
+
<span>${escapeHtml(data?.error || "\u83B7\u53D6\u4EFB\u52A1\u5217\u8868\u5931\u8D25")}</span>
|
|
54
|
+
</div>`;
|
|
55
|
+
}
|
|
56
|
+
if (!data.tasks || data.tasks.length === 0) {
|
|
57
|
+
return '<div style="color:var(--text-secondary)">\u6682\u65E0\u4EFB\u52A1</div>';
|
|
58
|
+
}
|
|
59
|
+
let output = "";
|
|
60
|
+
if (data.summary) {
|
|
61
|
+
output += `<div style="font-size:11px; color:var(--text-secondary); margin-bottom:4px;">`;
|
|
62
|
+
output += `\u603B\u8BA1: ${data.summary.total} | \u5F85\u6267\u884C: ${data.summary.pending} | \u8FDB\u884C\u4E2D: ${data.summary.inProgress} | \u5DF2\u5B8C\u6210: ${data.summary.completed}`;
|
|
63
|
+
output += `</div>`;
|
|
64
|
+
}
|
|
65
|
+
output += renderTaskList(data.tasks);
|
|
66
|
+
return output;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
export {
|
|
70
|
+
task_list_render_default as default
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=task-list.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/todo/templates/task-list.render.ts"],"sourcesContent":["/**\n * task_list 工具渲染模板\n *\n * 注意:execute 返回 withDisplay,模型只看 { tasks },\n * 前端通过 display 数据渲染完整卡片(含 summary)。\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nfunction getStatusColor(status: string): string {\n const colors: Record<string, string> = {\n pending: 'var(--warning-color)',\n in_progress: 'var(--info-color)',\n completed: 'var(--success-color)',\n deleted: 'var(--text-secondary)',\n };\n return colors[status] || 'var(--text-secondary)';\n}\n\nfunction getStatusText(status: string): string {\n const texts: Record<string, string> = {\n pending: '待执行', in_progress: '进行中', completed: '已完成', deleted: '已删除',\n };\n return texts[status] || status;\n}\n\nfunction renderTaskList(tasks: Array<{ id: string; subject: string; status: string }>): string {\n return `<div style=\"font-family:\"Fira Code\", \"Cascadia Code\", \"Source Code Pro\", \"JetBrains Mono\", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace; font-size:12px; max-height:300px; overflow:auto;\">\n ${tasks.map(t => `\n <div style=\"display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--border-color);\">\n <span style=\"color:var(--text-secondary); min-width:24px;\">#${t.id}</span>\n <span style=\"color:var(--text-primary); flex:1;\">${escapeHtml(t.subject)}</span>\n <span style=\"color:${getStatusColor(t.status)}; font-size:11px;\">${getStatusText(t.status)}</span>\n </div>\n `).join('')}\n </div>`;\n}\n\nexport default {\n call: (args: any) => {\n const filter = args.status === 'all' ? '' : ` (筛选: ${escapeHtml(args.status || '')})`;\n return `<div class=\"bash-command\">列出任务${filter}</div>`;\n },\n result: (data: any, success?: boolean) => {\n if (!success || data?.error) {\n return `<div class=\"tool-error\">\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>\n <span>${escapeHtml(data?.error || '获取任务列表失败')}</span>\n </div>`;\n }\n if (!data.tasks || data.tasks.length === 0) {\n return '<div style=\"color:var(--text-secondary)\">暂无任务</div>';\n }\n let output = '';\n if (data.summary) {\n output += `<div style=\"font-size:11px; color:var(--text-secondary); margin-bottom:4px;\">`;\n output += `总计: ${data.summary.total} | 待执行: ${data.summary.pending} | 进行中: ${data.summary.inProgress} | 已完成: ${data.summary.completed}`;\n output += `</div>`;\n }\n output += renderTaskList(data.tasks);\n return output;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IAAS,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAU,KAAK;AAAA,EAC9D;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,SAAS,eAAe,QAAwB;AAC9C,QAAM,SAAiC;AAAA,IACrC,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACA,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEA,SAAS,cAAc,QAAwB;AAC7C,QAAM,QAAgC;AAAA,IACpC,SAAS;AAAA,IAAO,aAAa;AAAA,IAAO,WAAW;AAAA,IAAO,SAAS;AAAA,EACjE;AACA,SAAO,MAAM,MAAM,KAAK;AAC1B;AAEA,SAAS,eAAe,OAAuE;AAC7F,SAAO;AAAA,MACH,MAAM,IAAI,OAAK;AAAA;AAAA,sEAEiD,EAAE,EAAE;AAAA,2DACf,WAAW,EAAE,OAAO,CAAC;AAAA,6BACnD,eAAe,EAAE,MAAM,CAAC,sBAAsB,cAAc,EAAE,MAAM,CAAC;AAAA;AAAA,KAE7F,EAAE,KAAK,EAAE,CAAC;AAAA;AAEf;AAEA,IAAO,2BAAQ;AAAA,EACb,MAAM,CAAC,SAAc;AACnB,UAAM,SAAS,KAAK,WAAW,QAAQ,KAAK,mBAAS,WAAW,KAAK,UAAU,EAAE,CAAC;AAClF,WAAO,qDAAiC,MAAM;AAAA,EAChD;AAAA,EACA,QAAQ,CAAC,MAAW,YAAsB;AACxC,QAAI,CAAC,WAAW,MAAM,OAAO;AAC3B,aAAO;AAAA;AAAA,gBAEG,WAAW,MAAM,SAAS,kDAAU,CAAC;AAAA;AAAA,IAEjD;AACA,QAAI,CAAC,KAAK,SAAS,KAAK,MAAM,WAAW,GAAG;AAC1C,aAAO;AAAA,IACT;AACA,QAAI,SAAS;AACb,QAAI,KAAK,SAAS;AAChB,gBAAU;AACV,gBAAU,iBAAO,KAAK,QAAQ,KAAK,0BAAW,KAAK,QAAQ,OAAO,0BAAW,KAAK,QAAQ,UAAU,0BAAW,KAAK,QAAQ,SAAS;AACrI,gBAAU;AAAA,IACZ;AACA,cAAU,eAAe,KAAK,KAAK;AACnC,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task_update 工具渲染模板
|
|
3
|
+
*
|
|
4
|
+
* 注意:execute 返回 withDisplay,模型只看 { ok, taskId, status },
|
|
5
|
+
* 前端通过 display 数据渲染完整卡片(message + subject + status)。
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
readonly call: (args: any) => string;
|
|
9
|
+
readonly result: (data: any, success?: boolean) => string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { _default as default };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import "../../../chunk-DGUM43GV.js";
|
|
2
|
+
|
|
3
|
+
// src/features/todo/templates/task-update.render.ts
|
|
4
|
+
function escapeHtml(text) {
|
|
5
|
+
const str = String(text);
|
|
6
|
+
const map = {
|
|
7
|
+
"&": "&",
|
|
8
|
+
"<": "<",
|
|
9
|
+
">": ">",
|
|
10
|
+
'"': """,
|
|
11
|
+
"'": "'"
|
|
12
|
+
};
|
|
13
|
+
return str.replace(/[&<>"']/g, (m) => map[m]);
|
|
14
|
+
}
|
|
15
|
+
function getStatusColor(status) {
|
|
16
|
+
const colors = {
|
|
17
|
+
pending: "var(--warning-color)",
|
|
18
|
+
in_progress: "var(--info-color)",
|
|
19
|
+
completed: "var(--success-color)",
|
|
20
|
+
deleted: "var(--text-secondary)"
|
|
21
|
+
};
|
|
22
|
+
return colors[status] || "var(--text-secondary)";
|
|
23
|
+
}
|
|
24
|
+
function getStatusText(status) {
|
|
25
|
+
const texts = {
|
|
26
|
+
pending: "\u5F85\u6267\u884C",
|
|
27
|
+
in_progress: "\u8FDB\u884C\u4E2D",
|
|
28
|
+
completed: "\u5DF2\u5B8C\u6210",
|
|
29
|
+
deleted: "\u5DF2\u5220\u9664"
|
|
30
|
+
};
|
|
31
|
+
return texts[status] || status;
|
|
32
|
+
}
|
|
33
|
+
var task_update_render_default = {
|
|
34
|
+
call: (args) => {
|
|
35
|
+
let output = `<div class="bash-command">\u66F4\u65B0\u4EFB\u52A1 <span class="pattern">#${escapeHtml(args.taskId || "")}</span>`;
|
|
36
|
+
if (args.status) {
|
|
37
|
+
output += ` \u2192 <span style="color:${getStatusColor(args.status)}">${getStatusText(args.status)}</span>`;
|
|
38
|
+
}
|
|
39
|
+
output += `</div>`;
|
|
40
|
+
return output;
|
|
41
|
+
},
|
|
42
|
+
result: (data, success) => {
|
|
43
|
+
if (!success || data?.error || data?.ok === false) {
|
|
44
|
+
return `<div class="tool-error">
|
|
45
|
+
<svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
|
|
46
|
+
<span>${escapeHtml(data?.error || "\u66F4\u65B0\u4EFB\u52A1\u5931\u8D25")}</span>
|
|
47
|
+
</div>`;
|
|
48
|
+
}
|
|
49
|
+
if (data.status === "deleted") {
|
|
50
|
+
return `<div style="color:var(--success-color)">\u2713 ${escapeHtml(data.message || "\u4EFB\u52A1\u5DF2\u53D6\u6D88\u5E76\u4FDD\u7559\u8BB0\u5F55")}</div>`;
|
|
51
|
+
}
|
|
52
|
+
return `<div style="color:var(--success-color)">\u2713 ${escapeHtml(data.message || "\u4EFB\u52A1\u5DF2\u66F4\u65B0")}</div>`;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
task_update_render_default as default
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=task-update.render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/todo/templates/task-update.render.ts"],"sourcesContent":["/**\n * task_update 工具渲染模板\n *\n * 注意:execute 返回 withDisplay,模型只看 { ok, taskId, status },\n * 前端通过 display 数据渲染完整卡片(message + subject + status)。\n */\n\nimport type { InlineRenderTemplate } from '../../../core/types.js';\n\nfunction escapeHtml(text: any): string {\n const str = String(text);\n const map: Record<string, string> = {\n '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": '''\n };\n return str.replace(/[&<>\"']/g, m => map[m]);\n}\n\nfunction getStatusColor(status: string): string {\n const colors: Record<string, string> = {\n pending: 'var(--warning-color)',\n in_progress: 'var(--info-color)',\n completed: 'var(--success-color)',\n deleted: 'var(--text-secondary)',\n };\n return colors[status] || 'var(--text-secondary)';\n}\n\nfunction getStatusText(status: string): string {\n const texts: Record<string, string> = {\n pending: '待执行', in_progress: '进行中', completed: '已完成', deleted: '已删除',\n };\n return texts[status] || status;\n}\n\nexport default {\n call: (args: any) => {\n let output = `<div class=\"bash-command\">更新任务 <span class=\"pattern\">#${escapeHtml(args.taskId || '')}</span>`;\n if (args.status) {\n output += ` → <span style=\"color:${getStatusColor(args.status)}\">${getStatusText(args.status)}</span>`;\n }\n output += `</div>`;\n return output;\n },\n result: (data: any, success?: boolean) => {\n if (!success || data?.error || data?.ok === false) {\n return `<div class=\"tool-error\">\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>\n <span>${escapeHtml(data?.error || '更新任务失败')}</span>\n </div>`;\n }\n if (data.status === 'deleted') {\n return `<div style=\"color:var(--success-color)\">✓ ${escapeHtml(data.message || '任务已取消并保留记录')}</div>`;\n }\n return `<div style=\"color:var(--success-color)\">✓ ${escapeHtml(data.message || '任务已更新')}</div>`;\n }\n} as const satisfies InlineRenderTemplate;\n"],"mappings":";;;AASA,SAAS,WAAW,MAAmB;AACrC,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAA8B;AAAA,IAClC,KAAK;AAAA,IAAS,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAQ,KAAK;AAAA,IAAU,KAAK;AAAA,EAC9D;AACA,SAAO,IAAI,QAAQ,YAAY,OAAK,IAAI,CAAC,CAAC;AAC5C;AAEA,SAAS,eAAe,QAAwB;AAC9C,QAAM,SAAiC;AAAA,IACrC,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACA,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEA,SAAS,cAAc,QAAwB;AAC7C,QAAM,QAAgC;AAAA,IACpC,SAAS;AAAA,IAAO,aAAa;AAAA,IAAO,WAAW;AAAA,IAAO,SAAS;AAAA,EACjE;AACA,SAAO,MAAM,MAAM,KAAK;AAC1B;AAEA,IAAO,6BAAQ;AAAA,EACb,MAAM,CAAC,SAAc;AACnB,QAAI,SAAS,6EAAyD,WAAW,KAAK,UAAU,EAAE,CAAC;AACnG,QAAI,KAAK,QAAQ;AACf,gBAAU,8BAAyB,eAAe,KAAK,MAAM,CAAC,KAAK,cAAc,KAAK,MAAM,CAAC;AAAA,IAC/F;AACA,cAAU;AACV,WAAO;AAAA,EACT;AAAA,EACA,QAAQ,CAAC,MAAW,YAAsB;AACxC,QAAI,CAAC,WAAW,MAAM,SAAS,MAAM,OAAO,OAAO;AACjD,aAAO;AAAA;AAAA,gBAEG,WAAW,MAAM,SAAS,sCAAQ,CAAC;AAAA;AAAA,IAE/C;AACA,QAAI,KAAK,WAAW,WAAW;AAC7B,aAAO,kDAA6C,WAAW,KAAK,WAAW,8DAAY,CAAC;AAAA,IAC9F;AACA,WAAO,kDAA6C,WAAW,KAAK,WAAW,gCAAO,CAAC;AAAA,EACzF;AACF;","names":[]}
|