@jmfederico/pi-web 1.202606.7 → 1.202607.1

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 (135) hide show
  1. package/README.md +14 -5
  2. package/dist/cli.js +291 -320
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/assets/CodeViewer-uASb28Y1.js +4 -0
  5. package/dist/client/assets/TerminalPanel-DfTmykFw.js +187 -0
  6. package/dist/client/assets/UnifiedDiffViewer-laQN1x7P.js +39 -0
  7. package/dist/client/assets/index-Dhapi0oR.js +3093 -0
  8. package/dist/client/assets/vendor-editor-core-vUi74DnD.js +12 -0
  9. package/dist/client/assets/vendor-editor-languages-DoaXUodB.js +46 -0
  10. package/dist/client/assets/vendor-editor-legacy-CYBnW6ZU.js +1 -0
  11. package/dist/client/assets/vendor-terminal-BrP-ENHg.css +1 -0
  12. package/dist/client/assets/vendor-terminal-D8k4UKM2.js +35 -0
  13. package/dist/client/index.html +9 -6
  14. package/dist/client/manifest.webmanifest +4 -4
  15. package/dist/config.js +144 -2
  16. package/dist/config.js.map +1 -1
  17. package/dist/docker/piWebDockerCommandPlan.js +211 -0
  18. package/dist/docker/piWebDockerCommandPlan.js.map +1 -0
  19. package/dist/nativeServices/serviceDoctor.js +480 -0
  20. package/dist/nativeServices/serviceDoctor.js.map +1 -0
  21. package/dist/nativeServices/serviceInstall.js +35 -0
  22. package/dist/nativeServices/serviceInstall.js.map +1 -0
  23. package/dist/nativeServices/servicePlan.js +358 -0
  24. package/dist/nativeServices/servicePlan.js.map +1 -0
  25. package/dist/nativeServices/serviceProbe.js +447 -0
  26. package/dist/nativeServices/serviceProbe.js.map +1 -0
  27. package/dist/nativeServices/serviceRendering.js +122 -0
  28. package/dist/nativeServices/serviceRendering.js.map +1 -0
  29. package/dist/pi-web-plugins/updates/pi-web-plugin.js +27 -5
  30. package/dist/pi-web-plugins/updates/updatesLogic.js +37 -5
  31. package/dist/piWebVersionReport.js +4 -0
  32. package/dist/piWebVersionReport.js.map +1 -1
  33. package/dist/plugin-api.d.ts +3 -1
  34. package/dist/server/activeAgentProfileProvider.js +25 -0
  35. package/dist/server/activeAgentProfileProvider.js.map +1 -0
  36. package/dist/server/app.js +69 -13
  37. package/dist/server/app.js.map +1 -1
  38. package/dist/server/browserMessageProjection.js +56 -0
  39. package/dist/server/browserMessageProjection.js.map +1 -0
  40. package/dist/server/configRoutes.js +147 -6
  41. package/dist/server/configRoutes.js.map +1 -1
  42. package/dist/server/machines/machineClient.js +19 -9
  43. package/dist/server/machines/machineClient.js.map +1 -1
  44. package/dist/server/machines/machinePluginProxyRoutes.js +7 -4
  45. package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
  46. package/dist/server/machines/machineProxyRoutes.js +76 -11
  47. package/dist/server/machines/machineProxyRoutes.js.map +1 -1
  48. package/dist/server/machines/machineRoutes.js +1 -1
  49. package/dist/server/machines/machineRoutes.js.map +1 -1
  50. package/dist/server/machines/machineService.js +6 -28
  51. package/dist/server/machines/machineService.js.map +1 -1
  52. package/dist/server/piPackageRoutes.js +91 -0
  53. package/dist/server/piPackageRoutes.js.map +1 -0
  54. package/dist/server/piPackageService.js +101 -0
  55. package/dist/server/piPackageService.js.map +1 -0
  56. package/dist/server/piWebPluginService.js +91 -20
  57. package/dist/server/piWebPluginService.js.map +1 -1
  58. package/dist/server/piWebReleaseLookupCache.js +37 -0
  59. package/dist/server/piWebReleaseLookupCache.js.map +1 -0
  60. package/dist/server/piWebStatus.js +90 -37
  61. package/dist/server/piWebStatus.js.map +1 -1
  62. package/dist/server/piWebStatusCache.js +19 -6
  63. package/dist/server/piWebStatusCache.js.map +1 -1
  64. package/dist/server/realtime/sessionEventHub.js +34 -7
  65. package/dist/server/realtime/sessionEventHub.js.map +1 -1
  66. package/dist/server/sessiond/sessionDaemonStartup.js +49 -0
  67. package/dist/server/sessiond/sessionDaemonStartup.js.map +1 -0
  68. package/dist/server/sessiond.js +88 -62
  69. package/dist/server/sessiond.js.map +1 -1
  70. package/dist/server/sessions/authProviderOptions.js +30 -32
  71. package/dist/server/sessions/authProviderOptions.js.map +1 -1
  72. package/dist/server/sessions/authRoutes.js +14 -4
  73. package/dist/server/sessions/authRoutes.js.map +1 -1
  74. package/dist/server/sessions/authService.js +89 -29
  75. package/dist/server/sessions/authService.js.map +1 -1
  76. package/dist/server/sessions/builtinCommands.js +1 -1
  77. package/dist/server/sessions/builtinCommands.js.map +1 -1
  78. package/dist/server/sessions/oauthLoginFlowService.js +176 -53
  79. package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
  80. package/dist/server/sessions/piSessionManagerGateway.js +22 -21
  81. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  82. package/dist/server/sessions/piSessionService.js +715 -127
  83. package/dist/server/sessions/piSessionService.js.map +1 -1
  84. package/dist/server/sessions/sessionArchiveMigration.js +590 -0
  85. package/dist/server/sessions/sessionArchiveMigration.js.map +1 -0
  86. package/dist/server/sessions/sessionArchiveStore.js +58 -26
  87. package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
  88. package/dist/server/sessions/sessionCommandService.js +16 -0
  89. package/dist/server/sessions/sessionCommandService.js.map +1 -1
  90. package/dist/server/sessions/sessionNameGenerator.js +27 -44
  91. package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
  92. package/dist/server/sessions/sessionRoutes.js +65 -3
  93. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  94. package/dist/server/sessions/sessionService.js +2 -0
  95. package/dist/server/sessions/sessionService.js.map +1 -0
  96. package/dist/server/sessions/spawnSessionTool.js +9 -4
  97. package/dist/server/sessions/spawnSessionTool.js.map +1 -1
  98. package/dist/server/sessions/spawnSubsessionTool.js +79 -32
  99. package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
  100. package/dist/server/terminals/terminalService.js +10 -4
  101. package/dist/server/terminals/terminalService.js.map +1 -1
  102. package/dist/server/workspaces/fileSuggestions.js +7 -3
  103. package/dist/server/workspaces/fileSuggestions.js.map +1 -1
  104. package/dist/sessiond/activeAgentProfile.js +31 -0
  105. package/dist/sessiond/activeAgentProfile.js.map +1 -0
  106. package/dist/sessiond/sessionDaemonClient.js +38 -0
  107. package/dist/sessiond/sessionDaemonClient.js.map +1 -1
  108. package/dist/shared/activeAgentProfile.js +76 -0
  109. package/dist/shared/activeAgentProfile.js.map +1 -0
  110. package/dist/shared/activity.js +0 -15
  111. package/dist/shared/activity.js.map +1 -1
  112. package/dist/shared/apiTypes.d.ts +160 -3
  113. package/dist/shared/apiTypes.js +6 -0
  114. package/dist/shared/apiTypes.js.map +1 -1
  115. package/dist/shared/capabilities.js +33 -2
  116. package/dist/shared/capabilities.js.map +1 -1
  117. package/dist/shared/federatedRoutes.js +14 -0
  118. package/dist/shared/federatedRoutes.js.map +1 -1
  119. package/dist/shared/piWebStatusParsing.js +26 -8
  120. package/dist/shared/piWebStatusParsing.js.map +1 -1
  121. package/dist/shared/thinkingLevels.d.ts +1 -1
  122. package/dist/shared/thinkingLevels.js +1 -1
  123. package/dist/shared/thinkingLevels.js.map +1 -1
  124. package/docs/config.md +75 -19
  125. package/docs/plugins.md +46 -18
  126. package/package.json +36 -32
  127. package/dist/client/assets/CodeViewer-CQU9mJ74.js +0 -4
  128. package/dist/client/assets/TerminalPanel-DtfVBsqI.js +0 -126
  129. package/dist/client/assets/UnifiedDiffViewer-BZQQK99S.js +0 -34
  130. package/dist/client/assets/index-CbE7df66.js +0 -2742
  131. package/dist/client/assets/vendor-editor-core-C7aWiQy0.js +0 -12
  132. package/dist/client/assets/vendor-editor-languages-EW34FfVy.js +0 -26
  133. package/dist/client/assets/vendor-editor-legacy-B4QLsWF8.js +0 -1
  134. package/dist/client/assets/vendor-terminal-DDGTF8rc.css +0 -1
  135. package/dist/client/assets/vendor-terminal-DjQ08hXu.js +0 -16
@@ -5,12 +5,15 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6
6
  <title>PI WEB</title>
7
7
  <meta name="theme-color" content="#0d1117" />
8
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
9
- <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
10
- <link rel="manifest" href="/manifest.webmanifest" />
8
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
9
+ <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
10
+ <link rel="manifest" href="./manifest.webmanifest" />
11
11
  <style>
12
12
  :root {
13
13
  color-scheme: dark;
14
+ --pi-control-font-size: 16px;
15
+ --pi-control-font-family: system-ui, sans-serif;
16
+ --pi-control-monospace-font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
14
17
  --pi-bg: #0d1117;
15
18
  --pi-surface: #161b22;
16
19
  --pi-surface-hover: #21262d;
@@ -50,9 +53,9 @@
50
53
  html, body { margin: 0; height: 100%; overflow: hidden; background: var(--pi-bg); color: var(--pi-text); }
51
54
  body { min-height: 100dvh; }
52
55
  </style>
53
- <script type="module" crossorigin src="/assets/index-CbE7df66.js"></script>
54
- <link rel="modulepreload" crossorigin href="/assets/vendor-editor-core-C7aWiQy0.js">
55
- <link rel="modulepreload" crossorigin href="/assets/vendor-editor-languages-EW34FfVy.js">
56
+ <script type="module" crossorigin src="./assets/index-Dhapi0oR.js"></script>
57
+ <link rel="modulepreload" crossorigin href="./assets/vendor-editor-core-vUi74DnD.js">
58
+ <link rel="modulepreload" crossorigin href="./assets/vendor-editor-languages-DoaXUodB.js">
56
59
  </head>
57
60
  <body>
58
61
  <pi-web-app></pi-web-app>
@@ -2,20 +2,20 @@
2
2
  "name": "PI WEB",
3
3
  "short_name": "PI WEB",
4
4
  "description": "Remote web UI and browser control plane for persistent Pi Coding Agent sessions.",
5
- "start_url": "/",
6
- "scope": "/",
5
+ "start_url": "./",
6
+ "scope": "./",
7
7
  "display": "standalone",
8
8
  "background_color": "#0d1117",
9
9
  "theme_color": "#0d1117",
10
10
  "icons": [
11
11
  {
12
- "src": "/pwa-icon-192.png",
12
+ "src": "./pwa-icon-192.png",
13
13
  "sizes": "192x192",
14
14
  "type": "image/png",
15
15
  "purpose": "any maskable"
16
16
  },
17
17
  {
18
- "src": "/pwa-icon-512.png",
18
+ "src": "./pwa-icon-512.png",
19
19
  "sizes": "512x512",
20
20
  "type": "image/png",
21
21
  "purpose": "any maskable"
package/dist/config.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { homedir } from "node:os";
3
- import { dirname, isAbsolute, join, resolve } from "node:path";
3
+ import { basename, dirname, isAbsolute, join, normalize, resolve } from "node:path";
4
+ import { isPiCompanionCommand, usesPiCodingAgentStateCompatibility } from "./shared/activeAgentProfile.js";
4
5
  import { isPiWebPluginId, piWebPluginIdPattern } from "./shared/pluginIds.js";
6
+ export { isPiCompanionCommand };
5
7
  export function defaultPiWebConfigPath(env = process.env) {
6
8
  const xdgConfigHome = env["XDG_CONFIG_HOME"];
7
9
  return join(xdgConfigHome !== undefined && xdgConfigHome !== "" ? xdgConfigHome : join(homedir(), ".config"), "pi-web", "config.json");
@@ -16,6 +18,41 @@ export function defaultPiWebDataDir() {
16
18
  */
17
19
  export const DEFAULT_MAX_UPLOAD_BYTES = 64 * 1024 * 1024;
18
20
  export const DEFAULT_UPLOADS_FOLDER = ".pi-web/uploads";
21
+ export const DEFAULT_AGENT_COMMAND = "pi";
22
+ export const PI_WEB_AGENT_COMMAND_ENV = "PI_WEB_AGENT_COMMAND";
23
+ export const PI_WEB_AGENT_DIR_ENV = "PI_WEB_AGENT_DIR";
24
+ export const PI_WEB_AGENT_SESSION_DIR_ENV = "PI_WEB_AGENT_SESSION_DIR";
25
+ export const PI_CODING_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
26
+ export const PI_CODING_AGENT_SESSION_DIR_ENV = "PI_CODING_AGENT_SESSION_DIR";
27
+ export function effectiveAgentConfig(env = process.env, config = {}) {
28
+ const command = parseAgentCommand(envValue(env, PI_WEB_AGENT_COMMAND_ENV) ?? config.agent?.command ?? DEFAULT_AGENT_COMMAND, "agent.command", "environment", "current");
29
+ const configuredDir = envValue(env, PI_WEB_AGENT_DIR_ENV) ?? (usesPiCodingAgentStateCompatibility(command) ? envValue(env, PI_CODING_AGENT_DIR_ENV) : undefined) ?? config.agent?.dir ?? defaultAgentDirForCommand(command, env);
30
+ return {
31
+ command,
32
+ dir: resolveAgentDirPath(configuredDir, env, "agent.dir", "environment"),
33
+ sessionDirEnvKeys: agentSessionDirEnvKeys(command),
34
+ };
35
+ }
36
+ export function agentSessionDirEnvKeys(command = DEFAULT_AGENT_COMMAND) {
37
+ return uniqueStrings([
38
+ PI_WEB_AGENT_SESSION_DIR_ENV,
39
+ ...(usesPiCodingAgentStateCompatibility(command) ? [PI_CODING_AGENT_SESSION_DIR_ENV] : []),
40
+ ]);
41
+ }
42
+ export function agentDirEnvSource(env) {
43
+ if (isEnvSet(env[PI_WEB_AGENT_DIR_ENV]))
44
+ return "pi-web";
45
+ if (isEnvSet(env[PI_CODING_AGENT_DIR_ENV]))
46
+ return "pi-compatibility";
47
+ return undefined;
48
+ }
49
+ export function hasAgentDirEnvOverride(env, command = DEFAULT_AGENT_COMMAND) {
50
+ const source = agentDirEnvSource(env);
51
+ return source === "pi-web" || (source === "pi-compatibility" && usesPiCodingAgentStateCompatibility(command));
52
+ }
53
+ export function hasAgentSessionDirEnvOverride(env, command = DEFAULT_AGENT_COMMAND) {
54
+ return agentSessionDirEnvKeys(command).some((key) => isEnvSet(env[key]));
55
+ }
19
56
  export function effectiveUploadsConfig(config = {}) {
20
57
  return { defaultFolder: config.uploads?.defaultFolder ?? DEFAULT_UPLOADS_FOLDER };
21
58
  }
@@ -53,12 +90,15 @@ export function loadPiWebConfig(options = {}) {
53
90
  return { path, exists: true, config: parsePiWebConfig(parsed, path) };
54
91
  }
55
92
  export function effectivePiWebConfig(options = {}) {
56
- const loaded = loadPiWebConfig(options);
93
+ return resolveEffectivePiWebConfig(loadPiWebConfig(options), options);
94
+ }
95
+ export function resolveEffectivePiWebConfig(loaded, options = {}) {
57
96
  const env = options.env ?? process.env;
58
97
  const host = env["PI_WEB_HOST"];
59
98
  const port = env["PI_WEB_PORT"] ?? env["PORT"];
60
99
  const allowedHosts = env["PI_WEB_ALLOWED_HOSTS"];
61
100
  const maxUpload = env["PI_WEB_MAX_UPLOAD_BYTES"];
101
+ const agent = effectiveAgentConfig(env, loaded.config);
62
102
  return {
63
103
  ...loaded,
64
104
  config: {
@@ -73,6 +113,7 @@ export function effectivePiWebConfig(options = {}) {
73
113
  spawnSessions: spawnSessionsEnabled(env, loaded.config),
74
114
  // Beta capability, resolved off by default.
75
115
  subsessions: subsessionsEnabled(env, loaded.config),
116
+ agent: { command: agent.command, dir: agent.dir },
76
117
  },
77
118
  };
78
119
  }
@@ -80,7 +121,10 @@ export function savePiWebConfig(config, options = {}) {
80
121
  const env = options.env ?? process.env;
81
122
  const path = piWebConfigPath(env, options.cwd ?? process.cwd());
82
123
  const normalized = parsePiWebConfig(piWebConfigRecord(config), path);
124
+ effectiveAgentConfig(env, normalized);
83
125
  const existing = readExistingConfigObject(path);
126
+ if (existing["agent"] !== undefined)
127
+ parseAgentConfig(existing["agent"], path);
84
128
  delete existing["host"];
85
129
  delete existing["port"];
86
130
  delete existing["allowedHosts"];
@@ -91,6 +135,7 @@ export function savePiWebConfig(config, options = {}) {
91
135
  delete existing["maxUploadBytes"];
92
136
  delete existing["spawnSessions"];
93
137
  delete existing["subsessions"];
138
+ delete existing["agent"];
94
139
  const merged = { ...existing, ...piWebConfigRecord(normalized) };
95
140
  mkdirSync(dirname(path), { recursive: true });
96
141
  writeFileSync(path, `${JSON.stringify(merged, null, 2)}\n`, "utf8");
@@ -116,6 +161,7 @@ function piWebConfigRecord(config) {
116
161
  ...(config.maxUploadBytes !== undefined ? { maxUploadBytes: config.maxUploadBytes } : {}),
117
162
  ...(config.spawnSessions !== undefined ? { spawnSessions: config.spawnSessions } : {}),
118
163
  ...(config.subsessions !== undefined ? { subsessions: config.subsessions } : {}),
164
+ ...(config.agent !== undefined ? { agent: config.agent } : {}),
119
165
  };
120
166
  }
121
167
  function parsePiWebConfig(value, path) {
@@ -130,6 +176,7 @@ function parsePiWebConfig(value, path) {
130
176
  ...(value["maxUploadBytes"] !== undefined ? { maxUploadBytes: parseMaxUploadBytes(value["maxUploadBytes"], "maxUploadBytes", path) } : {}),
131
177
  ...(value["spawnSessions"] !== undefined ? { spawnSessions: parseSpawnSessions(value["spawnSessions"], path) } : {}),
132
178
  ...(value["subsessions"] !== undefined ? { subsessions: parseSubsessions(value["subsessions"], path) } : {}),
179
+ ...(value["agent"] !== undefined ? { agent: parseAgentConfig(value["agent"], path) } : {}),
133
180
  };
134
181
  }
135
182
  function parseMaxUploadBytes(value, key, path = "environment") {
@@ -179,6 +226,67 @@ function parseString(value, key, path) {
179
226
  throw new Error(`PI WEB config ${key} must be a non-empty string: ${path}`);
180
227
  return value;
181
228
  }
229
+ const AGENT_CONFIG_KEYS = new Set(["command", "dir"]);
230
+ const SAFE_BARE_AGENT_COMMAND_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9._+-]*$/u;
231
+ export function parseAgentConfig(value, path, pathHost = "current") {
232
+ if (!isRecord(value))
233
+ throw new Error(`PI WEB config agent must be an object: ${path}`);
234
+ const unknownKey = Object.keys(value).find((key) => !AGENT_CONFIG_KEYS.has(key));
235
+ if (unknownKey !== undefined)
236
+ throw new Error(`PI WEB config agent contains unknown key ${JSON.stringify(unknownKey)}: ${path}`);
237
+ const command = value["command"];
238
+ const dir = value["dir"];
239
+ return {
240
+ ...(command !== undefined ? { command: parseAgentCommand(command, "agent.command", path, pathHost) } : {}),
241
+ ...(dir !== undefined ? { dir: parseAgentDir(dir, "agent.dir", path, pathHost) } : {}),
242
+ };
243
+ }
244
+ function parseAgentCommand(value, key, path, pathHost) {
245
+ const command = parseString(value, key, path).trim();
246
+ if (!isSafeAgentCommand(command, pathHost)) {
247
+ const absoluteLabel = pathHost === "current" ? "host-absolute" : "absolute";
248
+ throw new Error(`PI WEB config ${key} must be a safe bare executable name or ${absoluteLabel} executable path: ${path}`);
249
+ }
250
+ return command;
251
+ }
252
+ function parseAgentDir(value, key, path, pathHost) {
253
+ const dir = parseString(value, key, path).trim();
254
+ const isAbsoluteDir = pathHost === "current" ? isHostAbsoluteAgentDir(dir) : isPortableAbsoluteAgentPath(dir);
255
+ if (!isAbsoluteDir && !isHomePath(dir, pathHost)) {
256
+ const absoluteLabel = pathHost === "current" ? "a host-absolute" : "an absolute";
257
+ throw new Error(`PI WEB config ${key} must be ${absoluteLabel} path or start with ~: ${path}`);
258
+ }
259
+ return dir;
260
+ }
261
+ function resolveAgentDirPath(value, env, key, path) {
262
+ const parsed = parseAgentDir(value, key, path, "current");
263
+ const expanded = expandHomePath(parsed, env);
264
+ if (!isHostAbsoluteAgentDir(expanded)) {
265
+ throw new Error(`PI WEB config ${key} must resolve to a host-absolute path: ${path}`);
266
+ }
267
+ return normalize(expanded);
268
+ }
269
+ export function isSafeAgentCommandForHost(value) {
270
+ return isSafeAgentCommand(value, "current");
271
+ }
272
+ function isSafeAgentCommand(value, pathHost) {
273
+ if (value === "" || value !== value.trim() || value.includes("\0") || /[\s;&|`$<>]/u.test(value))
274
+ return false;
275
+ if (SAFE_BARE_AGENT_COMMAND_PATTERN.test(value))
276
+ return true;
277
+ if (pathHost === "current")
278
+ return isAbsolute(value) && basename(value) !== "";
279
+ return isAbsoluteLike(value) && value.split(/[\\/]/u).at(-1) !== "";
280
+ }
281
+ export function isHostAbsoluteAgentDir(value) {
282
+ return isSafeAgentDirPath(value) && isAbsolute(value);
283
+ }
284
+ function isPortableAbsoluteAgentPath(value) {
285
+ return isSafeAgentDirPath(value) && isAbsoluteLike(value);
286
+ }
287
+ function isSafeAgentDirPath(value) {
288
+ return value !== "" && value === value.trim() && !hasControlCharacter(value);
289
+ }
182
290
  function parsePort(value, key, path = "environment") {
183
291
  const port = typeof value === "number" ? value : typeof value === "string" && value !== "" ? Number(value) : NaN;
184
292
  if (!Number.isInteger(port) || port < 1 || port > 65535)
@@ -231,6 +339,40 @@ function parseWorkspaceRelativeFolder(value, key, path) {
231
339
  throw new Error(`PI WEB config ${key} must not contain path traversal: ${path}`);
232
340
  return parts.join("/");
233
341
  }
342
+ function isHomePath(value, pathHost) {
343
+ return value === "~" || value.startsWith("~/") || ((pathHost === "portable" || process.platform === "win32") && value.startsWith("~\\"));
344
+ }
345
+ function expandHomePath(value, env) {
346
+ const home = env["HOME"] !== undefined && env["HOME"] !== "" ? env["HOME"] : homedir();
347
+ if (value === "~")
348
+ return home;
349
+ if (value.startsWith("~/") || (process.platform === "win32" && value.startsWith("~\\")))
350
+ return join(home, value.slice(2));
351
+ return value;
352
+ }
353
+ function defaultAgentDirForCommand(command, env) {
354
+ if (usesPiCodingAgentStateCompatibility(command))
355
+ return expandHomePath("~/.pi/agent", env);
356
+ throw new Error(`PI WEB config agent.dir or ${PI_WEB_AGENT_DIR_ENV} is required when agent.command is ${JSON.stringify(command)}`);
357
+ }
358
+ function envValue(env, key) {
359
+ const value = env[key];
360
+ return value !== undefined && value !== "" ? value : undefined;
361
+ }
362
+ function isEnvSet(value) {
363
+ return value !== undefined && value !== "";
364
+ }
365
+ function uniqueStrings(values) {
366
+ return [...new Set(values)];
367
+ }
368
+ function hasControlCharacter(value) {
369
+ for (const character of value) {
370
+ const code = character.charCodeAt(0);
371
+ if (code < 32 || code === 127)
372
+ return true;
373
+ }
374
+ return false;
375
+ }
234
376
  function isAbsoluteLike(value) {
235
377
  const withForwardSlashes = value.replace(/\\/g, "/");
236
378
  return isAbsolute(value) || withForwardSlashes.startsWith("/") || /^[A-Za-z]:\//.test(withForwardSlashes);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ export const PI_WEB_DOCKER_USER_COMMANDS = [
2
+ "install",
3
+ "start",
4
+ "stop",
5
+ "restart",
6
+ "restart-web",
7
+ "restart-sessiond",
8
+ "update",
9
+ "status",
10
+ "logs",
11
+ "shell",
12
+ "doctor",
13
+ "cli",
14
+ ];
15
+ const noArgumentCommands = new Set([
16
+ "start",
17
+ "stop",
18
+ "restart",
19
+ "restart-web",
20
+ "restart-sessiond",
21
+ "update",
22
+ "status",
23
+ "doctor",
24
+ "help",
25
+ ]);
26
+ const commands = new Set([...PI_WEB_DOCKER_USER_COMMANDS, "help"]);
27
+ const logsTargets = new Set(["web", "sessiond", "data-init"]);
28
+ const shellTargets = new Set(["web", "sessiond"]);
29
+ export function piWebDockerCommandPrefix(mode) {
30
+ return mode === "dev" ? "pi-web-docker --dev" : "pi-web-docker";
31
+ }
32
+ export function piWebDockerCommand(mode, command) {
33
+ return `${piWebDockerCommandPrefix(mode)} ${command}`;
34
+ }
35
+ export function planPiWebDockerRuntimeHostCommand(plan) {
36
+ if (plan.mode !== "runtime")
37
+ return undefined;
38
+ switch (plan.command) {
39
+ case "install":
40
+ return { kind: "installer", action: "install", args: [...plan.args], useRuntimeRootAsInstallDir: false };
41
+ case "update":
42
+ return { kind: "installer", action: "update", args: [], useRuntimeRootAsInstallDir: true };
43
+ case "start":
44
+ return composeHostPlan("up", "-d");
45
+ case "stop":
46
+ return composeHostPlan("down");
47
+ case "restart":
48
+ return composeHostPlan("restart", "web", "sessiond");
49
+ case "restart-web":
50
+ return composeHostPlan("restart", "web");
51
+ case "restart-sessiond":
52
+ return composeHostPlan("restart", "sessiond");
53
+ case "status":
54
+ return composeHostPlan("ps");
55
+ case "logs":
56
+ return plan.target === undefined ? composeHostPlan("logs", "-f") : composeHostPlan("logs", "-f", plan.target);
57
+ case "shell":
58
+ return composeHostPlan("exec", plan.target ?? "web", "bash");
59
+ case "cli":
60
+ return { kind: "compose", args: ["exec", "web", "pi-web", ...plan.args] };
61
+ case "doctor":
62
+ return { kind: "diagnostics" };
63
+ case "help":
64
+ return { kind: "usage" };
65
+ }
66
+ }
67
+ export function planPiWebDockerDevHostCommand(plan) {
68
+ if (plan.mode !== "dev")
69
+ return undefined;
70
+ switch (plan.command) {
71
+ case "install":
72
+ return undefined;
73
+ case "start":
74
+ return devComposeHostPlan("up", "-d", "--build");
75
+ case "stop":
76
+ return devComposeHostPlan("down");
77
+ case "restart":
78
+ return devComposeHostPlan("restart", "web", "sessiond");
79
+ case "restart-web":
80
+ return devComposeHostPlan("restart", "web");
81
+ case "restart-sessiond":
82
+ return devComposeHostPlan("restart", "sessiond");
83
+ case "update":
84
+ return {
85
+ kind: "composeSequence",
86
+ usesGeneratedEnv: true,
87
+ steps: [
88
+ { args: ["build", "--pull"] },
89
+ { args: ["up", "-d", "--force-recreate", "--remove-orphans"] },
90
+ ],
91
+ };
92
+ case "status":
93
+ return devComposeHostPlan("ps");
94
+ case "logs":
95
+ return plan.target === undefined ? devComposeHostPlan("logs", "-f") : devComposeHostPlan("logs", "-f", plan.target);
96
+ case "shell":
97
+ return devComposeHostPlan("exec", plan.target ?? "web", "bash");
98
+ case "cli":
99
+ return { kind: "compose", args: ["exec", "web", "pi-web", ...plan.args], usesGeneratedEnv: true };
100
+ case "doctor":
101
+ return { kind: "diagnostics", usesGeneratedEnv: true };
102
+ case "help":
103
+ return { kind: "usage" };
104
+ }
105
+ }
106
+ export function validatePiWebDockerDevRootSafety(plan, uid) {
107
+ if (plan.mode !== "dev" || plan.allowRoot || plan.command === "help" || uid !== 0)
108
+ return undefined;
109
+ return "refusing to run Docker development mode as root; retry with --allow-root if this is intentional";
110
+ }
111
+ export function parsePiWebDockerArgs(argv) {
112
+ let mode = "runtime";
113
+ let allowRoot = false;
114
+ let index = 0;
115
+ for (; index < argv.length; index += 1) {
116
+ const arg = argv[index];
117
+ if (arg === undefined)
118
+ break;
119
+ if (arg === "--") {
120
+ index += 1;
121
+ break;
122
+ }
123
+ if (arg === "--dev") {
124
+ mode = "dev";
125
+ continue;
126
+ }
127
+ if (arg === "--allow-root") {
128
+ allowRoot = true;
129
+ continue;
130
+ }
131
+ if (arg === "--help" || arg === "-h") {
132
+ return { ok: true, plan: { mode, command: "help", allowRoot, args: [] } };
133
+ }
134
+ if (arg.startsWith("-")) {
135
+ return { ok: false, errors: [`Unknown global option: ${arg}`] };
136
+ }
137
+ break;
138
+ }
139
+ const commandValue = argv[index];
140
+ if (commandValue === undefined)
141
+ return { ok: false, errors: ["Missing command"] };
142
+ if (!isPiWebDockerCommand(commandValue))
143
+ return { ok: false, errors: [`Unknown command: ${commandValue}`] };
144
+ const args = argv.slice(index + 1);
145
+ const plan = { mode, command: commandValue, allowRoot, args };
146
+ return validatePlan(withDefaultTarget(plan));
147
+ }
148
+ function composeHostPlan(...args) {
149
+ return { kind: "compose", args };
150
+ }
151
+ function devComposeHostPlan(...args) {
152
+ return { kind: "compose", args, usesGeneratedEnv: true };
153
+ }
154
+ function withDefaultTarget(plan) {
155
+ if (plan.command === "shell" && plan.target === undefined && plan.args.length === 0)
156
+ return { ...plan, target: "web" };
157
+ return plan;
158
+ }
159
+ function validatePlan(plan) {
160
+ const errors = [];
161
+ if (plan.command === "install" && plan.mode === "dev") {
162
+ errors.push("install is only available in runtime mode");
163
+ }
164
+ if (noArgumentCommands.has(plan.command) && plan.args.length > 0) {
165
+ errors.push(`${plan.command} does not accept positional arguments`);
166
+ }
167
+ if (plan.command === "logs") {
168
+ validateOptionalTarget(plan.args, isLogsTarget, "logs", errors);
169
+ if (plan.args[0] === "data-init" && plan.mode !== "dev")
170
+ errors.push("logs data-init is only available in development mode");
171
+ }
172
+ if (plan.command === "shell") {
173
+ validateOptionalTarget(plan.args, isShellTarget, "shell", errors);
174
+ }
175
+ if (plan.command === "cli" && plan.args.length === 0) {
176
+ errors.push("cli requires pi-web arguments");
177
+ }
178
+ if (errors.length > 0)
179
+ return { ok: false, errors };
180
+ const target = targetFrom(plan.command, plan.args);
181
+ return { ok: true, plan: target === undefined ? plan : { ...plan, target } };
182
+ }
183
+ function validateOptionalTarget(args, isAllowed, command, errors) {
184
+ if (args.length > 1) {
185
+ errors.push(`${command} accepts at most one target`);
186
+ return;
187
+ }
188
+ const [target] = args;
189
+ if (target !== undefined && !isAllowed(target))
190
+ errors.push(`Invalid ${command} target: ${target}`);
191
+ }
192
+ function targetFrom(command, args) {
193
+ const [target] = args;
194
+ if (target === undefined)
195
+ return command === "shell" ? "web" : undefined;
196
+ if (command === "logs" && isLogsTarget(target))
197
+ return target;
198
+ if (command === "shell" && isShellTarget(target))
199
+ return target;
200
+ return undefined;
201
+ }
202
+ function isPiWebDockerCommand(value) {
203
+ return commands.has(value);
204
+ }
205
+ function isLogsTarget(value) {
206
+ return logsTargets.has(value);
207
+ }
208
+ function isShellTarget(value) {
209
+ return shellTargets.has(value);
210
+ }
211
+ //# sourceMappingURL=piWebDockerCommandPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"piWebDockerCommandPlan.js","sourceRoot":"","sources":["../../src/docker/piWebDockerCommandPlan.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,OAAO;IACP,MAAM;IACN,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;CAC4D,CAAC;AAkBpE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAqB;IACrD,OAAO;IACP,MAAM;IACN,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;AAExF,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AACnF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAEvE,MAAM,UAAU,wBAAwB,CAAC,IAAiC;IACxE,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAiC,EAAE,OAA4C;IAChH,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAA4B;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE9C,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC;QAC3G,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC;QAC7F,KAAK,OAAO;YACV,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvD,KAAK,aAAa;YAChB,OAAO,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,KAAK,kBAAkB;YACrB,OAAO,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChH,KAAK,OAAO;YACV,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/D,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5E,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAA4B;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAE1C,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1D,KAAK,aAAa;YAChB,OAAO,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,KAAK,kBAAkB;YACrB,OAAO,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,iBAAiB;gBACvB,gBAAgB,EAAE,IAAI;gBACtB,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAC7B,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,EAAE;iBAC/D;aACF,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtH,KAAK,OAAO;YACV,OAAO,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QACpG,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAA4B,EAAE,GAAW;IACxF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpG,OAAO,iGAAiG,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,IAAI,IAAI,GAAoB,SAAS,CAAC;IACtC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM;QAC7B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,MAAM;QACR,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,GAAG,KAAK,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,0BAA0B,GAAG,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;QACD,MAAM;IACR,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAClF,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,oBAAoB,YAAY,EAAE,CAAC,EAAE,CAAC;IAE5G,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAA2B,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACtF,OAAO,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,GAAG,IAAc;IACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAG,IAAc;IAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA4B;IACrD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACvH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAA4B;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,uCAAuC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IAC/H,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC7B,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAuB,EAAE,SAAqC,EAAE,OAAe,EAAE,MAAgB;IAC/H,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,6BAA6B,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtB,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,YAAY,MAAM,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,UAAU,CAAC,OAA2B,EAAE,IAAuB;IACtE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,OAAO,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,IAAI,OAAO,KAAK,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAChE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}