@chainingintention/pi-web-cn 1.202608.9 → 2.0.0

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 (187) hide show
  1. package/README.md +2 -0
  2. package/dist/cli.js +123 -72
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/{CodeViewer-B9BLGnQ2.js → CodeViewer-DCl56K0Z.js} +2 -2
  5. package/dist/client/assets/{TerminalPanel-C1BWg5W2.js → TerminalPanel-DCvoEjUF.js} +6 -6
  6. package/dist/client/assets/{index-x7EWN9ro.js → index-CMvms5cF.js} +534 -512
  7. package/dist/client/index.html +1 -1
  8. package/dist/config.js +39 -18
  9. package/dist/config.js.map +1 -1
  10. package/dist/nativeServices/serviceAction.js +128 -0
  11. package/dist/nativeServices/serviceAction.js.map +1 -0
  12. package/dist/pi-web-plugins/git/browser/git-contract.js +108 -0
  13. package/dist/pi-web-plugins/git/browser/git-panel.js +609 -0
  14. package/dist/pi-web-plugins/git/browser/gitFileList.js +43 -0
  15. package/dist/pi-web-plugins/git/browser/gitFileShared.js +16 -0
  16. package/dist/pi-web-plugins/git/browser/gitFileTree.js +81 -0
  17. package/dist/pi-web-plugins/git/browser/gitFileViewPreference.js +35 -0
  18. package/dist/pi-web-plugins/git/browser/gitRoute.js +42 -0
  19. package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +10 -0
  20. package/dist/pi-web-plugins/git/browser/unifiedDiff.js +301 -0
  21. package/dist/pi-web-plugins/git/git-backend.js +433 -0
  22. package/dist/pi-web-plugins/git/package.json +15 -0
  23. package/dist/pi-web-plugins/git/server-plugin.js +176 -0
  24. package/dist/pi-web-plugins/info/infoInternals.js +1 -1
  25. package/dist/pi-web-plugins/info/pi-web-plugin.js +2 -2
  26. package/dist/pi-web-plugins/relays/pi-web-plugin.js +1 -1
  27. package/dist/pi-web-plugins/relays/relayDiscovery.js +128 -23
  28. package/dist/pi-web-plugins/relays/relaysPanelElement.js +138 -16
  29. package/dist/pi-web-plugins/updates/pi-web-plugin.js +1 -1
  30. package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +1 -1
  31. package/dist/piWebVersionReport.js +63 -4
  32. package/dist/piWebVersionReport.js.map +1 -1
  33. package/dist/plugin-api.d.ts +40 -18
  34. package/dist/pluginRecoveryCli.js +172 -0
  35. package/dist/pluginRecoveryCli.js.map +1 -0
  36. package/dist/server/activity/workspaceActivityService.js +7 -1
  37. package/dist/server/activity/workspaceActivityService.js.map +1 -1
  38. package/dist/server/app.js +49 -23
  39. package/dist/server/app.js.map +1 -1
  40. package/dist/server/configRoutes.js +4 -5
  41. package/dist/server/configRoutes.js.map +1 -1
  42. package/dist/server/machines/machineClient.js +23 -4
  43. package/dist/server/machines/machineClient.js.map +1 -1
  44. package/dist/server/machines/machineProxyRoutes.js +162 -8
  45. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  46. package/dist/server/piWebPluginCatalog.js +441 -0
  47. package/dist/server/piWebPluginCatalog.js.map +1 -0
  48. package/dist/server/piWebPluginLifecycle.js +162 -0
  49. package/dist/server/piWebPluginLifecycle.js.map +1 -0
  50. package/dist/server/piWebPluginService.js +55 -7
  51. package/dist/server/piWebPluginService.js.map +1 -1
  52. package/dist/server/plugins/pluginBackendProxyRoutes.js +80 -0
  53. package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -0
  54. package/dist/server/plugins/serverPluginExec.js +184 -0
  55. package/dist/server/plugins/serverPluginExec.js.map +1 -0
  56. package/dist/server/plugins/serverPluginRuntime.js +480 -0
  57. package/dist/server/plugins/serverPluginRuntime.js.map +1 -0
  58. package/dist/server/realtime/sessionEventHub.js +13 -0
  59. package/dist/server/realtime/sessionEventHub.js.map +1 -1
  60. package/dist/server/realtime/sessionEventScope.js +8 -1
  61. package/dist/server/realtime/sessionEventScope.js.map +1 -1
  62. package/dist/server/requestCancellation.js +28 -0
  63. package/dist/server/requestCancellation.js.map +1 -0
  64. package/dist/server/sessiond/agentProcessEnvironment.js +61 -0
  65. package/dist/server/sessiond/agentProcessEnvironment.js.map +1 -0
  66. package/dist/server/sessiond/managementProjectResolver.js +16 -0
  67. package/dist/server/sessiond/managementProjectResolver.js.map +1 -0
  68. package/dist/server/sessiond/pluginBackendRoutes.js +78 -0
  69. package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -0
  70. package/dist/server/sessiond/sessionProxyRoutes.js +1 -0
  71. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  72. package/dist/server/sessiond/sessionServiceDependencies.js +0 -1
  73. package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
  74. package/dist/server/sessiond/sessiondStateOwnership.js +139 -0
  75. package/dist/server/sessiond/sessiondStateOwnership.js.map +1 -0
  76. package/dist/server/sessiond/workspaceCatalogRoutes.js +38 -0
  77. package/dist/server/sessiond/workspaceCatalogRoutes.js.map +1 -0
  78. package/dist/server/sessiond/workspaceRemovalRoutes.js +56 -0
  79. package/dist/server/sessiond/workspaceRemovalRoutes.js.map +1 -0
  80. package/dist/server/sessiond.js +98 -11
  81. package/dist/server/sessiond.js.map +1 -1
  82. package/dist/server/sessions/authService.js +15 -51
  83. package/dist/server/sessions/authService.js.map +1 -1
  84. package/dist/server/sessions/dockerEnvironmentFacts.js +181 -0
  85. package/dist/server/sessions/dockerEnvironmentFacts.js.map +1 -0
  86. package/dist/server/sessions/piSessionManagerGateway.js +129 -2
  87. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  88. package/dist/server/sessions/piSessionService.js +131 -97
  89. package/dist/server/sessions/piSessionService.js.map +1 -1
  90. package/dist/server/sessions/sessionCommandService.js +15 -1
  91. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  92. package/dist/server/sessions/sessionEnvironmentFacts.js +48 -0
  93. package/dist/server/sessions/sessionEnvironmentFacts.js.map +1 -0
  94. package/dist/server/sessions/sessionFileFormat.js +27 -0
  95. package/dist/server/sessions/sessionFileFormat.js.map +1 -0
  96. package/dist/server/sessions/sessionFileHeader.js +82 -23
  97. package/dist/server/sessions/sessionFileHeader.js.map +1 -1
  98. package/dist/server/sessions/sessionRoutes.js +16 -2
  99. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  100. package/dist/server/sessions/sessionSummaryScanner.js +491 -0
  101. package/dist/server/sessions/sessionSummaryScanner.js.map +1 -0
  102. package/dist/server/sessions/spawnSubsessionTool.js +4 -8
  103. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  104. package/dist/server/sessions/spawnTargetResolver.js +2 -2
  105. package/dist/server/sessions/spawnTargetResolver.js.map +1 -1
  106. package/dist/server/status/machineStatusRoutes.js +10 -0
  107. package/dist/server/status/machineStatusRoutes.js.map +1 -0
  108. package/dist/server/status/machineStatusService.js +115 -0
  109. package/dist/server/status/machineStatusService.js.map +1 -0
  110. package/dist/server/status/workspaceAttribution.js +71 -0
  111. package/dist/server/status/workspaceAttribution.js.map +1 -0
  112. package/dist/server/terminalProxyRoutes.js.map +1 -1
  113. package/dist/server/workspaceExplorerRoutes.js +12 -25
  114. package/dist/server/workspaceExplorerRoutes.js.map +1 -1
  115. package/dist/server/workspaces/effectivePathAccess.js +3 -2
  116. package/dist/server/workspaces/effectivePathAccess.js.map +1 -1
  117. package/dist/server/workspaces/fileContentService.js +17 -9
  118. package/dist/server/workspaces/fileContentService.js.map +1 -1
  119. package/dist/server/workspaces/fileOperationService.js +4 -17
  120. package/dist/server/workspaces/fileOperationService.js.map +1 -1
  121. package/dist/server/workspaces/filePreviewResponseHeaders.js +18 -0
  122. package/dist/server/workspaces/filePreviewResponseHeaders.js.map +1 -0
  123. package/dist/server/workspaces/filePreviewResponsePolicy.js +55 -0
  124. package/dist/server/workspaces/filePreviewResponsePolicy.js.map +1 -0
  125. package/dist/server/workspaces/filePreviewService.js +81 -0
  126. package/dist/server/workspaces/filePreviewService.js.map +1 -0
  127. package/dist/server/workspaces/projectWorkspaceCwds.js +2 -2
  128. package/dist/server/workspaces/projectWorkspaceCwds.js.map +1 -1
  129. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +416 -0
  130. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -0
  131. package/dist/server/workspaces/workspaceCatalog.js +87 -0
  132. package/dist/server/workspaces/workspaceCatalog.js.map +1 -0
  133. package/dist/server/workspaces/workspaceContext.js +5 -5
  134. package/dist/server/workspaces/workspaceContext.js.map +1 -1
  135. package/dist/server/workspaces/workspaceDeletionRoutes.js +114 -99
  136. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
  137. package/dist/server/workspaces/workspaceProviderRegistry.js +650 -0
  138. package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -0
  139. package/dist/server/workspaces/workspaceRemovalService.js +258 -0
  140. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -0
  141. package/dist/server/workspaces/workspaceRouteContext.js +2 -1
  142. package/dist/server/workspaces/workspaceRouteContext.js.map +1 -1
  143. package/dist/server/workspaces/workspaceRouteErrors.js +7 -0
  144. package/dist/server/workspaces/workspaceRouteErrors.js.map +1 -0
  145. package/dist/server/workspaces/worktreePreRemoveHook.js +39 -0
  146. package/dist/server/workspaces/worktreePreRemoveHook.js.map +1 -0
  147. package/dist/server-plugin-api.d.ts +115 -0
  148. package/dist/server-plugin-api.js +2 -0
  149. package/dist/server-plugin-api.js.map +1 -0
  150. package/dist/serverPluginRecovery.js +138 -0
  151. package/dist/serverPluginRecovery.js.map +1 -0
  152. package/dist/sessiond/config.js +6 -0
  153. package/dist/sessiond/config.js.map +1 -1
  154. package/dist/sessiond/sessionDaemonClient.js +7 -6
  155. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  156. package/dist/shared/apiTypes.js +2 -0
  157. package/dist/shared/apiTypes.js.map +1 -1
  158. package/dist/shared/capabilities.js +2 -0
  159. package/dist/shared/capabilities.js.map +1 -1
  160. package/dist/shared/federatedRoutes.js +28 -2
  161. package/dist/shared/federatedRoutes.js.map +1 -1
  162. package/dist/shared/machineStatus.js +60 -0
  163. package/dist/shared/machineStatus.js.map +1 -0
  164. package/dist/shared/pluginApiTypes.d.ts +155 -0
  165. package/dist/shared/pluginBackendProtocol.js +110 -0
  166. package/dist/shared/pluginBackendProtocol.js.map +1 -0
  167. package/dist/shared/pluginIds.js +3 -0
  168. package/dist/shared/pluginIds.js.map +1 -1
  169. package/dist/shared/pluginRecoveryCommands.js +14 -0
  170. package/dist/shared/pluginRecoveryCommands.js.map +1 -0
  171. package/dist/shared/workspaceFiles.js +41 -2
  172. package/dist/shared/workspaceFiles.js.map +1 -1
  173. package/dist/shared/workspaceRemovalProtocol.js +24 -0
  174. package/dist/shared/workspaceRemovalProtocol.js.map +1 -0
  175. package/docs/config.md +12 -5
  176. package/docs/plugins.md +15 -21
  177. package/package.json +26 -8
  178. package/server-plugin-api.d.ts +1 -0
  179. package/dist/client/assets/UnifiedDiffViewer-ClTQ6Ok0.js +0 -39
  180. package/dist/plugin-api/unstable.d.ts +0 -22
  181. package/dist/server/sessions/parentSessionLocator.js +0 -75
  182. package/dist/server/sessions/parentSessionLocator.js.map +0 -1
  183. package/dist/server/workspaces/imagePreviewService.js +0 -40
  184. package/dist/server/workspaces/imagePreviewService.js.map +0 -1
  185. package/dist/shared/apiTypes.d.ts +0 -1323
  186. package/dist/shared/thinkingLevels.d.ts +0 -29
  187. package/plugin-api/unstable.d.ts +0 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Environment hygiene for agent-executed processes.
3
+ *
4
+ * Sessions run inside the session daemon process, so everything agents can
5
+ * spawn — the bash tool, terminals, subsessions — inherits the daemon's
6
+ * environment by default. That inheritance is deliberate: the daemon's
7
+ * `PI_WEB_*` wiring stays visible so agent-facing tooling keeps working, and
8
+ * a second PI WEB instance started from inside a session resolves the same
9
+ * state and fails loudly at startup (see `sessiondStateOwnership`) instead of
10
+ * silently corrupting the live daemon's data. `PI_WEB_SESSION=1` and the
11
+ * session environment facts tell agents they are nested and which precautions
12
+ * apply.
13
+ *
14
+ * The daemon captures its environment once at startup for its own use and
15
+ * then removes the handful of keys that silently distort the tools agents
16
+ * run, so all later spawns inherit a clean environment without per-call-site
17
+ * filtering. Visibility rules:
18
+ *
19
+ * - Ordinary variables (`PATH`, `HOME`, `XDG_CONFIG_HOME`, proxy keys, …)
20
+ * stay.
21
+ * - `PI_WEB_*` keys stay — including `PI_WEB_DOCKER_*` deployment descriptors
22
+ * the agent-facing `pi-web-docker` CLI reads, and the deprecated
23
+ * `PI_WEB_AGENT_*` aliases: the canonical `PI_CODING_AGENT_*` vars are
24
+ * exported with the fully resolved values, so both names resolve
25
+ * identically for anything started from here.
26
+ * - `HOSTEXEC_*` stays: agents use `hostexec`.
27
+ * - `PI_CODING_AGENT_DIR` stays so agent-spawned `pi` CLIs find the profile's
28
+ * auth and models; `PI_CODING_AGENT_SESSION_DIR` stays for the same reason:
29
+ * it is documented `pi` configuration, not daemon wiring, so a deployment
30
+ * that sets it wants every `pi` process — whether daemon-spawned or started
31
+ * by an agent — using the same session storage.
32
+ * - `NODE_ENV` and `PORT` are app-runtime configuration and the only removals:
33
+ * `NODE_ENV=production` makes npm skip devDependencies and flips Node
34
+ * package-export conditions, and `PORT` leaks into the listener
35
+ * configuration of tools agents run.
36
+ */
37
+ /**
38
+ * Keys that configure the daemon or app runtime in ways that silently break
39
+ * the tools agents run. Daemon configuration belongs in `PI_WEB_`-prefixed
40
+ * keys, which stay visible; a key only belongs here when it cannot carry the
41
+ * prefix (deployment conventions like `NODE_ENV`).
42
+ */
43
+ const DAEMON_ONLY_ENV_KEYS = new Set(["NODE_ENV", "PORT"]);
44
+ export function isAgentVisibleEnvKey(key) {
45
+ return !DAEMON_ONLY_ENV_KEYS.has(key);
46
+ }
47
+ /**
48
+ * Delete every non-agent-visible key from `env` — the daemon's `process.env`
49
+ * at startup — and return the removed key names, sorted, for logging.
50
+ */
51
+ export function scrubNonAgentVisibleEnvKeys(env) {
52
+ const scrubbed = Object.keys(env).filter((key) => !isAgentVisibleEnvKey(key));
53
+ for (const key of scrubbed) {
54
+ // process.env is a dynamic key/value bag; deleting the daemon-only keys is
55
+ // the whole point of the scrub, and the keys cannot be known statically.
56
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
57
+ delete env[key];
58
+ }
59
+ return scrubbed.sort();
60
+ }
61
+ //# sourceMappingURL=agentProcessEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentProcessEnvironment.js","sourceRoot":"","sources":["../../../src/server/sessiond/agentProcessEnvironment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAsB;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,2EAA2E;QAC3E,yEAAyE;QACzE,gEAAgE;QAChE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { decodeManagementContext, MANAGEMENT_EMBED_CONTEXT_HEADER, projectFromManagedEmbedContext, } from "../managementEmbed.js";
2
+ export function managementContextFromSessiondHeaders(headers) {
3
+ const raw = headers[MANAGEMENT_EMBED_CONTEXT_HEADER];
4
+ return decodeManagementContext(Array.isArray(raw) ? raw[0] : raw);
5
+ }
6
+ /** Resolve the project at the daemon boundary without allowing managed ids into ProjectStore. */
7
+ export async function resolveSessiondProject(headers, projectId, dependencies) {
8
+ const context = managementContextFromSessiondHeaders(headers);
9
+ if (context === undefined)
10
+ return dependencies.projects.requireProject(projectId);
11
+ const projectRoot = dependencies.managementProjectRoot;
12
+ if (projectRoot === undefined || projectRoot === "")
13
+ throw new Error("Management embed mode is not configured");
14
+ return projectFromManagedEmbedContext(projectRoot, context, projectId, { create: true });
15
+ }
16
+ //# sourceMappingURL=managementProjectResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managementProjectResolver.js","sourceRoot":"","sources":["../../../src/server/sessiond/managementProjectResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAY/B,MAAM,UAAU,oCAAoC,CAClD,OAAsD;IAEtD,MAAM,GAAG,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACrD,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAsD,EACtD,SAAiB,EACjB,YAAiD;IAEjD,MAAM,OAAO,GAAG,oCAAoC,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC;IACvD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAChH,OAAO,8BAA8B,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { isPiWebPluginId } from "../../shared/pluginIds.js";
2
+ import { parsePluginBackendRequestEnvelope, PLUGIN_BACKEND_REQUEST_BODY_MAX_BYTES, PLUGIN_BACKEND_RESPONSE_JSON_MAX_BYTES, requirePluginBackendOperation, serializeBoundedPluginBackendJson, } from "../../shared/pluginBackendProtocol.js";
3
+ import { eventScopeFromManagementContext } from "../realtime/sessionEventScope.js";
4
+ import { WorkspaceProviderRequestError, } from "../workspaces/workspaceProviderRegistry.js";
5
+ import { managementContextFromSessiondHeaders, resolveSessiondProject } from "./managementProjectResolver.js";
6
+ /** JSON-only sessiond boundary for the active owner of one current workspace. */
7
+ export function registerPluginBackendRoutes(app, dependencies, prefix = "/plugin-backends") {
8
+ app.post(`${prefix}/:pluginId/projects/:projectId/workspaces/:workspaceId/:operation`, { bodyLimit: PLUGIN_BACKEND_REQUEST_BODY_MAX_BYTES }, async (request, reply) => {
9
+ const { pluginId, projectId, workspaceId } = request.params;
10
+ let operation = request.params.operation;
11
+ let envelope;
12
+ try {
13
+ if (!isPiWebPluginId(pluginId))
14
+ throw new Error(`Invalid PI WEB plugin id: ${pluginId}`);
15
+ operation = requirePluginBackendOperation(operation);
16
+ if (projectId === "")
17
+ throw new Error("Project id is required");
18
+ if (workspaceId === "")
19
+ throw new Error("Workspace id is required");
20
+ envelope = parsePluginBackendRequestEnvelope(request.body);
21
+ }
22
+ catch (error) {
23
+ return attributedError(reply, 400, boundedErrorMessage(error), "invalid-request", pluginId, operation);
24
+ }
25
+ let project;
26
+ try {
27
+ project = await resolveSessiondProject(request.headers, projectId, dependencies);
28
+ }
29
+ catch (error) {
30
+ const message = boundedErrorMessage(error);
31
+ return attributedError(reply, projectErrorStatus(message), message, projectErrorCode(message), pluginId, operation);
32
+ }
33
+ try {
34
+ const result = await dependencies.backends.request({
35
+ pluginId,
36
+ moduleRevision: envelope.revision,
37
+ project,
38
+ workspaceId,
39
+ operation,
40
+ input: envelope.input,
41
+ });
42
+ const serialized = serializeBoundedPluginBackendJson(result, `Server plugin ${pluginId} operation ${operation} result`, PLUGIN_BACKEND_RESPONSE_JSON_MAX_BYTES);
43
+ dependencies.onWorkspacesMutated?.(eventScopeFromManagementContext(managementContextFromSessiondHeaders(request.headers)));
44
+ return await reply.type("application/json; charset=utf-8").send(serialized);
45
+ }
46
+ catch (error) {
47
+ return pluginBackendRequestFailed(reply, error, pluginId, operation);
48
+ }
49
+ });
50
+ }
51
+ function pluginBackendRequestFailed(reply, error, pluginId, operation) {
52
+ if (error instanceof WorkspaceProviderRequestError) {
53
+ return attributedError(reply, error.statusCode, error.message, error.code, pluginId, operation);
54
+ }
55
+ return attributedError(reply, 502, `Plugin backend request failed: ${boundedErrorMessage(error)}`, "request-failed", pluginId, operation);
56
+ }
57
+ function attributedError(reply, statusCode, message, code, pluginId, operation) {
58
+ return reply.code(statusCode).send({ error: message, code, pluginId, operation });
59
+ }
60
+ function boundedErrorMessage(error) {
61
+ const message = error instanceof Error ? error.message : String(error);
62
+ return message.length <= 2_048 ? message : `${message.slice(0, 2_045)}...`;
63
+ }
64
+ function projectErrorStatus(message) {
65
+ if (message === "Project not found")
66
+ return 404;
67
+ if (message === "Project is not authorized for this management session")
68
+ return 403;
69
+ return 500;
70
+ }
71
+ function projectErrorCode(message) {
72
+ if (message === "Project not found")
73
+ return "project-not-found";
74
+ if (message === "Project is not authorized for this management session")
75
+ return "project-not-authorized";
76
+ return "project-resolution-failed";
77
+ }
78
+ //# sourceMappingURL=pluginBackendRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginBackendRoutes.js","sourceRoot":"","sources":["../../../src/server/sessiond/pluginBackendRoutes.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,7 @@ export function registerSessionProxyRoutes(app, daemon = new SessionDaemonClient
69
69
  });
70
70
  });
71
71
  app.all(`${prefix}/activity`, (request, reply) => proxy(request, reply));
72
+ app.all(`${prefix}/status`, (request, reply) => proxy(request, reply));
72
73
  app.all(`${prefix}/auth`, (request, reply) => proxy(request, reply));
73
74
  app.all(`${prefix}/auth/*`, (request, reply) => proxy(request, reply));
74
75
  app.all(`${prefix}/sessions`, (request, reply) => proxy(request, reply));
@@ -1 +1 @@
1
- {"version":3,"file":"sessionProxyRoutes.js","sourceRoot":"","sources":["../../../src/server/sessiond/sessionProxyRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionProxyRoutes.js","sourceRoot":"","sources":["../../../src/server/sessiond/sessionProxyRoutes.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ export function sessionServiceDependencies(input) {
15
15
  workspaceActivity: input.workspaceActivity,
16
16
  logger: input.logger,
17
17
  ...(input.spawnTargets === undefined ? {} : { spawnTargets: input.spawnTargets }),
18
- ...(input.projectWorkspaces === undefined ? {} : { projectWorkspaces: input.projectWorkspaces }),
19
18
  // Tracked subsessions share the spawn capability's project-scope resolver,
20
19
  // so they stay off unless spawning is configured too.
21
20
  subsessionsEnabled: input.spawnTargets !== undefined && input.subsessionsEnabled,
@@ -1 +1 @@
1
- {"version":3,"file":"sessionServiceDependencies.js","sourceRoot":"","sources":["../../../src/server/sessiond/sessionServiceDependencies.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAoC;IAC7E,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QACjF,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChG,2EAA2E;QAC3E,sDAAsD;QACtD,kBAAkB,EAAE,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB;QAChF,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,sEAAsE;QACtE,+CAA+C;QAC/C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sessionServiceDependencies.js","sourceRoot":"","sources":["../../../src/server/sessiond/sessionServiceDependencies.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAoC;IAC7E,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QACjF,2EAA2E;QAC3E,sDAAsD;QACtD,kBAAkB,EAAE,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB;QAChF,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,sEAAsE;QACtE,+CAA+C;QAC/C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Claims exclusive ownership of the session daemon data directory.
3
+ */
4
+ import { readFileSync } from "node:fs";
5
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
6
+ import { join } from "node:path";
7
+ import { piWebDataDir } from "../../config.js";
8
+ import { sessiondEndpointDescription } from "../../sessiond/config.js";
9
+ export const SESSIOND_OWNER_MARKER_FILENAME = "sessiond-owner.json";
10
+ export class SessiondStateOwnershipConflictError extends Error {
11
+ constructor(options) {
12
+ const { dataDir, markerPath, owner } = options;
13
+ super(`another pi-web session daemon already owns this state\n\n` +
14
+ `The data directory "${dataDir}" is owned by pid ${String(owner.pid)}, started ${owner.startedAt}, listening on ${owner.endpoint}. ` +
15
+ `Use a different PI_WEB_DATA_DIR and session daemon/web endpoint for a second instance, or remove the stale marker ${markerPath}.`);
16
+ this.name = "SessiondStateOwnershipConflictError";
17
+ this.dataDir = dataDir;
18
+ this.owner = owner;
19
+ }
20
+ }
21
+ const DEFAULT_GRACE_MS = 15_000;
22
+ const DEFAULT_POLL_INTERVAL_MS = 250;
23
+ export async function claimSessiondStateOwnership(options) {
24
+ const ownPid = options.ownPid ?? process.pid;
25
+ const isAlive = options.isAlive ?? isOwnershipRecordAlive;
26
+ const graceMs = options.graceMs ?? DEFAULT_GRACE_MS;
27
+ const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
28
+ const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
29
+ const logger = options.logger;
30
+ const dataDir = options.dataDir ?? piWebDataDir(options.env);
31
+ const markerPath = join(dataDir, SESSIOND_OWNER_MARKER_FILENAME);
32
+ const processStartTime = readProcessStartTime(ownPid);
33
+ const record = {
34
+ pid: ownPid,
35
+ startedAt: new Date().toISOString(),
36
+ ...(processStartTime === undefined ? {} : { processStartTime }),
37
+ endpoint: sessiondEndpointDescription(options.env),
38
+ };
39
+ await mkdir(dataDir, { recursive: true });
40
+ const deadline = Date.now() + graceMs;
41
+ for (;;) {
42
+ const existing = await readOwnershipRecord(markerPath);
43
+ if (existing !== undefined && existing !== "invalid") {
44
+ if (existing.pid !== ownPid && isAlive(existing)) {
45
+ if (Date.now() >= deadline)
46
+ throw new SessiondStateOwnershipConflictError({ dataDir, markerPath, owner: existing });
47
+ logger?.warn({ markerPath, owner: existing }, "another live session daemon owns this state; waiting for release");
48
+ await sleep(pollIntervalMs);
49
+ continue;
50
+ }
51
+ if (existing.pid !== ownPid)
52
+ logger?.info({ markerPath, previousOwner: existing }, "taking over stale session daemon ownership marker");
53
+ await rm(markerPath, { force: true });
54
+ }
55
+ else if (existing === "invalid") {
56
+ if (Date.now() < deadline) {
57
+ await sleep(pollIntervalMs);
58
+ continue;
59
+ }
60
+ logger?.warn({ markerPath }, "discarding invalid session daemon ownership marker");
61
+ await rm(markerPath, { force: true });
62
+ }
63
+ try {
64
+ await writeFile(markerPath, `${JSON.stringify(record, null, 2)}\n`, { flag: "wx" });
65
+ return { markerPath, record, release: () => releaseOwnershipMarker(markerPath, record, logger) };
66
+ }
67
+ catch (error) {
68
+ if (!isErrorCode(error, "EEXIST"))
69
+ throw error;
70
+ }
71
+ }
72
+ }
73
+ export function parseOwnershipRecord(content) {
74
+ try {
75
+ const value = JSON.parse(content);
76
+ if (!isRecord(value) || typeof value["pid"] !== "number" || typeof value["startedAt"] !== "string" || typeof value["endpoint"] !== "string")
77
+ return "invalid";
78
+ if (value["processStartTime"] !== undefined && typeof value["processStartTime"] !== "string")
79
+ return "invalid";
80
+ return {
81
+ pid: value["pid"],
82
+ startedAt: value["startedAt"],
83
+ ...(value["processStartTime"] === undefined ? {} : { processStartTime: value["processStartTime"] }),
84
+ endpoint: value["endpoint"],
85
+ };
86
+ }
87
+ catch {
88
+ return "invalid";
89
+ }
90
+ }
91
+ export function isOwnershipRecordAlive(record) {
92
+ const currentStartTime = readProcessStartTime(record.pid);
93
+ if (currentStartTime !== undefined && record.processStartTime !== undefined)
94
+ return currentStartTime === record.processStartTime;
95
+ try {
96
+ process.kill(record.pid, 0);
97
+ return true;
98
+ }
99
+ catch (error) {
100
+ return isErrorCode(error, "EPERM");
101
+ }
102
+ }
103
+ export function readProcessStartTime(pid) {
104
+ try {
105
+ const stat = readFileSync(`/proc/${String(pid)}/stat`, "utf8");
106
+ const closeParen = stat.lastIndexOf(")");
107
+ return closeParen === -1 ? undefined : stat.slice(closeParen + 2).split(" ")[19];
108
+ }
109
+ catch {
110
+ return undefined;
111
+ }
112
+ }
113
+ async function readOwnershipRecord(markerPath) {
114
+ try {
115
+ return parseOwnershipRecord(await readFile(markerPath, "utf8"));
116
+ }
117
+ catch (error) {
118
+ if (isErrorCode(error, "ENOENT"))
119
+ return undefined;
120
+ throw error;
121
+ }
122
+ }
123
+ async function releaseOwnershipMarker(markerPath, record, logger) {
124
+ try {
125
+ const current = await readOwnershipRecord(markerPath);
126
+ if (current !== undefined && current !== "invalid" && current.pid === record.pid && current.startedAt === record.startedAt)
127
+ await rm(markerPath, { force: true });
128
+ }
129
+ catch (error) {
130
+ logger?.warn({ err: error, markerPath }, "could not release the session daemon ownership marker");
131
+ }
132
+ }
133
+ function isRecord(value) {
134
+ return typeof value === "object" && value !== null && !Array.isArray(value);
135
+ }
136
+ function isErrorCode(error, code) {
137
+ return isRecord(error) && error["code"] === code;
138
+ }
139
+ //# sourceMappingURL=sessiondStateOwnership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessiondStateOwnership.js","sourceRoot":"","sources":["../../../src/server/sessiond/sessiondStateOwnership.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { sendWorkspaceRequestError } from "../workspaces/workspaceRouteErrors.js";
2
+ import { resolveSessiondProject } from "./managementProjectResolver.js";
3
+ /** Internal sessiond protocol; browser-facing routes consume it through a typed client. */
4
+ export function registerWorkspaceCatalogRoutes(app, dependencies, prefix = "/workspace-catalog") {
5
+ app.get(`${prefix}/provider-runtime`, () => dependencies.providerRuntime);
6
+ app.get(`${prefix}/projects/:projectId/workspaces`, async (request, reply) => {
7
+ try {
8
+ const project = await resolveSessiondProject(request.headers, request.params.projectId, dependencies);
9
+ return await dependencies.workspaces.resolve(project);
10
+ }
11
+ catch (error) {
12
+ return sendWorkspaceRequestError(reply, error, projectErrorStatus(error));
13
+ }
14
+ });
15
+ app.get(`${prefix}/projects/:projectId/workspaces/:workspaceId`, async (request, reply) => {
16
+ try {
17
+ const project = await resolveSessiondProject(request.headers, request.params.projectId, dependencies);
18
+ const resolution = await dependencies.workspaces.resolve(project);
19
+ const workspace = resolution.workspaces.find((candidate) => candidate.id === request.params.workspaceId);
20
+ if (workspace === undefined)
21
+ return await reply.code(404).send({ error: "Workspace not found" });
22
+ return workspace;
23
+ }
24
+ catch (error) {
25
+ return sendWorkspaceRequestError(reply, error, projectErrorStatus(error));
26
+ }
27
+ });
28
+ }
29
+ function projectErrorStatus(error) {
30
+ if (!(error instanceof Error))
31
+ return 500;
32
+ if (error.message === "Project not found")
33
+ return 404;
34
+ if (error.message === "Project is not authorized for this management session")
35
+ return 403;
36
+ return 500;
37
+ }
38
+ //# sourceMappingURL=workspaceCatalogRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceCatalogRoutes.js","sourceRoot":"","sources":["../../../src/server/sessiond/workspaceCatalogRoutes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAA8B,MAAM,gCAAgC,CAAC;AAapG,2FAA2F;AAC3F,MAAM,UAAU,8BAA8B,CAC5C,GAAoB,EACpB,YAA+C,EAC/C,MAAM,GAAG,oBAAoB;IAE7B,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,mBAAmB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAE1E,GAAG,CAAC,GAAG,CAAoC,GAAG,MAAM,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9G,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACtG,OAAO,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAyD,GAAG,MAAM,8CAA8C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAChJ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACtG,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzG,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACjG,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,KAAK,uDAAuD;QAAE,OAAO,GAAG,CAAC;IAC1F,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { parseWorkspaceRemovalRequest, WORKSPACE_REMOVAL_REQUEST_BODY_MAX_BYTES, } from "../../shared/workspaceRemovalProtocol.js";
2
+ import { requestCancellation } from "../requestCancellation.js";
3
+ import { managementToolAllowed } from "../managementEmbed.js";
4
+ import { eventScopeFromManagementContext } from "../realtime/sessionEventScope.js";
5
+ import { workspaceRemovalHttpStatus } from "../workspaces/workspaceRemovalService.js";
6
+ import { managementContextFromSessiondHeaders, resolveSessiondProject } from "./managementProjectResolver.js";
7
+ /** Internal sessiond endpoint for host-orchestrated provider workspace removal. */
8
+ export function registerWorkspaceRemovalRoutes(app, dependencies, prefix = "/workspace-removals") {
9
+ app.delete(`${prefix}/projects/:projectId/workspaces/:workspaceId`, { bodyLimit: WORKSPACE_REMOVAL_REQUEST_BODY_MAX_BYTES }, async (request, reply) => {
10
+ let precondition;
11
+ try {
12
+ precondition = parseWorkspaceRemovalRequest(request.body).precondition;
13
+ }
14
+ catch (error) {
15
+ return reply.code(400).send({ error: errorMessage(error) });
16
+ }
17
+ const managementContext = managementContextFromSessiondHeaders(request.headers);
18
+ if (managementContext !== undefined && !managementToolAllowed(managementContext, "terminal-command-runs")) {
19
+ return reply.code(403).send({ error: "Terminal command runs are disabled in management embed mode" });
20
+ }
21
+ let project;
22
+ try {
23
+ project = await resolveSessiondProject(request.headers, request.params.projectId, dependencies);
24
+ }
25
+ catch (error) {
26
+ const message = errorMessage(error);
27
+ return reply.code(projectErrorStatus(message)).send({ error: message });
28
+ }
29
+ const cancellation = requestCancellation(request, reply);
30
+ try {
31
+ const result = await dependencies.removals.remove(project, request.params.workspaceId, precondition, cancellation.signal, managementContext);
32
+ dependencies.onWorkspacesMutated?.(eventScopeFromManagementContext(managementContext));
33
+ return result;
34
+ }
35
+ catch (error) {
36
+ return await removalRequestFailed(reply, error);
37
+ }
38
+ finally {
39
+ cancellation.dispose();
40
+ }
41
+ });
42
+ }
43
+ function removalRequestFailed(reply, error) {
44
+ return reply.code(workspaceRemovalHttpStatus(error)).send({ error: errorMessage(error) });
45
+ }
46
+ function errorMessage(error) {
47
+ return error instanceof Error ? error.message : String(error);
48
+ }
49
+ function projectErrorStatus(message) {
50
+ if (message === "Project not found")
51
+ return 404;
52
+ if (message === "Project is not authorized for this management session")
53
+ return 403;
54
+ return 500;
55
+ }
56
+ //# sourceMappingURL=workspaceRemovalRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceRemovalRoutes.js","sourceRoot":"","sources":["../../../src/server/sessiond/workspaceRemovalRoutes.ts"],"names":[],"mappings":"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"}