@chainingintention/pi-web-cn 1.202608.9 → 1.202608.11

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 -14
  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 +13 -6
  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
@@ -2,11 +2,13 @@
2
2
  import { mkdir, rm } from "node:fs/promises";
3
3
  import { dirname, join } from "node:path";
4
4
  import { homedir } from "node:os";
5
- import { ModelRuntime } from "@earendil-works/pi-coding-agent";
6
5
  import Fastify from "fastify";
7
6
  import fastifyWebsocket from "@fastify/websocket";
8
7
  import { WorkspaceActivityService } from "./activity/workspaceActivityService.js";
9
8
  import { registerWorkspaceActivityRoutes } from "./activity/workspaceActivityRoutes.js";
9
+ import { MachineStatusService } from "./status/machineStatusService.js";
10
+ import { registerMachineStatusRoutes } from "./status/machineStatusRoutes.js";
11
+ import { CachedWorkspaceAttribution } from "./status/workspaceAttribution.js";
10
12
  import { SessionEventHub } from "./realtime/sessionEventHub.js";
11
13
  import { AuthService } from "./sessions/authService.js";
12
14
  import { ProjectAuthService } from "./sessions/projectAuthService.js";
@@ -23,8 +25,12 @@ import { TerminalService } from "./terminals/terminalService.js";
23
25
  import { registerTerminalRoutes } from "./terminals/terminalRoutes.js";
24
26
  import { getPiWebRuntimeComponent } from "./piWebStatus.js";
25
27
  import { SESSIOND_RUNTIME_CAPABILITIES } from "../shared/capabilities.js";
26
- import { DEFAULT_MANAGEMENT_AUDIT_INDEX_PREFIX, DEFAULT_MANAGEMENT_AUDIT_RETENTION_DAYS, DEFAULT_NORMAL_TOOL_AUDIT_MAX_ROWS, DEFAULT_NORMAL_TOOL_AUDIT_RETENTION_DAYS, agentSessionDirEnvKeys, effectivePiWebConfig, maxUploadBytes, piWebDataDir } from "../config.js";
28
+ import { DEFAULT_MANAGEMENT_AUDIT_INDEX_PREFIX, DEFAULT_MANAGEMENT_AUDIT_RETENTION_DAYS, DEFAULT_NORMAL_TOOL_AUDIT_MAX_ROWS, DEFAULT_NORMAL_TOOL_AUDIT_RETENTION_DAYS, PI_CODING_AGENT_DIR_ENV, PI_CODING_AGENT_SESSION_DIR_ENV, agentSessionDirEnvKeys, agentSessionDirEnvOverride, effectivePiWebConfig, maxUploadBytes, piWebDataDir } from "../config.js";
27
29
  import { createActiveAgentProfileDescriptor } from "../sessiond/activeAgentProfile.js";
30
+ import { scrubNonAgentVisibleEnvKeys } from "./sessiond/agentProcessEnvironment.js";
31
+ import { claimSessiondStateOwnership } from "./sessiond/sessiondStateOwnership.js";
32
+ import { dockerEnvironmentPromptSections } from "./sessions/dockerEnvironmentFacts.js";
33
+ import { PI_WEB_SESSION_ENV, sessionEnvironmentPromptSections } from "./sessions/sessionEnvironmentFacts.js";
28
34
  import { runSessionDaemonStartup } from "./sessiond/sessionDaemonStartup.js";
29
35
  import { requestLoggerOptions } from "./requestLogging.js";
30
36
  import { WorkbenchAccessStateStore } from "./workbench/accessStateStore.js";
@@ -34,29 +40,69 @@ import { WorkbenchMcpClient } from "./workbench/mcpClient.js";
34
40
  import { WorkbenchSkillSynchronizer } from "./workbench/skillSync.js";
35
41
  import { NormalToolAuditStore, normalToolAuditDatabasePath } from "./audit/normalToolAuditStore.js";
36
42
  import { ManagementAuditStore } from "./audit/managementAuditStore.js";
37
- import { managementProjectIdForCwd } from "./managementEmbed.js";
38
- const daemonEnvironment = Object.freeze({ ...process.env });
43
+ import { managementProjectIdForCwd, projectsFromManagedEmbedContext } from "./managementEmbed.js";
44
+ import { managementContextFromEventScope, NORMAL_SESSION_EVENT_SCOPE } from "./realtime/sessionEventScope.js";
45
+ import { PiWebPluginCatalog } from "./piWebPluginCatalog.js";
46
+ import { loadServerPluginRecoveryConfig } from "../serverPluginRecovery.js";
47
+ import { createServerPluginExecFile } from "./plugins/serverPluginExec.js";
48
+ import { createServerPluginRuntime } from "./plugins/serverPluginRuntime.js";
49
+ import { eligibleWorkspaceProviderContributions, WorkspaceProviderRegistry } from "./workspaces/workspaceProviderRegistry.js";
50
+ import { createWorkspaceProviderRuntimeSnapshot } from "./workspaces/workspaceCatalog.js";
51
+ import { WorkspaceRemovalService } from "./workspaces/workspaceRemovalService.js";
52
+ import { registerPluginBackendRoutes } from "./sessiond/pluginBackendRoutes.js";
53
+ import { registerWorkspaceCatalogRoutes } from "./sessiond/workspaceCatalogRoutes.js";
54
+ import { registerWorkspaceRemovalRoutes } from "./sessiond/workspaceRemovalRoutes.js";
55
+ const daemonEnvironment = { ...process.env };
56
+ const serverPluginRecovery = loadServerPluginRecoveryConfig({ env: daemonEnvironment });
39
57
  const { config } = effectivePiWebConfig({ env: daemonEnvironment });
58
+ // The embedded Pi SDK and every child process use the same resolved profile.
59
+ daemonEnvironment[PI_CODING_AGENT_DIR_ENV] = config.agent.dir;
60
+ process.env[PI_CODING_AGENT_DIR_ENV] = config.agent.dir;
61
+ const sessionDirOverride = agentSessionDirEnvOverride(daemonEnvironment, config.agent.command);
62
+ if (sessionDirOverride !== undefined) {
63
+ daemonEnvironment[PI_CODING_AGENT_SESSION_DIR_ENV] = sessionDirOverride;
64
+ process.env[PI_CODING_AGENT_SESSION_DIR_ENV] = sessionDirOverride;
65
+ }
66
+ process.env[PI_WEB_SESSION_ENV] = "1";
67
+ daemonEnvironment[PI_WEB_SESSION_ENV] = "1";
68
+ scrubNonAgentVisibleEnvKeys(process.env);
69
+ let stateOwnership;
40
70
  const activeAgentProfile = createActiveAgentProfileDescriptor({
41
71
  command: config.agent.command,
42
72
  dir: config.agent.dir,
43
73
  sessionDirEnvKeys: agentSessionDirEnvKeys(config.agent.command),
44
74
  });
45
75
  const app = Fastify({ logger: requestLoggerOptions(), bodyLimit: maxUploadBytes(daemonEnvironment, config) });
76
+ const serverPluginCatalog = new PiWebPluginCatalog({
77
+ cwd: process.cwd(),
78
+ agentDir: activeAgentProfile.dir,
79
+ configProvider: () => config,
80
+ warningSink: (message) => { app.log.warn({ component: "server-plugins" }, message); },
81
+ });
46
82
  await app.register(fastifyWebsocket);
47
83
  await runSessionDaemonStartup({
48
84
  logger: app.log,
49
85
  async createRuntime() {
86
+ stateOwnership = await claimSessiondStateOwnership({ env: daemonEnvironment, logger: app.log });
50
87
  const eventHub = new SessionEventHub();
51
- const workspaceActivity = new WorkspaceActivityService(eventHub);
88
+ const workspaceActivity = new WorkspaceActivityService(eventHub, (scope) => { machineStatus.notifyChanged(scope); });
52
89
  const projects = new ProjectService(new ProjectStore());
53
90
  const workspaces = new WorkspaceService();
91
+ const serverPlugins = await createServerPluginRuntime({
92
+ catalog: serverPluginCatalog,
93
+ ...(serverPluginRecovery.safeStart === undefined ? {} : { safeStart: serverPluginRecovery.safeStart }),
94
+ logger: app.log,
95
+ execFile: createServerPluginExecFile({ env: daemonEnvironment }),
96
+ });
97
+ const providerHealth = await serverPlugins.inspectHealth();
98
+ const workspaceProviders = new WorkspaceProviderRegistry({
99
+ contributions: eligibleWorkspaceProviderContributions(serverPlugins.providerContributions(), providerHealth),
100
+ logger: app.log,
101
+ });
102
+ const workspaceProviderRuntime = createWorkspaceProviderRuntimeSnapshot(serverPlugins.healthRecords(), providerHealth, serverPlugins.safeStartLevel(), serverPlugins.catalogDiagnostics());
54
103
  const projectAuth = new ProjectAuthService({ projects, workspaces });
55
- const managementAuth = new AuthService({
56
- modelRuntime: await ModelRuntime.create({
57
- authPath: join(piWebDataDir(), "management-embed", "auth.json"),
58
- modelsPath: join(activeAgentProfile.dir, "models.json"),
59
- }),
104
+ const managementAuth = await AuthService.create({
105
+ agentDir: join(piWebDataDir(), "management-embed"),
60
106
  });
61
107
  const accessStates = new WorkbenchAccessStateStore();
62
108
  const normalAuditConfig = config.auditLog?.normalMode;
@@ -116,8 +162,16 @@ await runSessionDaemonStartup({
116
162
  skills: new WorkbenchSkillSynchronizer(config.workbenchIntegration, client, piWebDataDir(daemonEnvironment), fetch, app.log),
117
163
  };
118
164
  })();
165
+ const projectsForScope = (scope = NORMAL_SESSION_EVENT_SCOPE) => {
166
+ const managementContext = managementContextFromEventScope(scope);
167
+ if (managementContext === undefined)
168
+ return projects.list();
169
+ if (config.managementEmbed?.enabled !== true)
170
+ throw new Error("Management embed mode is not configured");
171
+ return projectsFromManagedEmbedContext(config.managementEmbed.projectRoot ?? join(homedir(), "PiWeb"), managementContext);
172
+ };
119
173
  const spawnTargets = config.spawnSessions
120
- ? new ProjectScopedSpawnTargetResolver({ projects, workspaces })
174
+ ? new ProjectScopedSpawnTargetResolver({ projects: { list: projectsForScope }, workspaces })
121
175
  : undefined;
122
176
  const sessions = new PiSessionService(eventHub, {
123
177
  modelRuntime: managementAuth.modelRuntime,
@@ -136,6 +190,7 @@ await runSessionDaemonStartup({
136
190
  dataDir: piWebDataDir(),
137
191
  agentDir: activeAgentProfile.dir,
138
192
  workspaceActivity,
193
+ onUnreadChanged: (scope) => { machineStatus.notifyChanged(scope); },
139
194
  logger: app.log,
140
195
  ...(normalToolAudit === undefined ? {} : { normalToolAudit }),
141
196
  ...(managementAudit === undefined ? {} : {
@@ -144,7 +199,12 @@ await runSessionDaemonStartup({
144
199
  }),
145
200
  ...(spawnTargets === undefined ? {} : { spawnTargets }),
146
201
  subsessionsEnabled: spawnTargets !== undefined && config.subsessions,
202
+ askUserEnabled: config.askUser,
147
203
  extensionDialogsTimeoutMs: config.extensionDialogsTimeoutMs,
204
+ appendSystemPromptSections: [
205
+ ...sessionEnvironmentPromptSections({ env: daemonEnvironment, enabled: config.environmentFacts }),
206
+ ...dockerEnvironmentPromptSections({ env: daemonEnvironment, enabled: config.environmentFacts, logger: app.log }),
207
+ ],
148
208
  ...(workbench === undefined ? {} : { workbench }),
149
209
  sessionManager: createPiSessionManagerGateway({
150
210
  agentDir: activeAgentProfile.dir,
@@ -152,21 +212,43 @@ await runSessionDaemonStartup({
152
212
  sessionDirEnvKeys: activeAgentProfile.sessionDirEnvKeys,
153
213
  }),
154
214
  });
215
+ const statusAttribution = new CachedWorkspaceAttribution({
216
+ projects: { list: projectsForScope },
217
+ workspaces: { list: (project) => workspaceProviders.list(project) },
218
+ logger: app.log,
219
+ });
220
+ const machineStatus = new MachineStatusService({
221
+ activity: workspaceActivity,
222
+ unread: { catalogSnapshot: (scope) => sessions.unreadCatalogForScope(scope ?? "normal") },
223
+ attribution: statusAttribution,
224
+ publisher: { publish: (snapshot, scope) => { eventHub.publishRealtime({ type: "machine.status", status: snapshot }, scope); } },
225
+ logger: app.log,
226
+ });
227
+ eventHub.setGlobalJoinFrame((scope) => ({ type: "machine.status", status: machineStatus.snapshot(scope) }));
228
+ machineStatus.notifyChanged();
155
229
  projectAuth.subscribe((change) => { sessions.applyAuthChange(change); });
156
230
  managementAuth.subscribe((change) => { sessions.applyAuthChange(change); });
157
231
  const terminals = new TerminalService(eventHub, workspaceActivity);
232
+ const workspaceRemovals = new WorkspaceRemovalService(workspaceProviders, terminals);
158
233
  const runtimeComponent = Object.freeze({
159
234
  ...getPiWebRuntimeComponent("sessiond", SESSIOND_RUNTIME_CAPABILITIES),
160
235
  activeAgentProfile,
161
236
  });
162
- return { eventHub, workspaceActivity, projectAuth, managementAuth, sessions, terminals, accessStates, normalToolAudit, managementAudit, activeAgentProfile, runtimeComponent };
237
+ return { eventHub, machineStatus, statusAttribution, workspaceActivity, projectAuth, managementAuth, sessions, terminals, accessStates, normalToolAudit, managementAudit, activeAgentProfile, runtimeComponent, serverPlugins, workspaceProviders, workspaceProviderRuntime, workspaceRemovals, projects };
163
238
  },
164
- registerRoutes({ eventHub, workspaceActivity, projectAuth, managementAuth, sessions, terminals, accessStates, runtimeComponent }) {
239
+ registerRoutes({ eventHub, machineStatus, statusAttribution, workspaceActivity, projectAuth, managementAuth, sessions, terminals, accessStates, runtimeComponent, projects, workspaceProviders, workspaceProviderRuntime, workspaceRemovals }) {
165
240
  registerWorkspaceActivityRoutes(app, workspaceActivity);
241
+ registerMachineStatusRoutes(app, machineStatus);
166
242
  registerAuthRoutes(app, { normal: projectAuth, management: managementAuth });
167
243
  registerSessionRoutes(app, sessions, eventHub);
168
244
  registerTerminalRoutes(app, terminals);
169
245
  registerWorkbenchAccessStateRoutes(app, accessStates);
246
+ const managementProjectRoot = config.managementEmbed?.enabled === true
247
+ ? config.managementEmbed.projectRoot ?? join(homedir(), "PiWeb")
248
+ : undefined;
249
+ registerWorkspaceCatalogRoutes(app, { projects, workspaces: workspaceProviders, providerRuntime: workspaceProviderRuntime, managementProjectRoot });
250
+ registerPluginBackendRoutes(app, { projects, backends: workspaceProviders, managementProjectRoot, onWorkspacesMutated: (scope) => { statusAttribution.invalidate(); machineStatus.notifyChanged(scope); } });
251
+ registerWorkspaceRemovalRoutes(app, { projects, removals: workspaceRemovals, managementProjectRoot, onWorkspacesMutated: (scope) => { statusAttribution.invalidate(); machineStatus.notifyChanged(scope); } });
170
252
  app.get("/health", () => ({
171
253
  ok: true,
172
254
  activeSessions: sessions.activeCount(),
@@ -181,7 +263,7 @@ await runSessionDaemonStartup({
181
263
  }));
182
264
  app.get("/runtime", () => runtimeComponent);
183
265
  },
184
- async listen({ projectAuth, managementAuth, sessions, terminals, normalToolAudit, managementAudit }) {
266
+ async listen({ projectAuth, managementAuth, sessions, terminals, normalToolAudit, managementAudit, serverPlugins }) {
185
267
  let shuttingDown = false;
186
268
  async function shutdown(signal) {
187
269
  if (shuttingDown)
@@ -189,6 +271,7 @@ await runSessionDaemonStartup({
189
271
  shuttingDown = true;
190
272
  app.log.info({ signal }, "shutting down session daemon");
191
273
  terminals.dispose();
274
+ await serverPlugins.stop();
192
275
  await projectAuth.dispose();
193
276
  managementAuth.dispose();
194
277
  await sessions.dispose();
@@ -204,6 +287,7 @@ await runSessionDaemonStartup({
204
287
  catch (error) {
205
288
  app.log.info({ error: error instanceof Error ? error.message : String(error) }, "failed to flush management audit Elasticsearch queue");
206
289
  }
290
+ await stateOwnership?.release();
207
291
  await app.close();
208
292
  }
209
293
  process.once("SIGINT", (signal) => { void shutdown(signal); });
@@ -1 +1 @@
1
- {"version":3,"file":"sessiond.js","sourceRoot":"","sources":["../../src/server/sessiond.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessiond.js","sourceRoot":"","sources":["../../src/server/sessiond.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,qCAAqC,EAAE,uCAAuC,EAAE,kCAAkC,EAAE,wCAAwC,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9V,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAA+B,MAAM,sCAAsC,CAAC;AAChH,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAC7G,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAC9H,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,MAAM,iBAAiB,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChE,MAAM,oBAAoB,GAAG,8BAA8B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACxF,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACpE,6EAA6E;AAC7E,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACxD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/F,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;IACrC,iBAAiB,CAAC,+BAA+B,CAAC,GAAG,kBAAkB,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,GAAG,kBAAkB,CAAC;AACpE,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC;AACtC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC;AAC5C,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzC,IAAI,cAAkD,CAAC;AACvD,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;IAC7B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;IACrB,iBAAiB,EAAE,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;CAChE,CAAC,CAAC;AACH,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9G,MAAM,mBAAmB,GAAG,IAAI,kBAAkB,CAAC;IACjD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,QAAQ,EAAE,kBAAkB,CAAC,GAAG;IAChC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM;IAC5B,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACtF,CAAC,CAAC;AACH,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAErC,MAAM,uBAAuB,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,GAAG;IACf,KAAK,CAAC,aAAa;QACjB,cAAc,GAAG,MAAM,2BAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC;YACpD,OAAO,EAAE,mBAAmB;YAC5B,GAAG,CAAC,oBAAoB,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,SAAS,EAAE,CAAC;YACtG,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,QAAQ,EAAE,0BAA0B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC;QAC3D,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC;YACvD,aAAa,EAAE,sCAAsC,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,cAAc,CAAC;YAC5G,MAAM,EAAE,GAAG,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,sCAAsC,CACrE,aAAa,CAAC,aAAa,EAAE,EAC7B,cAAc,EACd,aAAa,CAAC,cAAc,EAAE,EAC9B,aAAa,CAAC,kBAAkB,EAAE,CACnC,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,kBAAkB,CAAC;SACnD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;QACtD,IAAI,eAAiD,CAAC;QACtD,IAAI,iBAAiB,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,eAAe,GAAG,IAAI,oBAAoB,CAAC;oBACzC,IAAI,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;oBACpD,aAAa,EAAE,iBAAiB,EAAE,aAAa,IAAI,wCAAwC;oBAC3F,OAAO,EAAE,iBAAiB,EAAE,OAAO,IAAI,kCAAkC;oBACzE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,sDAAsD,CAAC,CAAC;oBAC1I,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,wDAAwD,CAAC,CAAC;YAC5I,CAAC;QACH,CAAC;QACD,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC9D,IAAI,eAAiD,CAAC;QACtD,IAAI,qBAAqB,EAAE,OAAO,KAAK,IAAI,IAAI,qBAAqB,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3F,MAAM,WAAW,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC;YACzE,MAAM,aAAa,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YACzF,MAAM,QAAQ,GAAG,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YACjG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC;gBACpF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yHAAyH,CAAC,CAAC;YAC1I,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,IAAI,oBAAoB,CAAC;oBACzC,OAAO,EAAE,qBAAqB,CAAC,OAAO;oBACtC,WAAW,EAAE,qBAAqB,CAAC,WAAW,IAAI,qCAAqC;oBACvF,aAAa,EAAE,qBAAqB,CAAC,aAAa,IAAI,uCAAuC;oBAC7F,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;oBAC3C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBAC3G,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,iDAAiD,CAAC,CAAC,CAAC,CAAC;iBAC5J,CAAC,CAAC;gBACH,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,6DAA6D,CAAC,CAAC;gBACjJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;YAC9E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC,OAAO;gBAC5C,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,IAAI,MAAM;aACzE,CAAC,CAAC;YACH,OAAO;gBACL,YAAY;gBACZ,MAAM;gBACN,GAAG,EAAE,IAAI,kBAAkB,CAAC;oBAC1B,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,MAAM;oBAC1C,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,IAAI,MAAM;iBACrE,CAAC;gBACF,MAAM,EAAE,IAAI,0BAA0B,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;aAC7H,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,gBAAgB,GAAG,CAAC,KAAK,GAAG,0BAA0B,EAAE,EAAE;YAC9D,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,iBAAiB,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACzG,OAAO,+BAA+B,CACpC,MAAM,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAC9D,iBAAiB,CAClB,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa;YACvC,CAAC,CAAC,IAAI,gCAAgC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC;YAC5F,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE;YAC9C,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,sBAAsB,EAAE,cAAc,CAAC,YAAY;YACnD,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;YACrF,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC/B,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,kEAAkE;oBAClE,sDAAsD;oBACtD,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE;YACvB,QAAQ,EAAE,kBAAkB,CAAC,GAAG;YAChC,iBAAiB;YACjB,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;YAC7D,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvC,eAAe;gBACf,yBAAyB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC;aACtJ,CAAC;YACF,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACvD,kBAAkB,EAAE,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW;YACpE,cAAc,EAAE,MAAM,CAAC,OAAO;YAC9B,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,0BAA0B,EAAE;gBAC1B,GAAG,gCAAgC,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACjG,GAAG,+BAA+B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;aAClH;YACD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,cAAc,EAAE,6BAA6B,CAAC;gBAC5C,QAAQ,EAAE,kBAAkB,CAAC,GAAG;gBAChC,GAAG,EAAE,iBAAiB;gBACtB,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;aACxD,CAAC;SACH,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,0BAA0B,CAAC;YACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACpC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACnE,MAAM,EAAE,GAAG,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC;YAC7C,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE;YACzF,WAAW,EAAE,iBAAiB;YAC9B,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/H,MAAM,EAAE,GAAG,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5G,aAAa,CAAC,aAAa,EAAE,CAAC;QAC9B,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,GAAG,wBAAwB,CAAC,UAAU,EAAE,6BAA6B,CAAC;YACtE,kBAAkB;SACnB,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC7S,CAAC;IACD,cAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE;QAC3O,+BAA+B,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACxD,2BAA2B,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,kBAAkB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7E,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACvC,kCAAkC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI;YACpE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC;QACd,8BAA8B,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACpJ,2BAA2B,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7M,8BAA8B,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/M,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,IAAI;YACR,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE;gBACP,SAAS,EAAE,gBAAgB,CAAC,SAAS;gBACrC,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,GAAG,CAAC,gBAAgB,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC;gBAC7G,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,gBAAgB,CAAC,SAAS;aACtC;SACF,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE;QAChH,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,UAAU,QAAQ,CAAC,MAAsB;YAC5C,IAAI,YAAY;gBAAE,OAAO;YACzB,YAAY,GAAG,IAAI,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC;YACzD,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAC5B,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,eAAe,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,mDAAmD,CAAC,CAAC;YACvI,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,sDAAsD,CAAC,CAAC;YAC1I,CAAC;YACD,MAAM,cAAc,EAAE,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,MAAM,IAAI,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,WAAW,CAAC;QAEtE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -3,60 +3,24 @@ import { ModelRuntime } from "@earendil-works/pi-coding-agent";
3
3
  import { getLoginProviderOptions, getLogoutProviderOptions } from "./authProviderOptions.js";
4
4
  import { OAuthLoginFlowService } from "./oauthLoginFlowService.js";
5
5
  const noopLogger = { error() { } };
6
- /**
7
- * Serializes the `PI_OFFLINE` windows below, which is what keeps their
8
- * save/restore pairs properly nested. Two overlapping calls would otherwise both
9
- * capture the forced `"1"` and restore it, leaving the whole process offline
10
- * permanently. Owned by this module only; nothing else may mutate it.
11
- */
12
- let offlineRuntimeCreations = Promise.resolve();
13
6
  /**
14
7
  * Create the shared model runtime with runtime-owned network refreshes disabled.
15
8
  *
16
- * Upstream `ModelRuntime.refresh()`, `login()`, and `logout()` always refresh
17
- * with `allowNetwork: modelNetworkEnabled` by default, and `login()`/`logout()`
18
- * accept no abort signal. With the default (`PI_OFFLINE` unset) a single stalled
19
- * provider-catalog fetch can block those call paths for minutes — and, because
20
- * pi-web shares one runtime and pi coalesces per-provider refreshes, session
21
- * creation joins the same stalled fetch. Forcing `PI_OFFLINE` during construction makes every runtime-driven
22
- * refresh local-only; pi-web performs its own bounded catalog refreshes in the
23
- * background instead (see modelCatalogRefresher.ts).
24
- *
25
- * `modelNetworkEnabled` is computed once from the environment inside
26
- * `ModelRuntime.create()`, so the env var is the only lever upstream exposes.
27
- * Calls are queued so their env windows never overlap.
28
- */
29
- function createOfflineModelRuntime(options) {
30
- const created = offlineRuntimeCreations.then(() => forceOfflineWhile(() => ModelRuntime.create(options)));
31
- // A failed creation must not poison the queue; the caller still sees the rejection.
32
- offlineRuntimeCreations = created.then(() => undefined, () => undefined);
33
- return created;
34
- }
35
- /**
36
- * Force `PI_OFFLINE` for the duration of `create`, then restore what was there.
37
- *
38
- * `process.env` is process-wide, so this window is a real global side effect:
39
- * anything reading `PI_OFFLINE` while `create` awaits observes offline mode,
40
- * including upstream's package manager, tools manager, and version check. That
41
- * is acceptable because pi-web only builds runtimes during daemon startup and in
42
- * tests, and the window is one `ModelRuntime.create()` call — but it is why
43
- * callers must stay serialized rather than run concurrently.
9
+ * Pi 0.84 applies `allowModelNetwork` only to the create-time refresh, while
10
+ * login/logout still use an internal default derived from `PI_OFFLINE`. Pin
11
+ * that default locally without mutating process environment; explicit bounded
12
+ * background refreshes can still opt in with `allowNetwork: true`.
44
13
  */
45
- async function forceOfflineWhile(create) {
46
- const previous = process.env["PI_OFFLINE"];
47
- process.env["PI_OFFLINE"] = "1";
48
- try {
49
- return await create();
50
- }
51
- finally {
52
- if (previous === undefined)
53
- delete process.env["PI_OFFLINE"];
54
- else
55
- process.env["PI_OFFLINE"] = previous;
14
+ export async function createLocalOnlyModelRuntime(options = {}) {
15
+ const runtime = await ModelRuntime.create({ ...options, allowModelNetwork: false });
16
+ if (typeof Reflect.get(runtime, "modelNetworkEnabled") !== "boolean"
17
+ || !Reflect.set(runtime, "modelNetworkEnabled", false)) {
18
+ throw new Error("Unsupported Pi ModelRuntime network-default contract");
56
19
  }
20
+ return runtime;
57
21
  }
58
22
  export function createModelRuntimeForAgentDir(agentDir) {
59
- return createOfflineModelRuntime({
23
+ return createLocalOnlyModelRuntime({
60
24
  authPath: join(agentDir, "auth.json"),
61
25
  modelsPath: join(agentDir, "models.json"),
62
26
  });
@@ -73,7 +37,7 @@ export class AuthService {
73
37
  this.authFlows = deps.authFlows ?? new OAuthLoginFlowService({ logger: this.logger });
74
38
  }
75
39
  static async create(deps = {}) {
76
- const runtime = deps.runtime ?? deps.modelRuntime ?? (deps.agentDir === undefined ? await createOfflineModelRuntime({}) : await createModelRuntimeForAgentDir(deps.agentDir));
40
+ const runtime = deps.runtime ?? deps.modelRuntime ?? (deps.agentDir === undefined ? await createLocalOnlyModelRuntime() : await createModelRuntimeForAgentDir(deps.agentDir));
77
41
  const logger = deps.logger ?? noopLogger;
78
42
  const authFlows = deps.authFlows ?? new OAuthLoginFlowService({ logger });
79
43
  return new AuthService({ runtime, authFlows, logger });
@@ -89,7 +53,7 @@ export class AuthService {
89
53
  this.listeners.clear();
90
54
  }
91
55
  async authProviders(mode, authType) {
92
- await this.runtime.refresh();
56
+ await this.runtime.refresh({ allowNetwork: false });
93
57
  const providers = mode === "logout" ? await getLogoutProviderOptions(this.runtime) : getLoginProviderOptions(this.runtime, authType);
94
58
  return { providers };
95
59
  }
@@ -170,7 +134,7 @@ export class AuthService {
170
134
  }
171
135
  }
172
136
  async requireApiKeyLoginProvider(providerId) {
173
- await this.runtime.refresh();
137
+ await this.runtime.refresh({ allowNetwork: false });
174
138
  const provider = getLoginProviderOptions(this.runtime, "api_key").find((option) => option.id === providerId);
175
139
  if (provider !== undefined)
176
140
  return provider;
@@ -181,7 +145,7 @@ export class AuthService {
181
145
  throw new Error(`API key provider not found: ${providerId}`);
182
146
  }
183
147
  async requireOAuthLoginProvider(providerId) {
184
- await this.runtime.refresh();
148
+ await this.runtime.refresh({ allowNetwork: false });
185
149
  const provider = getLoginProviderOptions(this.runtime, "oauth").find((option) => option.id === providerId);
186
150
  if (provider === undefined)
187
151
  throw new Error(`OAuth provider not found: ${providerId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"authService.js","sourceRoot":"","sources":["../../../src/server/sessions/authService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authService.js","sourceRoot":"","sources":["../../../src/server/sessions/authService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Container environment facts appended to ordinary sessions running in a
3
+ * PI WEB Docker deployment. Facts come from the container's own mount table
4
+ * and existing Compose descriptors, so no new inherited control variables are
5
+ * needed merely to describe the deployment.
6
+ */
7
+ import { readFileSync } from "node:fs";
8
+ const MOUNT_INFO_PATH = "/proc/self/mountinfo";
9
+ const DATA_MOUNT = "/data";
10
+ const HOST_ROOT_MOUNT = "/host";
11
+ const DEV_WORKSPACE_MOUNT = "/workspace";
12
+ const DOCKER_SOCKET_MOUNTS = ["/run/docker.sock", "/var/run/docker.sock"];
13
+ const CONTAINER_INTERNAL_FS_TYPES = new Set([
14
+ "autofs",
15
+ "binfmt_misc",
16
+ "bpf",
17
+ "cgroup",
18
+ "cgroup2",
19
+ "configfs",
20
+ "debugfs",
21
+ "devpts",
22
+ "devtmpfs",
23
+ "fusectl",
24
+ "hugetlbfs",
25
+ "mqueue",
26
+ "nsfs",
27
+ "overlay",
28
+ "proc",
29
+ "pstore",
30
+ "ramfs",
31
+ "securityfs",
32
+ "selinuxfs",
33
+ "shm",
34
+ "sysfs",
35
+ "tmpfs",
36
+ "tracefs",
37
+ ]);
38
+ const CONTAINER_INTERNAL_TARGET_ROOTS = ["/proc", "/sys", "/dev", "/etc", "/run", "/var/run", "/tmp"];
39
+ export function readContainerMounts(path = MOUNT_INFO_PATH) {
40
+ return parseContainerMounts(readFileSync(path, "utf8"));
41
+ }
42
+ export function parseContainerMounts(mountInfo) {
43
+ const mounts = [];
44
+ for (const line of mountInfo.split("\n")) {
45
+ const separator = line.indexOf(" - ");
46
+ if (separator === -1)
47
+ continue;
48
+ const head = line.slice(0, separator).split(" ");
49
+ const target = head[4];
50
+ const options = head[5];
51
+ const fsType = line.slice(separator + 3).split(" ")[0];
52
+ if (target === undefined || options === undefined || fsType === undefined || fsType === "")
53
+ continue;
54
+ mounts.push({
55
+ target: unescapeMountField(target),
56
+ fsType,
57
+ readOnly: options.split(",").includes("ro"),
58
+ });
59
+ }
60
+ return mounts;
61
+ }
62
+ export function dockerEnvironmentFacts({ env, mounts }) {
63
+ if (!isDockerDeployment(env))
64
+ return undefined;
65
+ const devRepoRoot = nonEmptyEnv(env, "PI_WEB_DOCKER_DEV_REPO_ROOT");
66
+ const installDir = nonEmptyEnv(env, "PI_WEB_DOCKER_INSTALL_DIR");
67
+ const dockerCommand = devRepoRoot === undefined ? "pi-web-docker" : "pi-web-docker --dev";
68
+ const imageHookDir = devRepoRoot === undefined
69
+ ? `${installDir ?? "<install-dir>"}/custom-image.d/*.sh`
70
+ : `${devRepoRoot}/docker/custom-image.d/*.sh`;
71
+ const facts = [
72
+ "Shell commands, file edits, and installed tools act inside the PI WEB container, not on the Docker host.",
73
+ `The container filesystem is ephemeral: paths outside the mounts below are lost when the image is rebuilt or the containers are recreated (\`${dockerCommand} update\`).`,
74
+ ...persistentDataFact(mounts, env),
75
+ ...hostPathFacts(mounts),
76
+ ...hostRootFact(mounts),
77
+ ...dockerSocketFact(mounts),
78
+ ...hostExecFact(env),
79
+ ...devWorkspaceFacts(mounts, devRepoRoot),
80
+ `Distro packages and global npm installs made during a session are part of that ephemeral layer. Image tooling comes from the \`PI_WEB_EXTRA_ZYPPER_PACKAGES\` build input and the build hooks in ${imageHookDir}.`,
81
+ ];
82
+ return [
83
+ "<pi_web_docker_environment>",
84
+ "Facts about the environment this session runs in:",
85
+ ...facts.map((fact) => `- ${fact}`),
86
+ "</pi_web_docker_environment>",
87
+ ].join("\n");
88
+ }
89
+ export function dockerEnvironmentPromptSections(options) {
90
+ const { env, enabled, logger, readMountInfo } = options;
91
+ if (!enabled || !isDockerDeployment(env))
92
+ return [];
93
+ let mounts;
94
+ try {
95
+ mounts = readMountInfo === undefined ? readContainerMounts() : parseContainerMounts(readMountInfo());
96
+ }
97
+ catch (error) {
98
+ logger?.warn({ err: error, path: MOUNT_INFO_PATH }, "could not read the container mount table; Docker environment facts are omitted from session system prompts");
99
+ return [];
100
+ }
101
+ const facts = dockerEnvironmentFacts({ env, mounts });
102
+ return facts === undefined ? [] : [facts];
103
+ }
104
+ function isDockerDeployment(env) {
105
+ const value = env["PI_WEB_DOCKER_RUNTIME"];
106
+ return value !== undefined && value !== "" && value !== "0" && value.toLowerCase() !== "false";
107
+ }
108
+ function persistentDataFact(mounts, env) {
109
+ if (!mounts.some((mount) => mount.target === DATA_MOUNT))
110
+ return [];
111
+ const home = nonEmptyEnv(env, "HOME");
112
+ const configHome = nonEmptyEnv(env, "XDG_CONFIG_HOME");
113
+ const agentDir = nonEmptyEnv(env, "PI_CODING_AGENT_DIR");
114
+ const contents = [
115
+ ...(home === undefined ? [] : [`\`HOME=${home}\``]),
116
+ ...(configHome === undefined ? [] : [`\`XDG_CONFIG_HOME=${configHome}\``]),
117
+ ...(agentDir === undefined ? [] : [`the agent profile directory \`${agentDir}\``]),
118
+ ];
119
+ const detail = contents.length === 0 ? "" : ` It holds ${contents.join(", ")}.`;
120
+ return [`\`${DATA_MOUNT}\` is a persistent mount that survives image rebuilds.${detail}`];
121
+ }
122
+ function hostPathFacts(mounts) {
123
+ const paths = hostSharedMountTargets(mounts);
124
+ if (paths.length === 0)
125
+ return [];
126
+ return [`Docker host paths mounted read/write at the same absolute path inside and outside the container: ${paths.map((path) => `\`${path}\``).join(", ")}.`];
127
+ }
128
+ function hostSharedMountTargets(mounts) {
129
+ const candidates = mounts
130
+ .filter((mount) => !mount.readOnly && isHostPathMount(mount))
131
+ .map((mount) => mount.target)
132
+ .filter((target) => target !== DATA_MOUNT && target !== DEV_WORKSPACE_MOUNT && !isWithin(target, DEV_WORKSPACE_MOUNT))
133
+ .sort((left, right) => left.localeCompare(right));
134
+ return [...new Set(candidates)].filter((target, index, all) => !all.slice(0, index).some((outer) => isWithin(target, outer)));
135
+ }
136
+ function hostRootFact(mounts) {
137
+ const hostRoot = mounts.find((mount) => mount.target === HOST_ROOT_MOUNT);
138
+ if (hostRoot === undefined)
139
+ return [];
140
+ return [`The Docker host root filesystem is mounted at \`${HOST_ROOT_MOUNT}\`${hostRoot.readOnly ? " read-only" : ""}.`];
141
+ }
142
+ function dockerSocketFact(mounts) {
143
+ const socket = DOCKER_SOCKET_MOUNTS.find((path) => mounts.some((mount) => mount.target === path));
144
+ return socket === undefined ? [] : ["The Docker socket is mounted, so `docker` commands act on the Docker host's daemon and containers."];
145
+ }
146
+ function hostExecFact(env) {
147
+ const mode = nonEmptyEnv(env, "HOSTEXEC_MODE");
148
+ if (mode === undefined || mode === "disabled")
149
+ return ["`hostexec` is disabled in this deployment, so no command from this container runs on the Docker host."];
150
+ return ["`hostexec [--root] <command...>` runs a command on the Docker host, outside this container."];
151
+ }
152
+ function devWorkspaceFacts(mounts, devRepoRoot) {
153
+ if (!mounts.some((mount) => mount.target === DEV_WORKSPACE_MOUNT))
154
+ return [];
155
+ const hostPath = devRepoRoot === undefined ? "" : ` Its Docker host path is \`${devRepoRoot}\`.`;
156
+ const nested = mounts
157
+ .filter((mount) => mount.target !== DEV_WORKSPACE_MOUNT && isWithin(mount.target, DEV_WORKSPACE_MOUNT))
158
+ .map((mount) => `\`${mount.target}\``);
159
+ return [
160
+ `The PI WEB checkout this deployment runs is bind-mounted at \`${DEV_WORKSPACE_MOUNT}\`.${hostPath}`,
161
+ ...(nested.length === 0 ? [] : [`Inside it, ${nested.join(", ")} ${nested.length === 1 ? "is a separate container-managed mount" : "are separate container-managed mounts"}, not the host directory of the same path.`]),
162
+ ];
163
+ }
164
+ function isHostPathMount(mount) {
165
+ if (mount.target === "/" || !mount.target.startsWith("/"))
166
+ return false;
167
+ if (CONTAINER_INTERNAL_FS_TYPES.has(mount.fsType))
168
+ return false;
169
+ return !CONTAINER_INTERNAL_TARGET_ROOTS.some((root) => mount.target === root || isWithin(mount.target, root));
170
+ }
171
+ function isWithin(target, root) {
172
+ return target.startsWith(root.endsWith("/") ? root : `${root}/`);
173
+ }
174
+ function unescapeMountField(value) {
175
+ return value.replace(/\\(040|011|012|134)/g, (_match, code) => String.fromCharCode(Number.parseInt(code, 8)));
176
+ }
177
+ function nonEmptyEnv(env, key) {
178
+ const value = env[key];
179
+ return value === undefined || value === "" ? undefined : value;
180
+ }
181
+ //# sourceMappingURL=dockerEnvironmentFacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerEnvironmentFacts.js","sourceRoot":"","sources":["../../../src/server/sessions/dockerEnvironmentFacts.ts"],"names":[],"mappings":"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"}