@jmfederico/pi-web 1.202607.3 → 1.202608.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/client/assets/{CodeViewer-CDVbMiN9.js → CodeViewer-D91Sp61M.js} +1 -1
- package/dist/client/assets/{TerminalPanel-CTS1CgqF.js → TerminalPanel-fYrKc3jh.js} +1 -1
- package/dist/client/assets/{UnifiedDiffViewer-Cqke12ZX.js → UnifiedDiffViewer-BafLWGtF.js} +1 -1
- package/dist/client/assets/{index-LME0LfPb.js → index-CA8q9_o7.js} +310 -353
- package/dist/client/index.html +1 -1
- package/dist/pi-web-plugins/relays/relayDiscovery.js +159 -27
- package/dist/pi-web-plugins/relays/relaysPanelElement.js +173 -16
- package/dist/server/app.js +0 -22
- package/dist/server/app.js.map +1 -1
- package/dist/server/browserMessageProjection.js +0 -2
- package/dist/server/browserMessageProjection.js.map +1 -1
- package/dist/server/configRoutes.js +4 -13
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/machines/machineProxyRoutes.js +2 -13
- package/dist/server/machines/machineProxyRoutes.js.map +1 -1
- package/dist/server/piWebStatus.js +12 -38
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/sessiond/agentHttpDispatcher.js +108 -0
- package/dist/server/sessiond/agentHttpDispatcher.js.map +1 -0
- package/dist/server/sessiond/agentProcessEnvironment.js +62 -0
- package/dist/server/sessiond/agentProcessEnvironment.js.map +1 -0
- package/dist/server/sessiond/sessionServiceDependencies.js +1 -0
- package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
- package/dist/server/sessiond.js +26 -5
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/askUserTool.js +0 -3
- package/dist/server/sessions/askUserTool.js.map +1 -1
- package/dist/server/sessions/authRoutes.js +0 -10
- package/dist/server/sessions/authRoutes.js.map +1 -1
- package/dist/server/sessions/authService.js +0 -24
- package/dist/server/sessions/authService.js.map +1 -1
- package/dist/server/sessions/messagePaging.js +2 -2
- package/dist/server/sessions/messagePaging.js.map +1 -1
- package/dist/server/sessions/oauthLoginFlowService.js +2 -5
- package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
- package/dist/server/sessions/pendingAskStore.js +0 -3
- package/dist/server/sessions/pendingAskStore.js.map +1 -1
- package/dist/server/sessions/piSessionManagerGateway.js +182 -2
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +244 -186
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionFileHeader.js +92 -20
- package/dist/server/sessions/sessionFileHeader.js.map +1 -1
- package/dist/server/sessions/sessionRoutes.js +74 -56
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/sessions/sessionSummaryScanner.js +619 -0
- package/dist/server/sessions/sessionSummaryScanner.js.map +1 -0
- package/dist/server/sessions/spawnSessionTool.js +8 -1
- package/dist/server/sessions/spawnSessionTool.js.map +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js +7 -1
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server/workspaces/effectivePathAccess.js +0 -19
- package/dist/server/workspaces/effectivePathAccess.js.map +1 -1
- package/dist/server/workspaces/workspaceDeletionRoutes.js +30 -4
- package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
- package/dist/server/workspaces/workspaceService.js.map +1 -1
- package/dist/sessiond/config.js +2 -2
- package/dist/sessiond/config.js.map +1 -1
- package/dist/shared/apiTypes.d.ts +12 -29
- package/dist/shared/apiTypes.js +7 -16
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/capabilities.js +10 -44
- package/dist/shared/capabilities.js.map +1 -1
- package/dist/shared/federatedRoutes.js +0 -3
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/docs/config.md +59 -4
- package/docs/plugins.md +5 -3
- package/package.json +10 -9
|
@@ -7,6 +7,9 @@ const SpawnSessionParams = Type.Object({
|
|
|
7
7
|
cwd: Type.Optional(Type.String({
|
|
8
8
|
description: "Working directory for the new session. Must be a workspace (worktree, or root) of the same project as this session. Defaults to this session's working directory.",
|
|
9
9
|
})),
|
|
10
|
+
model: Type.Optional(Type.String({
|
|
11
|
+
description: 'Model for the new session, as an exact "provider/model-id" such as "anthropic/claude-sonnet-4-5". When the user references a model as #provider/model-id in their request, forward it here. An unknown value is rejected. Omit to inherit this session\'s model.',
|
|
12
|
+
})),
|
|
10
13
|
});
|
|
11
14
|
/**
|
|
12
15
|
* Custom tool that lets the LLM start a new, independent pi-web session and
|
|
@@ -27,12 +30,16 @@ export function createSpawnSessionToolDefinition(spawningCwd, deps) {
|
|
|
27
30
|
// valid workspace) rather than crash.
|
|
28
31
|
const result = await deps.spawn({
|
|
29
32
|
spawningCwd,
|
|
33
|
+
spawningSessionId: ctx.sessionManager.getSessionId(),
|
|
30
34
|
prompt: params.prompt,
|
|
31
35
|
cwd: params.cwd,
|
|
32
36
|
...(ctx.model === undefined ? {} : { model: ctx.model }),
|
|
37
|
+
...(params.model === undefined ? {} : { modelSpec: params.model }),
|
|
38
|
+
...(ctx.thinkingLevel === undefined ? {} : { thinkingLevel: ctx.thinkingLevel }),
|
|
33
39
|
});
|
|
40
|
+
const modelNote = result.model === undefined ? "" : ` using model ${result.model}`;
|
|
34
41
|
return {
|
|
35
|
-
content: [{ type: "text", text: `Started independent session ${result.sessionId} in ${result.cwd}.` }],
|
|
42
|
+
content: [{ type: "text", text: `Started independent session ${result.sessionId} in ${result.cwd}${modelNote}.` }],
|
|
36
43
|
details: result,
|
|
37
44
|
};
|
|
38
45
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawnSessionTool.js","sourceRoot":"","sources":["../../../src/server/sessions/spawnSessionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAyB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"spawnSessionTool.js","sourceRoot":"","sources":["../../../src/server/sessions/spawnSessionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAyB,MAAM,iCAAiC,CAAC;AAgCpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,gIAAgI;KAC9I,CAAC;IACF,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,WAAW,EAAE,mKAAmK;KACjL,CAAC,CAAC;IACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,kQAAkQ;KAChR,CAAC,CAAC;CACJ,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,WAAmB,EAAE,IAA0B;IAC9F,OAAO,UAAU,CAAqD;QACpE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uKAAuK;QACpL,aAAa,EAAE,sFAAsF;QACrG,UAAU,EAAE,kBAAkB;QAC9B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG;YACxD,wEAAwE;YACxE,2EAA2E;YAC3E,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;gBAC9B,WAAW;gBACX,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE;gBACpD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClE,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC;aACjF,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC;gBAClH,OAAO,EAAE,MAAM;aAChB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -7,6 +7,9 @@ const SpawnSubsessionParams = Type.Object({
|
|
|
7
7
|
cwd: Type.Optional(Type.String({
|
|
8
8
|
description: "Child workspace in the same project (worktree or root); defaults to the parent's directory.",
|
|
9
9
|
})),
|
|
10
|
+
model: Type.Optional(Type.String({
|
|
11
|
+
description: 'Model for the child session, as an exact "provider/model-id" such as "anthropic/claude-sonnet-4-5". When the user references a model as #provider/model-id in their request, forward it here. An unknown value is rejected. Omit to inherit this session\'s model.',
|
|
12
|
+
})),
|
|
10
13
|
});
|
|
11
14
|
const ListSubsessionsParams = Type.Object({});
|
|
12
15
|
const YieldToSubsessionsParams = Type.Object({});
|
|
@@ -119,9 +122,12 @@ export function createSubsessionToolDefinitions(spawningCwd, deps) {
|
|
|
119
122
|
prompt: params.prompt,
|
|
120
123
|
cwd: params.cwd,
|
|
121
124
|
...(ctx.model === undefined ? {} : { model: ctx.model }),
|
|
125
|
+
...(params.model === undefined ? {} : { modelSpec: params.model }),
|
|
126
|
+
...(ctx.thinkingLevel === undefined ? {} : { thinkingLevel: ctx.thinkingLevel }),
|
|
122
127
|
});
|
|
128
|
+
const modelNote = result.model === undefined ? "" : ` using model ${result.model}`;
|
|
123
129
|
return {
|
|
124
|
-
content: [{ type: "text", text: `Started tracked subsession ${result.sessionId} in ${result.cwd}. Continue other work, then join with yield_to_subsessions; do not poll.` }],
|
|
130
|
+
content: [{ type: "text", text: `Started tracked subsession ${result.sessionId} in ${result.cwd}${modelNote}. Continue other work, then join with yield_to_subsessions; do not poll.` }],
|
|
125
131
|
details: result,
|
|
126
132
|
};
|
|
127
133
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawnSubsessionTool.js","sourceRoot":"","sources":["../../../src/server/sessions/spawnSubsessionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAyB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"spawnSubsessionTool.js","sourceRoot":"","sources":["../../../src/server/sessions/spawnSubsessionTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { cwdPathsEqual } from "../workingDirectory.js";
|
|
2
1
|
import { loadEffectiveProjectPathAccess } from "./projectPiWebConfig.js";
|
|
3
2
|
export async function pathAccessForWorkspaceContext(context, config) {
|
|
4
3
|
if (config === undefined)
|
|
@@ -6,22 +5,4 @@ export async function pathAccessForWorkspaceContext(context, config) {
|
|
|
6
5
|
const response = await config.read();
|
|
7
6
|
return loadEffectiveProjectPathAccess(context.project.path, response.effectiveConfig);
|
|
8
7
|
}
|
|
9
|
-
export async function pathAccessForCwd(cwd, projects, workspaces, config) {
|
|
10
|
-
if (config === undefined)
|
|
11
|
-
return undefined;
|
|
12
|
-
const response = await config.read();
|
|
13
|
-
const projectPath = await projectPathForWorkspaceCwd(cwd, projects, workspaces);
|
|
14
|
-
if (projectPath === undefined)
|
|
15
|
-
return response.effectiveConfig.pathAccess;
|
|
16
|
-
return loadEffectiveProjectPathAccess(projectPath, response.effectiveConfig);
|
|
17
|
-
}
|
|
18
|
-
async function projectPathForWorkspaceCwd(cwd, projects, workspaces) {
|
|
19
|
-
for (const project of await projects.list()) {
|
|
20
|
-
if (cwdPathsEqual(project.path, cwd))
|
|
21
|
-
return project.path;
|
|
22
|
-
if ((await workspaces.list(project)).some((workspace) => cwdPathsEqual(workspace.path, cwd)))
|
|
23
|
-
return project.path;
|
|
24
|
-
}
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
8
|
//# sourceMappingURL=effectivePathAccess.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectivePathAccess.js","sourceRoot":"","sources":["../../../src/server/workspaces/effectivePathAccess.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effectivePathAccess.js","sourceRoot":"","sources":["../../../src/server/workspaces/effectivePathAccess.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAAyB,EAAE,MAAoD;IACjI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,8BAA8B,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -1,16 +1,34 @@
|
|
|
1
|
+
import { access, constants } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
1
3
|
import { workspaceDeletionMetadata } from "../../shared/workspaceDeletion.js";
|
|
2
4
|
import { SessionDaemonClient } from "../../sessiond/sessionDaemonClient.js";
|
|
3
|
-
|
|
5
|
+
import { isNodeErrorWithCode } from "./pathSafety.js";
|
|
6
|
+
/** Relative path, from a workspace root, of the optional repo-provided hook that runs before `git worktree remove`. */
|
|
7
|
+
export const WORKTREE_PRE_REMOVE_HOOK_RELATIVE_PATH = ".pi-web/hooks/worktree-pre-remove";
|
|
8
|
+
const realWorktreePreRemoveHookProbe = {
|
|
9
|
+
async isExecutable(path) {
|
|
10
|
+
try {
|
|
11
|
+
await access(path, constants.X_OK);
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (isNodeErrorWithCode(error, "ENOENT") || isNodeErrorWithCode(error, "ENOTDIR") || isNodeErrorWithCode(error, "EACCES") || isNodeErrorWithCode(error, "EPERM"))
|
|
16
|
+
return false;
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export function registerWorkspaceDeletionRoutes(app, projects, workspaces, daemon = new SessionDaemonClient(), prefix = "/api", preRemoveHook = realWorktreePreRemoveHookProbe) {
|
|
4
22
|
app.delete(`${prefix}/projects/:projectId/workspaces/:workspaceId`, async (request, reply) => {
|
|
5
23
|
try {
|
|
6
|
-
return await deleteWorkspace(projects, workspaces, daemon, request.params.projectId, request.params.workspaceId);
|
|
24
|
+
return await deleteWorkspace(projects, workspaces, daemon, preRemoveHook, request.params.projectId, request.params.workspaceId);
|
|
7
25
|
}
|
|
8
26
|
catch (error) {
|
|
9
27
|
return reply.code(400).send({ error: error instanceof Error ? error.message : String(error) });
|
|
10
28
|
}
|
|
11
29
|
});
|
|
12
30
|
}
|
|
13
|
-
async function deleteWorkspace(projects, workspaces, daemon, projectId, workspaceId) {
|
|
31
|
+
async function deleteWorkspace(projects, workspaces, daemon, preRemoveHook, projectId, workspaceId) {
|
|
14
32
|
const project = await projects.requireProject(projectId);
|
|
15
33
|
const projectWorkspaces = await workspaces.list(project);
|
|
16
34
|
const targetWorkspace = projectWorkspaces.find((workspace) => workspace.id === workspaceId);
|
|
@@ -21,16 +39,24 @@ async function deleteWorkspace(projects, workspaces, daemon, projectId, workspac
|
|
|
21
39
|
const commandWorkspace = projectWorkspaces.find((workspace) => workspace.isMain) ?? projectWorkspaces.find((workspace) => workspace.id !== targetWorkspace.id);
|
|
22
40
|
if (commandWorkspace === undefined)
|
|
23
41
|
throw new Error("Project main workspace not found");
|
|
42
|
+
// Probe before any side effect so an unexpected filesystem failure aborts before terminals are closed.
|
|
43
|
+
const hookPath = join(commandWorkspace.path, WORKTREE_PRE_REMOVE_HOOK_RELATIVE_PATH);
|
|
44
|
+
const hookExecutable = await preRemoveHook.isExecutable(hookPath);
|
|
24
45
|
const closeResponse = await requestJson(daemon, "DELETE", `/terminals?cwd=${encodeURIComponent(targetWorkspace.path)}`);
|
|
25
46
|
if (closeResponse.statusCode < 200 || closeResponse.statusCode >= 300)
|
|
26
47
|
throw new Error(`Failed to close workspace terminals: ${responseError(closeResponse.body, closeResponse.statusCode)}`);
|
|
48
|
+
// Single composed command: `&&` is the fail-closed guarantee — a non-zero hook exit prevents the removal.
|
|
49
|
+
const quotedTargetPath = shellQuote(targetWorkspace.path);
|
|
50
|
+
const command = hookExecutable
|
|
51
|
+
? `${shellQuote(hookPath)} ${quotedTargetPath} && git worktree remove ${quotedTargetPath}`
|
|
52
|
+
: `git worktree remove ${quotedTargetPath}`;
|
|
27
53
|
const deleteResponse = await requestJson(daemon, "POST", "/terminal-command-runs", {
|
|
28
54
|
origin: "core",
|
|
29
55
|
projectId: project.id,
|
|
30
56
|
workspaceId: commandWorkspace.id,
|
|
31
57
|
cwd: commandWorkspace.path,
|
|
32
58
|
title: `Delete workspace: ${workspaceLabel(targetWorkspace)}`,
|
|
33
|
-
command
|
|
59
|
+
command,
|
|
34
60
|
metadata: workspaceDeletionMetadata(targetWorkspace),
|
|
35
61
|
});
|
|
36
62
|
if (deleteResponse.statusCode < 200 || deleteResponse.statusCode >= 300)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceDeletionRoutes.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceDeletionRoutes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspaceDeletionRoutes.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceDeletionRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceService.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaceService.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceService.ts"],"names":[],"mappings":"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"}
|
package/dist/sessiond/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { piWebDataDir } from "../config.js";
|
|
3
|
-
export function sessiondSocketPath() {
|
|
4
|
-
return
|
|
3
|
+
export function sessiondSocketPath(env = process.env) {
|
|
4
|
+
return env["PI_WEB_SESSIOND_SOCKET"] ?? join(piWebDataDir(env), "sessiond.sock");
|
|
5
5
|
}
|
|
6
6
|
export function sessiondHttpUrl() {
|
|
7
7
|
return process.env["PI_WEB_SESSIOND_URL"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sessiond/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,kBAAkB
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sessiond/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACrE,OAAO,GAAG,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
export type MachineKind = "local" | "remote";
|
|
2
2
|
export type MachineStatus = "unknown" | "online" | "offline" | "error";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly sessionsNotifications: "sessions.notifications";
|
|
11
|
-
readonly sessionsUnread: "sessions.unread";
|
|
12
|
-
readonly sessionsAskUser: "sessions.askUser";
|
|
13
|
-
readonly promptAttachments: "prompt.attachments";
|
|
14
|
-
readonly workspaceFileSuggestions: "workspace.fileSuggestions";
|
|
15
|
-
readonly piPackagesManage: "piPackages.manage";
|
|
16
|
-
readonly selectedMachineSettings: "settings.selectedMachine";
|
|
17
|
-
readonly agentProfileConfig: "settings.agentProfile";
|
|
18
|
-
};
|
|
3
|
+
/**
|
|
4
|
+
* Registry of feature-gating capabilities. Currently empty: every component is
|
|
5
|
+
* expected to run the current version, so no capability is advertised. Add an
|
|
6
|
+
* entry here (plus the runtime/requirements entries in `capabilities.ts`) when
|
|
7
|
+
* a future feature needs rolling-version gating again.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PI_WEB_CAPABILITIES: {};
|
|
19
10
|
export type PiWebCapability = typeof PI_WEB_CAPABILITIES[keyof typeof PI_WEB_CAPABILITIES];
|
|
20
11
|
export interface Machine {
|
|
21
12
|
id: string;
|
|
@@ -182,8 +173,8 @@ export interface Workspace {
|
|
|
182
173
|
isMain: boolean;
|
|
183
174
|
isGitRepo: boolean;
|
|
184
175
|
isGitWorktree: boolean;
|
|
185
|
-
/** Workspace-effective project/global settings needed by workspace UI features. */
|
|
186
|
-
effectiveConfig
|
|
176
|
+
/** Workspace-effective project/global settings needed by workspace UI features. Always present on current server workspace responses. */
|
|
177
|
+
effectiveConfig: WorkspaceEffectiveConfig;
|
|
187
178
|
}
|
|
188
179
|
export interface SessionRef {
|
|
189
180
|
id: string;
|
|
@@ -335,7 +326,7 @@ export interface ArchiveSessionsResponse {
|
|
|
335
326
|
}
|
|
336
327
|
export interface SessionBulkMutationRef {
|
|
337
328
|
id: string;
|
|
338
|
-
cwd
|
|
329
|
+
cwd: string;
|
|
339
330
|
}
|
|
340
331
|
export interface SessionBulkMutationRequest {
|
|
341
332
|
sessions: SessionBulkMutationRef[];
|
|
@@ -445,11 +436,6 @@ export interface AskUserQuestion {
|
|
|
445
436
|
detail?: string;
|
|
446
437
|
/** Offered options; may be empty when only free text makes sense. */
|
|
447
438
|
options: AskUserQuestionOption[];
|
|
448
|
-
/**
|
|
449
|
-
* Compatibility marker for older clients. Canonical questions set this to
|
|
450
|
-
* true because every question offers a custom free-text answer.
|
|
451
|
-
*/
|
|
452
|
-
allowOther?: boolean;
|
|
453
439
|
/** When true, several options may be selected at once. */
|
|
454
440
|
multiple?: boolean;
|
|
455
441
|
}
|
|
@@ -695,7 +681,7 @@ export interface AuthProviderOption {
|
|
|
695
681
|
name: string;
|
|
696
682
|
authType: AuthType;
|
|
697
683
|
status: AuthProviderStatus;
|
|
698
|
-
/**
|
|
684
|
+
/** Present when the provider logs in through the generic AuthInteraction flow. */
|
|
699
685
|
loginFlow?: "interactive";
|
|
700
686
|
}
|
|
701
687
|
export interface AuthProvidersResponse {
|
|
@@ -720,9 +706,7 @@ export interface OAuthFlowState {
|
|
|
720
706
|
message: string;
|
|
721
707
|
placeholder?: string;
|
|
722
708
|
allowEmpty?: boolean;
|
|
723
|
-
|
|
724
|
-
promptType?: "text" | "secret" | "manual_code";
|
|
725
|
-
kind: "prompt" | "manual";
|
|
709
|
+
promptType: "text" | "secret" | "manual_code";
|
|
726
710
|
};
|
|
727
711
|
select?: {
|
|
728
712
|
requestId: string;
|
|
@@ -1198,7 +1182,6 @@ type SessionUiEventBody = {
|
|
|
1198
1182
|
type: "command.output";
|
|
1199
1183
|
level: "info" | "success" | "error";
|
|
1200
1184
|
message: string;
|
|
1201
|
-
notificationId?: string;
|
|
1202
1185
|
} | SessionNotificationInboxEvent | {
|
|
1203
1186
|
type: "session.error";
|
|
1204
1187
|
message: string;
|
package/dist/shared/apiTypes.js
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
sessionsNotifications: "sessions.notifications",
|
|
9
|
-
sessionsUnread: "sessions.unread",
|
|
10
|
-
sessionsAskUser: "sessions.askUser",
|
|
11
|
-
promptAttachments: "prompt.attachments",
|
|
12
|
-
workspaceFileSuggestions: "workspace.fileSuggestions",
|
|
13
|
-
piPackagesManage: "piPackages.manage",
|
|
14
|
-
selectedMachineSettings: "settings.selectedMachine",
|
|
15
|
-
agentProfileConfig: "settings.agentProfile",
|
|
16
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Registry of feature-gating capabilities. Currently empty: every component is
|
|
3
|
+
* expected to run the current version, so no capability is advertised. Add an
|
|
4
|
+
* entry here (plus the runtime/requirements entries in `capabilities.ts`) when
|
|
5
|
+
* a future feature needs rolling-version gating again.
|
|
6
|
+
*/
|
|
7
|
+
export const PI_WEB_CAPABILITIES = {};
|
|
17
8
|
export const SESSION_UNREAD_LIMIT = 1_000;
|
|
18
9
|
export const SESSION_UNREAD_SESSION_ID_MAX_LENGTH = 512;
|
|
19
10
|
export const SESSION_UNREAD_CWD_MAX_LENGTH = 32 * 1024;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAW,CAAC;AA2M/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAqCzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC;AAiN3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AA4GpD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,iGAAiG;AACjG,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AACtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAglBvD,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC"}
|
|
@@ -1,51 +1,15 @@
|
|
|
1
1
|
import { PI_WEB_CAPABILITIES } from "./apiTypes.js";
|
|
2
2
|
export { PI_WEB_CAPABILITIES };
|
|
3
|
+
// Annotated (not inferred) so the empty and populated registry shapes are
|
|
4
|
+
// identical for consumers: `Object.values` on the empty registry alone would
|
|
5
|
+
// not infer `PiWebCapability[]`.
|
|
3
6
|
export const KNOWN_PI_WEB_CAPABILITIES = Object.values(PI_WEB_CAPABILITIES);
|
|
4
7
|
const knownPiWebCapabilities = new Set(KNOWN_PI_WEB_CAPABILITIES);
|
|
5
|
-
export const WEB_RUNTIME_CAPABILITIES = [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
PI_WEB_CAPABILITIES.sessionsClearQueue,
|
|
11
|
-
PI_WEB_CAPABILITIES.sessionsPersistedState,
|
|
12
|
-
PI_WEB_CAPABILITIES.sessionsNotifications,
|
|
13
|
-
PI_WEB_CAPABILITIES.sessionsUnread,
|
|
14
|
-
PI_WEB_CAPABILITIES.sessionsAskUser,
|
|
15
|
-
PI_WEB_CAPABILITIES.promptAttachments,
|
|
16
|
-
PI_WEB_CAPABILITIES.workspaceFileSuggestions,
|
|
17
|
-
PI_WEB_CAPABILITIES.piPackagesManage,
|
|
18
|
-
PI_WEB_CAPABILITIES.selectedMachineSettings,
|
|
19
|
-
PI_WEB_CAPABILITIES.agentProfileConfig,
|
|
20
|
-
];
|
|
21
|
-
export const SESSIOND_RUNTIME_CAPABILITIES = [
|
|
22
|
-
PI_WEB_CAPABILITIES.sessionsDeleteArchived,
|
|
23
|
-
PI_WEB_CAPABILITIES.sessionsBulkMutations,
|
|
24
|
-
PI_WEB_CAPABILITIES.sessionsCleanup,
|
|
25
|
-
PI_WEB_CAPABILITIES.sessionsReload,
|
|
26
|
-
PI_WEB_CAPABILITIES.sessionsClearQueue,
|
|
27
|
-
PI_WEB_CAPABILITIES.sessionsPersistedState,
|
|
28
|
-
PI_WEB_CAPABILITIES.sessionsNotifications,
|
|
29
|
-
PI_WEB_CAPABILITIES.sessionsUnread,
|
|
30
|
-
PI_WEB_CAPABILITIES.sessionsAskUser,
|
|
31
|
-
PI_WEB_CAPABILITIES.promptAttachments,
|
|
32
|
-
];
|
|
33
|
-
const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
|
|
34
|
-
[PI_WEB_CAPABILITIES.sessionsDeleteArchived]: ["web", "sessiond"],
|
|
35
|
-
[PI_WEB_CAPABILITIES.sessionsBulkMutations]: ["web", "sessiond"],
|
|
36
|
-
[PI_WEB_CAPABILITIES.sessionsCleanup]: ["web", "sessiond"],
|
|
37
|
-
[PI_WEB_CAPABILITIES.sessionsReload]: ["web", "sessiond"],
|
|
38
|
-
[PI_WEB_CAPABILITIES.sessionsClearQueue]: ["web", "sessiond"],
|
|
39
|
-
[PI_WEB_CAPABILITIES.sessionsPersistedState]: ["web", "sessiond"],
|
|
40
|
-
[PI_WEB_CAPABILITIES.sessionsNotifications]: ["web", "sessiond"],
|
|
41
|
-
[PI_WEB_CAPABILITIES.sessionsUnread]: ["web", "sessiond"],
|
|
42
|
-
[PI_WEB_CAPABILITIES.sessionsAskUser]: ["web", "sessiond"],
|
|
43
|
-
[PI_WEB_CAPABILITIES.promptAttachments]: ["web", "sessiond"],
|
|
44
|
-
[PI_WEB_CAPABILITIES.workspaceFileSuggestions]: ["web"],
|
|
45
|
-
[PI_WEB_CAPABILITIES.piPackagesManage]: ["web"],
|
|
46
|
-
[PI_WEB_CAPABILITIES.selectedMachineSettings]: ["web"],
|
|
47
|
-
[PI_WEB_CAPABILITIES.agentProfileConfig]: ["web"],
|
|
48
|
-
};
|
|
8
|
+
export const WEB_RUNTIME_CAPABILITIES = [];
|
|
9
|
+
export const SESSIOND_RUNTIME_CAPABILITIES = [];
|
|
10
|
+
// `Record<never, …>` while the registry is empty; populated entries map each
|
|
11
|
+
// capability to the components that must both advertise it.
|
|
12
|
+
const EFFECTIVE_CAPABILITY_REQUIREMENTS = {};
|
|
49
13
|
export function isPiWebCapability(value) {
|
|
50
14
|
return typeof value === "string" && knownPiWebCapabilities.has(value);
|
|
51
15
|
}
|
|
@@ -59,6 +23,8 @@ export function parseKnownPiWebCapabilities(value) {
|
|
|
59
23
|
}
|
|
60
24
|
export function effectivePiWebCapabilities(components) {
|
|
61
25
|
return KNOWN_PI_WEB_CAPABILITIES.filter((capability) => {
|
|
26
|
+
// `never` while the registry is empty; the annotation keeps the filter body
|
|
27
|
+
// typed the same whether or not capabilities exist.
|
|
62
28
|
const requiredComponents = EFFECTIVE_CAPABILITY_REQUIREMENTS[capability];
|
|
63
29
|
return requiredComponents.every((component) => {
|
|
64
30
|
const runtime = components[component];
|
|
@@ -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,
|
|
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,0EAA0E;AAC1E,6EAA6E;AAC7E,iCAAiC;AACjC,MAAM,CAAC,MAAM,yBAAyB,GAAsB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC/F,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAgD,CAAC;AAEzF,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAgD,CAAC;AAE9F,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,iCAAiC,GAA8D,EAAE,CAAC;AAExG,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,2BAA2B,CAAC,KAAc;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5G,OAAO,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAA6G;IACtJ,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACrD,4EAA4E;QAC5E,oDAAoD;QACpD,MAAM,kBAAkB,GAAqC,iCAAiC,CAAC,UAAU,CAAC,CAAC;QAC3G,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"}
|
|
@@ -33,7 +33,6 @@ export const FEDERATED_HTTP_ROUTES = [
|
|
|
33
33
|
{ method: "GET", path: "/terminal-command-runs" },
|
|
34
34
|
{ method: "GET", path: "/terminal-command-runs/:runId" },
|
|
35
35
|
{ method: "POST", path: "/terminal-command-runs/:runId/cancel" },
|
|
36
|
-
{ method: "GET", path: "/files" },
|
|
37
36
|
{ method: "GET", path: "/activity" },
|
|
38
37
|
{ method: "GET", path: "/sessions" },
|
|
39
38
|
{ method: "POST", path: "/sessions" },
|
|
@@ -74,11 +73,9 @@ export const FEDERATED_HTTP_ROUTES = [
|
|
|
74
73
|
{ method: "POST", path: "/sessions/:sessionId/archive" },
|
|
75
74
|
{ method: "POST", path: "/sessions/:sessionId/archive-tree" },
|
|
76
75
|
{ method: "POST", path: "/sessions/:sessionId/restore" },
|
|
77
|
-
{ method: "DELETE", path: "/sessions/:sessionId" },
|
|
78
76
|
{ method: "POST", path: "/sessions/:sessionId/reload" },
|
|
79
77
|
{ method: "POST", path: "/sessions/:sessionId/detach-parent" },
|
|
80
78
|
{ method: "GET", path: "/auth/providers" },
|
|
81
|
-
{ method: "POST", path: "/auth/api-key" },
|
|
82
79
|
{ method: "POST", path: "/auth/api-key/interactive" },
|
|
83
80
|
{ method: "POST", path: "/auth/logout" },
|
|
84
81
|
{ method: "POST", path: "/auth/oauth" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/D,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,GAAG,MAAM,CAAC;AAQnE,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,
|
|
1
|
+
{"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"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"}
|