MVP底座⑤:自定义工具导入路由 —— 与第一方同门两审

顺手补两处底座:试运行审此前传空连接,靠 endpoint 干活的工具一律过不了门(这道门
只对不需要连接的工具有效);现传本次申报的连接值。未注册第一方处理器的工具走通用
HTTP 实现 —— 导入的工具由此可真调、可真审:端点不通就是不通,不入目录。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
2026-07-28 01:58:38 +08:00
co-authored by Claude Fable 5
parent 0fe5222f79
commit 8e7509f65b
9 changed files with 292 additions and 4 deletions
+49
View File
@@ -1531,6 +1531,55 @@ export declare const saveWorkGroupRoute: {
}, z.core.$strip>;
}, z.core.$strip>;
};
/**
* 导入自定义工具 —— 与第一方工具走**同一条门**:静态审 + 试运行审。
*
* 工具承载权力,约束严于活动包:契约对活动、实现对系统、凭证对治理台(OS 7.3)。
* 连接配置**只声明键**;值随本次导入送到治理台加密落库,此后只读得到「是否已绑定」。
*/
export declare const registerToolRoute: {
readonly method: "POST";
readonly path: "/api/gov/tools";
readonly body: z.ZodObject<{
contract: z.ZodObject<{
name: z.ZodString;
version: z.ZodString;
description: z.ZodString;
input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
output: z.ZodRecord<z.ZodString, z.ZodUnknown>;
effect: z.ZodEnum<{
read: "read";
write: "write";
}>;
errors: z.ZodDefault<z.ZodArray<z.ZodObject<{
code: z.ZodString;
retryable: z.ZodBoolean;
message: z.ZodString;
}, z.core.$strip>>>;
idempotent: z.ZodDefault<z.ZodBoolean>;
timeoutMs: z.ZodDefault<z.ZodNumber>;
retries: z.ZodDefault<z.ZodNumber>;
connectionKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
connectionValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
samples: z.ZodArray<z.ZodObject<{
input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
}, z.core.$strip>>;
}, z.core.$strip>;
readonly output: z.ZodObject<{
accepted: z.ZodBoolean;
findings: z.ZodArray<z.ZodObject<{
code: z.ZodString;
severity: z.ZodString;
message: z.ZodString;
}, z.core.$strip>>;
trialRun: z.ZodObject<{
ran: z.ZodNumber;
passed: z.ZodNumber;
failures: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
}, z.core.$strip>;
};
export declare const listActivitiesRoute: {
readonly method: "GET";
readonly path: "/api/gov/activities";