@chainingintention/pi-web-cn 2.202610.4 → 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.
Files changed (36) hide show
  1. package/dist/client/assets/{CommandPicker-gK2biReF.js → CommandPicker-8oDe6AaV.js} +1 -1
  2. package/dist/client/assets/{PiWebApp-Do_8tp5d.js → PiWebApp-TCQVYghs.js} +241 -241
  3. package/dist/client/assets/{SettingsDialog-vGDo1-BJ.js → SettingsDialog-DFUpwUyp.js} +1 -1
  4. package/dist/client/assets/{index-Ura0RJyr.js → index-DzMPXVth.js} +2 -2
  5. package/dist/client/index.html +1 -1
  6. package/dist/pi-packages/relays/relayDiscovery.js +5 -1
  7. package/dist/pi-web-plugins/custom-ui-codex/README.md +2 -0
  8. package/dist/pi-web-plugins/custom-ui-codex/chat-settings.css +15 -2
  9. package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +87 -50
  10. package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +21 -6
  11. package/dist/pi-web-plugins/zh-cn/bundled.json +31 -18
  12. package/dist/pi-web-plugins/zh-cn/components.json +2 -0
  13. package/dist/pi-web-plugins/zh-cn/files.json +7 -0
  14. package/dist/pi-web-plugins/zh-cn/server-main.json +4 -4
  15. package/dist/plugin-api.d.ts +9 -0
  16. package/dist/server/app.js +3 -0
  17. package/dist/server/app.js.map +1 -1
  18. package/dist/server/managementAgents.js +179 -0
  19. package/dist/server/managementAgents.js.map +1 -0
  20. package/dist/server/managementAgentsRoutes.js +42 -0
  21. package/dist/server/managementAgentsRoutes.js.map +1 -0
  22. package/dist/server/managementEmbed.js +23 -43
  23. package/dist/server/managementEmbed.js.map +1 -1
  24. package/dist/server/sessions/piSessionService.js +10 -2
  25. package/dist/server/sessions/piSessionService.js.map +1 -1
  26. package/dist/server/workspaceExplorerRoutes.js +3 -1
  27. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  28. package/dist/shared/apiTypes.js.map +1 -1
  29. package/dist/shared/federatedRoutes.js +2 -0
  30. package/dist/shared/federatedRoutes.js.map +1 -1
  31. package/dist/shared/managedAgents.js +2 -0
  32. package/dist/shared/managedAgents.js.map +1 -0
  33. package/dist/shared/pluginApiTypes.d.ts +14 -0
  34. package/docs/config.md +3 -1
  35. package/docs/plugins.md +20 -5
  36. 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 (!this.isCurrentContext(context))
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: t("bundled.workspace-tasks.started.terminal.command.318e6c", "Started terminal command \"{value1}\".", { value1: handle.run.title }),
170
- detail: task.command,
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": "中继包通常包含 {files}。",
5
- "bundled.relays.open.packet": "打开中继 {name},第 {leg} 段",
6
- "bundled.relays.label": "中继",
7
- "bundled.relays.invalid.packet.link": "中继链接必须指向规范的工作区相对资料包目录。",
8
- "bundled.relays.packet.documents": "中继资料包包含 charter.md(目标)、status.md(当前交接)和 log.md(历史);可选的 decisions.md 记录重要决定及理由。",
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": "中继包存放在 {path},此工作区目前还没有中继包。",
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": "打开工作区的中继标签页。中继存放在 {value1}。",
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,6 @@
1
1
  {
2
+ "ui.statusBar.contextUsage": "上下文用量",
3
+ "ui.statusBar.sessionCost": "会话花费",
2
4
  "ui.settingsDialog.machineConnected": "已连接",
3
5
  "ui.settingsDialog.machineUnchecked": "尚未检查连接",
4
6
  "ui.settingsDialog.machineUnavailable": "不可用",
@@ -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": "提供与工具无关的 Relay 方法、约定式 Relay Runner 配置,以及由人工确认后派发的独立 Pi 会话链提示词。",
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 会话链的通用 Relay 方法、运行配置与人工确认准备提示词。",
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
  }
@@ -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. */
@@ -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 });
@@ -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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"}