@zhin.js/agent 0.1.25 → 0.1.27
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/README.md +1 -1
- package/lib/agent-prompt/registry.js +1 -1
- package/lib/agent-prompt/registry.js.map +1 -1
- package/lib/ai-event-bus.d.ts +19 -0
- package/lib/ai-event-bus.d.ts.map +1 -0
- package/lib/ai-event-bus.js +75 -0
- package/lib/ai-event-bus.js.map +1 -0
- package/lib/ai-event-subscriber.d.ts +38 -0
- package/lib/ai-event-subscriber.d.ts.map +1 -0
- package/lib/ai-event-subscriber.js +65 -0
- package/lib/ai-event-subscriber.js.map +1 -0
- package/lib/builtin/ask-user-tool.d.ts +2 -0
- package/lib/builtin/ask-user-tool.d.ts.map +1 -1
- package/lib/builtin/ask-user-tool.js +2 -0
- package/lib/builtin/ask-user-tool.js.map +1 -1
- package/lib/builtin/bash-tool.d.ts +7 -3
- package/lib/builtin/bash-tool.d.ts.map +1 -1
- package/lib/builtin/bash-tool.js +51 -9
- package/lib/builtin/bash-tool.js.map +1 -1
- package/lib/builtin/bing-search-html.d.ts.map +1 -1
- package/lib/builtin/bing-search-html.js +14 -7
- package/lib/builtin/bing-search-html.js.map +1 -1
- package/lib/builtin/builtin-base-tool.d.ts +2 -0
- package/lib/builtin/builtin-base-tool.d.ts.map +1 -1
- package/lib/builtin/builtin-base-tool.js +5 -0
- package/lib/builtin/builtin-base-tool.js.map +1 -1
- package/lib/builtin/edit-file-tool.d.ts +1 -1
- package/lib/builtin/edit-file-tool.d.ts.map +1 -1
- package/lib/builtin/edit-file-tool.js +33 -1
- package/lib/builtin/edit-file-tool.js.map +1 -1
- package/lib/builtin/file-edit-quote-utils.d.ts +1 -3
- package/lib/builtin/file-edit-quote-utils.d.ts.map +1 -1
- package/lib/builtin/file-edit-quote-utils.js +1 -3
- package/lib/builtin/file-edit-quote-utils.js.map +1 -1
- package/lib/builtin/glob-tool.d.ts +1 -1
- package/lib/builtin/glob-tool.d.ts.map +1 -1
- package/lib/builtin/glob-tool.js +15 -3
- package/lib/builtin/glob-tool.js.map +1 -1
- package/lib/builtin/grep-tool.d.ts +1 -1
- package/lib/builtin/grep-tool.d.ts.map +1 -1
- package/lib/builtin/grep-tool.js +16 -3
- package/lib/builtin/grep-tool.js.map +1 -1
- package/lib/builtin/list-dir-tool.d.ts +1 -1
- package/lib/builtin/list-dir-tool.d.ts.map +1 -1
- package/lib/builtin/list-dir-tool.js +14 -3
- package/lib/builtin/list-dir-tool.js.map +1 -1
- package/lib/builtin/read-file-tool.d.ts +1 -1
- package/lib/builtin/read-file-tool.d.ts.map +1 -1
- package/lib/builtin/read-file-tool.js +24 -3
- package/lib/builtin/read-file-tool.js.map +1 -1
- package/lib/builtin/run-deferred-task-tool.d.ts +3 -0
- package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
- package/lib/builtin/run-deferred-task-tool.js +2 -0
- package/lib/builtin/run-deferred-task-tool.js.map +1 -1
- package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
- package/lib/builtin/spawn-task-tool.js +2 -0
- package/lib/builtin/spawn-task-tool.js.map +1 -1
- package/lib/builtin/web-fetch-tool.d.ts +2 -2
- package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
- package/lib/builtin/web-fetch-tool.js +12 -18
- package/lib/builtin/web-fetch-tool.js.map +1 -1
- package/lib/builtin/write-file-tool.d.ts +1 -1
- package/lib/builtin/write-file-tool.d.ts.map +1 -1
- package/lib/builtin/write-file-tool.js +33 -1
- package/lib/builtin/write-file-tool.js.map +1 -1
- package/lib/common-adapter-tools.d.ts +8 -41
- package/lib/common-adapter-tools.d.ts.map +1 -1
- package/lib/common-adapter-tools.js +23 -182
- package/lib/common-adapter-tools.js.map +1 -1
- package/lib/deferred-worker-runner.d.ts +13 -2
- package/lib/deferred-worker-runner.d.ts.map +1 -1
- package/lib/deferred-worker-runner.js +91 -13
- package/lib/deferred-worker-runner.js.map +1 -1
- package/lib/discovery/agents.js +1 -1
- package/lib/discovery/agents.js.map +1 -1
- package/lib/discovery/skills.js +1 -1
- package/lib/discovery/skills.js.map +1 -1
- package/lib/discovery/tools.d.ts +1 -1
- package/lib/discovery/tools.d.ts.map +1 -1
- package/lib/discovery/tools.js +17 -4
- package/lib/discovery/tools.js.map +1 -1
- package/lib/discovery/utils.js +1 -1
- package/lib/discovery/utils.js.map +1 -1
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js +2 -0
- package/lib/hooks.js.map +1 -1
- package/lib/index.d.ts +9 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/init/message-media.d.ts +3 -1
- package/lib/init/message-media.d.ts.map +1 -1
- package/lib/init/message-media.js +20 -0
- package/lib/init/message-media.js.map +1 -1
- package/lib/init/register-ai-service.js.map +1 -1
- package/lib/init/register-ai-trigger.d.ts.map +1 -1
- package/lib/init/register-ai-trigger.js +71 -10
- package/lib/init/register-ai-trigger.js.map +1 -1
- package/lib/init/register-builtin-tools.js +7 -7
- package/lib/init/register-builtin-tools.js.map +1 -1
- package/lib/init/register-typing-indicator.d.ts +10 -0
- package/lib/init/register-typing-indicator.d.ts.map +1 -0
- package/lib/init/register-typing-indicator.js +290 -0
- package/lib/init/register-typing-indicator.js.map +1 -0
- package/lib/init.d.ts.map +1 -1
- package/lib/init.js +2 -0
- package/lib/init.js.map +1 -1
- package/lib/mcp-client/connection.d.ts +2 -0
- package/lib/mcp-client/connection.d.ts.map +1 -1
- package/lib/mcp-client/connection.js +7 -0
- package/lib/mcp-client/connection.js.map +1 -1
- package/lib/mcp-client/index.d.ts +2 -0
- package/lib/mcp-client/index.d.ts.map +1 -1
- package/lib/mcp-client/index.js +19 -2
- package/lib/mcp-client/index.js.map +1 -1
- package/lib/monitoring/index.d.ts +79 -0
- package/lib/monitoring/index.d.ts.map +1 -0
- package/lib/monitoring/index.js +197 -0
- package/lib/monitoring/index.js.map +1 -0
- package/lib/monitoring/metrics.d.ts +240 -0
- package/lib/monitoring/metrics.d.ts.map +1 -0
- package/lib/monitoring/metrics.js +483 -0
- package/lib/monitoring/metrics.js.map +1 -0
- package/lib/orchestrator/agent-dispatcher.d.ts +170 -0
- package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -0
- package/lib/orchestrator/agent-dispatcher.js +379 -0
- package/lib/orchestrator/agent-dispatcher.js.map +1 -0
- package/lib/orchestrator/hook-registry.d.ts.map +1 -1
- package/lib/orchestrator/hook-registry.js +2 -0
- package/lib/orchestrator/hook-registry.js.map +1 -1
- package/lib/orchestrator/index.d.ts +2 -0
- package/lib/orchestrator/index.d.ts.map +1 -1
- package/lib/orchestrator/index.js +2 -0
- package/lib/orchestrator/index.js.map +1 -1
- package/lib/orchestrator/mcp-lifecycle.d.ts +1 -1
- package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -1
- package/lib/orchestrator/mcp-lifecycle.js +2 -2
- package/lib/orchestrator/mcp-lifecycle.js.map +1 -1
- package/lib/orchestrator/mcp-registry.d.ts +8 -1
- package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
- package/lib/orchestrator/mcp-registry.js +28 -5
- package/lib/orchestrator/mcp-registry.js.map +1 -1
- package/lib/orchestrator/task-queue.d.ts +147 -0
- package/lib/orchestrator/task-queue.d.ts.map +1 -0
- package/lib/orchestrator/task-queue.js +337 -0
- package/lib/orchestrator/task-queue.js.map +1 -0
- package/lib/orchestrator/tool-selection.d.ts.map +1 -1
- package/lib/orchestrator/tool-selection.js +3 -0
- package/lib/orchestrator/tool-selection.js.map +1 -1
- package/lib/orchestrator/types.d.ts +8 -0
- package/lib/orchestrator/types.d.ts.map +1 -1
- package/lib/plugin-ai-hook-bus.d.ts +4 -0
- package/lib/plugin-ai-hook-bus.d.ts.map +1 -0
- package/lib/plugin-ai-hook-bus.js +24 -0
- package/lib/plugin-ai-hook-bus.js.map +1 -0
- package/lib/security/anomaly-detection.d.ts +119 -0
- package/lib/security/anomaly-detection.d.ts.map +1 -0
- package/lib/security/anomaly-detection.js +305 -0
- package/lib/security/anomaly-detection.js.map +1 -0
- package/lib/security/audit-logger.d.ts +158 -0
- package/lib/security/audit-logger.d.ts.map +1 -0
- package/lib/security/audit-logger.js +379 -0
- package/lib/security/audit-logger.js.map +1 -0
- package/lib/security/bash-tool-context.d.ts +3 -3
- package/lib/security/bash-tool-context.d.ts.map +1 -1
- package/lib/security/budget-limiter.d.ts +156 -0
- package/lib/security/budget-limiter.d.ts.map +1 -0
- package/lib/security/budget-limiter.js +363 -0
- package/lib/security/budget-limiter.js.map +1 -0
- package/lib/security/dangerous-tool-policy.d.ts +17 -0
- package/lib/security/dangerous-tool-policy.d.ts.map +1 -0
- package/lib/security/dangerous-tool-policy.js +137 -0
- package/lib/security/dangerous-tool-policy.js.map +1 -0
- package/lib/security/exec-policy.d.ts +21 -12
- package/lib/security/exec-policy.d.ts.map +1 -1
- package/lib/security/exec-policy.js +198 -25
- package/lib/security/exec-policy.js.map +1 -1
- package/lib/security/file-policy.d.ts +0 -1
- package/lib/security/file-policy.d.ts.map +1 -1
- package/lib/security/file-policy.js +112 -14
- package/lib/security/file-policy.js.map +1 -1
- package/lib/security/file-role-policy.d.ts +119 -0
- package/lib/security/file-role-policy.d.ts.map +1 -0
- package/lib/security/file-role-policy.js +268 -0
- package/lib/security/file-role-policy.js.map +1 -0
- package/lib/security/index.d.ts +59 -0
- package/lib/security/index.d.ts.map +1 -1
- package/lib/security/index.js +68 -0
- package/lib/security/index.js.map +1 -1
- package/lib/security/network-policy.d.ts +94 -0
- package/lib/security/network-policy.d.ts.map +1 -0
- package/lib/security/network-policy.js +291 -0
- package/lib/security/network-policy.js.map +1 -0
- package/lib/security/owner-approve-always-store.d.ts +2 -0
- package/lib/security/owner-approve-always-store.d.ts.map +1 -1
- package/lib/security/owner-approve-always-store.js +37 -0
- package/lib/security/owner-approve-always-store.js.map +1 -1
- package/lib/security/sandbox-enhanced.d.ts +170 -0
- package/lib/security/sandbox-enhanced.d.ts.map +1 -0
- package/lib/security/sandbox-enhanced.js +630 -0
- package/lib/security/sandbox-enhanced.js.map +1 -0
- package/lib/security/sandbox.d.ts +104 -0
- package/lib/security/sandbox.d.ts.map +1 -0
- package/lib/security/sandbox.js +373 -0
- package/lib/security/sandbox.js.map +1 -0
- package/lib/security/security-config.example.d.ts +33 -0
- package/lib/security/security-config.example.d.ts.map +1 -0
- package/lib/security/security-config.example.js +166 -0
- package/lib/security/security-config.example.js.map +1 -0
- package/lib/subagent-goal-notify.d.ts +13 -0
- package/lib/subagent-goal-notify.d.ts.map +1 -0
- package/lib/subagent-goal-notify.js +32 -0
- package/lib/subagent-goal-notify.js.map +1 -0
- package/lib/subagent.d.ts +24 -0
- package/lib/subagent.d.ts.map +1 -1
- package/lib/subagent.js +98 -16
- package/lib/subagent.js.map +1 -1
- package/lib/typing-indicator/adapter-integration.d.ts +158 -0
- package/lib/typing-indicator/adapter-integration.d.ts.map +1 -0
- package/lib/typing-indicator/adapter-integration.js +465 -0
- package/lib/typing-indicator/adapter-integration.js.map +1 -0
- package/lib/typing-indicator/index.d.ts +170 -0
- package/lib/typing-indicator/index.d.ts.map +1 -0
- package/lib/typing-indicator/index.js +316 -0
- package/lib/typing-indicator/index.js.map +1 -0
- package/lib/typing-indicator/integration.d.ts +92 -0
- package/lib/typing-indicator/integration.d.ts.map +1 -0
- package/lib/typing-indicator/integration.js +220 -0
- package/lib/typing-indicator/integration.js.map +1 -0
- package/lib/zhin-agent/config.d.ts +20 -2
- package/lib/zhin-agent/config.d.ts.map +1 -1
- package/lib/zhin-agent/config.js +27 -9
- package/lib/zhin-agent/config.js.map +1 -1
- package/lib/zhin-agent/event-emitter.d.ts +11 -0
- package/lib/zhin-agent/event-emitter.d.ts.map +1 -0
- package/lib/zhin-agent/event-emitter.js +43 -0
- package/lib/zhin-agent/event-emitter.js.map +1 -0
- package/lib/zhin-agent/index.d.ts +9 -31
- package/lib/zhin-agent/index.d.ts.map +1 -1
- package/lib/zhin-agent/index.js +70 -672
- package/lib/zhin-agent/index.js.map +1 -1
- package/lib/zhin-agent/llm-runner.d.ts +16 -0
- package/lib/zhin-agent/llm-runner.d.ts.map +1 -0
- package/lib/zhin-agent/llm-runner.js +85 -0
- package/lib/zhin-agent/llm-runner.js.map +1 -0
- package/lib/zhin-agent/model-resolver.d.ts +9 -0
- package/lib/zhin-agent/model-resolver.d.ts.map +1 -0
- package/lib/zhin-agent/model-resolver.js +25 -0
- package/lib/zhin-agent/model-resolver.js.map +1 -0
- package/lib/zhin-agent/phase-trace.d.ts +12 -0
- package/lib/zhin-agent/phase-trace.d.ts.map +1 -0
- package/lib/zhin-agent/phase-trace.js +24 -0
- package/lib/zhin-agent/phase-trace.js.map +1 -0
- package/lib/zhin-agent/prompt-assembly.d.ts +22 -0
- package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -0
- package/lib/zhin-agent/prompt-assembly.js +66 -0
- package/lib/zhin-agent/prompt-assembly.js.map +1 -0
- package/lib/zhin-agent/prompt-builder.d.ts +200 -0
- package/lib/zhin-agent/prompt-builder.d.ts.map +1 -0
- package/lib/zhin-agent/prompt-builder.js +574 -0
- package/lib/zhin-agent/prompt-builder.js.map +1 -0
- package/lib/zhin-agent/prompt-templates.d.ts +160 -0
- package/lib/zhin-agent/prompt-templates.d.ts.map +1 -0
- package/lib/zhin-agent/prompt-templates.js +436 -0
- package/lib/zhin-agent/prompt-templates.js.map +1 -0
- package/lib/zhin-agent/prompt.d.ts +15 -0
- package/lib/zhin-agent/prompt.d.ts.map +1 -1
- package/lib/zhin-agent/prompt.js +149 -4
- package/lib/zhin-agent/prompt.js.map +1 -1
- package/lib/zhin-agent/session-io.d.ts +10 -0
- package/lib/zhin-agent/session-io.d.ts.map +1 -0
- package/lib/zhin-agent/session-io.js +14 -0
- package/lib/zhin-agent/session-io.js.map +1 -0
- package/lib/zhin-agent/task-continuation.d.ts +144 -0
- package/lib/zhin-agent/task-continuation.d.ts.map +1 -0
- package/lib/zhin-agent/task-continuation.js +346 -0
- package/lib/zhin-agent/task-continuation.js.map +1 -0
- package/lib/zhin-agent/text-sanitize.d.ts +2 -5
- package/lib/zhin-agent/text-sanitize.d.ts.map +1 -1
- package/lib/zhin-agent/text-sanitize.js +2 -25
- package/lib/zhin-agent/text-sanitize.js.map +1 -1
- package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
- package/lib/zhin-agent/tool-calls-user-format.js +12 -3
- package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
- package/lib/zhin-agent/tool-orchestration.d.ts +9 -0
- package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -0
- package/lib/zhin-agent/tool-orchestration.js +68 -0
- package/lib/zhin-agent/tool-orchestration.js.map +1 -0
- package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
- package/lib/zhin-agent/tool-search-orchestrator.js +5 -2
- package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
- package/lib/zhin-agent/turn-pipeline.d.ts +5 -0
- package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -0
- package/lib/zhin-agent/turn-pipeline.js +541 -0
- package/lib/zhin-agent/turn-pipeline.js.map +1 -0
- package/lib/zhin-agent/turn-tracker.d.ts +17 -0
- package/lib/zhin-agent/turn-tracker.d.ts.map +1 -0
- package/lib/zhin-agent/turn-tracker.js +54 -0
- package/lib/zhin-agent/turn-tracker.js.map +1 -0
- package/lib/zhin-agent/web-search-locale-attach.d.ts +4 -0
- package/lib/zhin-agent/web-search-locale-attach.d.ts.map +1 -0
- package/lib/zhin-agent/web-search-locale-attach.js +19 -0
- package/lib/zhin-agent/web-search-locale-attach.js.map +1 -0
- package/lib/zhin-agent/zhin-agent-private.d.ts +66 -0
- package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -0
- package/lib/zhin-agent/zhin-agent-private.js +4 -0
- package/lib/zhin-agent/zhin-agent-private.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 网络访问安全策略
|
|
3
|
+
*
|
|
4
|
+
* 控制 AI Agent 的网络请求,防止:
|
|
5
|
+
* - 访问恶意域名
|
|
6
|
+
* - 数据外泄
|
|
7
|
+
* - SSRF 攻击
|
|
8
|
+
* - 资源滥用
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export interface NetworkPolicyConfig {
|
|
12
|
+
/** 是否启用网络策略 */
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
/** 域名白名单(允许访问) */
|
|
15
|
+
allowedDomains?: string[];
|
|
16
|
+
/** 域名黑名单(禁止访问) */
|
|
17
|
+
blockedDomains?: string[];
|
|
18
|
+
/** IP 黑名单 */
|
|
19
|
+
blockedIPs?: string[];
|
|
20
|
+
/** 禁止私有 IP */
|
|
21
|
+
blockPrivateIPs?: boolean;
|
|
22
|
+
/** 最大请求大小(字节) */
|
|
23
|
+
maxRequestSize?: number;
|
|
24
|
+
/** 最大响应大小(字节) */
|
|
25
|
+
maxResponseSize?: number;
|
|
26
|
+
/** 请求超时(毫秒) */
|
|
27
|
+
requestTimeout?: number;
|
|
28
|
+
/** 每分钟最大请求数 */
|
|
29
|
+
rateLimit?: number;
|
|
30
|
+
/** 禁止的协议 */
|
|
31
|
+
blockedProtocols?: string[];
|
|
32
|
+
/** 禁止的端口 */
|
|
33
|
+
blockedPorts?: number[];
|
|
34
|
+
}
|
|
35
|
+
export interface NetworkPolicyResult {
|
|
36
|
+
allowed: boolean;
|
|
37
|
+
reason?: string;
|
|
38
|
+
/** 脱敏后的 URL */
|
|
39
|
+
sanitizedUrl?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class NetworkPolicy {
|
|
42
|
+
private config;
|
|
43
|
+
private rateLimiter;
|
|
44
|
+
constructor(config?: Partial<NetworkPolicyConfig>);
|
|
45
|
+
/**
|
|
46
|
+
* 检查 URL 是否允许访问
|
|
47
|
+
*/
|
|
48
|
+
checkUrl(url: string, userId?: string): NetworkPolicyResult;
|
|
49
|
+
/**
|
|
50
|
+
* 检查域名是否在黑名单中
|
|
51
|
+
*/
|
|
52
|
+
private isBlockedDomain;
|
|
53
|
+
/**
|
|
54
|
+
* 检查域名是否在白名单中
|
|
55
|
+
*/
|
|
56
|
+
private isAllowedDomain;
|
|
57
|
+
/**
|
|
58
|
+
* 检查是否为可疑域名
|
|
59
|
+
*/
|
|
60
|
+
private isSuspiciousDomain;
|
|
61
|
+
/**
|
|
62
|
+
* 检查是否为私有 IP
|
|
63
|
+
*/
|
|
64
|
+
private isPrivateIP;
|
|
65
|
+
/**
|
|
66
|
+
* 获取默认端口
|
|
67
|
+
*/
|
|
68
|
+
private getDefaultPort;
|
|
69
|
+
/**
|
|
70
|
+
* 脱敏域名
|
|
71
|
+
*/
|
|
72
|
+
private maskDomain;
|
|
73
|
+
/**
|
|
74
|
+
* 更新配置
|
|
75
|
+
*/
|
|
76
|
+
updateConfig(config: Partial<NetworkPolicyConfig>): void;
|
|
77
|
+
/**
|
|
78
|
+
* 获取配置(脱敏)
|
|
79
|
+
*/
|
|
80
|
+
getConfig(): NetworkPolicyConfig;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 获取全局网络策略实例
|
|
84
|
+
*/
|
|
85
|
+
export declare function getNetworkPolicy(): NetworkPolicy;
|
|
86
|
+
/**
|
|
87
|
+
* 初始化网络策略
|
|
88
|
+
*/
|
|
89
|
+
export declare function initNetworkPolicy(config: Partial<NetworkPolicyConfig>): NetworkPolicy;
|
|
90
|
+
/**
|
|
91
|
+
* 检查 URL 是否允许访问
|
|
92
|
+
*/
|
|
93
|
+
export declare function checkNetworkAccess(url: string, userId?: string): NetworkPolicyResult;
|
|
94
|
+
//# sourceMappingURL=network-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-policy.d.ts","sourceRoot":"","sources":["../../src/security/network-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,mBAAmB;IAClC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAkGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAQrD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAuF3D;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,SAAS,IAAI,mBAAmB;CAGjC;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAGrF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAEpF"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 网络访问安全策略
|
|
3
|
+
*
|
|
4
|
+
* 控制 AI Agent 的网络请求,防止:
|
|
5
|
+
* - 访问恶意域名
|
|
6
|
+
* - 数据外泄
|
|
7
|
+
* - SSRF 攻击
|
|
8
|
+
* - 资源滥用
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
import { URL } from 'node:url';
|
|
12
|
+
const DEFAULT_CONFIG = {
|
|
13
|
+
enabled: true,
|
|
14
|
+
blockPrivateIPs: true,
|
|
15
|
+
maxRequestSize: 10 * 1024 * 1024, // 10 MB
|
|
16
|
+
maxResponseSize: 50 * 1024 * 1024, // 50 MB
|
|
17
|
+
requestTimeout: 30000, // 30 秒
|
|
18
|
+
rateLimit: 100, // 每分钟 100 次
|
|
19
|
+
blockedProtocols: ['file', 'ftp', 'gopher'],
|
|
20
|
+
blockedPorts: [22, 23, 25, 465, 587, 1080, 3389, 5900],
|
|
21
|
+
};
|
|
22
|
+
// ── 私有 IP 检测 ──────────────────────────────────────────────────────
|
|
23
|
+
const PRIVATE_IP_PATTERNS = [
|
|
24
|
+
/^10\./, // 10.0.0.0/8
|
|
25
|
+
/^172\.(1[6-9]|2[0-9]|3[0-1])\./, // 172.16.0.0/12
|
|
26
|
+
/^192\.168\./, // 192.168.0.0/16
|
|
27
|
+
/^127\./, // 127.0.0.0/8 (localhost)
|
|
28
|
+
/^0\./, // 0.0.0.0
|
|
29
|
+
/^::1$/, // IPv6 localhost
|
|
30
|
+
/^fc00:/, // IPv6 private
|
|
31
|
+
/^fd[0-9a-f]{2}:/, // IPv6 private
|
|
32
|
+
/^fe80:/, // IPv6 link-local
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* 检查 IP 是否为私有地址
|
|
36
|
+
*/
|
|
37
|
+
function isPrivateIP(ip) {
|
|
38
|
+
return PRIVATE_IP_PATTERNS.some(pattern => pattern.test(ip));
|
|
39
|
+
}
|
|
40
|
+
// ── 常见危险域名模式 ──────────────────────────────────────────────────
|
|
41
|
+
const SUSPICIOUS_DOMAIN_PATTERNS = [
|
|
42
|
+
/\.tk$/i, // 免费域名,常用于钓鱼
|
|
43
|
+
/\.ml$/i,
|
|
44
|
+
/\.ga$/i,
|
|
45
|
+
/\.cf$/i,
|
|
46
|
+
/\.gq$/i,
|
|
47
|
+
/pastebin\.com/i, // 代码分享,可能含恶意内容
|
|
48
|
+
/hastebin\.com/i,
|
|
49
|
+
/ngrok\.io/i, // 隧道服务
|
|
50
|
+
/serveo\.net/i,
|
|
51
|
+
/localtunnel\.me/i,
|
|
52
|
+
];
|
|
53
|
+
// ── 速率限制器 ────────────────────────────────────────────────────────
|
|
54
|
+
class RateLimiter {
|
|
55
|
+
requests = new Map();
|
|
56
|
+
/**
|
|
57
|
+
* 检查是否超过速率限制
|
|
58
|
+
* @returns true 表示超过限制
|
|
59
|
+
*/
|
|
60
|
+
isLimited(key, limit, windowMs = 60000) {
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
const windowStart = now - windowMs;
|
|
63
|
+
// 获取或初始化请求记录
|
|
64
|
+
let timestamps = this.requests.get(key) || [];
|
|
65
|
+
// 清理过期记录
|
|
66
|
+
timestamps = timestamps.filter(t => t > windowStart);
|
|
67
|
+
// 检查是否超过限制
|
|
68
|
+
if (timestamps.length >= limit) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
// 记录本次请求
|
|
72
|
+
timestamps.push(now);
|
|
73
|
+
this.requests.set(key, timestamps);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 清理过期记录
|
|
78
|
+
*/
|
|
79
|
+
cleanup() {
|
|
80
|
+
const now = Date.now();
|
|
81
|
+
for (const [key, timestamps] of this.requests.entries()) {
|
|
82
|
+
const valid = timestamps.filter(t => t > now - 120000); // 保留 2 分钟内的记录
|
|
83
|
+
if (valid.length === 0) {
|
|
84
|
+
this.requests.delete(key);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.requests.set(key, valid);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// ── 网络策略类 ────────────────────────────────────────────────────────
|
|
93
|
+
export class NetworkPolicy {
|
|
94
|
+
config;
|
|
95
|
+
rateLimiter;
|
|
96
|
+
constructor(config = {}) {
|
|
97
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
98
|
+
this.rateLimiter = new RateLimiter();
|
|
99
|
+
// 定期清理速率限制器
|
|
100
|
+
setInterval(() => this.rateLimiter.cleanup(), 60000);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 检查 URL 是否允许访问
|
|
104
|
+
*/
|
|
105
|
+
checkUrl(url, userId) {
|
|
106
|
+
if (!this.config.enabled) {
|
|
107
|
+
return { allowed: true };
|
|
108
|
+
}
|
|
109
|
+
let parsed;
|
|
110
|
+
try {
|
|
111
|
+
parsed = new URL(url);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return { allowed: false, reason: '无效的 URL 格式' };
|
|
115
|
+
}
|
|
116
|
+
// 1. 协议检查
|
|
117
|
+
if (this.config.blockedProtocols?.includes(parsed.protocol.replace(':', ''))) {
|
|
118
|
+
return {
|
|
119
|
+
allowed: false,
|
|
120
|
+
reason: `禁止的协议: ${parsed.protocol}`,
|
|
121
|
+
sanitizedUrl: `${parsed.protocol}//***`,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// 2. 端口检查
|
|
125
|
+
const port = parsed.port ? parseInt(parsed.port, 10) : this.getDefaultPort(parsed.protocol);
|
|
126
|
+
if (port && this.config.blockedPorts?.includes(port)) {
|
|
127
|
+
return {
|
|
128
|
+
allowed: false,
|
|
129
|
+
reason: `禁止的端口: ${port}`,
|
|
130
|
+
sanitizedUrl: `${parsed.protocol}//${parsed.hostname}:***`,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// 3. 私有 IP 检查(在白名单检查之前)
|
|
134
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
135
|
+
if (this.config.blockPrivateIPs && this.isPrivateIP(hostname)) {
|
|
136
|
+
return {
|
|
137
|
+
allowed: false,
|
|
138
|
+
reason: '禁止访问私有 IP 地址',
|
|
139
|
+
sanitizedUrl: `${parsed.protocol}//***`,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// 4. 可疑域名检查(在白名单检查之前)
|
|
143
|
+
if (this.isSuspiciousDomain(hostname)) {
|
|
144
|
+
return {
|
|
145
|
+
allowed: false,
|
|
146
|
+
reason: `可疑域名: ${this.maskDomain(hostname)}`,
|
|
147
|
+
sanitizedUrl: `${parsed.protocol}//${this.maskDomain(hostname)}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// 5. 域名黑名单检查
|
|
151
|
+
if (this.isBlockedDomain(hostname)) {
|
|
152
|
+
return {
|
|
153
|
+
allowed: false,
|
|
154
|
+
reason: `域名在黑名单中: ${this.maskDomain(hostname)}`,
|
|
155
|
+
sanitizedUrl: `${parsed.protocol}//${this.maskDomain(hostname)}`,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// 6. 域名白名单检查
|
|
159
|
+
if (this.config.allowedDomains && this.config.allowedDomains.length > 0) {
|
|
160
|
+
if (!this.isAllowedDomain(hostname)) {
|
|
161
|
+
return {
|
|
162
|
+
allowed: false,
|
|
163
|
+
reason: `域名不在白名单中: ${this.maskDomain(hostname)}`,
|
|
164
|
+
sanitizedUrl: `${parsed.protocol}//${this.maskDomain(hostname)}`,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// 7. 速率限制检查
|
|
169
|
+
const rateLimitKey = userId || hostname;
|
|
170
|
+
if (this.config.rateLimit && this.rateLimiter.isLimited(rateLimitKey, this.config.rateLimit)) {
|
|
171
|
+
return {
|
|
172
|
+
allowed: false,
|
|
173
|
+
reason: '请求过于频繁,请稍后再试',
|
|
174
|
+
sanitizedUrl: `${parsed.protocol}//${this.maskDomain(hostname)}`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// 通过所有检查
|
|
178
|
+
return {
|
|
179
|
+
allowed: true,
|
|
180
|
+
sanitizedUrl: `${parsed.protocol}//${this.maskDomain(hostname)}${parsed.pathname}`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 检查域名是否在黑名单中
|
|
185
|
+
*/
|
|
186
|
+
isBlockedDomain(domain) {
|
|
187
|
+
if (!this.config.blockedDomains)
|
|
188
|
+
return false;
|
|
189
|
+
return this.config.blockedDomains.some(blocked => {
|
|
190
|
+
// 支持通配符匹配
|
|
191
|
+
if (blocked.startsWith('*.')) {
|
|
192
|
+
const suffix = blocked.slice(1); // *.example.com -> .example.com
|
|
193
|
+
return domain.endsWith(suffix) || domain === suffix.slice(1);
|
|
194
|
+
}
|
|
195
|
+
return domain === blocked || domain.endsWith(`.${blocked}`);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 检查域名是否在白名单中
|
|
200
|
+
*/
|
|
201
|
+
isAllowedDomain(domain) {
|
|
202
|
+
if (!this.config.allowedDomains || this.config.allowedDomains.length === 0) {
|
|
203
|
+
return true; // 没有白名单则允许所有
|
|
204
|
+
}
|
|
205
|
+
return this.config.allowedDomains.some(allowed => {
|
|
206
|
+
if (allowed.startsWith('*.')) {
|
|
207
|
+
const suffix = allowed.slice(1);
|
|
208
|
+
return domain.endsWith(suffix) || domain === suffix.slice(1);
|
|
209
|
+
}
|
|
210
|
+
return domain === allowed || domain.endsWith(`.${allowed}`);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* 检查是否为可疑域名
|
|
215
|
+
*/
|
|
216
|
+
isSuspiciousDomain(domain) {
|
|
217
|
+
return SUSPICIOUS_DOMAIN_PATTERNS.some(pattern => pattern.test(domain));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 检查是否为私有 IP
|
|
221
|
+
*/
|
|
222
|
+
isPrivateIP(hostname) {
|
|
223
|
+
// 简单的 IP 格式检查
|
|
224
|
+
const ipPattern = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
|
|
225
|
+
if (!ipPattern.test(hostname)) {
|
|
226
|
+
// 可能是域名,需要解析(这里简化处理)
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
return isPrivateIP(hostname);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 获取默认端口
|
|
233
|
+
*/
|
|
234
|
+
getDefaultPort(protocol) {
|
|
235
|
+
const ports = {
|
|
236
|
+
'http:': 80,
|
|
237
|
+
'https:': 443,
|
|
238
|
+
'ftp:': 21,
|
|
239
|
+
'ssh:': 22,
|
|
240
|
+
};
|
|
241
|
+
return ports[protocol] || null;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* 脱敏域名
|
|
245
|
+
*/
|
|
246
|
+
maskDomain(domain) {
|
|
247
|
+
const parts = domain.split('.');
|
|
248
|
+
if (parts.length <= 2) {
|
|
249
|
+
return domain; // 顶级域名不脱敏
|
|
250
|
+
}
|
|
251
|
+
// 保留顶级域名,中间部分脱敏
|
|
252
|
+
return `***.${parts.slice(-2).join('.')}`;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* 更新配置
|
|
256
|
+
*/
|
|
257
|
+
updateConfig(config) {
|
|
258
|
+
this.config = { ...this.config, ...config };
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* 获取配置(脱敏)
|
|
262
|
+
*/
|
|
263
|
+
getConfig() {
|
|
264
|
+
return { ...this.config };
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// ── 全局网络策略实例 ──────────────────────────────────────────────────
|
|
268
|
+
let globalNetworkPolicy = null;
|
|
269
|
+
/**
|
|
270
|
+
* 获取全局网络策略实例
|
|
271
|
+
*/
|
|
272
|
+
export function getNetworkPolicy() {
|
|
273
|
+
if (!globalNetworkPolicy) {
|
|
274
|
+
globalNetworkPolicy = new NetworkPolicy();
|
|
275
|
+
}
|
|
276
|
+
return globalNetworkPolicy;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* 初始化网络策略
|
|
280
|
+
*/
|
|
281
|
+
export function initNetworkPolicy(config) {
|
|
282
|
+
globalNetworkPolicy = new NetworkPolicy(config);
|
|
283
|
+
return globalNetworkPolicy;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* 检查 URL 是否允许访问
|
|
287
|
+
*/
|
|
288
|
+
export function checkNetworkAccess(url, userId) {
|
|
289
|
+
return getNetworkPolicy().checkUrl(url, userId);
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=network-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-policy.js","sourceRoot":"","sources":["../../src/security/network-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AA6B/B,MAAM,cAAc,GAAwB;IAC1C,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAO,QAAQ;IAC/C,eAAe,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAM,QAAQ;IAC/C,cAAc,EAAE,KAAK,EAAmB,OAAO;IAC/C,SAAS,EAAE,GAAG,EAA0B,YAAY;IACpD,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACvD,CAAC;AAEF,qEAAqE;AAErE,MAAM,mBAAmB,GAAG;IAC1B,OAAO,EAA2B,aAAa;IAC/C,gCAAgC,EAAE,gBAAgB;IAClD,aAAa,EAAsB,iBAAiB;IACpD,QAAQ,EAA2B,0BAA0B;IAC7D,MAAM,EAA6B,UAAU;IAC7C,OAAO,EAA4B,iBAAiB;IACpD,QAAQ,EAA2B,eAAe;IAClD,iBAAiB,EAAiB,eAAe;IACjD,QAAQ,EAA2B,kBAAkB;CACtD,CAAC;AAEF;;GAEG;AACH,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,iEAAiE;AAEjE,MAAM,0BAA0B,GAAG;IACjC,QAAQ,EAAO,aAAa;IAC5B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,gBAAgB,EAAG,eAAe;IAClC,gBAAgB;IAChB,YAAY,EAAO,OAAO;IAC1B,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEF,oEAAoE;AAEpE,MAAM,WAAW;IACP,QAAQ,GAA0B,IAAI,GAAG,EAAE,CAAC;IAEpD;;;OAGG;IACH,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,WAAmB,KAAK;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,GAAG,GAAG,QAAQ,CAAC;QAEnC,aAAa;QACb,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9C,SAAS;QACT,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;QAErD,WAAW;QACX,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS;QACT,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAEnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc;YACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAWD,oEAAoE;AAEpE,MAAM,OAAO,aAAa;IAChB,MAAM,CAAsB;IAC5B,WAAW,CAAc;IAEjC,YAAY,SAAuC,EAAE;QACnD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAErC,YAAY;QACZ,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,MAAe;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAClD,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE;gBACnC,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,OAAO;aACxC,CAAC;QACJ,CAAC;QAED,UAAU;QACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5F,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,UAAU,IAAI,EAAE;gBACxB,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,MAAM;aAC3D,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,cAAc;gBACtB,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,OAAO;aACxC,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5C,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;aACjE,CAAC;QACJ,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC/C,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;aACjE,CAAC;QACJ,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,aAAa,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAChD,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;iBACjE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,YAAY;QACZ,MAAM,YAAY,GAAG,MAAM,IAAI,QAAQ,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,cAAc;gBACtB,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;aACjE,CAAC;QACJ,CAAC;QAED,SAAS;QACT,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE;SACnF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/C,UAAU;YACV,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC;gBACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC,CAAC,aAAa;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,MAAc;QACvC,OAAO,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,QAAgB;QAClC,cAAc;QACd,MAAM,SAAS,GAAG,sCAAsC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,qBAAqB;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAgB;QACrC,MAAM,KAAK,GAA2B;YACpC,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;QACF,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,MAAc;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,CAAC,UAAU;QAC3B,CAAC;QACD,gBAAgB;QAChB,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAoC;QAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,iEAAiE;AAEjE,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,IAAI,aAAa,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoC;IACpE,mBAAmB,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,MAAe;IAC7D,OAAO,gBAAgB,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Message, Plugin, ToolContext } from '@zhin.js/core';
|
|
2
2
|
export declare const OWNER_APPROVE_ALWAYS_TOOL: "bash";
|
|
3
|
+
export type ToolRequesterRole = 'owner' | 'admin' | 'other' | 'unknown';
|
|
3
4
|
/** 需 Owner 审批的 icqq 子命令(正则匹配整段子命令文本,大小写不敏感) */
|
|
4
5
|
export declare const ICQQ_SENSITIVE_SUBCOMMAND_REGEXES: readonly RegExp[];
|
|
5
6
|
export interface BashRuleEntry {
|
|
@@ -11,6 +12,7 @@ export interface BashApprovalBotEntry {
|
|
|
11
12
|
bashAlways?: boolean;
|
|
12
13
|
bashRules: BashRuleEntry[];
|
|
13
14
|
}
|
|
15
|
+
export declare function resolveToolRequesterRole(plugin: Plugin, ctx: ToolContext): ToolRequesterRole;
|
|
14
16
|
export declare function getOwnerToolContextOrUndefined(plugin: Plugin, message: Message<any>): ToolContext | undefined;
|
|
15
17
|
/** 编排层:是否已「永久放行」bash 的 Owner 硬确认(ZHIN_NEEDS_OWNER 路径) */
|
|
16
18
|
export declare function hasOwnerApproveAlways(plugin: Plugin, ctx: ToolContext, toolName: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-approve-always-store.d.ts","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3E,eAAO,MAAM,yBAAyB,EAAG,MAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"owner-approve-always-store.d.ts","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,41 @@ function getBotOwner(plugin, ctx) {
|
|
|
108
108
|
const owner = bot?.$config?.owner;
|
|
109
109
|
return owner != null ? String(owner) : undefined;
|
|
110
110
|
}
|
|
111
|
+
function normalizeIdList(input) {
|
|
112
|
+
if (Array.isArray(input))
|
|
113
|
+
return input.map((v) => String(v)).filter(Boolean);
|
|
114
|
+
if (typeof input === 'string') {
|
|
115
|
+
return input
|
|
116
|
+
.split(/[\s,]+/)
|
|
117
|
+
.map((v) => v.trim())
|
|
118
|
+
.filter(Boolean);
|
|
119
|
+
}
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
function getBotAdmins(plugin, ctx) {
|
|
123
|
+
const root = plugin.root ?? plugin;
|
|
124
|
+
const adapter = root.inject(ctx.platform);
|
|
125
|
+
const bot = adapter?.bots?.get(ctx.botId);
|
|
126
|
+
const botConfig = bot?.$config ?? {};
|
|
127
|
+
return [
|
|
128
|
+
...normalizeIdList(botConfig.admins),
|
|
129
|
+
...normalizeIdList(botConfig.botAdmins),
|
|
130
|
+
...normalizeIdList(botConfig.bot_admins),
|
|
131
|
+
...normalizeIdList(botConfig.admin),
|
|
132
|
+
];
|
|
133
|
+
}
|
|
134
|
+
export function resolveToolRequesterRole(plugin, ctx) {
|
|
135
|
+
if (!ctx.platform || !ctx.botId || !ctx.senderId)
|
|
136
|
+
return 'unknown';
|
|
137
|
+
const senderId = String(ctx.senderId);
|
|
138
|
+
const ownerId = getBotOwner(plugin, ctx);
|
|
139
|
+
if (ownerId && senderId === String(ownerId))
|
|
140
|
+
return 'owner';
|
|
141
|
+
const admins = getBotAdmins(plugin, ctx);
|
|
142
|
+
if (admins.includes(senderId))
|
|
143
|
+
return 'admin';
|
|
144
|
+
return 'other';
|
|
145
|
+
}
|
|
111
146
|
function getEntry(plugin, ctx) {
|
|
112
147
|
if (!ctx.platform || !ctx.botId)
|
|
113
148
|
return undefined;
|
|
@@ -142,6 +177,8 @@ export function getOwnerToolContextOrUndefined(plugin, message) {
|
|
|
142
177
|
senderId: message.$sender.id,
|
|
143
178
|
message,
|
|
144
179
|
scope: 'private',
|
|
180
|
+
isOwner: true,
|
|
181
|
+
fileRole: 'owner',
|
|
145
182
|
};
|
|
146
183
|
const ownerId = getBotOwner(plugin, ctx);
|
|
147
184
|
if (ownerId == null || String(message.$sender.id) !== String(ownerId))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-approve-always-store.js","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"owner-approve-always-store.js","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"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"}
|