@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.
- package/README.md +14 -5
- package/dist/cli.js +291 -320
- package/dist/cli.js.map +1 -1
- package/dist/client/assets/CodeViewer-uASb28Y1.js +4 -0
- package/dist/client/assets/TerminalPanel-DfTmykFw.js +187 -0
- package/dist/client/assets/UnifiedDiffViewer-laQN1x7P.js +39 -0
- package/dist/client/assets/index-Dhapi0oR.js +3093 -0
- package/dist/client/assets/vendor-editor-core-vUi74DnD.js +12 -0
- package/dist/client/assets/vendor-editor-languages-DoaXUodB.js +46 -0
- package/dist/client/assets/vendor-editor-legacy-CYBnW6ZU.js +1 -0
- package/dist/client/assets/vendor-terminal-BrP-ENHg.css +1 -0
- package/dist/client/assets/vendor-terminal-D8k4UKM2.js +35 -0
- package/dist/client/index.html +9 -6
- package/dist/client/manifest.webmanifest +4 -4
- package/dist/config.js +144 -2
- package/dist/config.js.map +1 -1
- package/dist/docker/piWebDockerCommandPlan.js +211 -0
- package/dist/docker/piWebDockerCommandPlan.js.map +1 -0
- package/dist/nativeServices/serviceDoctor.js +480 -0
- package/dist/nativeServices/serviceDoctor.js.map +1 -0
- package/dist/nativeServices/serviceInstall.js +35 -0
- package/dist/nativeServices/serviceInstall.js.map +1 -0
- package/dist/nativeServices/servicePlan.js +358 -0
- package/dist/nativeServices/servicePlan.js.map +1 -0
- package/dist/nativeServices/serviceProbe.js +447 -0
- package/dist/nativeServices/serviceProbe.js.map +1 -0
- package/dist/nativeServices/serviceRendering.js +122 -0
- package/dist/nativeServices/serviceRendering.js.map +1 -0
- package/dist/pi-web-plugins/updates/pi-web-plugin.js +27 -5
- package/dist/pi-web-plugins/updates/updatesLogic.js +37 -5
- package/dist/piWebVersionReport.js +4 -0
- package/dist/piWebVersionReport.js.map +1 -1
- package/dist/plugin-api.d.ts +3 -1
- package/dist/server/activeAgentProfileProvider.js +25 -0
- package/dist/server/activeAgentProfileProvider.js.map +1 -0
- package/dist/server/app.js +69 -13
- package/dist/server/app.js.map +1 -1
- package/dist/server/browserMessageProjection.js +56 -0
- package/dist/server/browserMessageProjection.js.map +1 -0
- package/dist/server/configRoutes.js +147 -6
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/machines/machineClient.js +19 -9
- package/dist/server/machines/machineClient.js.map +1 -1
- package/dist/server/machines/machinePluginProxyRoutes.js +7 -4
- package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
- package/dist/server/machines/machineProxyRoutes.js +76 -11
- package/dist/server/machines/machineProxyRoutes.js.map +1 -1
- package/dist/server/machines/machineRoutes.js +1 -1
- package/dist/server/machines/machineRoutes.js.map +1 -1
- package/dist/server/machines/machineService.js +6 -28
- package/dist/server/machines/machineService.js.map +1 -1
- package/dist/server/piPackageRoutes.js +91 -0
- package/dist/server/piPackageRoutes.js.map +1 -0
- package/dist/server/piPackageService.js +101 -0
- package/dist/server/piPackageService.js.map +1 -0
- package/dist/server/piWebPluginService.js +91 -20
- package/dist/server/piWebPluginService.js.map +1 -1
- package/dist/server/piWebReleaseLookupCache.js +37 -0
- package/dist/server/piWebReleaseLookupCache.js.map +1 -0
- package/dist/server/piWebStatus.js +90 -37
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/piWebStatusCache.js +19 -6
- package/dist/server/piWebStatusCache.js.map +1 -1
- package/dist/server/realtime/sessionEventHub.js +34 -7
- package/dist/server/realtime/sessionEventHub.js.map +1 -1
- package/dist/server/sessiond/sessionDaemonStartup.js +49 -0
- package/dist/server/sessiond/sessionDaemonStartup.js.map +1 -0
- package/dist/server/sessiond.js +88 -62
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/authProviderOptions.js +30 -32
- package/dist/server/sessions/authProviderOptions.js.map +1 -1
- package/dist/server/sessions/authRoutes.js +14 -4
- package/dist/server/sessions/authRoutes.js.map +1 -1
- package/dist/server/sessions/authService.js +89 -29
- package/dist/server/sessions/authService.js.map +1 -1
- package/dist/server/sessions/builtinCommands.js +1 -1
- package/dist/server/sessions/builtinCommands.js.map +1 -1
- package/dist/server/sessions/oauthLoginFlowService.js +176 -53
- package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
- package/dist/server/sessions/piSessionManagerGateway.js +22 -21
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +715 -127
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionArchiveMigration.js +590 -0
- package/dist/server/sessions/sessionArchiveMigration.js.map +1 -0
- package/dist/server/sessions/sessionArchiveStore.js +58 -26
- package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
- package/dist/server/sessions/sessionCommandService.js +16 -0
- package/dist/server/sessions/sessionCommandService.js.map +1 -1
- package/dist/server/sessions/sessionNameGenerator.js +27 -44
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
- package/dist/server/sessions/sessionRoutes.js +65 -3
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/sessions/sessionService.js +2 -0
- package/dist/server/sessions/sessionService.js.map +1 -0
- package/dist/server/sessions/spawnSessionTool.js +9 -4
- package/dist/server/sessions/spawnSessionTool.js.map +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js +79 -32
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server/terminals/terminalService.js +10 -4
- package/dist/server/terminals/terminalService.js.map +1 -1
- package/dist/server/workspaces/fileSuggestions.js +7 -3
- package/dist/server/workspaces/fileSuggestions.js.map +1 -1
- package/dist/sessiond/activeAgentProfile.js +31 -0
- package/dist/sessiond/activeAgentProfile.js.map +1 -0
- package/dist/sessiond/sessionDaemonClient.js +38 -0
- package/dist/sessiond/sessionDaemonClient.js.map +1 -1
- package/dist/shared/activeAgentProfile.js +76 -0
- package/dist/shared/activeAgentProfile.js.map +1 -0
- package/dist/shared/activity.js +0 -15
- package/dist/shared/activity.js.map +1 -1
- package/dist/shared/apiTypes.d.ts +160 -3
- package/dist/shared/apiTypes.js +6 -0
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/capabilities.js +33 -2
- package/dist/shared/capabilities.js.map +1 -1
- package/dist/shared/federatedRoutes.js +14 -0
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/dist/shared/piWebStatusParsing.js +26 -8
- package/dist/shared/piWebStatusParsing.js.map +1 -1
- package/dist/shared/thinkingLevels.d.ts +1 -1
- package/dist/shared/thinkingLevels.js +1 -1
- package/dist/shared/thinkingLevels.js.map +1 -1
- package/docs/config.md +75 -19
- package/docs/plugins.md +46 -18
- package/package.json +36 -32
- package/dist/client/assets/CodeViewer-CQU9mJ74.js +0 -4
- package/dist/client/assets/TerminalPanel-DtfVBsqI.js +0 -126
- package/dist/client/assets/UnifiedDiffViewer-BZQQK99S.js +0 -34
- package/dist/client/assets/index-CbE7df66.js +0 -2742
- package/dist/client/assets/vendor-editor-core-C7aWiQy0.js +0 -12
- package/dist/client/assets/vendor-editor-languages-EW34FfVy.js +0 -26
- package/dist/client/assets/vendor-editor-legacy-B4QLsWF8.js +0 -1
- package/dist/client/assets/vendor-terminal-DDGTF8rc.css +0 -1
- 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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
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":"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"}
|
package/dist/shared/activity.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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<
|
|
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;
|
package/dist/shared/apiTypes.js
CHANGED
|
@@ -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;
|
|
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 = [
|
|
6
|
-
|
|
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,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,GAAG,MAAM,CAAC;AAQ/D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACzC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACnC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IACvC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACjG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,oCAAoC,EAAE;IAChG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,oCAAoC,EAAE;IAChG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;IACpC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAClD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iCAAiC,EAAE;IAC1D,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,8CAA8C,EAAE;IAC1E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mDAAmD,EAAE;IAC5E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mDAAmD,EAAE;IAC5E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mDAAmD,EAAE;IAC5E,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mDAAmD,EAAE;IAC/E,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wDAAwD,EAAE;IAClF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,2DAA2D,EAAE;IACpF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oDAAoD,EAAE;IAC7E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yDAAyD,EAAE;IAClF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uDAAuD,EAAE;IAChF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wDAAwD,EAAE;IACjF,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wDAAwD,EAAE;IAClF,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wDAAwD,EAAE;IACpF,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6EAA6E,EAAE;IACvG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oEAAoE,EAAE;IAChG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oEAAoE,EAAE;IAC9F,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE;IACjD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE;IACxD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAChE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;IACpC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;IACpC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IACrC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE;IACrD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE;IAC1D,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE;IACxD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACtD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAC/D,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;IACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE;IAC5D,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE;IAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,EAAE;IACrE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE;IACxD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACvD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE;IAC5D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACjE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE;IAC5D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;IACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE;IAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACjE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;IACtD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE;IACrD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;IACxD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE;IAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;IACxD,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAClD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACvD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE;IAC9D,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC1C,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IACzC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE;IACrD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IACxC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IACvC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACvD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;CACF,CAAC;AAEvD,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,kBAAkB;IAClB,6BAA6B;IAC7B,2EAA2E;CACvC,CAAC"}
|