@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
@@ -1,5 +1,7 @@
1
1
  import http from "node:http";
2
2
  import { WebSocket } from "ws";
3
+ import { isHostAbsoluteAgentDir, isSafeAgentCommandForHost } from "../config.js";
4
+ import { parsePiWebRuntimeComponent } from "../shared/piWebStatusParsing.js";
3
5
  import { sessiondHttpUrl, sessiondSocketPath } from "./config.js";
4
6
  export class SessionDaemonClient {
5
7
  constructor() {
@@ -12,6 +14,9 @@ export class SessionDaemonClient {
12
14
  return this.requestUrl(method, path, payload);
13
15
  return this.requestSocket(method, path, payload);
14
16
  }
17
+ getActiveAgentProfile() {
18
+ return getSessionDaemonActiveAgentProfile(this);
19
+ }
15
20
  connectWebSocket(path) {
16
21
  if (this.baseUrl !== undefined && this.baseUrl !== "") {
17
22
  const url = new URL(path, this.baseUrl);
@@ -62,4 +67,37 @@ export class SessionDaemonClient {
62
67
  });
63
68
  }
64
69
  }
70
+ export async function getSessionDaemonActiveAgentProfile(client) {
71
+ let response;
72
+ try {
73
+ response = await client.request("GET", "/runtime");
74
+ }
75
+ catch (error) {
76
+ return { status: "unavailable", error: errorMessage(error) };
77
+ }
78
+ if (response.statusCode < 200 || response.statusCode >= 300) {
79
+ return { status: "unavailable", error: `session daemon runtime request returned HTTP ${String(response.statusCode)}` };
80
+ }
81
+ let value;
82
+ try {
83
+ value = response.body === "" ? undefined : JSON.parse(response.body);
84
+ }
85
+ catch {
86
+ return { status: "invalid", error: "session daemon runtime response was not valid JSON" };
87
+ }
88
+ const runtime = parsePiWebRuntimeComponent(value);
89
+ if (runtime?.component !== "sessiond") {
90
+ return { status: "invalid", error: "session daemon runtime response was invalid" };
91
+ }
92
+ if (runtime.activeAgentProfile === undefined) {
93
+ return { status: "invalid", error: "session daemon runtime response did not include an active agent profile" };
94
+ }
95
+ if (!isSafeAgentCommandForHost(runtime.activeAgentProfile.command) || !isHostAbsoluteAgentDir(runtime.activeAgentProfile.dir)) {
96
+ return { status: "invalid", error: "session daemon active agent profile was not valid for this host" };
97
+ }
98
+ return { status: "available", profile: runtime.activeAgentProfile };
99
+ }
100
+ function errorMessage(error) {
101
+ return error instanceof Error ? error.message : String(error);
102
+ }
65
103
  //# sourceMappingURL=sessionDaemonClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionDaemonClient.js","sourceRoot":"","sources":["../../src/sessiond/sessionDaemonClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionDaemonClient.js","sourceRoot":"","sources":["../../src/sessiond/sessionDaemonClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ export const ACTIVE_AGENT_PROFILE_SCHEMA_VERSION = 1;
2
+ export function isPiCompanionCommand(command) {
3
+ const name = command.split(/[\\/]/u).at(-1)?.toLowerCase() ?? command.toLowerCase();
4
+ return name.replace(/(?:\.[cm]?js|\.exe|\.cmd)$/iu, "") === "pi";
5
+ }
6
+ export function usesPiCodingAgentStateCompatibility(command) {
7
+ return !command.includes("/") && !command.includes("\\") && isPiCompanionCommand(command);
8
+ }
9
+ const ACTIVE_AGENT_PROFILE_FIELDS = new Set([
10
+ "schemaVersion",
11
+ "revision",
12
+ "command",
13
+ "dir",
14
+ "sessionDirEnvKeys",
15
+ ]);
16
+ const SHA256_REVISION_PATTERN = /^sha256:[0-9a-f]{64}$/u;
17
+ const SAFE_BARE_AGENT_COMMAND_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9._+-]*$/u;
18
+ const ACTIVE_SESSION_DIR_ENV_KEYS = new Set(["PI_WEB_AGENT_SESSION_DIR", "PI_CODING_AGENT_SESSION_DIR"]);
19
+ export function parseActiveAgentProfileDescriptor(value) {
20
+ if (!isRecord(value) || Object.keys(value).some((key) => !ACTIVE_AGENT_PROFILE_FIELDS.has(key)))
21
+ return undefined;
22
+ const schemaVersion = value["schemaVersion"];
23
+ const revision = value["revision"];
24
+ const command = value["command"];
25
+ const dir = value["dir"];
26
+ const sessionDirEnvKeys = value["sessionDirEnvKeys"];
27
+ if (schemaVersion !== ACTIVE_AGENT_PROFILE_SCHEMA_VERSION)
28
+ return undefined;
29
+ if (typeof revision !== "string" || !SHA256_REVISION_PATTERN.test(revision))
30
+ return undefined;
31
+ if (typeof command !== "string" || !isPortableAgentCommand(command))
32
+ return undefined;
33
+ if (typeof dir !== "string" || !isPortableAbsolutePath(dir))
34
+ return undefined;
35
+ if (!isNonEmptyStringArray(sessionDirEnvKeys))
36
+ return undefined;
37
+ if (new Set(sessionDirEnvKeys).size !== sessionDirEnvKeys.length)
38
+ return undefined;
39
+ if (sessionDirEnvKeys[0] !== "PI_WEB_AGENT_SESSION_DIR" || sessionDirEnvKeys.some((key) => !ACTIVE_SESSION_DIR_ENV_KEYS.has(key)))
40
+ return undefined;
41
+ return Object.freeze({
42
+ schemaVersion,
43
+ revision,
44
+ command,
45
+ dir,
46
+ sessionDirEnvKeys: Object.freeze([...sessionDirEnvKeys]),
47
+ });
48
+ }
49
+ function isPortableAgentCommand(value) {
50
+ if (value !== value.trim() || /[\s;&|`$<>]/u.test(value))
51
+ return false;
52
+ if (isPortableAbsolutePath(value))
53
+ return !value.endsWith("/") && !value.endsWith("\\");
54
+ return SAFE_BARE_AGENT_COMMAND_PATTERN.test(value);
55
+ }
56
+ function isPortableAbsolutePath(value) {
57
+ if (value === "" || value !== value.trim() || hasControlCharacter(value))
58
+ return false;
59
+ const withForwardSlashes = value.replace(/\\/g, "/");
60
+ return withForwardSlashes.startsWith("/") || /^[A-Za-z]:\//u.test(withForwardSlashes);
61
+ }
62
+ function hasControlCharacter(value) {
63
+ for (const character of value) {
64
+ const code = character.charCodeAt(0);
65
+ if (code < 32 || code === 127)
66
+ return true;
67
+ }
68
+ return false;
69
+ }
70
+ function isNonEmptyStringArray(value) {
71
+ return Array.isArray(value) && value.every((entry) => typeof entry === "string" && entry !== "");
72
+ }
73
+ function isRecord(value) {
74
+ return typeof value === "object" && value !== null && !Array.isArray(value);
75
+ }
76
+ //# sourceMappingURL=activeAgentProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activeAgentProfile.js","sourceRoot":"","sources":["../../src/shared/activeAgentProfile.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAU,CAAC;AAE9D,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IACpF,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,OAAe;IACjE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,eAAe;IACf,UAAU;IACV,SAAS;IACT,KAAK;IACL,mBAAmB;CACpB,CAAC,CAAC;AACH,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AACzD,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAC1E,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,CAAC,CAAC;AAEzG,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAElH,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,iBAAiB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrD,IAAI,aAAa,KAAK,mCAAmC;QAAE,OAAO,SAAS,CAAC;IAC5E,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACtF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACnF,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,0BAA0B,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAEpJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa;QACb,QAAQ;QACR,OAAO;QACP,GAAG;QACH,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxF,OAAO,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -5,21 +5,6 @@ export function isSessionActive(status, activity) {
5
5
  || status?.isCompacting === true
6
6
  || (status?.pendingMessageCount ?? 0) > 0;
7
7
  }
8
- export function sessionActivityLabel(status, activity) {
9
- if (activity?.phase === "active")
10
- return activity.detail !== undefined && activity.detail !== "" ? `${activity.label}: ${activity.detail}` : activity.label;
11
- if (status === undefined)
12
- return undefined;
13
- if (status.isCompacting)
14
- return "compacting";
15
- if (status.isBashRunning)
16
- return "bash";
17
- if (status.isStreaming)
18
- return "streaming";
19
- if (status.pendingMessageCount > 0)
20
- return `${String(status.pendingMessageCount)} pending`;
21
- return undefined;
22
- }
23
8
  export function isWorkspaceActivityActive(activity) {
24
9
  return activity !== undefined && (activity.hasSessionActivity || activity.hasTerminalActivity);
25
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/shared/activity.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,QAA0B;IAChF,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ;WAC9B,MAAM,EAAE,WAAW,KAAK,IAAI;WAC5B,MAAM,EAAE,aAAa,KAAK,IAAI;WAC9B,MAAM,EAAE,YAAY,KAAK,IAAI;WAC7B,CAAC,MAAM,EAAE,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,QAA0B;IACrF,IAAI,QAAQ,EAAE,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC5J,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,YAAY,CAAC;IAC7C,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IAC3C,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC3F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAuC;IAC/E,OAAO,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/shared/activity.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,QAA0B;IAChF,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ;WAC9B,MAAM,EAAE,WAAW,KAAK,IAAI;WAC5B,MAAM,EAAE,aAAa,KAAK,IAAI;WAC9B,MAAM,EAAE,YAAY,KAAK,IAAI;WAC7B,CAAC,MAAM,EAAE,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAuC;IAC/E,OAAO,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACjG,CAAC"}
@@ -2,10 +2,16 @@ export type MachineKind = "local" | "remote";
2
2
  export type MachineStatus = "unknown" | "online" | "offline" | "error";
3
3
  export declare const PI_WEB_CAPABILITIES: {
4
4
  readonly sessionsDeleteArchived: "sessions.deleteArchived";
5
+ readonly sessionsBulkMutations: "sessions.bulkMutations";
5
6
  readonly sessionsCleanup: "sessions.cleanup";
6
7
  readonly sessionsReload: "sessions.reload";
8
+ readonly sessionsClearQueue: "sessions.clearQueue";
9
+ readonly sessionsPersistedState: "sessions.persistedState";
7
10
  readonly promptAttachments: "prompt.attachments";
8
11
  readonly workspaceFileSuggestions: "workspace.fileSuggestions";
12
+ readonly piPackagesManage: "piPackages.manage";
13
+ readonly selectedMachineSettings: "settings.selectedMachine";
14
+ readonly agentProfileConfig: "settings.agentProfile";
9
15
  };
10
16
  export type PiWebCapability = typeof PI_WEB_CAPABILITIES[keyof typeof PI_WEB_CAPABILITIES];
11
17
  export interface Machine {
@@ -51,6 +57,12 @@ export interface PiWebPathAccessConfig {
51
57
  export interface PiWebUploadsConfig {
52
58
  defaultFolder?: string;
53
59
  }
60
+ export interface PiWebAgentConfig {
61
+ /** Pi-compatible companion CLI used for diagnostics and safe package-managed updates. */
62
+ command?: string;
63
+ /** Pi-compatible profile directory containing auth.json, models.json, settings.json, and sessions/. */
64
+ dir?: string;
65
+ }
54
66
  export interface PiWebConfigValues {
55
67
  host?: string;
56
68
  port?: number;
@@ -72,6 +84,8 @@ export interface PiWebConfigValues {
72
84
  * while the capability stabilizes. Requires spawnSessions to be enabled.
73
85
  */
74
86
  subsessions?: boolean;
87
+ /** Desired Pi-compatible agent profile and companion CLI (Pi by default). */
88
+ agent?: PiWebAgentConfig;
75
89
  }
76
90
  export type PiWebPluginScope = "bundled" | "local" | "user" | "project";
77
91
  export interface PiWebPluginInfo {
@@ -85,12 +99,47 @@ export interface PiWebPluginInfo {
85
99
  export interface PiWebPluginsResponse {
86
100
  plugins: PiWebPluginInfo[];
87
101
  }
102
+ export type PiPackageScope = "user" | "project";
103
+ export interface PiPackageInfo {
104
+ source: string;
105
+ scope: PiPackageScope;
106
+ filtered: boolean;
107
+ installedPath?: string;
108
+ }
109
+ export interface PiPackagesResponse {
110
+ packages: PiPackageInfo[];
111
+ }
112
+ export interface PiPackageInstallRequest {
113
+ source: string;
114
+ }
115
+ export interface PiPackageRemoveRequest {
116
+ source: string;
117
+ /** Optional known scope from a listed package; not an install-location picker. */
118
+ scope?: PiPackageScope;
119
+ }
120
+ export interface PiPackageUpdateRequest {
121
+ /** Omit to update all configured Pi packages. */
122
+ source?: string;
123
+ }
124
+ export type PiPackageMutationAction = "install" | "remove" | "update";
125
+ export interface PiPackageMutationResponse extends PiPackagesResponse {
126
+ action: PiPackageMutationAction;
127
+ source?: string;
128
+ scope?: PiPackageScope;
129
+ removed?: boolean;
130
+ }
131
+ export type PiWebAgentDirEnvSource = "pi-web" | "pi-compatibility";
88
132
  export interface PiWebConfigEnvOverrides {
89
133
  host: boolean;
90
134
  port: boolean;
91
135
  allowedHosts: boolean;
92
136
  spawnSessions: boolean;
93
137
  subsessions: boolean;
138
+ agentCommand: boolean;
139
+ agentDir: boolean;
140
+ /** The configured directory environment source, even when Pi compatibility is inactive for the desired command. */
141
+ agentDirSource?: PiWebAgentDirEnvSource;
142
+ agentSessionDir: boolean;
94
143
  }
95
144
  export interface PiWebConfigResponse {
96
145
  path: string;
@@ -126,6 +175,8 @@ export interface SessionRef {
126
175
  }
127
176
  export interface SessionInfo extends SessionRef {
128
177
  path: string;
178
+ /** True when the server has verified a backing session file exists; false when known transient. */
179
+ persisted?: boolean;
129
180
  name?: string;
130
181
  created: string;
131
182
  modified: string;
@@ -141,6 +192,29 @@ export interface ArchiveSessionsResponse {
141
192
  archivedCount?: number;
142
193
  skippedAlreadyArchivedCount?: number;
143
194
  }
195
+ export interface SessionBulkMutationRef {
196
+ id: string;
197
+ cwd?: string;
198
+ }
199
+ export interface SessionBulkMutationRequest {
200
+ sessions: SessionBulkMutationRef[];
201
+ }
202
+ export interface SessionBulkFailure {
203
+ sessionId: string;
204
+ error: string;
205
+ }
206
+ export interface SessionBulkArchiveResponse {
207
+ archived: true;
208
+ archivedSessionIds: string[];
209
+ failures: SessionBulkFailure[];
210
+ generatedAt: string;
211
+ }
212
+ export interface SessionBulkDeleteArchivedResponse {
213
+ deleted: true;
214
+ deletedSessionIds: string[];
215
+ failures: SessionBulkFailure[];
216
+ generatedAt: string;
217
+ }
144
218
  export interface SessionCleanupRequest {
145
219
  /** Archive non-archived sessions whose modified time is older than this many days. Omit/null to disable. */
146
220
  archiveIdleDays?: number | null;
@@ -242,6 +316,8 @@ export interface AuthProviderOption {
242
316
  name: string;
243
317
  authType: AuthType;
244
318
  status: AuthProviderStatus;
319
+ /** Additive hint: use the generic AuthInteraction transport instead of the legacy one-secret form. */
320
+ loginFlow?: "interactive";
245
321
  }
246
322
  export interface AuthProvidersResponse {
247
323
  providers: AuthProviderOption[];
@@ -254,12 +330,19 @@ export interface OAuthFlowState {
254
330
  auth?: {
255
331
  url: string;
256
332
  instructions?: string;
333
+ deviceCode?: {
334
+ userCode: string;
335
+ intervalSeconds?: number;
336
+ expiresInSeconds?: number;
337
+ };
257
338
  };
258
339
  prompt?: {
259
340
  requestId: string;
260
341
  message: string;
261
342
  placeholder?: string;
262
343
  allowEmpty?: boolean;
344
+ /** Additive semantic detail; legacy peers continue to use `kind`. */
345
+ promptType?: "text" | "secret" | "manual_code";
263
346
  kind: "prompt" | "manual";
264
347
  };
265
348
  select?: {
@@ -268,6 +351,13 @@ export interface OAuthFlowState {
268
351
  options: CommandOption[];
269
352
  };
270
353
  progress: string[];
354
+ info?: {
355
+ message: string;
356
+ links?: {
357
+ url: string;
358
+ label?: string;
359
+ }[];
360
+ }[];
271
361
  error?: string;
272
362
  }
273
363
  export interface ModelSelectionResponse {
@@ -276,8 +366,34 @@ export interface ModelSelectionResponse {
276
366
  export interface ThinkingLevelsResponse {
277
367
  levels: string[];
278
368
  }
369
+ export type SessionWarningSeverity = "info" | "warning" | "error";
370
+ /**
371
+ * A live, runtime-scoped warning surfaced to the browser (skill/resource
372
+ * diagnostics, extension load errors, subscription-auth billing notice, etc.).
373
+ *
374
+ * Warnings are recomputed whenever the runtime is (re)built inside sessiond and
375
+ * are not persisted chat messages. `source` is an optional short origin label
376
+ * (e.g. `"skill"`, `"extension"`, `"anthropic"`); `path` carries a related file
377
+ * path when the warning came from a resource diagnostic.
378
+ *
379
+ * `dismiss` is present only when the warning has a durable, first-class
380
+ * off-switch in the underlying `pi` agent (not a UI-only hide). Its `id` is the
381
+ * opaque token the server maps back to that suppression; the client renders a
382
+ * dismiss control for any warning carrying it, without knowing what it means.
383
+ */
384
+ export interface SessionWarning {
385
+ severity: SessionWarningSeverity;
386
+ message: string;
387
+ source?: string;
388
+ path?: string;
389
+ dismiss?: {
390
+ id: string;
391
+ };
392
+ }
279
393
  export interface SessionStatus {
280
394
  sessionId: string;
395
+ /** True when the server has verified a backing session file exists; false when known transient. */
396
+ persisted?: boolean;
281
397
  model?: SessionModel;
282
398
  thinkingLevel?: string;
283
399
  isStreaming: boolean;
@@ -299,6 +415,13 @@ export interface SessionStatus {
299
415
  contextWindow: number;
300
416
  percent: number | null;
301
417
  };
418
+ /**
419
+ * Live, runtime-scoped warnings for this session (skill/resource diagnostics,
420
+ * extension load errors, Anthropic subscription-auth billing notice, etc.).
421
+ * Recomputed on each status read from the current runtime; absent/empty when
422
+ * there are none. See {@link SessionWarning}.
423
+ */
424
+ warnings?: SessionWarning[];
302
425
  }
303
426
  export interface WorkspaceActivity {
304
427
  cwd: string;
@@ -437,13 +560,15 @@ export interface TerminalCommandRunFilter {
437
560
  }
438
561
  export type PiWebServiceComponent = "web" | "sessiond";
439
562
  export type PiWebStatusSeverity = "info" | "warning" | "error";
440
- export type PiWebInstallationKind = "pi-package" | "npm-global" | "local" | "unknown";
563
+ export type PiWebInstallationKind = "pi-package" | "npm-global" | "local" | "docker" | "unknown";
564
+ export type PiWebDockerMode = "runtime" | "dev";
441
565
  export interface PiWebInstallationInfo {
442
566
  kind: PiWebInstallationKind;
443
567
  path?: string;
444
568
  source?: string;
445
569
  scope?: "user" | "project";
446
570
  npmRoot?: string;
571
+ dockerMode?: PiWebDockerMode;
447
572
  }
448
573
  export interface PiWebComponentStatus {
449
574
  component: PiWebServiceComponent;
@@ -455,12 +580,22 @@ export interface PiWebComponentStatus {
455
580
  installation?: PiWebInstallationInfo;
456
581
  error?: string;
457
582
  }
583
+ /** Secret-free identity of the Pi-compatible CLI/state profile fixed for one sessiond lifetime. */
584
+ export interface ActiveAgentProfileDescriptor {
585
+ readonly schemaVersion: 1;
586
+ readonly revision: string;
587
+ readonly command: string;
588
+ readonly dir: string;
589
+ readonly sessionDirEnvKeys: readonly string[];
590
+ }
458
591
  export interface PiWebRuntimeComponent {
459
592
  component: PiWebServiceComponent;
460
593
  label: string;
461
594
  runtimeVersion?: string;
462
595
  available: boolean;
463
596
  capabilities: PiWebCapability[];
597
+ /** Present only for a session daemon that supports active-profile reporting. */
598
+ activeAgentProfile?: ActiveAgentProfileDescriptor;
464
599
  error?: string;
465
600
  }
466
601
  export interface PiWebReleaseStatus {
@@ -531,6 +666,19 @@ export interface MessagePage {
531
666
  start: number;
532
667
  total: number;
533
668
  }
669
+ /**
670
+ * Join-time snapshot of a session's in-flight assistant stream. `seq` is the
671
+ * `SessionEventHub` watermark captured together with `partial` in a single tick,
672
+ * so a joining client can seed `partial` and then apply only buffered live events
673
+ * with `seq > snapshot.seq` (exactly-once). `partial` is a browser-projected
674
+ * in-flight `AssistantMessage` (thinking signatures stripped), or `null` when the
675
+ * session is not mid assistant-message stream.
676
+ */
677
+ export interface SessionStreamSnapshot {
678
+ seq: number;
679
+ /** Browser-projected in-flight `AssistantMessage`, or `null` when idle. */
680
+ partial: unknown;
681
+ }
534
682
  export type CommandResult = {
535
683
  type: "done";
536
684
  message?: string;
@@ -545,7 +693,16 @@ export type CommandResult = {
545
693
  type: "unsupported";
546
694
  message: string;
547
695
  };
548
- export type SessionUiEvent = {
696
+ /**
697
+ * Transport-level per-session sequence stamp. `SessionEventHub.publish` assigns a
698
+ * monotonic `seq` to every per-session event as it is serialized to the socket.
699
+ * Clients use it as a watermark against the join-time stream snapshot so buffered
700
+ * live events are applied exactly once. Existing consumers may ignore it.
701
+ */
702
+ export type SessionUiEvent = SessionUiEventBody & {
703
+ seq?: number;
704
+ };
705
+ type SessionUiEventBody = {
549
706
  type: "message.append";
550
707
  message: unknown;
551
708
  } | {
@@ -621,7 +778,7 @@ export type SessionUiEvent = {
621
778
  type: "pi.event";
622
779
  eventType: string;
623
780
  };
624
- export type GlobalSessionEvent = Extract<SessionUiEvent, {
781
+ export type GlobalSessionEvent = Extract<SessionUiEventBody, {
625
782
  type: "status.update" | "activity.update" | "session.name" | "session.created";
626
783
  }>;
627
784
  export type RealtimeEvent = GlobalSessionEvent | TerminalUiEvent | WorkspaceActivityUiEvent;
@@ -1,8 +1,14 @@
1
1
  export const PI_WEB_CAPABILITIES = {
2
2
  sessionsDeleteArchived: "sessions.deleteArchived",
3
+ sessionsBulkMutations: "sessions.bulkMutations",
3
4
  sessionsCleanup: "sessions.cleanup",
4
5
  sessionsReload: "sessions.reload",
6
+ sessionsClearQueue: "sessions.clearQueue",
7
+ sessionsPersistedState: "sessions.persistedState",
5
8
  promptAttachments: "prompt.attachments",
6
9
  workspaceFileSuggestions: "workspace.fileSuggestions",
10
+ piPackagesManage: "piPackages.manage",
11
+ selectedMachineSettings: "settings.selectedMachine",
12
+ agentProfileConfig: "settings.agentProfile",
7
13
  };
8
14
  //# sourceMappingURL=apiTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;CAC7C,CAAC"}
1
+ {"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;CACnC,CAAC"}
@@ -2,14 +2,40 @@ import { PI_WEB_CAPABILITIES } from "./apiTypes.js";
2
2
  export { PI_WEB_CAPABILITIES };
3
3
  export const KNOWN_PI_WEB_CAPABILITIES = Object.values(PI_WEB_CAPABILITIES);
4
4
  const knownPiWebCapabilities = new Set(KNOWN_PI_WEB_CAPABILITIES);
5
- export const WEB_RUNTIME_CAPABILITIES = [PI_WEB_CAPABILITIES.sessionsDeleteArchived, PI_WEB_CAPABILITIES.sessionsCleanup, PI_WEB_CAPABILITIES.sessionsReload, PI_WEB_CAPABILITIES.promptAttachments, PI_WEB_CAPABILITIES.workspaceFileSuggestions];
6
- export const SESSIOND_RUNTIME_CAPABILITIES = [PI_WEB_CAPABILITIES.sessionsDeleteArchived, PI_WEB_CAPABILITIES.sessionsCleanup, PI_WEB_CAPABILITIES.sessionsReload, PI_WEB_CAPABILITIES.promptAttachments];
5
+ export const WEB_RUNTIME_CAPABILITIES = [
6
+ PI_WEB_CAPABILITIES.sessionsDeleteArchived,
7
+ PI_WEB_CAPABILITIES.sessionsBulkMutations,
8
+ PI_WEB_CAPABILITIES.sessionsCleanup,
9
+ PI_WEB_CAPABILITIES.sessionsReload,
10
+ PI_WEB_CAPABILITIES.sessionsClearQueue,
11
+ PI_WEB_CAPABILITIES.sessionsPersistedState,
12
+ PI_WEB_CAPABILITIES.promptAttachments,
13
+ PI_WEB_CAPABILITIES.workspaceFileSuggestions,
14
+ PI_WEB_CAPABILITIES.piPackagesManage,
15
+ PI_WEB_CAPABILITIES.selectedMachineSettings,
16
+ PI_WEB_CAPABILITIES.agentProfileConfig,
17
+ ];
18
+ export const SESSIOND_RUNTIME_CAPABILITIES = [
19
+ PI_WEB_CAPABILITIES.sessionsDeleteArchived,
20
+ PI_WEB_CAPABILITIES.sessionsBulkMutations,
21
+ PI_WEB_CAPABILITIES.sessionsCleanup,
22
+ PI_WEB_CAPABILITIES.sessionsReload,
23
+ PI_WEB_CAPABILITIES.sessionsClearQueue,
24
+ PI_WEB_CAPABILITIES.sessionsPersistedState,
25
+ PI_WEB_CAPABILITIES.promptAttachments,
26
+ ];
7
27
  const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
8
28
  [PI_WEB_CAPABILITIES.sessionsDeleteArchived]: ["web", "sessiond"],
29
+ [PI_WEB_CAPABILITIES.sessionsBulkMutations]: ["web", "sessiond"],
9
30
  [PI_WEB_CAPABILITIES.sessionsCleanup]: ["web", "sessiond"],
10
31
  [PI_WEB_CAPABILITIES.sessionsReload]: ["web", "sessiond"],
32
+ [PI_WEB_CAPABILITIES.sessionsClearQueue]: ["web", "sessiond"],
33
+ [PI_WEB_CAPABILITIES.sessionsPersistedState]: ["web", "sessiond"],
11
34
  [PI_WEB_CAPABILITIES.promptAttachments]: ["web", "sessiond"],
12
35
  [PI_WEB_CAPABILITIES.workspaceFileSuggestions]: ["web"],
36
+ [PI_WEB_CAPABILITIES.piPackagesManage]: ["web"],
37
+ [PI_WEB_CAPABILITIES.selectedMachineSettings]: ["web"],
38
+ [PI_WEB_CAPABILITIES.agentProfileConfig]: ["web"],
13
39
  };
14
40
  export function isPiWebCapability(value) {
15
41
  return typeof value === "string" && knownPiWebCapabilities.has(value);
@@ -17,6 +43,11 @@ export function isPiWebCapability(value) {
17
43
  export function supportsPiWebCapability(source, capability) {
18
44
  return source?.capabilities?.includes(capability) === true;
19
45
  }
46
+ export function parseKnownPiWebCapabilities(value) {
47
+ if (!Array.isArray(value) || !value.every((capability) => typeof capability === "string"))
48
+ return undefined;
49
+ return value.filter(isPiWebCapability);
50
+ }
20
51
  export function effectivePiWebCapabilities(components) {
21
52
  return KNOWN_PI_WEB_CAPABILITIES.filter((capability) => {
22
53
  const requiredComponents = EFFECTIVE_CAPABILITY_REQUIREMENTS[capability];
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAgF,MAAM,eAAe,CAAC;AAElI,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC5E,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,CAAC,cAAc,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,wBAAwB,CAA+C,CAAC;AACjS,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,CAAC,cAAc,EAAE,mBAAmB,CAAC,iBAAiB,CAA+C,CAAC;AAExP,MAAM,iCAAiC,GAAG;IACxC,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IACjE,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC1D,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IACzD,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5D,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC;CACqB,CAAC;AAE/E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiE,EAAE,UAA2B;IACpI,OAAO,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAA6G;IACtJ,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACrD,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAC;QACzE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
+ export const PI_PACKAGE_MUTATION_PROXY_TIMEOUT_MS = 5 * 60_000;
1
2
  export const FEDERATED_HTTP_ROUTES = [
2
3
  { method: "GET", path: "/pi-web/status" },
4
+ { method: "GET", path: "/config" },
5
+ { method: "PUT", path: "/config" },
6
+ { method: "GET", path: "/plugins" },
7
+ { method: "GET", path: "/pi-packages" },
8
+ { method: "POST", path: "/pi-packages/install", timeoutMs: PI_PACKAGE_MUTATION_PROXY_TIMEOUT_MS },
9
+ { method: "POST", path: "/pi-packages/remove", timeoutMs: PI_PACKAGE_MUTATION_PROXY_TIMEOUT_MS },
10
+ { method: "POST", path: "/pi-packages/update", timeoutMs: PI_PACKAGE_MUTATION_PROXY_TIMEOUT_MS },
3
11
  { method: "GET", path: "/projects" },
4
12
  { method: "POST", path: "/projects" },
5
13
  { method: "DELETE", path: "/projects/:projectId" },
@@ -30,8 +38,11 @@ export const FEDERATED_HTTP_ROUTES = [
30
38
  { method: "POST", path: "/sessions" },
31
39
  { method: "POST", path: "/sessions/cleanup/preview" },
32
40
  { method: "POST", path: "/sessions/cleanup" },
41
+ { method: "POST", path: "/sessions/bulk/archive" },
42
+ { method: "POST", path: "/sessions/bulk/delete-archived" },
33
43
  { method: "GET", path: "/sessions/:sessionId/messages" },
34
44
  { method: "GET", path: "/sessions/:sessionId/status" },
45
+ { method: "GET", path: "/sessions/:sessionId/stream-snapshot" },
35
46
  { method: "GET", path: "/sessions/:sessionId/models" },
36
47
  { method: "POST", path: "/sessions/:sessionId/model" },
37
48
  { method: "POST", path: "/sessions/:sessionId/model/cycle" },
@@ -40,6 +51,8 @@ export const FEDERATED_HTTP_ROUTES = [
40
51
  { method: "POST", path: "/sessions/:sessionId/thinking-level/cycle" },
41
52
  { method: "GET", path: "/sessions/:sessionId/commands" },
42
53
  { method: "POST", path: "/sessions/:sessionId/prompt" },
54
+ { method: "POST", path: "/sessions/:sessionId/queue/clear" },
55
+ { method: "POST", path: "/sessions/:sessionId/warnings/dismiss" },
43
56
  { method: "POST", path: "/sessions/:sessionId/attachments" },
44
57
  { method: "POST", path: "/sessions/:sessionId/shell" },
45
58
  { method: "POST", path: "/sessions/:sessionId/commands/run" },
@@ -54,6 +67,7 @@ export const FEDERATED_HTTP_ROUTES = [
54
67
  { method: "POST", path: "/sessions/:sessionId/detach-parent" },
55
68
  { method: "GET", path: "/auth/providers" },
56
69
  { method: "POST", path: "/auth/api-key" },
70
+ { method: "POST", path: "/auth/api-key/interactive" },
57
71
  { method: "POST", path: "/auth/logout" },
58
72
  { method: "POST", path: "/auth/oauth" },
59
73
  { method: "GET", path: "/auth/oauth/:flowId" },
@@ -1 +1 @@
1
- {"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"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"}