@chainingintention/pi-web-cn 2.202610.3 → 2.202610.5
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/client/assets/{CommandPicker-gK2biReF.js → CommandPicker-8oDe6AaV.js} +1 -1
- package/dist/client/assets/{PiWebApp-DccVSAFd.js → PiWebApp-TCQVYghs.js} +242 -242
- package/dist/client/assets/{SettingsDialog-vGDo1-BJ.js → SettingsDialog-DFUpwUyp.js} +1 -1
- package/dist/client/assets/{index-Chn9pQPv.js → index-DzMPXVth.js} +2 -2
- package/dist/client/index.html +1 -1
- package/dist/pi-packages/relays/relayDiscovery.js +5 -1
- package/dist/pi-web-plugins/custom-ui-codex/README.md +2 -0
- package/dist/pi-web-plugins/custom-ui-codex/chat-settings.css +15 -2
- package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +87 -50
- package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +21 -6
- package/dist/pi-web-plugins/zh-cn/bundled.json +31 -18
- package/dist/pi-web-plugins/zh-cn/components.json +2 -0
- package/dist/pi-web-plugins/zh-cn/files.json +7 -0
- package/dist/pi-web-plugins/zh-cn/server-main.json +4 -4
- package/dist/plugin-api.d.ts +9 -0
- package/dist/server/app.js +3 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/managementAgents.js +179 -0
- package/dist/server/managementAgents.js.map +1 -0
- package/dist/server/managementAgentsRoutes.js +42 -0
- package/dist/server/managementAgentsRoutes.js.map +1 -0
- package/dist/server/managementEmbed.js +23 -43
- package/dist/server/managementEmbed.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +10 -2
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/workspaceExplorerRoutes.js +3 -1
- package/dist/server/workspaceExplorerRoutes.js.map +1 -1
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/federatedRoutes.js +2 -0
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/dist/shared/managedAgents.js +2 -0
- package/dist/shared/managedAgents.js.map +1 -0
- package/dist/shared/pluginApiTypes.d.ts +14 -0
- package/docs/config.md +3 -1
- package/docs/plugins.md +20 -5
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ export class PiWebTasksPanel extends HTMLElement {
|
|
|
28
28
|
}
|
|
29
29
|
contextValue;
|
|
30
30
|
runningTaskId;
|
|
31
|
+
taskDispatchVersion = 0;
|
|
31
32
|
status;
|
|
32
33
|
root;
|
|
33
34
|
localStyle = document.createElement("style");
|
|
@@ -53,6 +54,7 @@ export class PiWebTasksPanel extends HTMLElement {
|
|
|
53
54
|
// doing so resets the mobile scroll position and can replace buttons mid-click.
|
|
54
55
|
if (previousKey === nextKey)
|
|
55
56
|
return;
|
|
57
|
+
this.taskDispatchVersion += 1;
|
|
56
58
|
this.runningTaskId = undefined;
|
|
57
59
|
this.status = undefined;
|
|
58
60
|
this.render();
|
|
@@ -157,23 +159,36 @@ export class PiWebTasksPanel extends HTMLElement {
|
|
|
157
159
|
this.render();
|
|
158
160
|
return;
|
|
159
161
|
}
|
|
162
|
+
const dispatchVersion = ++this.taskDispatchVersion;
|
|
160
163
|
this.runningTaskId = task.id;
|
|
161
164
|
this.status = { kind: "info", message: t("bundled.workspace-tasks.starting.80ae5c", "Starting {value1}...", { value1: task.title }) };
|
|
162
165
|
this.render();
|
|
163
166
|
try {
|
|
164
167
|
const handle = await runWorkspaceTaskInTerminal(context.terminal, task);
|
|
165
|
-
if (
|
|
168
|
+
if (this.isCurrentContext(context) && dispatchVersion === this.taskDispatchVersion) {
|
|
169
|
+
this.status = {
|
|
170
|
+
kind: "info",
|
|
171
|
+
message: t("bundled.workspace-tasks.started.terminal.command.318e6c", "Started terminal command \"{value1}\".", { value1: handle.run.title }),
|
|
172
|
+
detail: task.command,
|
|
173
|
+
};
|
|
174
|
+
this.runningTaskId = undefined;
|
|
175
|
+
this.render();
|
|
176
|
+
}
|
|
177
|
+
const completed = await handle.completed;
|
|
178
|
+
if (!this.isCurrentContext(context) || dispatchVersion !== this.taskDispatchVersion)
|
|
166
179
|
return;
|
|
167
180
|
this.status = {
|
|
168
|
-
kind: "success",
|
|
169
|
-
message:
|
|
170
|
-
|
|
181
|
+
kind: completed.status === "succeeded" ? "success" : "error",
|
|
182
|
+
message: completed.status === "succeeded"
|
|
183
|
+
? t("bundled.workspace-tasks.completed", "Completed {title}.", { title: completed.title })
|
|
184
|
+
: t("bundled.workspace-tasks.failed", "Failed {title}.", { title: completed.title }),
|
|
185
|
+
detail: completed.exitCode === undefined ? task.command
|
|
186
|
+
: t("bundled.workspace-tasks.exit-code", "Exit code: {code}\n{command}", { code: String(completed.exitCode), command: task.command }),
|
|
171
187
|
};
|
|
172
|
-
this.runningTaskId = undefined;
|
|
173
188
|
this.render();
|
|
174
189
|
}
|
|
175
190
|
catch (error) {
|
|
176
|
-
if (!this.isCurrentContext(context))
|
|
191
|
+
if (!this.isCurrentContext(context) || dispatchVersion !== this.taskDispatchVersion)
|
|
177
192
|
return;
|
|
178
193
|
this.runningTaskId = undefined;
|
|
179
194
|
this.status = { kind: "error", message: error instanceof Error ? error.message : String(error) };
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
{
|
|
2
|
+
"files.agents.pending": "AGENTS.md 有修改待确认",
|
|
3
|
+
"files.agents.close": "关闭",
|
|
4
|
+
"files.agents.title": "工作区 AGENTS.md",
|
|
5
|
+
"files.agents.modified": "文件修改时间",
|
|
6
|
+
"files.agents.missing": "尚未创建",
|
|
7
|
+
"files.agents.templateModified": "平台模板更新时间",
|
|
8
|
+
"files.agents.notProvided": "未提供",
|
|
9
|
+
"files.agents.template": "模板版本",
|
|
10
|
+
"files.agents.overwrite": "覆盖并备份",
|
|
11
|
+
"files.agents.keep": "不覆盖",
|
|
12
|
+
"bundled.workspace-tasks.completed": "{title} 已完成。",
|
|
13
|
+
"bundled.workspace-tasks.failed": "{title} 执行失败。",
|
|
14
|
+
"bundled.workspace-tasks.exit-code": "退出码:{code}\n{command}",
|
|
2
15
|
"bundled.info.component.details": "{component}:{details}",
|
|
3
16
|
"bundled.info.list.separator": "、",
|
|
4
|
-
"bundled.relays.document.files": "
|
|
5
|
-
"bundled.relays.open.packet": "
|
|
6
|
-
"bundled.relays.label": "
|
|
7
|
-
"bundled.relays.invalid.packet.link": "
|
|
8
|
-
"bundled.relays.packet.documents": "
|
|
17
|
+
"bundled.relays.document.files": "接力包通常包含 {files}。",
|
|
18
|
+
"bundled.relays.open.packet": "打开接力 {name},第 {leg} 段",
|
|
19
|
+
"bundled.relays.label": "接力",
|
|
20
|
+
"bundled.relays.invalid.packet.link": "接力链接必须指向规范的工作区相对资料包目录。",
|
|
21
|
+
"bundled.relays.packet.documents": "接力资料包包含 charter.md(目标)、status.md(当前交接)和 log.md(历史);可选的 decisions.md 记录重要决定及理由。",
|
|
9
22
|
"bundled.workflows.create.worktree": "创建工作树",
|
|
10
23
|
"bundled.workflows.group": "工作流",
|
|
11
|
-
"bundled.relays.empty.location": "
|
|
24
|
+
"bundled.relays.empty.location": "接力包存放在 {path},此工作区目前还没有接力包。",
|
|
12
25
|
"bundled.workspace-tasks.no.workspace.tasks.configured.here.bb6994": "这里还没有配置工作区任务。",
|
|
13
26
|
"bundled.workspace-tasks.is.optional.create.it.in.this.workspace.for.custom.tasks.306cdb": "{value1} 是可选文件。如果需要自定义任务,请在当前工作区创建它。",
|
|
14
27
|
"bundled.workspace-tasks.could.not.load.workspace.tasks.977b0c": "无法加载工作区任务。",
|
|
@@ -153,30 +166,30 @@
|
|
|
153
166
|
"bundled.info.copy.pi.web.diagnostics.250f13": "复制 PI WEB 诊断信息",
|
|
154
167
|
"bundled.info.copy.this.machine.s.version.installation.and.status.details.for.a.c01908": "复制此机器的版本、安装和状态详情,以便粘贴到错误报告中",
|
|
155
168
|
"bundled.info.folder.7c7802": "文件夹",
|
|
156
|
-
"bundled.relays.relays.715ce8": "
|
|
157
|
-
"bundled.relays.open.workspace.relays.ead958": "
|
|
158
|
-
"bundled.relays.open.the.workspace.relays.tab.relays.are.stored.in.3d8901": "
|
|
169
|
+
"bundled.relays.relays.715ce8": "接力",
|
|
170
|
+
"bundled.relays.open.workspace.relays.ead958": "打开工作区接力",
|
|
171
|
+
"bundled.relays.open.the.workspace.relays.tab.relays.are.stored.in.3d8901": "打开工作区的接力标签页。接力存放在 {value1}。",
|
|
159
172
|
"bundled.relays.workspace.379798": "工作区",
|
|
160
|
-
"bundled.relays.could.not.scan.workspace.relays.d8b2bc": "
|
|
161
|
-
"bundled.relays.could.not.list.documents.for.this.relay.cad056": "
|
|
173
|
+
"bundled.relays.could.not.scan.workspace.relays.d8b2bc": "无法扫描工作区接力。",
|
|
174
|
+
"bundled.relays.could.not.list.documents.for.this.relay.cad056": "无法列出此接力的文档。",
|
|
162
175
|
"bundled.relays.could.not.read.this.document.7cd2d0": "无法读取此文档。",
|
|
163
176
|
"bundled.relays.select.a.workspace.234859": "请选择工作区。",
|
|
164
177
|
"bundled.relays.scanning.d7c334": "正在扫描 {value1}…",
|
|
165
|
-
"bundled.relays.loading.relay.documents.94db7f": "
|
|
166
|
-
"bundled.relays.this.relay.no.longer.exists.f8d39d": "
|
|
178
|
+
"bundled.relays.loading.relay.documents.94db7f": "正在加载接力文档…",
|
|
179
|
+
"bundled.relays.this.relay.no.longer.exists.f8d39d": "此接力已不存在。",
|
|
167
180
|
"bundled.relays.click.refresh.to.rescan.7a2ef0": "点击“刷新”重新扫描 {value1}。",
|
|
168
|
-
"bundled.relays.this.relay.has.no.documents.yet.d5948c": "
|
|
181
|
+
"bundled.relays.this.relay.has.no.documents.yet.d5948c": "此接力还没有文档。",
|
|
169
182
|
"bundled.relays.select.a.document.1c46a5": "请选择文档。",
|
|
170
183
|
"bundled.relays.loading.9f624f": "正在加载 {value1}…",
|
|
171
184
|
"bundled.relays.this.document.no.longer.exists.6d4a00": "此文档已不存在。",
|
|
172
|
-
"bundled.relays.click.refresh.to.rescan.relays.2fe15f": "
|
|
185
|
+
"bundled.relays.click.refresh.to.rescan.relays.2fe15f": "点击“刷新”重新扫描接力。",
|
|
173
186
|
"bundled.relays.binary.file.f080cb": "二进制文件:{value1}",
|
|
174
187
|
"bundled.relays.binary.documents.cannot.be.previewed.as.text.535534": "二进制文档无法提供文本预览。",
|
|
175
188
|
"bundled.relays.this.document.is.truncated.only.the.beginning.is.shown.bf465f": "此文档已截断,仅显示开头内容。",
|
|
176
|
-
"bundled.relays.no.relays.in.this.workspace.6ba356": "
|
|
177
|
-
"bundled.relays.relay.documents.91711b": "
|
|
189
|
+
"bundled.relays.no.relays.in.this.workspace.6ba356": "此工作区中没有接力。",
|
|
190
|
+
"bundled.relays.relay.documents.91711b": "接力文档",
|
|
178
191
|
"bundled.relays.refresh.aee887": "刷新",
|
|
179
|
-
"bundled.relays.partial": "
|
|
192
|
+
"bundled.relays.partial": "部分嵌套内容未列出:此接力目录树超过了面板的深度或数量限制。",
|
|
180
193
|
"builtin.argument.name": "<会话名称>",
|
|
181
194
|
"builtin.argument.compact": "[说明]",
|
|
182
195
|
"git.cwdRootUnavailable": "无法解析 Git 工作树根目录",
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
+
"managementAgents.conflict": "AGENTS.md 已发生变化,请核对最新版本后再选择。",
|
|
3
|
+
"managementAgents.unavailable": "没有可用的 AGENTS.md 平台模板。",
|
|
4
|
+
"managementAgents.invalidState": "AGENTS.md 确认状态无效。",
|
|
5
|
+
"managementAgents.tooLarge": "AGENTS.md 及其确认文件不得超过 1 MiB。",
|
|
6
|
+
"managementAgents.unsafePath": "AGENTS.md 及其备份路径必须是工作区内的普通文件或目录。",
|
|
7
|
+
"managementAgents.managementOnly": "仅嵌入管理模式支持确认 AGENTS.md。",
|
|
8
|
+
"managementAgents.invalidDecision": "请基于当前版本选择是否覆盖 AGENTS.md。",
|
|
2
9
|
"server.files.projectConfigObject": "PI WEB 项目配置必须是 JSON 对象:{path}",
|
|
3
10
|
"server.files.projectConfigVersion": "PI WEB 项目配置版本必须为 1:{path}",
|
|
4
11
|
"server.files.terminalCommandsDisabled": "管理嵌入模式已禁用终端命令运行",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"server.main.f7ee5dbe3ca0": "
|
|
2
|
+
"server.main.f7ee5dbe3ca0": "接力",
|
|
3
3
|
"server.main.40c450439267": "船长日志",
|
|
4
4
|
"server.main.8d1f2155372e": "不兼容",
|
|
5
5
|
"server.main.46b71cd9c032": "当前模型不可用",
|
|
6
6
|
"server.main.dc6de3fa868f": "消息",
|
|
7
|
-
"server.main.3a9b15de3ecb": "提供与工具无关的
|
|
7
|
+
"server.main.3a9b15de3ecb": "提供与工具无关的 接力 方法、约定式 接力执行器 配置,以及由人工确认后派发的独立 Pi 会话链提示词。",
|
|
8
8
|
"server.main.71464aff7010": "将选中会话的最后回复转述为海盗风格,保留可见 Pi 消息记录。须手动安装并显式启用插件,模型调用可能产生费用。",
|
|
9
9
|
"server.main.282cd5275cef": "没有可用的运行时详情",
|
|
10
10
|
"server.main.8af35369452e": "必需的终端插件运行时{arg0}:{arg1}。请在会话守护进程可用且兼容后重试;仅已生效的 safe-start none 恢复模式可禁用终端。",
|
|
@@ -92,8 +92,8 @@
|
|
|
92
92
|
"server.main.unavailable": "不可用",
|
|
93
93
|
"projectError.invalidInput": "项目参数无效:必须提供 path;name 必须是字符串,create 必须是布尔值",
|
|
94
94
|
"server.files.workspaceNotFound": "未找到工作区",
|
|
95
|
-
"package.known.@jmfederico/pi-relay.label": "
|
|
96
|
-
"package.known.@jmfederico/pi-relay.description": "面向独立 Pi 会话链的通用
|
|
95
|
+
"package.known.@jmfederico/pi-relay.label": "接力",
|
|
96
|
+
"package.known.@jmfederico/pi-relay.description": "面向独立 Pi 会话链的通用 接力 方法、运行配置与人工确认准备提示词。",
|
|
97
97
|
"package.known.@chainingintention/pi-captains-log.label": "船长日志",
|
|
98
98
|
"package.known.@chainingintention/pi-captains-log.description": "将所选会话的最后回复转换成海盗风格,并保留可见的 Pi 消息记录。安装后需显式启用其 PI WEB 插件。"
|
|
99
99
|
}
|
package/dist/plugin-api.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ReactiveControllerHost, TemplateResult } from "lit";
|
|
2
|
+
import type { ManagedAgentsStatus, ManagedAgentsDecision } from "./shared/pluginApiTypes.js";
|
|
3
|
+
export type { ManagedAgentsStatus, ManagedAgentsDecision } from "./shared/pluginApiTypes.js";
|
|
2
4
|
import type { LocalizationContribution, Translator } from "./shared/pluginApiTypes.js";
|
|
3
5
|
import type { DeleteWorkspaceFileResponse, FileContentResponse, FileTreeResponse, JsonValue, MachineKind, PluginBackend, PluginPeer, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, PiWebStatusResponse, PluginCapability, PluginCapabilityProvision, TerminalCommandRunHandle, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse } from "./shared/pluginApiTypes.js";
|
|
4
6
|
export type { LocalizationContribution, TranslationMessages, TranslationParameters, Translator, FileContentMediaType, FileContentResponse, FileTreeEntry, FileTreeResponse, JsonObject, JsonPrimitive, JsonValue, PluginBackend, PluginBackendScope, PluginPeer, PluginPeerRequestOptions, PluginPeerChannelOptions, PluginPeerChannelClose, PluginPeerChannel, MachineKind, PiWebComponentStatus, PiWebDockerMode, PiWebInstallationInfo, PiWebInstallationKind, PiWebReleaseStatus, PiWebServiceComponent, PiWebStatusMessage, PiWebStatusResponse, PiWebStatusSeverity, PiWebVersionResponse, PluginCapability, PluginCapabilityProvision, SessionUiMetadata, TerminalCommandRun, TerminalCommandRunHandle, TerminalCommandRunStatus, WorkspaceProviderCapabilities, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse, } from "./shared/pluginApiTypes.js";
|
|
@@ -611,11 +613,18 @@ export interface WorkspaceFiles {
|
|
|
611
613
|
export interface LegacyWorkspaceFiles extends WorkspaceFiles {
|
|
612
614
|
readonly capabilityVersion?: undefined;
|
|
613
615
|
}
|
|
616
|
+
/** Review platform instructions without giving plugins control of paths or template content. */
|
|
617
|
+
export interface ManagedAgentsControl {
|
|
618
|
+
status(options?: WorkspaceFileRequestOptions): Promise<ManagedAgentsStatus>;
|
|
619
|
+
decide(decision: ManagedAgentsDecision): Promise<ManagedAgentsStatus>;
|
|
620
|
+
}
|
|
614
621
|
/** Versioned workspace-scoped host capability available to first- and third-party browser plugins. */
|
|
615
622
|
export interface WorkspaceFilesCapabilityV1 extends WorkspaceFiles {
|
|
616
623
|
readonly capabilityVersion: 1;
|
|
617
624
|
readonly defaultUploadFolder: string;
|
|
618
625
|
readonly maxInlinePreviewBytes: number;
|
|
626
|
+
/** Optional management-only review of platform instructions in this workspace. */
|
|
627
|
+
readonly managedAgents?: ManagedAgentsControl;
|
|
619
628
|
readFile(path: string, options?: WorkspaceFileRequestOptions): Promise<FileContentResponse>;
|
|
620
629
|
listFiles(path: string, options?: WorkspaceFileRequestOptions): Promise<FileTreeResponse>;
|
|
621
630
|
/** Return a browser-ready URL already resolved by the host for this deployment and machine. */
|
package/dist/server/app.js
CHANGED
|
@@ -27,6 +27,7 @@ import { registerSessionProxyRoutes } from "./sessiond/sessionProxyRoutes.js";
|
|
|
27
27
|
import { registerWorkspaceExplorerRoutes } from "./workspaceExplorerRoutes.js";
|
|
28
28
|
import { registerProjectTrustRoutes } from "./projectTrustRoutes.js";
|
|
29
29
|
import { registerManagementTerminalProxyRoutes } from "./managementTerminalProxyRoutes.js";
|
|
30
|
+
import { registerManagementAgentsRoutes } from "./managementAgentsRoutes.js";
|
|
30
31
|
import { registerPluginBackendProxyRoutes } from "./plugins/pluginBackendProxyRoutes.js";
|
|
31
32
|
import { registerWorkspaceDeletionRoutes } from "./workspaces/workspaceDeletionRoutes.js";
|
|
32
33
|
import { createFilePiWebConfigService, registerConfigRoutes, registerLocalMachineConfigRoutes } from "./configRoutes.js";
|
|
@@ -304,6 +305,8 @@ export async function buildApp(deps = {}) {
|
|
|
304
305
|
registerWorkspaceExplorerRoutes(app, projects, workspaceInput, "/api/machines/local", { config: configService, managementEmbed, fileSuggestions, translate: t });
|
|
305
306
|
registerManagementTerminalProxyRoutes(app, workspaceInput, sessionDaemon, "/api", managementEmbed);
|
|
306
307
|
registerManagementTerminalProxyRoutes(app, workspaceInput, sessionDaemon, "/api/machines/local", managementEmbed);
|
|
308
|
+
registerManagementAgentsRoutes(app, workspaceInput, "/api", managementEmbed, t);
|
|
309
|
+
registerManagementAgentsRoutes(app, workspaceInput, "/api/machines/local", managementEmbed, t);
|
|
307
310
|
registerWorkspaceDeletionRoutes(app, sessionDaemon, "/api", managementEmbed);
|
|
308
311
|
registerWorkspaceDeletionRoutes(app, sessionDaemon, "/api/machines/local", managementEmbed);
|
|
309
312
|
registerLocalFileSuggestionRoutes(app, projects, workspaceInput, "/api", { config: configService, managementEmbed, fileSuggestions, translator: t });
|
package/dist/server/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import { chmod, lstat, mkdir, open, realpath, rename, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { withFileMutationQueue } from "../piSdk.js";
|
|
5
|
+
import { UserFacingError } from "../shared/i18n.js";
|
|
6
|
+
import { managedAgentsFileContent } from "./managementEmbed.js";
|
|
7
|
+
const MAX_AGENTS_BYTES = 1024 * 1024;
|
|
8
|
+
const STATE_FILE = "agents-instructions-state.json";
|
|
9
|
+
export class ManagedAgentsConflictError extends UserFacingError {
|
|
10
|
+
constructor() { super("managementAgents.conflict", "AGENTS.md changed. Review the latest version before deciding."); }
|
|
11
|
+
}
|
|
12
|
+
export async function managedAgentsStatus(projectPath, project) {
|
|
13
|
+
if (project.agentsInstructions === undefined || project.agentsInstructions.trim() === "")
|
|
14
|
+
return { available: false };
|
|
15
|
+
const root = await realpath(projectPath);
|
|
16
|
+
return statusFromSnapshot(root, await snapshot(root, project));
|
|
17
|
+
}
|
|
18
|
+
export async function decideManagedAgents(projectPath, project, decision) {
|
|
19
|
+
if (project.agentsInstructions === undefined || project.agentsInstructions.trim() === "")
|
|
20
|
+
throw new UserFacingError("managementAgents.unavailable", "No managed AGENTS.md template is available.");
|
|
21
|
+
const root = await realpath(projectPath);
|
|
22
|
+
return withFileMutationQueue(join(root, "AGENTS.md"), async () => {
|
|
23
|
+
const before = await snapshot(root, project);
|
|
24
|
+
if (before.revision !== decision.revision)
|
|
25
|
+
throw new ManagedAgentsConflictError();
|
|
26
|
+
await statusFromSnapshot(root, before);
|
|
27
|
+
const stateDirectory = await safeDirectory(root, ".pi-web", true);
|
|
28
|
+
if (decision.action === "overwrite") {
|
|
29
|
+
if (before.content !== undefined)
|
|
30
|
+
await backupAgents(root, before.content);
|
|
31
|
+
await atomicWrite(root, "AGENTS.md", before.desired, before.mode ?? 0o600, async () => {
|
|
32
|
+
if ((await snapshot(root, project)).revision !== before.revision)
|
|
33
|
+
throw new ManagedAgentsConflictError();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const after = await snapshot(root, project);
|
|
37
|
+
if (decision.action === "keep" && after.revision !== before.revision)
|
|
38
|
+
throw new ManagedAgentsConflictError();
|
|
39
|
+
await atomicWrite(stateDirectory, STATE_FILE, `${JSON.stringify({ version: 1, templateFingerprint: after.templateFingerprint })}\n`);
|
|
40
|
+
return statusFromSnapshot(root, after);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async function snapshot(root, project) {
|
|
44
|
+
const instructions = project.agentsInstructions ?? "";
|
|
45
|
+
const desired = project.agentsInstructionsPolicy === "replace-managed"
|
|
46
|
+
? managedAgentsFileContent(instructions, project.agentsInstructionsRevision) : instructions;
|
|
47
|
+
const templateRevision = project.agentsInstructionsRevision ?? hash(desired).slice(0, 16);
|
|
48
|
+
const templateModifiedAt = project.agentsInstructionsUpdatedAt ?? null;
|
|
49
|
+
const templateFingerprint = hash(JSON.stringify([hash(desired), templateRevision, templateModifiedAt]));
|
|
50
|
+
const file = await readRegularFile(root, "AGENTS.md");
|
|
51
|
+
const revision = hash(JSON.stringify([templateFingerprint, file?.stamp ?? null]));
|
|
52
|
+
return { desired, templateRevision, templateModifiedAt, templateFingerprint, revision, content: file?.content, mode: file?.mode, modifiedAt: file?.modifiedAt ?? null };
|
|
53
|
+
}
|
|
54
|
+
async function statusFromSnapshot(root, current) {
|
|
55
|
+
const stateDirectory = await safeDirectory(root, ".pi-web", false);
|
|
56
|
+
const state = stateDirectory === undefined ? undefined : await readRegularFile(stateDirectory, STATE_FILE);
|
|
57
|
+
let acknowledged;
|
|
58
|
+
if (state !== undefined) {
|
|
59
|
+
const value = JSON.parse(state.content.toString("utf8"));
|
|
60
|
+
if (typeof value !== "object" || value === null || !("version" in value) || value.version !== 1
|
|
61
|
+
|| !("templateFingerprint" in value) || typeof value.templateFingerprint !== "string") {
|
|
62
|
+
throw new UserFacingError("managementAgents.invalidState", "Managed AGENTS.md review state is invalid.");
|
|
63
|
+
}
|
|
64
|
+
acknowledged = value.templateFingerprint;
|
|
65
|
+
}
|
|
66
|
+
const newerTemplate = current.templateModifiedAt !== null && (current.modifiedAt === null
|
|
67
|
+
|| Date.parse(current.templateModifiedAt) > Date.parse(current.modifiedAt));
|
|
68
|
+
return {
|
|
69
|
+
available: true,
|
|
70
|
+
pending: newerTemplate && current.content?.toString("utf8") !== current.desired && acknowledged !== current.templateFingerprint,
|
|
71
|
+
revision: current.revision,
|
|
72
|
+
modifiedAt: current.modifiedAt,
|
|
73
|
+
templateRevision: current.templateRevision,
|
|
74
|
+
templateModifiedAt: current.templateModifiedAt,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async function readRegularFile(root, name) {
|
|
78
|
+
const target = join(root, name);
|
|
79
|
+
let stat;
|
|
80
|
+
try {
|
|
81
|
+
stat = await lstat(target);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (isMissing(error))
|
|
85
|
+
return undefined;
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
if (!stat.isFile() || stat.isSymbolicLink())
|
|
89
|
+
throw unsafePath();
|
|
90
|
+
if (stat.size > MAX_AGENTS_BYTES)
|
|
91
|
+
throw new UserFacingError("managementAgents.tooLarge", "Managed AGENTS.md files must not exceed 1 MiB.");
|
|
92
|
+
const handle = await open(target, "r");
|
|
93
|
+
try {
|
|
94
|
+
const opened = await handle.stat();
|
|
95
|
+
if (opened.ino !== stat.ino || opened.dev !== stat.dev || await realpath(target) !== target)
|
|
96
|
+
throw unsafePath();
|
|
97
|
+
const buffer = Buffer.alloc(MAX_AGENTS_BYTES + 1);
|
|
98
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
99
|
+
if (bytesRead > MAX_AGENTS_BYTES)
|
|
100
|
+
throw new UserFacingError("managementAgents.tooLarge", "Managed AGENTS.md files must not exceed 1 MiB.");
|
|
101
|
+
const content = buffer.subarray(0, bytesRead);
|
|
102
|
+
const after = await handle.stat();
|
|
103
|
+
if (after.mtimeMs !== opened.mtimeMs || after.ctimeMs !== opened.ctimeMs || after.size !== opened.size)
|
|
104
|
+
throw new ManagedAgentsConflictError();
|
|
105
|
+
return { content, mode: after.mode & 0o7777, modifiedAt: after.mtime.toISOString(), stamp: [after.mtimeMs, after.ctimeMs, after.size, after.ino, after.mode, hash(content)] };
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
await handle.close();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function safeDirectory(root, name, create) {
|
|
112
|
+
const target = join(root, name);
|
|
113
|
+
if (create) {
|
|
114
|
+
try {
|
|
115
|
+
await mkdir(target);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (!isCode(error, "EEXIST"))
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
let stat;
|
|
123
|
+
try {
|
|
124
|
+
stat = await lstat(target);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
if (isMissing(error) && !create)
|
|
128
|
+
return undefined;
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
if (!stat.isDirectory() || stat.isSymbolicLink() || await realpath(target) !== target)
|
|
132
|
+
throw unsafePath();
|
|
133
|
+
return target;
|
|
134
|
+
}
|
|
135
|
+
async function atomicWrite(root, name, content, mode = 0o600, beforeCommit) {
|
|
136
|
+
if (await realpath(root) !== root)
|
|
137
|
+
throw unsafePath();
|
|
138
|
+
await readRegularFile(root, name);
|
|
139
|
+
const temporary = join(root, `.${name}.${randomUUID()}.tmp`);
|
|
140
|
+
try {
|
|
141
|
+
// Create privately, then restore the exact mode independently of the process umask.
|
|
142
|
+
await writeFile(temporary, content, { flag: "wx", mode: 0o600 });
|
|
143
|
+
await chmod(temporary, mode);
|
|
144
|
+
await beforeCommit?.();
|
|
145
|
+
if (await realpath(root) !== root)
|
|
146
|
+
throw unsafePath();
|
|
147
|
+
await readRegularFile(root, name);
|
|
148
|
+
await rename(temporary, join(root, name));
|
|
149
|
+
}
|
|
150
|
+
finally {
|
|
151
|
+
await rm(temporary, { force: true });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async function backupAgents(root, content) {
|
|
155
|
+
const stateDirectory = await safeDirectory(root, ".pi-web", true);
|
|
156
|
+
const backupDirectory = await safeDirectory(stateDirectory, "agents-backups", true);
|
|
157
|
+
const timestamp = new Date().toISOString().replace(/[-:]/g, "").replace(/\.\d{3}Z$/, "Z");
|
|
158
|
+
const fingerprint = hash(content).slice(0, 12);
|
|
159
|
+
for (let attempt = 0; attempt < 11; attempt += 1) {
|
|
160
|
+
const suffix = attempt === 0 ? "" : attempt < 10 ? `-${String(attempt)}` : `-${randomUUID().slice(0, 8)}`;
|
|
161
|
+
try {
|
|
162
|
+
if (await realpath(backupDirectory) !== backupDirectory)
|
|
163
|
+
throw unsafePath();
|
|
164
|
+
const target = join(backupDirectory, `AGENTS.${timestamp}.${fingerprint}${suffix}.md`);
|
|
165
|
+
await writeFile(target, content, { flag: "wx", mode: 0o600 });
|
|
166
|
+
await chmod(target, 0o600);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
if (!isCode(error, "EEXIST") || attempt === 10)
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function hash(value) { return createHash("sha256").update(value).digest("hex"); }
|
|
176
|
+
function isCode(error, code) { return error instanceof Error && "code" in error && error.code === code; }
|
|
177
|
+
function isMissing(error) { return isCode(error, "ENOENT"); }
|
|
178
|
+
function unsafePath() { return new UserFacingError("managementAgents.unsafePath", "Managed AGENTS.md paths must be ordinary files and directories inside the workspace."); }
|
|
179
|
+
//# sourceMappingURL=managementAgents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managementAgents.js","sourceRoot":"","sources":["../../src/server/managementAgents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createTranslator, UserFacingError, userFacingErrorMessage } from "../shared/i18n.js";
|
|
2
|
+
import { decideManagedAgents, managedAgentsStatus, ManagedAgentsConflictError } from "./managementAgents.js";
|
|
3
|
+
import { managementContextForRequest } from "./managementEmbed.js";
|
|
4
|
+
import { resolveManagedWorkspaceContext } from "./workspaces/workspaceRouteContext.js";
|
|
5
|
+
import { workspaceCatalogHttpStatus } from "./workspaces/workspaceCatalog.js";
|
|
6
|
+
export function registerManagementAgentsRoutes(app, workspaces, prefix = "/api", runtime, translate = createTranslator("en", {})) {
|
|
7
|
+
app.route({
|
|
8
|
+
method: ["GET", "POST"],
|
|
9
|
+
url: `${prefix}/projects/:projectId/workspaces/:workspaceId/agents-instructions`,
|
|
10
|
+
handler: async (request, reply) => {
|
|
11
|
+
let context;
|
|
12
|
+
try {
|
|
13
|
+
context = await managementContextForRequest(request, runtime, reply);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return reply.code(401).send({ error: userFacingErrorMessage(error, translate) });
|
|
17
|
+
}
|
|
18
|
+
if (context === undefined)
|
|
19
|
+
return reply.code(403).send({ error: translate("managementAgents.managementOnly", "Managed AGENTS.md review is only available in management mode.") });
|
|
20
|
+
try {
|
|
21
|
+
const workspace = await resolveManagedWorkspaceContext(workspaces, runtime, context, request.params.projectId, request.params.workspaceId, { createManagedProject: false });
|
|
22
|
+
const entry = context.projects.find((item) => item.id === workspace.project.id) ?? { id: workspace.project.id, name: workspace.project.name };
|
|
23
|
+
if (request.method === "GET")
|
|
24
|
+
return await managedAgentsStatus(workspace.root, entry);
|
|
25
|
+
return await decideManagedAgents(workspace.root, entry, parseDecision(request.body));
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const unauthorized = error instanceof UserFacingError && error.messageKey === "managementError.project.is.not.authorized.for.this.management.session";
|
|
29
|
+
return reply.code(error instanceof ManagedAgentsConflictError ? 409 : unauthorized ? 403 : workspaceCatalogHttpStatus(error, 400)).send({ error: userFacingErrorMessage(error, translate) });
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function parseDecision(value) {
|
|
35
|
+
if (typeof value !== "object" || value === null || !("action" in value) || (value.action !== "overwrite" && value.action !== "keep")
|
|
36
|
+
|| !("revision" in value) || typeof value.revision !== "string" || !/^[a-f0-9]{64}$/.test(value.revision)
|
|
37
|
+
|| Object.keys(value).some((key) => key !== "action" && key !== "revision")) {
|
|
38
|
+
throw new UserFacingError("managementAgents.invalidDecision", "Choose whether to overwrite AGENTS.md using the current revision.");
|
|
39
|
+
}
|
|
40
|
+
return { action: value.action, revision: value.revision };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=managementAgentsRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managementAgentsRoutes.js","sourceRoot":"","sources":["../../src/server/managementAgentsRoutes.ts"],"names":[],"mappings":"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"}
|