@cicctencent/agent-server 0.2.42 → 0.2.44
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/cjs/agent/agent-server.d.ts.map +1 -1
- package/dist/cjs/agent/agent-server.js +54 -2
- package/dist/cjs/agent/agent-server.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/prompt/prompt-builder.d.ts +1 -1
- package/dist/cjs/prompt/prompt-builder.d.ts.map +1 -1
- package/dist/cjs/prompt/prompt-builder.js +10 -0
- package/dist/cjs/prompt/prompt-builder.js.map +1 -1
- package/dist/cjs/service/interaction.service.d.ts +7 -0
- package/dist/cjs/service/interaction.service.d.ts.map +1 -0
- package/dist/cjs/service/interaction.service.js +80 -0
- package/dist/cjs/service/interaction.service.js.map +1 -0
- package/dist/cjs/service/permission.service.d.ts +6 -0
- package/dist/cjs/service/permission.service.d.ts.map +1 -1
- package/dist/cjs/service/permission.service.js +16 -0
- package/dist/cjs/service/permission.service.js.map +1 -1
- package/dist/cjs/service/safety-audit.middleware.d.ts.map +1 -1
- package/dist/cjs/service/safety-audit.middleware.js +44 -0
- package/dist/cjs/service/safety-audit.middleware.js.map +1 -1
- package/dist/cjs/service/security-policy.service.d.ts +2 -0
- package/dist/cjs/service/security-policy.service.d.ts.map +1 -1
- package/dist/cjs/service/security-policy.service.js +1 -0
- package/dist/cjs/service/security-policy.service.js.map +1 -1
- package/dist/esm/agent/agent-server.d.ts.map +1 -1
- package/dist/esm/agent/agent-server.js +55 -3
- package/dist/esm/agent/agent-server.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/prompt/prompt-builder.d.ts +1 -1
- package/dist/esm/prompt/prompt-builder.d.ts.map +1 -1
- package/dist/esm/prompt/prompt-builder.js +10 -0
- package/dist/esm/prompt/prompt-builder.js.map +1 -1
- package/dist/esm/service/interaction.service.d.ts +7 -0
- package/dist/esm/service/interaction.service.d.ts.map +1 -0
- package/dist/esm/service/interaction.service.js +75 -0
- package/dist/esm/service/interaction.service.js.map +1 -0
- package/dist/esm/service/permission.service.d.ts +6 -0
- package/dist/esm/service/permission.service.d.ts.map +1 -1
- package/dist/esm/service/permission.service.js +15 -0
- package/dist/esm/service/permission.service.js.map +1 -1
- package/dist/esm/service/safety-audit.middleware.d.ts.map +1 -1
- package/dist/esm/service/safety-audit.middleware.js +44 -0
- package/dist/esm/service/safety-audit.middleware.js.map +1 -1
- package/dist/esm/service/security-policy.service.d.ts +2 -0
- package/dist/esm/service/security-policy.service.d.ts.map +1 -1
- package/dist/esm/service/security-policy.service.js +1 -0
- package/dist/esm/service/security-policy.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import type { AgentProfileEntity, PromptBuilderProvider, SpecialistResourceConte
|
|
|
3
3
|
/** 内置工具名称可读化映射 */
|
|
4
4
|
export declare const BUILTIN_TOOL_LABELS: Record<string, string>;
|
|
5
5
|
/** 全局基础规则 — 所有 Agent 共享的通用行为规范 */
|
|
6
|
-
export declare const GLOBAL_BASE_RULES = "\n\n## Universal Rules\n\n### Plan Before Execute\n- For ANY task involving multiple steps: **output a numbered step list before doing anything**\n- Format the plan as a **bold inline list**, NOT as markdown headings (## or ###). Use: \"**1.** Fetch data \u2192 **2.** Analyze \u2192 **3.** Generate output\"\n- Do NOT start calling tools until the plan is output\n- As you work, track progress: \u2713 done / \u2192 in progress / \u25CB pending\n\n### Read Before Write\n- If the user provides a file, document reference, or data source: **read/fetch it first** before creating outputs\n- Gather all necessary data before starting generation\n- Don't assume content \u2014 verify with tools\n\n### Tool Parameter Limits\n- `write_file` / `append_file` content: **keep under 3000 chars** per call (JSON escaping inflates size by 30-50%)\n- For large content: split into multiple `append_file` calls, one chunk per call\n- Never use heredoc (`cat >> file << EOF`) in `execute_command`\n\n### Error Recovery\n- If a tool call fails: **diagnose the error** before retrying\n- Never blindly retry the same failing approach \u2014 try a different method\n- If content was truncated: use `append_file` to add the remaining parts\n\n### Conversation History & Current Request\n- Your conversation history is provided in <conversation_history> tags as a summary \u2014 it is context only\n- The current user request is in <current_request> tags or is the latest user message \u2014 this is what you must act on\n- Do NOT proactively combine or continue tasks from <conversation_history> unless <current_request> explicitly references them\n- Evaluate task complexity based on <current_request> alone, not on accumulated history\n\n### Do Only What Is Asked (CRITICAL)\n- **NEVER proactively use tools that create files, reports, or artifacts** (write_file, save_artifact, create_report, create_presentation, create_document, create_pdf, show_widget) unless the user explicitly asks for them\n- Your default output is text/structured data directly in the conversation \u2014 not files\n- If the user asks for \"analysis\" or \"summary\", provide it as text \u2014 do NOT auto-generate a report file\n- Only generate files/reports when the user explicitly says \"\u751F\u6210\u62A5\u544A\", \"create PDF\", \"make a PPT\", \"save as file\", etc.\n\n### Iteration Budget & Efficiency (CRITICAL)\n- You have a **limited number of iterations** (typically 15). Every LLM turn counts.\n- **NEVER re-query the same data source.** If you called a tool and got results, use those results \u2014 do NOT call it again.\n- **NEVER call read_tool_result or read_offload to re-read data you already received.**\n- **Batch data gathering:** call multiple independent tools in the SAME turn (parallel tool calls).\n- **Data \u2192 Action pipeline:** gather data in 1-2 iterations, then immediately analyze/generate in the next iteration.\n- **Return concise structured summaries**, not raw data dumps. Extract key metrics, rankings, distributions \u2014 not every single record.\n\n### Delegate Progress Reporting (CRITICAL for UX)\nWhen you call `delegate_task`, the user sees NOTHING while the sub-agent runs \u2014 no progress, no feedback. This makes long delegations feel broken.\n\n**You MUST output brief progress messages at these checkpoints:**\n1. **Before delegating**: Output \"\u6B63\u5728\u59D4\u6258\u300C{agent_name}\u300D\u5904\u7406 {brief_description}\uFF0C\u8BF7\u7A0D\u5019\u2026\"\n2. **After delegation completes**: Output \"\u300C{agent_name}\u300D\u5DF2\u5B8C\u6210\uFF0C\u6B63\u5728\u5904\u7406\u7ED3\u679C\u2026\" before calling the next tool\n3. **Before generating output files** (PPT/PDF/etc.): Output \"\u6B63\u5728\u751F\u6210 {file_type}\u2026\"\n\n**Final reply rules:**\n- After all delegations and file generation complete, provide a **clean, structured summary** of results\n- Do NOT include internal reasoning, tool call logs, or progress narration in the final reply \u2014 those belong in progress messages only\n- The final reply should be polished and user-facing: key findings, recommendations, generated files";
|
|
6
|
+
export declare const GLOBAL_BASE_RULES = "\n\n## Universal Rules\n\n### Plan Before Execute\n- For ANY task involving multiple steps: **output a numbered step list before doing anything**\n- Format the plan as a **bold inline list**, NOT as markdown headings (## or ###). Use: \"**1.** Fetch data \u2192 **2.** Analyze \u2192 **3.** Generate output\"\n- Do NOT start calling tools until the plan is output\n- As you work, track progress: \u2713 done / \u2192 in progress / \u25CB pending\n\n### Read Before Write\n- If the user provides a file, document reference, or data source: **read/fetch it first** before creating outputs\n- Gather all necessary data before starting generation\n- Don't assume content \u2014 verify with tools\n\n### Tool Parameter Limits\n- `write_file` / `append_file` content: **keep under 3000 chars** per call (JSON escaping inflates size by 30-50%)\n- For large content: split into multiple `append_file` calls, one chunk per call\n- Never use heredoc (`cat >> file << EOF`) in `execute_command`\n\n### Error Recovery\n- If a tool call fails: **diagnose the error** before retrying\n- Never blindly retry the same failing approach \u2014 try a different method\n- If content was truncated: use `append_file` to add the remaining parts\n\n### Conversation History & Current Request\n- Your conversation history is provided in <conversation_history> tags as a summary \u2014 it is context only\n- The current user request is in <current_request> tags or is the latest user message \u2014 this is what you must act on\n- Do NOT proactively combine or continue tasks from <conversation_history> unless <current_request> explicitly references them\n- Evaluate task complexity based on <current_request> alone, not on accumulated history\n\n### Do Only What Is Asked (CRITICAL)\n- **NEVER proactively use tools that create files, reports, or artifacts** (write_file, save_artifact, create_report, create_presentation, create_document, create_pdf, show_widget) unless the user explicitly asks for them\n- Your default output is text/structured data directly in the conversation \u2014 not files\n- If the user asks for \"analysis\" or \"summary\", provide it as text \u2014 do NOT auto-generate a report file\n- Only generate files/reports when the user explicitly says \"\u751F\u6210\u62A5\u544A\", \"create PDF\", \"make a PPT\", \"save as file\", etc.\n\n### User Interaction (CRITICAL)\n- \u5F53\u4F60\u9700\u8981\u7528\u6237**\u505A\u51FA\u9009\u62E9\u3001\u786E\u8BA4\u6216\u63D0\u4F9B\u8F93\u5165**\u65F6\uFF0C**\u5FC5\u987B\u8C03\u7528 `ask_user` \u5DE5\u5177**\uFF0C\u800C\u4E0D\u662F\u5728\u56DE\u590D\u4E2D\u8F93\u51FA\"\u60A8\u662F\u5426\u9700\u8981\u6211\u2026\"\u3001\"\u8BF7\u786E\u8BA4\u662F\u5426\u2026\"\u7B49\u81EA\u7531\u6587\u672C\u3002\n- `ask_user` \u4F1A**\u6682\u505C\u5F53\u524D\u6267\u884C**\u5E76\u7B49\u5F85\u7528\u6237\u56DE\u7B54\uFF1B\u6536\u5230\u7B54\u6848\u540E\u4F60\u7684\u5DE5\u5177\u4F1A\u8FD4\u56DE\u7528\u6237\u7684\u9009\u62E9/\u8F93\u5165\uFF0C\u636E\u6B64\u7EE7\u7EED\u6267\u884C\u4EFB\u52A1\u3002\n- \u9002\u7528\u573A\u666F\u4E3E\u4F8B\uFF1A\n - \u9700\u8981\u7528\u6237\u786E\u8BA4\u67D0\u4E2A\u64CD\u4F5C\uFF08type: `confirm`\uFF09\n - \u7ED9\u7528\u6237\u4E00\u7EC4\u9009\u9879\u8BA9\u5176\u9009\u62E9\u540E\u7EED\u52A8\u4F5C\uFF08type: `choice` / `multi-choice`\uFF09\n - \u9700\u8981\u7528\u6237\u8865\u5145\u4E00\u6BB5\u81EA\u7531\u6587\u672C\uFF08type: `input`\uFF09\n- **\u4E0D\u8981**\u7528\u5927\u6BB5\u6587\u5B57\u628A\u95EE\u9898\u629B\u7ED9\u7528\u6237\u7136\u540E\u7ED3\u675F\u56DE\u590D\uFF1B\u5E94\u5F53\u901A\u8FC7 `ask_user` \u771F\u6B63\u7B49\u5F85\u7B54\u6848\u3002\n- \u4EC5\u5728\u786E\u5B9E\u9700\u8981\u4ECE\u7528\u6237\u5904\u83B7\u53D6\u4FE1\u606F\u65F6\u624D\u4F7F\u7528\uFF0C\u907F\u514D\u65E0\u8C13\u5730\u6253\u65AD\u7528\u6237\u3002\n\n### Iteration Budget & Efficiency (CRITICAL)\n- You have a **limited number of iterations** (typically 15). Every LLM turn counts.\n- **NEVER re-query the same data source.** If you called a tool and got results, use those results \u2014 do NOT call it again.\n- **NEVER call read_tool_result or read_offload to re-read data you already received.**\n- **Batch data gathering:** call multiple independent tools in the SAME turn (parallel tool calls).\n- **Data \u2192 Action pipeline:** gather data in 1-2 iterations, then immediately analyze/generate in the next iteration.\n- **Return concise structured summaries**, not raw data dumps. Extract key metrics, rankings, distributions \u2014 not every single record.\n\n### Delegate Progress Reporting (CRITICAL for UX)\nWhen you call `delegate_task`, the user sees NOTHING while the sub-agent runs \u2014 no progress, no feedback. This makes long delegations feel broken.\n\n**You MUST output brief progress messages at these checkpoints:**\n1. **Before delegating**: Output \"\u6B63\u5728\u59D4\u6258\u300C{agent_name}\u300D\u5904\u7406 {brief_description}\uFF0C\u8BF7\u7A0D\u5019\u2026\"\n2. **After delegation completes**: Output \"\u300C{agent_name}\u300D\u5DF2\u5B8C\u6210\uFF0C\u6B63\u5728\u5904\u7406\u7ED3\u679C\u2026\" before calling the next tool\n3. **Before generating output files** (PPT/PDF/etc.): Output \"\u6B63\u5728\u751F\u6210 {file_type}\u2026\"\n\n**Final reply rules:**\n- After all delegations and file generation complete, provide a **clean, structured summary** of results\n- Do NOT include internal reasoning, tool call logs, or progress narration in the final reply \u2014 those belong in progress messages only\n- The final reply should be polished and user-facing: key findings, recommendations, generated files";
|
|
7
7
|
/**
|
|
8
8
|
* 默认 PromptBuilderProvider 实现
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/prompt/prompt-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExG,kBAAkB;AAClB,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBtD,CAAC;AAMF,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/prompt/prompt-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExG,kBAAkB;AAClB,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsBtD,CAAC;AAMF,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,u9KAkEuE,CAAC;AAEtG;;GAEG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM;IAIzE,kBAAkB,CAChB,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,kBAAkB,EAAE,EAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,MAAM,CAAC,EAAE,YAAY,GACpB,MAAM;IAmCT,qBAAqB,CACnB,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;IAwBT,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAYjD,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;CASrD;AAED,uBAAuB;AACvB,eAAO,MAAM,uBAAuB,0qBAUoC,CAAC;AAEzE,yBAAyB;AACzB,eAAO,MAAM,2BAA2B,iSAKE,CAAC"}
|
|
@@ -66,6 +66,16 @@ export const GLOBAL_BASE_RULES = `
|
|
|
66
66
|
- If the user asks for "analysis" or "summary", provide it as text — do NOT auto-generate a report file
|
|
67
67
|
- Only generate files/reports when the user explicitly says "生成报告", "create PDF", "make a PPT", "save as file", etc.
|
|
68
68
|
|
|
69
|
+
### User Interaction (CRITICAL)
|
|
70
|
+
- 当你需要用户**做出选择、确认或提供输入**时,**必须调用 \`ask_user\` 工具**,而不是在回复中输出"您是否需要我…"、"请确认是否…"等自由文本。
|
|
71
|
+
- \`ask_user\` 会**暂停当前执行**并等待用户回答;收到答案后你的工具会返回用户的选择/输入,据此继续执行任务。
|
|
72
|
+
- 适用场景举例:
|
|
73
|
+
- 需要用户确认某个操作(type: \`confirm\`)
|
|
74
|
+
- 给用户一组选项让其选择后续动作(type: \`choice\` / \`multi-choice\`)
|
|
75
|
+
- 需要用户补充一段自由文本(type: \`input\`)
|
|
76
|
+
- **不要**用大段文字把问题抛给用户然后结束回复;应当通过 \`ask_user\` 真正等待答案。
|
|
77
|
+
- 仅在确实需要从用户处获取信息时才使用,避免无谓地打断用户。
|
|
78
|
+
|
|
69
79
|
### Iteration Budget & Efficiency (CRITICAL)
|
|
70
80
|
- You have a **limited number of iterations** (typically 15). Every LLM turn counts.
|
|
71
81
|
- **NEVER re-query the same data source.** If you called a tool and got results, use those results — do NOT call it again.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/prompt/prompt-builder.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAK/D,kBAAkB;AAClB,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,eAAe,EAAE,MAAM;IACvB,aAAa,EAAE,MAAM;IACrB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,QAAQ;IAC1B,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,MAAM;IAClB,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;AAE/D,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/prompt/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InteractionService } from '@cicctencent/agent-core';
|
|
2
|
+
import type { InteractionRequest, InteractionAnswer } from '@cicctencent/agent-core';
|
|
3
|
+
export declare function getInteractionService(): InteractionService;
|
|
4
|
+
export declare function resetInteractionService(): void;
|
|
5
|
+
export { InteractionService };
|
|
6
|
+
export type { InteractionRequest, InteractionAnswer };
|
|
7
|
+
//# sourceMappingURL=interaction.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.service.d.ts","sourceRoot":"","sources":["../../../src/service/interaction.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAmEvG,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// InteractionService — agent-server 层的交互服务
|
|
3
|
+
// 封装 agent-core 的 InteractionService + JsonStore 持久化
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { InteractionService } from '@cicctencent/agent-core';
|
|
6
|
+
import { JsonStore } from "../store/index.js";
|
|
7
|
+
/** JsonStore 持久化实现 */
|
|
8
|
+
class JsonInteractionStore {
|
|
9
|
+
store = new JsonStore('interactions/pending.json', 5000, { projectLocal: true });
|
|
10
|
+
cache = new Map();
|
|
11
|
+
cacheLoaded = false;
|
|
12
|
+
ensureCache() {
|
|
13
|
+
if (this.cacheLoaded)
|
|
14
|
+
return;
|
|
15
|
+
this.cacheLoaded = true;
|
|
16
|
+
try {
|
|
17
|
+
const list = this.store.read([]);
|
|
18
|
+
for (const item of list) {
|
|
19
|
+
this.cache.set(item.requestId, item);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch { /* ignore */ }
|
|
23
|
+
}
|
|
24
|
+
flush() {
|
|
25
|
+
if (!this.cacheLoaded)
|
|
26
|
+
return;
|
|
27
|
+
const list = [...this.cache.values()];
|
|
28
|
+
this.store.write(list);
|
|
29
|
+
}
|
|
30
|
+
save(request) {
|
|
31
|
+
this.ensureCache();
|
|
32
|
+
this.cache.set(request.requestId, { ...request });
|
|
33
|
+
this.flush();
|
|
34
|
+
}
|
|
35
|
+
get(requestId) {
|
|
36
|
+
this.ensureCache();
|
|
37
|
+
const r = this.cache.get(requestId);
|
|
38
|
+
return r ? { ...r } : undefined;
|
|
39
|
+
}
|
|
40
|
+
listPending(sessionId) {
|
|
41
|
+
this.ensureCache();
|
|
42
|
+
const results = [];
|
|
43
|
+
for (const r of this.cache.values()) {
|
|
44
|
+
if (r.sessionId === sessionId && r.status === 'pending') {
|
|
45
|
+
results.push({ ...r });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return results.sort((a, b) => b.createdAt - a.createdAt);
|
|
49
|
+
}
|
|
50
|
+
update(requestId, updates) {
|
|
51
|
+
this.ensureCache();
|
|
52
|
+
const existing = this.cache.get(requestId);
|
|
53
|
+
if (existing) {
|
|
54
|
+
this.cache.set(requestId, { ...existing, ...updates });
|
|
55
|
+
this.flush();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
delete(requestId) {
|
|
59
|
+
this.ensureCache();
|
|
60
|
+
this.cache.delete(requestId);
|
|
61
|
+
this.flush();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
let instance = null;
|
|
65
|
+
export function getInteractionService() {
|
|
66
|
+
if (!instance) {
|
|
67
|
+
instance = new InteractionService(new JsonInteractionStore());
|
|
68
|
+
}
|
|
69
|
+
return instance;
|
|
70
|
+
}
|
|
71
|
+
export function resetInteractionService() {
|
|
72
|
+
instance = null;
|
|
73
|
+
}
|
|
74
|
+
export { InteractionService };
|
|
75
|
+
//# sourceMappingURL=interaction.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.service.js","sourceRoot":"","sources":["../../../src/service/interaction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { createPermissionRequest, listPermissionRequests, findApprovedPermission, decidePermissionRequest } from '@cicctencent/agent-core';
|
|
2
2
|
export type { PermissionDecision, PermissionRequest } from '@cicctencent/agent-core';
|
|
3
3
|
export { createPermissionRequest, listPermissionRequests, findApprovedPermission, decidePermissionRequest };
|
|
4
|
+
/**
|
|
5
|
+
* 根据 permissionId 批准/拒绝权限请求(供交互式审批联动调用)
|
|
6
|
+
* @param permissionId 权限请求 ID
|
|
7
|
+
* @param approved true=批准,false=拒绝
|
|
8
|
+
*/
|
|
9
|
+
export declare function approvePermission(permissionId: string, approved: boolean): boolean;
|
|
4
10
|
export declare function initPermissionService(): void;
|
|
5
11
|
//# sourceMappingURL=permission.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../../src/service/permission.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../../src/service/permission.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AAE5G;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAQlF;AAkBD,wBAAgB,qBAAqB,IAAI,IAAI,CAU5C"}
|
|
@@ -5,6 +5,21 @@ import { JsonStore } from "../store/index.js";
|
|
|
5
5
|
import { configurePermissionManager, createPermissionRequest, listPermissionRequests, findApprovedPermission, decidePermissionRequest, } from '@cicctencent/agent-core';
|
|
6
6
|
import { getSecurityPolicy } from "./security-policy.service.js";
|
|
7
7
|
export { createPermissionRequest, listPermissionRequests, findApprovedPermission, decidePermissionRequest };
|
|
8
|
+
/**
|
|
9
|
+
* 根据 permissionId 批准/拒绝权限请求(供交互式审批联动调用)
|
|
10
|
+
* @param permissionId 权限请求 ID
|
|
11
|
+
* @param approved true=批准,false=拒绝
|
|
12
|
+
*/
|
|
13
|
+
export function approvePermission(permissionId, approved) {
|
|
14
|
+
try {
|
|
15
|
+
const result = decidePermissionRequest(permissionId, approved);
|
|
16
|
+
return result !== null;
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
console.warn('[PermissionService] approvePermission failed:', e?.message);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
8
23
|
// JsonStore 持久化实现
|
|
9
24
|
class JsonPermissionStore {
|
|
10
25
|
store = new JsonStore('permissions/pending.json', 0, { projectLocal: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.service.js","sourceRoot":"","sources":["../../../src/service/permission.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AAE5G,kBAAkB;AAClB,MAAM,mBAAmB;IACf,KAAK,GAAG,IAAI,SAAS,CAAsB,0BAA0B,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1G,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,gCAAgC;AAChC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,qBAAqB;IACnC,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,0BAA0B,CAAC;QACzB,KAAK,EAAE,IAAI,mBAAmB,EAAE;QAChC,YAAY,EAAE,MAAM,CAAC,eAAe;QACpC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;KACtD,CAAC,CAAC;AACL,CAAC;AAED,QAAQ;AACR,qBAAqB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"permission.service.js","sourceRoot":"","sources":["../../../src/service/permission.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AAE5G;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAoB,EAAE,QAAiB;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO,MAAM,KAAK,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,MAAM,mBAAmB;IACf,KAAK,GAAG,IAAI,SAAS,CAAsB,0BAA0B,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1G,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,gCAAgC;AAChC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,qBAAqB;IACnC,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,0BAA0B,CAAC;QACzB,KAAK,EAAE,IAAI,mBAAmB,EAAE;QAChC,YAAY,EAAE,MAAM,CAAC,eAAe;QACpC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;KACtD,CAAC,CAAC;AACL,CAAC;AAED,QAAQ;AACR,qBAAqB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety-audit.middleware.d.ts","sourceRoot":"","sources":["../../../src/service/safety-audit.middleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"safety-audit.middleware.d.ts","sourceRoot":"","sources":["../../../src/service/safety-audit.middleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAS1D,wBAAgB,2BAA2B,IAAI,UAAU,CAyJxD"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
import { assessToolRisk, isLowRiskTool } from "./tool-risk.service.js";
|
|
5
5
|
import { appendAuditLog } from "./audit.service.js";
|
|
6
6
|
import { createPermissionRequest, findApprovedPermission } from "./permission.service.js";
|
|
7
|
+
import { getSecurityPolicy } from "./security-policy.service.js";
|
|
8
|
+
import { getInteractionService } from "./interaction.service.js";
|
|
9
|
+
import { getRunRegistry } from "./run-registry.js";
|
|
7
10
|
import { logEvent } from "./observability.service.js";
|
|
8
11
|
export function createSafetyAuditMiddleware() {
|
|
9
12
|
return {
|
|
@@ -65,6 +68,47 @@ export function createSafetyAuditMiddleware() {
|
|
|
65
68
|
args,
|
|
66
69
|
risk,
|
|
67
70
|
});
|
|
71
|
+
// 统一交互模型:通过 interaction-request 事件将权限审批呈现为前端确认卡片
|
|
72
|
+
const policy = getSecurityPolicy();
|
|
73
|
+
if (policy.useInteractionApproval) {
|
|
74
|
+
try {
|
|
75
|
+
const interactionService = getInteractionService();
|
|
76
|
+
const ir = interactionService.createInteraction({
|
|
77
|
+
sessionId: ctx.sessionId,
|
|
78
|
+
threadId: ctx.sessionId,
|
|
79
|
+
source: 'tool',
|
|
80
|
+
type: 'approval',
|
|
81
|
+
title: '权限确认',
|
|
82
|
+
message: `工具 "${ctx.tool}" 被评估为 ${risk.level} 风险,需要您授权后才能执行。\n原因:${risk.reasons.join(';')}`,
|
|
83
|
+
options: [
|
|
84
|
+
{ id: 'approve', label: '授权执行', primary: true },
|
|
85
|
+
{ id: 'reject', label: '拒绝', danger: true },
|
|
86
|
+
],
|
|
87
|
+
required: true,
|
|
88
|
+
meta: { permissionId: request.id, tool: ctx.tool },
|
|
89
|
+
});
|
|
90
|
+
// 通过 RunRegistry 将交互请求转发到前端 SSE
|
|
91
|
+
const registry = getRunRegistry();
|
|
92
|
+
const threadId = Number(ctx.sessionId);
|
|
93
|
+
if (!isNaN(threadId)) {
|
|
94
|
+
registry.addEvent(threadId, 'interaction-request', {
|
|
95
|
+
requestId: ir.requestId,
|
|
96
|
+
sessionId: ir.sessionId,
|
|
97
|
+
threadId,
|
|
98
|
+
source: ir.source,
|
|
99
|
+
type: ir.type,
|
|
100
|
+
title: ir.title,
|
|
101
|
+
message: ir.message,
|
|
102
|
+
options: ir.options,
|
|
103
|
+
allowFreeText: ir.allowFreeText,
|
|
104
|
+
meta: ir.meta,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
console.warn('[SafetyAudit] emit approval interaction failed:', e?.message);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
68
112
|
return {
|
|
69
113
|
block: true,
|
|
70
114
|
reason: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety-audit.middleware.js","sourceRoot":"","sources":["../../../src/service/safety-audit.middleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safety-audit.middleware.js","sourceRoot":"","sources":["../../../src/service/safety-audit.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface SecurityPolicy {
|
|
|
12
12
|
reason: string;
|
|
13
13
|
level: ToolRiskLevel;
|
|
14
14
|
}>;
|
|
15
|
+
/** 权限审批是否通过统一的用户交互卡片(interaction-request, type=approval)呈现,默认 false(保持原有阻塞 tool_result 文本方式) */
|
|
16
|
+
useInteractionApproval: boolean;
|
|
15
17
|
}
|
|
16
18
|
export declare function getSecurityPolicy(): SecurityPolicy;
|
|
17
19
|
export declare function updateSecurityPolicy(update: Partial<SecurityPolicy>): SecurityPolicy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-policy.service.d.ts","sourceRoot":"","sources":["../../../src/service/security-policy.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C,iBAAiB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"security-policy.service.d.ts","sourceRoot":"","sources":["../../../src/service/security-policy.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C,iBAAiB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACpF,gGAAgG;IAChG,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAqBD,wBAAgB,iBAAiB,IAAI,cAAc,CAQlD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAUpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-policy.service.js","sourceRoot":"","sources":["../../../src/service/security-policy.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"security-policy.service.js","sourceRoot":"","sources":["../../../src/service/security-policy.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAezD,MAAM,cAAc,GAAmB;IACrC,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IAC/B,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,iBAAiB,EAAE,EAAE;IACrB,sBAAsB,EAAE,KAAK;CAC9B,CAAC;AAEF,IAAI,KAAK,GAAqC,IAAI,CAAC;AAEnD,SAAS,QAAQ;IACf,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,IAAI,SAAS,CAAiB,sBAAsB,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACrG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,KAAK;QACR,YAAY,EAAE,EAAE,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QAC/E,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,EAAE;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA+B;IAClE,MAAM,IAAI,GAAmB;QAC3B,GAAG,iBAAiB,EAAE;QACtB,GAAG,MAAM;QACT,YAAY,EAAE,EAAE,GAAG,iBAAiB,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrF,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,iBAAiB,EAAE,CAAC,iBAAiB;KACrF,CAAC;IACF,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,cAAc,EAAE,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cicctencent/agent-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.44",
|
|
4
4
|
"description": "Server-layer toolkit for agent-core — Agent initialization, SSE streaming, built-in tools, connectors, chat/settings/memory services with SPI extensibility.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@apidevtools/swagger-parser": "^12.1.0",
|
|
31
|
-
"@cicctencent/agent-core": "^0.1.
|
|
31
|
+
"@cicctencent/agent-core": "^0.1.67",
|
|
32
32
|
"axios": "^1.18.1",
|
|
33
33
|
"cheerio": "^1.2.0",
|
|
34
34
|
"docx": "^9.7.1",
|