@chainingintention/pi-web-cn 1.202608.6 → 1.202608.8
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/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.js +69 -0
- package/dist/config.js.map +1 -1
- package/dist/server/app.js +4 -1
- package/dist/server/app.js.map +1 -1
- package/dist/server/audit/managementAuditStore.js +211 -0
- package/dist/server/audit/managementAuditStore.js.map +1 -0
- package/dist/server/audit/normalToolAuditCli.js +143 -0
- package/dist/server/audit/normalToolAuditCli.js.map +1 -0
- package/dist/server/audit/normalToolAuditStore.js +264 -0
- package/dist/server/audit/normalToolAuditStore.js.map +1 -0
- package/dist/server/managementEmbed.js +19 -1
- package/dist/server/managementEmbed.js.map +1 -1
- package/dist/server/requestLogging.js +10 -7
- package/dist/server/requestLogging.js.map +1 -1
- package/dist/server/sessiond/sessionProxyRoutes.js +13 -7
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
- package/dist/server/sessiond.js +90 -4
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/managementPermissionSystem.js +8 -8
- package/dist/server/sessions/managementPermissionSystem.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +133 -19
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionRoutes.js +6 -2
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/workbench/accessStateRoutes.js +30 -0
- package/dist/server/workbench/accessStateRoutes.js.map +1 -0
- package/dist/server/workbench/accessStateStore.js +29 -0
- package/dist/server/workbench/accessStateStore.js.map +1 -0
- package/dist/server/workbench/capabilitySearch.js +62 -0
- package/dist/server/workbench/capabilitySearch.js.map +1 -0
- package/dist/server/workbench/gatewayIntegration.js +56 -0
- package/dist/server/workbench/gatewayIntegration.js.map +1 -0
- package/dist/server/workbench/mcpClient.js +148 -0
- package/dist/server/workbench/mcpClient.js.map +1 -0
- package/dist/server/workbench/skillSync.js +375 -0
- package/dist/server/workbench/skillSync.js.map +1 -0
- package/dist/server/workbench/types.js +2 -0
- package/dist/server/workbench/types.js.map +1 -0
- package/dist/server/workbench/workbenchClient.js +136 -0
- package/dist/server/workbench/workbenchClient.js.map +1 -0
- package/dist/server/workbench/workbenchTools.js +145 -0
- package/dist/server/workbench/workbenchTools.js.map +1 -0
- package/dist/shared/apiTypes.d.ts +25 -0
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/piWebConfigParsing.js +94 -0
- package/dist/shared/piWebConfigParsing.js.map +1 -1
- package/docs/config.md +65 -0
- package/package.json +7 -3
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { defineTool } from "@earendil-works/pi-coding-agent";
|
|
3
|
+
import { Type } from "typebox";
|
|
4
|
+
import { requireAuthorizedL0Capability, searchAuthorizedCapabilities } from "./capabilitySearch.js";
|
|
5
|
+
import { McpHttpError } from "./mcpClient.js";
|
|
6
|
+
import { WorkbenchHttpError } from "./workbenchClient.js";
|
|
7
|
+
const SearchCapabilitiesParams = Type.Object({
|
|
8
|
+
keyword: Type.Optional(Type.String()),
|
|
9
|
+
bizDomain: Type.Optional(Type.String()),
|
|
10
|
+
packName: Type.Optional(Type.String()),
|
|
11
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 20 })),
|
|
12
|
+
}, { additionalProperties: false });
|
|
13
|
+
const CallCapabilityParams = Type.Object({
|
|
14
|
+
capability_name: Type.String(),
|
|
15
|
+
arguments: Type.Record(Type.String(), Type.Unknown()),
|
|
16
|
+
idempotency_key: Type.Optional(Type.String()),
|
|
17
|
+
}, { additionalProperties: false });
|
|
18
|
+
export function createWorkbenchToolDefinitions(deps) {
|
|
19
|
+
return [
|
|
20
|
+
defineTool({
|
|
21
|
+
name: "icnoc_search_capabilities",
|
|
22
|
+
label: "检索授权能力",
|
|
23
|
+
description: "仅检索当前工作台会话已授权、已发布的L0只读能力。",
|
|
24
|
+
promptSnippet: "检索当前账号已授权的网络能力",
|
|
25
|
+
promptGuidelines: ["调用能力前先按问题检索;只能使用返回的精确能力名和输入Schema。"],
|
|
26
|
+
parameters: SearchCapabilitiesParams,
|
|
27
|
+
execute(_toolCallId, params) {
|
|
28
|
+
const result = searchAuthorizedCapabilities(deps.getState().resources, params);
|
|
29
|
+
return Promise.resolve({ content: [{ type: "text", text: JSON.stringify(result) }], details: undefined });
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
defineTool({
|
|
33
|
+
name: "icnoc_call_capability",
|
|
34
|
+
label: "调用授权能力",
|
|
35
|
+
description: "调用当前工作台会话已授权的L0只读能力。",
|
|
36
|
+
promptSnippet: "调用一个已授权的网络能力",
|
|
37
|
+
promptGuidelines: ["只能调用icnoc_search_capabilities返回的能力;arguments必须符合其inputSchema。"],
|
|
38
|
+
parameters: CallCapabilityParams,
|
|
39
|
+
async execute(_toolCallId, params) {
|
|
40
|
+
const runId = `run-${randomUUID()}`;
|
|
41
|
+
const traceId = `trace-${randomUUID()}`;
|
|
42
|
+
const startedAt = Date.now();
|
|
43
|
+
const state = deps.getState();
|
|
44
|
+
try {
|
|
45
|
+
const capability = requireAuthorizedL0Capability(state.resources, params.capability_name);
|
|
46
|
+
const invocation = await callWithOneTransientRetry(deps, capability.resourceName, capability.resourceVersion, params.arguments, params.idempotency_key, runId, traceId);
|
|
47
|
+
deps.logger?.info({
|
|
48
|
+
...deps.auditContext,
|
|
49
|
+
agentSessionId: state.sessionId,
|
|
50
|
+
authorizationRevision: state.authorizationRevision,
|
|
51
|
+
runId,
|
|
52
|
+
traceId,
|
|
53
|
+
mcpTraceId: invocation.result.meta.trace_id,
|
|
54
|
+
capabilityName: capability.resourceName,
|
|
55
|
+
capabilityVersion: capability.resourceVersion,
|
|
56
|
+
statusCode: invocation.result.status_code,
|
|
57
|
+
durationMs: Date.now() - startedAt,
|
|
58
|
+
retryCount: invocation.retryCount,
|
|
59
|
+
}, "Workbench capability call completed");
|
|
60
|
+
recordCapabilityAudit(deps, {
|
|
61
|
+
status: invocation.result.ok ? "completed" : "failed",
|
|
62
|
+
agentSessionId: state.sessionId,
|
|
63
|
+
authorizationRevision: state.authorizationRevision,
|
|
64
|
+
runId,
|
|
65
|
+
traceId,
|
|
66
|
+
mcpTraceId: invocation.result.meta.trace_id,
|
|
67
|
+
capabilityName: capability.resourceName,
|
|
68
|
+
capabilityVersion: capability.resourceVersion,
|
|
69
|
+
statusCode: invocation.result.status_code,
|
|
70
|
+
durationMs: Date.now() - startedAt,
|
|
71
|
+
retryCount: invocation.retryCount,
|
|
72
|
+
});
|
|
73
|
+
return { content: [{ type: "text", text: JSON.stringify(invocation.result) }], details: undefined };
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
deps.logger?.info({
|
|
77
|
+
...deps.auditContext,
|
|
78
|
+
agentSessionId: state.sessionId,
|
|
79
|
+
authorizationRevision: state.authorizationRevision,
|
|
80
|
+
runId,
|
|
81
|
+
traceId,
|
|
82
|
+
capabilityName: params.capability_name,
|
|
83
|
+
statusCode: errorStatus(error),
|
|
84
|
+
durationMs: Date.now() - startedAt,
|
|
85
|
+
}, "Workbench capability call rejected or failed");
|
|
86
|
+
recordCapabilityAudit(deps, {
|
|
87
|
+
status: "failed",
|
|
88
|
+
agentSessionId: state.sessionId,
|
|
89
|
+
authorizationRevision: state.authorizationRevision,
|
|
90
|
+
runId,
|
|
91
|
+
traceId,
|
|
92
|
+
capabilityName: params.capability_name,
|
|
93
|
+
statusCode: errorStatus(error),
|
|
94
|
+
durationMs: Date.now() - startedAt,
|
|
95
|
+
});
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
}),
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
function recordCapabilityAudit(deps, details) {
|
|
103
|
+
if (deps.audit === undefined || deps.auditContext === undefined)
|
|
104
|
+
return;
|
|
105
|
+
try {
|
|
106
|
+
deps.audit.record({ action: "workbench_capability_call", ...deps.auditContext, ...details });
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
deps.logger?.info({
|
|
110
|
+
userId: deps.auditContext.userId,
|
|
111
|
+
sessionId: deps.auditContext.sessionId,
|
|
112
|
+
traceId: details.traceId,
|
|
113
|
+
error: error instanceof Error ? error.message : String(error),
|
|
114
|
+
}, "failed to enqueue Workbench capability audit");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async function callWithOneTransientRetry(deps, capabilityName, capabilityVersion, args, idempotencyKey, runId, traceId) {
|
|
118
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
119
|
+
try {
|
|
120
|
+
const token = await deps.workbench.issueCapabilityToken(deps.getState().bearerToken, {
|
|
121
|
+
capabilityName, capabilityVersion, runId, traceId, approvalCount: 0,
|
|
122
|
+
});
|
|
123
|
+
const result = await deps.mcp.callCapability(token, capabilityName, args, idempotencyKey);
|
|
124
|
+
if (attempt === 0 && !result.ok && result.error?.retryable === true && [502, 503, 504].includes(result.status_code))
|
|
125
|
+
continue;
|
|
126
|
+
return { result, retryCount: attempt };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error instanceof WorkbenchHttpError && error.status === 401) {
|
|
130
|
+
deps.invalidate();
|
|
131
|
+
throw new Error("当前资源授权已过期或发生变化,请返回工作台重新进入桂小智。", { cause: error });
|
|
132
|
+
}
|
|
133
|
+
if (attempt === 0 && error instanceof McpHttpError && [502, 503, 504].includes(error.status))
|
|
134
|
+
continue;
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
throw new Error("能力调用失败");
|
|
139
|
+
}
|
|
140
|
+
function errorStatus(error) {
|
|
141
|
+
if (error instanceof WorkbenchHttpError || error instanceof McpHttpError)
|
|
142
|
+
return error.status;
|
|
143
|
+
return "local_error";
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=workbenchTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workbenchTools.js","sourceRoot":"","sources":["../../../src/server/workbench/workbenchTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,28 @@ export interface PiWebAgentConfig {
|
|
|
66
66
|
/** Pi-compatible profile directory containing auth.json, models.json, settings.json, and sessions/. */
|
|
67
67
|
dir?: string;
|
|
68
68
|
}
|
|
69
|
+
export interface PiWebWorkbenchIntegrationConfig {
|
|
70
|
+
baseUrl: string;
|
|
71
|
+
mcpUrl: string;
|
|
72
|
+
requestTimeoutMs?: number;
|
|
73
|
+
capabilityTimeoutMs?: number;
|
|
74
|
+
skillBundleMaxBytes?: number;
|
|
75
|
+
skillFileMaxBytes?: number;
|
|
76
|
+
skillFileCountMax?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface PiWebAuditLogConfig {
|
|
79
|
+
normalMode?: {
|
|
80
|
+
enabled?: boolean;
|
|
81
|
+
retentionDays?: number;
|
|
82
|
+
maxRows?: number;
|
|
83
|
+
};
|
|
84
|
+
managementMode?: {
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
baseUrl?: string;
|
|
87
|
+
indexPrefix?: string;
|
|
88
|
+
retentionDays?: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
69
91
|
export interface PiWebConfigValues {
|
|
70
92
|
host?: string;
|
|
71
93
|
port?: number;
|
|
@@ -74,6 +96,9 @@ export interface PiWebConfigValues {
|
|
|
74
96
|
plugins?: PiWebPluginConfigMap;
|
|
75
97
|
normalAuth?: PiWebNormalAuthConfig;
|
|
76
98
|
managementEmbed?: PiWebManagementEmbedConfig;
|
|
99
|
+
workbenchIntegration?: PiWebWorkbenchIntegrationConfig;
|
|
100
|
+
/** Durable metadata-only audit records for ordinary-mode tool calls. */
|
|
101
|
+
auditLog?: PiWebAuditLogConfig;
|
|
77
102
|
/** External filesystem roots PI WEB may expose outside a workspace. */
|
|
78
103
|
pathAccess?: PiWebPathAccessConfig;
|
|
79
104
|
/** Workspace-relative defaults for manual file uploads. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;CACnC,CAAC;AAoQX,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAqCzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC;AAkP3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAiHpD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,iGAAiG;AACjG,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AACtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AA2lBvD,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC"}
|
|
@@ -8,6 +8,8 @@ export function piWebConfigRecord(config) {
|
|
|
8
8
|
...(config.plugins !== undefined ? { plugins: config.plugins } : {}),
|
|
9
9
|
...(config.normalAuth !== undefined ? { normalAuth: config.normalAuth } : {}),
|
|
10
10
|
...(config.managementEmbed !== undefined ? { managementEmbed: config.managementEmbed } : {}),
|
|
11
|
+
...(config.workbenchIntegration !== undefined ? { workbenchIntegration: config.workbenchIntegration } : {}),
|
|
12
|
+
...(config.auditLog !== undefined ? { auditLog: config.auditLog } : {}),
|
|
11
13
|
...(config.pathAccess !== undefined ? { pathAccess: config.pathAccess } : {}),
|
|
12
14
|
...(config.uploads !== undefined ? { uploads: config.uploads } : {}),
|
|
13
15
|
...(config.maxUploadBytes !== undefined ? { maxUploadBytes: config.maxUploadBytes } : {}),
|
|
@@ -47,6 +49,8 @@ function parsePiWebConfigFields(value, context) {
|
|
|
47
49
|
...(value["plugins"] !== undefined ? { plugins: parsePlugins(value["plugins"], context) } : {}),
|
|
48
50
|
...(value["normalAuth"] !== undefined ? { normalAuth: parseNormalAuth(value["normalAuth"], context) } : {}),
|
|
49
51
|
...(value["managementEmbed"] !== undefined ? { managementEmbed: parseManagementEmbed(value["managementEmbed"], context) } : {}),
|
|
52
|
+
...(value["workbenchIntegration"] !== undefined ? { workbenchIntegration: parseWorkbenchIntegration(value["workbenchIntegration"], context) } : {}),
|
|
53
|
+
...(value["auditLog"] !== undefined ? { auditLog: parseAuditLog(value["auditLog"], context) } : {}),
|
|
50
54
|
...(value["pathAccess"] !== undefined ? { pathAccess: parsePathAccessConfig(value["pathAccess"], context.format === "file" ? context.path : "request") } : {}),
|
|
51
55
|
...(value["uploads"] !== undefined ? { uploads: parseUploadsConfig(value["uploads"], context.format === "file" ? context.path : "request") } : {}),
|
|
52
56
|
...(value["maxUploadBytes"] !== undefined ? { maxUploadBytes: parseMaxUploadBytes(value["maxUploadBytes"], "maxUploadBytes", context.format === "file" ? context.path : "request") } : {}),
|
|
@@ -54,6 +58,96 @@ function parsePiWebConfigFields(value, context) {
|
|
|
54
58
|
...(value["subsessions"] !== undefined ? { subsessions: parseBoolean(value["subsessions"], "subsessions", context) } : {}),
|
|
55
59
|
};
|
|
56
60
|
}
|
|
61
|
+
const AUDIT_LOG_KEYS = new Set(["normalMode", "managementMode"]);
|
|
62
|
+
const NORMAL_MODE_AUDIT_KEYS = new Set(["enabled", "retentionDays", "maxRows"]);
|
|
63
|
+
const MANAGEMENT_MODE_AUDIT_KEYS = new Set(["enabled", "baseUrl", "indexPrefix", "retentionDays"]);
|
|
64
|
+
function parseAuditLog(value, context) {
|
|
65
|
+
if (!isRecord(value) || Array.isArray(value))
|
|
66
|
+
throw new Error(error(context, "auditLog must be an object"));
|
|
67
|
+
const unknownKey = Object.keys(value).find((key) => !AUDIT_LOG_KEYS.has(key));
|
|
68
|
+
if (unknownKey !== undefined)
|
|
69
|
+
throw new Error(error(context, `auditLog contains unknown key ${JSON.stringify(unknownKey)}`));
|
|
70
|
+
const normalMode = optionalAuditSection(value, "normalMode", NORMAL_MODE_AUDIT_KEYS, context);
|
|
71
|
+
const managementMode = optionalAuditSection(value, "managementMode", MANAGEMENT_MODE_AUDIT_KEYS, context);
|
|
72
|
+
return {
|
|
73
|
+
...(normalMode === undefined ? {} : { normalMode: {
|
|
74
|
+
...(normalMode["enabled"] === undefined ? {} : { enabled: parseBoolean(normalMode["enabled"], "auditLog.normalMode.enabled", context) }),
|
|
75
|
+
...optionalPositiveInteger(normalMode, "retentionDays", "auditLog.normalMode.retentionDays", context),
|
|
76
|
+
...optionalPositiveInteger(normalMode, "maxRows", "auditLog.normalMode.maxRows", context),
|
|
77
|
+
} }),
|
|
78
|
+
...(managementMode === undefined ? {} : { managementMode: {
|
|
79
|
+
...(managementMode["enabled"] === undefined ? {} : { enabled: parseBoolean(managementMode["enabled"], "auditLog.managementMode.enabled", context) }),
|
|
80
|
+
...(managementMode["baseUrl"] === undefined ? {} : { baseUrl: parseHttpUrl(managementMode["baseUrl"], "auditLog.managementMode.baseUrl", context) }),
|
|
81
|
+
...(managementMode["indexPrefix"] === undefined ? {} : { indexPrefix: parseElasticsearchIndexPrefix(managementMode["indexPrefix"], context) }),
|
|
82
|
+
...optionalPositiveInteger(managementMode, "retentionDays", "auditLog.managementMode.retentionDays", context),
|
|
83
|
+
} }),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function optionalAuditSection(value, key, keys, context) {
|
|
87
|
+
const section = value[key];
|
|
88
|
+
if (section === undefined)
|
|
89
|
+
return undefined;
|
|
90
|
+
if (!isRecord(section) || Array.isArray(section))
|
|
91
|
+
throw new Error(error(context, `auditLog.${key} must be an object`));
|
|
92
|
+
const unknownKey = Object.keys(section).find((candidate) => !keys.has(candidate));
|
|
93
|
+
if (unknownKey !== undefined)
|
|
94
|
+
throw new Error(error(context, `auditLog.${key} contains unknown key ${JSON.stringify(unknownKey)}`));
|
|
95
|
+
return section;
|
|
96
|
+
}
|
|
97
|
+
function parseElasticsearchIndexPrefix(value, context) {
|
|
98
|
+
const prefix = parseString(value, "auditLog.managementMode.indexPrefix", context);
|
|
99
|
+
if (!/^[a-z0-9][a-z0-9._-]*$/.test(prefix) || prefix === "." || prefix === "..") {
|
|
100
|
+
throw new Error(error(context, "auditLog.managementMode.indexPrefix must be a lowercase Elasticsearch index prefix"));
|
|
101
|
+
}
|
|
102
|
+
return prefix;
|
|
103
|
+
}
|
|
104
|
+
const WORKBENCH_INTEGRATION_KEYS = new Set([
|
|
105
|
+
"baseUrl",
|
|
106
|
+
"mcpUrl",
|
|
107
|
+
"requestTimeoutMs",
|
|
108
|
+
"capabilityTimeoutMs",
|
|
109
|
+
"skillBundleMaxBytes",
|
|
110
|
+
"skillFileMaxBytes",
|
|
111
|
+
"skillFileCountMax",
|
|
112
|
+
]);
|
|
113
|
+
function parseWorkbenchIntegration(value, context) {
|
|
114
|
+
if (!isRecord(value) || Array.isArray(value))
|
|
115
|
+
throw new Error(error(context, "workbenchIntegration must be an object"));
|
|
116
|
+
const unknownKey = Object.keys(value).find((key) => !WORKBENCH_INTEGRATION_KEYS.has(key));
|
|
117
|
+
if (unknownKey !== undefined)
|
|
118
|
+
throw new Error(error(context, `workbenchIntegration contains unknown key ${JSON.stringify(unknownKey)}`));
|
|
119
|
+
return {
|
|
120
|
+
baseUrl: parseHttpUrl(value["baseUrl"], "workbenchIntegration.baseUrl", context),
|
|
121
|
+
mcpUrl: parseHttpUrl(value["mcpUrl"], "workbenchIntegration.mcpUrl", context),
|
|
122
|
+
...optionalPositiveInteger(value, "requestTimeoutMs", "workbenchIntegration.requestTimeoutMs", context),
|
|
123
|
+
...optionalPositiveInteger(value, "capabilityTimeoutMs", "workbenchIntegration.capabilityTimeoutMs", context),
|
|
124
|
+
...optionalPositiveInteger(value, "skillBundleMaxBytes", "workbenchIntegration.skillBundleMaxBytes", context),
|
|
125
|
+
...optionalPositiveInteger(value, "skillFileMaxBytes", "workbenchIntegration.skillFileMaxBytes", context),
|
|
126
|
+
...optionalPositiveInteger(value, "skillFileCountMax", "workbenchIntegration.skillFileCountMax", context),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function parseHttpUrl(value, key, context) {
|
|
130
|
+
const text = parseString(value, key, context);
|
|
131
|
+
let url;
|
|
132
|
+
try {
|
|
133
|
+
url = new URL(text);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
throw new Error(error(context, `${key} must be an absolute HTTP URL`));
|
|
137
|
+
}
|
|
138
|
+
if ((url.protocol !== "http:" && url.protocol !== "https:") || url.username !== "" || url.password !== "") {
|
|
139
|
+
throw new Error(error(context, `${key} must be an absolute HTTP URL without credentials`));
|
|
140
|
+
}
|
|
141
|
+
return url.toString();
|
|
142
|
+
}
|
|
143
|
+
function optionalPositiveInteger(value, field, key, context) {
|
|
144
|
+
const candidate = value[field];
|
|
145
|
+
if (candidate === undefined)
|
|
146
|
+
return {};
|
|
147
|
+
if (typeof candidate !== "number" || !Number.isInteger(candidate) || candidate < 1)
|
|
148
|
+
throw new Error(error(context, `${key} must be a positive integer`));
|
|
149
|
+
return { [field]: candidate };
|
|
150
|
+
}
|
|
57
151
|
function parseRequestPort(value) {
|
|
58
152
|
if (typeof value !== "number")
|
|
59
153
|
throw new Error("PI WEB config port must be a number");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piWebConfigParsing.js","sourceRoot":"","sources":["../../src/shared/piWebConfigParsing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"piWebConfigParsing.js","sourceRoot":"","sources":["../../src/shared/piWebConfigParsing.ts"],"names":[],"mappings":"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"}
|
package/docs/config.md
CHANGED
|
@@ -47,6 +47,7 @@ Process restarts depend on the key:
|
|
|
47
47
|
- `host` / `port`: restart the gateway web/API service or process.
|
|
48
48
|
- `maxUploadBytes`: restart both the web/API process and the session daemon on that machine.
|
|
49
49
|
- `agent.command` / `agent.dir` / `spawnSessions` / `subsessions` / `askUser` / `extensionDialogsTimeoutMs`: restart the session daemon on that machine.
|
|
50
|
+
- `workbenchIntegration`: restart both the web/API process and session daemon; both processes must use the same endpoints and limits.
|
|
50
51
|
- `pathAccess`: applies on the next request; existing file views may need a browser refresh.
|
|
51
52
|
- `uploads.defaultFolder`: applies to newly opened Files upload dialogs and new direct drag/drop batches after config/workspace refresh.
|
|
52
53
|
- `plugins`: reload the browser tab after changing PI WEB plugin enablement.
|
|
@@ -74,6 +75,28 @@ Process restarts depend on the key:
|
|
|
74
75
|
"subsessions": false,
|
|
75
76
|
"askUser": true,
|
|
76
77
|
"extensionDialogsTimeoutMs": 300000,
|
|
78
|
+
"workbenchIntegration": {
|
|
79
|
+
"baseUrl": "http://ai-platform-backend:8787",
|
|
80
|
+
"mcpUrl": "http://mcp:8000/mcp",
|
|
81
|
+
"requestTimeoutMs": 10000,
|
|
82
|
+
"capabilityTimeoutMs": 30000,
|
|
83
|
+
"skillBundleMaxBytes": 10485760,
|
|
84
|
+
"skillFileMaxBytes": 2097152,
|
|
85
|
+
"skillFileCountMax": 200
|
|
86
|
+
},
|
|
87
|
+
"auditLog": {
|
|
88
|
+
"normalMode": {
|
|
89
|
+
"enabled": true,
|
|
90
|
+
"retentionDays": 90,
|
|
91
|
+
"maxRows": 500000
|
|
92
|
+
},
|
|
93
|
+
"managementMode": {
|
|
94
|
+
"enabled": true,
|
|
95
|
+
"baseUrl": "https://elasticsearch.internal:9200",
|
|
96
|
+
"indexPrefix": "pi-web-management-audit",
|
|
97
|
+
"retentionDays": 365
|
|
98
|
+
}
|
|
99
|
+
},
|
|
77
100
|
"plugins": {
|
|
78
101
|
"workspace-tasks": { "enabled": true },
|
|
79
102
|
"updates": { "enabled": true },
|
|
@@ -127,6 +150,9 @@ Rows with JSON key `—` are runtime-only environment variables, not config-file
|
|
|
127
150
|
| Tracked subsessions (beta) | `subsessions` | `PI_WEB_SUBSESSIONS` | Global/session daemon | Not supported locally; also requires `spawnSessions` | Restart session daemon on that machine |
|
|
128
151
|
| Agent can post question forms | `askUser` | `PI_WEB_ASK_USER` | Global/session daemon | Not supported locally | Restart session daemon on that machine |
|
|
129
152
|
| 扩展对话框自动取消超时 | `extensionDialogsTimeoutMs` | — | 全局/会话守护进程 | 不支持项目级配置 | 重启对应机器上的会话守护进程 |
|
|
153
|
+
| Workbench/MCP integration | `workbenchIntegration.*` | `PI_WEB_WORKBENCH_URL`, `PI_WEB_MCP_URL`, `PI_WEB_WORKBENCH_TIMEOUT_MS`, `PI_WEB_MCP_TIMEOUT_MS`, `PI_WEB_SKILL_BUNDLE_MAX_BYTES`, `PI_WEB_SKILL_FILE_MAX_BYTES`, `PI_WEB_SKILL_FILE_COUNT_MAX` | Web/API + session daemon | Not supported locally | Restart web/API and session daemon; both must match |
|
|
154
|
+
| Ordinary tool audit | `auditLog.normalMode.*` | — | Global/session daemon | Not supported locally | Restart session daemon |
|
|
155
|
+
| Management tool audit | `auditLog.managementMode.*` | `PI_WEB_AUDIT_ES_URL`, `PI_WEB_AUDIT_ES_API_KEY`, `PI_WEB_AUDIT_ES_USERNAME`, `PI_WEB_AUDIT_ES_PASSWORD` | Global/session daemon | Not supported locally | Restart session daemon |
|
|
130
156
|
| Plugin enablement/settings | `plugins.<id>.enabled`, `plugins.<id>.settings` | — | Global | Not core local config; plugins may read their own project files | Reload browser tab |
|
|
131
157
|
| Keyboard shortcuts | `shortcuts.<actionId>` | — | Global | Not supported locally | Applies after settings save/config refresh |
|
|
132
158
|
| Project config version | `version` | — | Project | Project-local only; must be `1` when present | Next project-config read |
|
|
@@ -146,6 +172,45 @@ Rows with JSON key `—` are runtime-only environment variables, not config-file
|
|
|
146
172
|
|
|
147
173
|
## Key details
|
|
148
174
|
|
|
175
|
+
### Ordinary-mode tool audit
|
|
176
|
+
|
|
177
|
+
PI WEB stores metadata-only ordinary-mode tool calls in `$PI_WEB_DATA_DIR/audit/normal-tool-calls.sqlite` while keeping the existing Pino/service logs. Management-embed calls are not written to this database. Each row contains the session and workspace, tool and call identifiers, start/end timestamps, duration, and `started`, `completed`, `failed`, or `interrupted` status. Arguments, results, prompts, model replies, and credentials are never stored.
|
|
178
|
+
|
|
179
|
+
`auditLog.normalMode.enabled` defaults to `true`. `retentionDays` defaults to `90`, and `maxRows` defaults to `500000`. The session daemon prunes at startup and every 24 hours. Database failures are reported through the existing logger and do not stop tool execution.
|
|
180
|
+
|
|
181
|
+
Use the CLI to inspect and maintain the database:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
pi-web audit list --since 24h
|
|
185
|
+
pi-web audit list --status failed --since 7d
|
|
186
|
+
pi-web audit stats --since 30d
|
|
187
|
+
pi-web audit export --since 30d --format csv --output audit.csv
|
|
188
|
+
pi-web audit prune --before 2026-05-01
|
|
189
|
+
pi-web audit vacuum
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
The database uses WAL mode so these read operations can run while sessiond is active. A graceful sessiond shutdown and the next startup mark unfinished calls as `interrupted`; changing audit configuration requires restarting sessiond.
|
|
193
|
+
|
|
194
|
+
### Management-mode Elasticsearch audit
|
|
195
|
+
|
|
196
|
+
Management-embed audit records can be sent to Elasticsearch while the existing Pino/service logs remain enabled. Set `auditLog.managementMode.enabled` to `true` and provide `baseUrl`, or set `PI_WEB_AUDIT_ES_URL`. Authentication is read only from the session daemon environment: `PI_WEB_AUDIT_ES_API_KEY` takes precedence, while basic authentication requires both `PI_WEB_AUDIT_ES_USERNAME` and `PI_WEB_AUDIT_ES_PASSWORD`. Credentials must not be included in `baseUrl`.
|
|
197
|
+
|
|
198
|
+
Records are written to Shanghai-calendar ISO-week indices such as `pi-web-management-audit-2026-w32`. `indexPrefix` defaults to `pi-web-management-audit`; `retentionDays` defaults to `365`. Sessiond installs a strict index template, batches writes through the Elasticsearch Bulk API, and runs retention at startup and daily. The first successful maintenance in each Shanghai calendar month deletes documents whose `@timestamp` is older than the retention cutoff.
|
|
199
|
+
|
|
200
|
+
Each document identifies `user.id`, `user.root_user_id`, the authorized project owning the actual workspace, the Pi session, and, when applicable, the Workbench Agent Session. Tool calls include tool/call identifiers and status. Capability and Skill events add fixed resource versions, authorization revision, run/trace identifiers, status, duration, and retry metadata. Prompts, tool arguments, tool results, model replies, access tokens, API keys, cookies, and capability tickets are excluded.
|
|
201
|
+
|
|
202
|
+
Elasticsearch failures are reported through Pino and do not stop management sessions. Failed batches remain in a bounded in-memory retry queue and are flushed during graceful sessiond shutdown; a process crash can lose records that have not yet reached Elasticsearch. Use Elasticsearch or Kibana index permissions to limit user-level audit access.
|
|
203
|
+
|
|
204
|
+
### Workbench and MCP integration
|
|
205
|
+
|
|
206
|
+
`workbenchIntegration` enables the controlled management-embed adapter for the network model workbench. These resource, tool, and Skill restrictions apply only to management-embed sessions; normal-mode sessions keep PI WEB's existing behavior. `baseUrl` is the server-reachable workbench backend origin, while `mcpUrl` is the MCP Streamable HTTP endpoint. Both are required; the environment variables override the corresponding JSON URLs.
|
|
207
|
+
|
|
208
|
+
The adapter exchanges the one-time management token for a private Agent Session, loads only the resulting fixed resource snapshot, and exposes `icnoc_search_capabilities` and `icnoc_call_capability` alongside the managed file tools and sandboxed `python` tool. When their global feature switches are enabled, management sessions also receive `spawn_session`, the tracked-subsessions tool set headed by `spawn_subsession`, and `ask_user`; spawned sessions inherit the same management context. Python runs without network access in an isolated Bubblewrap environment that binds only the managed workspace. Generic MCP, HTTP, web search, shell, and terminal tools remain denied in management mode. Skill bundles are downloaded only from the MCP origin, checked against the authorized fixed version and manifest, and stored under the managed project's `.pi/skills/` directory. Tokens and tickets remain server-side.
|
|
209
|
+
|
|
210
|
+
The session daemon emits metadata-only tool execution audit entries for both normal and management sessions. These entries include the mode, session, workspace, tool name, call id, and execution status; tool arguments and results are deliberately excluded. Workbench capability calls additionally emit their business and MCP trace identifiers.
|
|
211
|
+
|
|
212
|
+
Set the same effective config and environment on the web/API and session daemon services. Changing any integration endpoint or limit requires restarting both services.
|
|
213
|
+
|
|
149
214
|
### Managed data directory
|
|
150
215
|
|
|
151
216
|
`PI_WEB_DATA_DIR` sets the root for PI WEB-managed runtime state and defaults to `~/.pi-web`. Unless a more specific path override is configured, PI WEB stores its project and machine registries, locally discovered plugins, default session-daemon socket, and session archives beneath this root.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainingintention/pi-web-cn",
|
|
3
|
-
"version": "1.202608.
|
|
3
|
+
"version": "1.202608.8",
|
|
4
4
|
"description": "Remote web UI and browser control plane for persistent Pi Coding Agent sessions.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Federico Jaramillo Martinez",
|
|
@@ -79,7 +79,8 @@
|
|
|
79
79
|
"marked": "^18.0.6",
|
|
80
80
|
"node-pty": "^1.1.0",
|
|
81
81
|
"typebox": "1.3.6",
|
|
82
|
-
"ws": "^8.21.0"
|
|
82
|
+
"ws": "^8.21.0",
|
|
83
|
+
"yauzl": "^3.4.0"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
86
|
"@changesets/cli": "^2.31.0",
|
|
@@ -89,6 +90,8 @@
|
|
|
89
90
|
"@eslint/js": "^10.0.1",
|
|
90
91
|
"@types/node": "^24.13.3",
|
|
91
92
|
"@types/ws": "^8.18.1",
|
|
93
|
+
"@types/yauzl": "^2.10.3",
|
|
94
|
+
"@types/yazl": "^2.4.6",
|
|
92
95
|
"eslint": "^10.6.0",
|
|
93
96
|
"globals": "^17.7.0",
|
|
94
97
|
"happy-dom": "^20.11.1",
|
|
@@ -97,7 +100,8 @@
|
|
|
97
100
|
"typescript": "^6.0.3",
|
|
98
101
|
"typescript-eslint": "^8.63.0",
|
|
99
102
|
"vite": "^8.1.4",
|
|
100
|
-
"vitest": "^4.1.10"
|
|
103
|
+
"vitest": "^4.1.10",
|
|
104
|
+
"yazl": "^3.3.1"
|
|
101
105
|
},
|
|
102
106
|
"publishConfig": {
|
|
103
107
|
"access": "public"
|