@progmruansilva/omp-web 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/LICENSE +21 -0
- package/README.md +181 -0
- package/dist/cli.js +1015 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/assets/CodeViewer-Da66baHj.js +4 -0
- package/dist/client/assets/TerminalPanel-Bj9an79F.js +126 -0
- package/dist/client/assets/UnifiedDiffViewer-eK_kynTO.js +34 -0
- package/dist/client/assets/index-DytaeWNd.js +3070 -0
- package/dist/client/assets/vendor-editor-core-CL2gOCIg.js +12 -0
- package/dist/client/assets/vendor-editor-languages-zOM9I4iZ.js +26 -0
- package/dist/client/assets/vendor-editor-legacy-B4QLsWF8.js +1 -0
- package/dist/client/assets/vendor-terminal-DDGTF8rc.css +1 -0
- package/dist/client/assets/vendor-terminal-DjQ08hXu.js +16 -0
- package/dist/client/favicon-16x16.png +0 -0
- package/dist/client/favicon-180x180.png +0 -0
- package/dist/client/favicon-192x192.png +0 -0
- package/dist/client/favicon-32x32.png +0 -0
- package/dist/client/favicon-512x512.png +0 -0
- package/dist/client/favicon.ico +0 -0
- package/dist/client/favicon.png +0 -0
- package/dist/client/favicon.svg +11 -0
- package/dist/client/index.html +67 -0
- package/dist/client/manifest.webmanifest +36 -0
- package/dist/config.js +272 -0
- package/dist/config.js.map +1 -0
- package/dist/docker/ompWebDockerCommandPlan.js +211 -0
- package/dist/docker/ompWebDockerCommandPlan.js.map +1 -0
- package/dist/omp-web-plugins/info/omp-web-plugin.js +51 -0
- package/dist/omp-web-plugins/info/package.json +9 -0
- package/dist/omp-web-plugins/schedule-prompts/omp-web-plugin.js +43 -0
- package/dist/omp-web-plugins/schedule-prompts/package.json +9 -0
- package/dist/omp-web-plugins/schedule-prompts/schedulePromptsPanelElement.js +242 -0
- package/dist/omp-web-plugins/schedule-prompts/types.js +2 -0
- package/dist/omp-web-plugins/updates/omp-web-plugin.js +173 -0
- package/dist/omp-web-plugins/updates/package.json +9 -0
- package/dist/omp-web-plugins/updates/updatesLogic.js +97 -0
- package/dist/ompWebVersionReport.js +217 -0
- package/dist/ompWebVersionReport.js.map +1 -0
- package/dist/plugin-api/unstable.d.ts +22 -0
- package/dist/plugin-api.d.ts +197 -0
- package/dist/server/activity/workspaceActivityRoutes.js +4 -0
- package/dist/server/activity/workspaceActivityRoutes.js.map +1 -0
- package/dist/server/activity/workspaceActivityService.js +98 -0
- package/dist/server/activity/workspaceActivityService.js.map +1 -0
- package/dist/server/app.js +162 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/configRoutes.js +270 -0
- package/dist/server/configRoutes.js.map +1 -0
- package/dist/server/diagnostics/nodePtySpawnHelper.js +130 -0
- package/dist/server/diagnostics/nodePtySpawnHelper.js.map +1 -0
- package/dist/server/git/gitEnv.js +15 -0
- package/dist/server/git/gitEnv.js.map +1 -0
- package/dist/server/git/gitService.js +119 -0
- package/dist/server/git/gitService.js.map +1 -0
- package/dist/server/gitRoutes.js +23 -0
- package/dist/server/gitRoutes.js.map +1 -0
- package/dist/server/index.js +7 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/machines/machineClient.js +162 -0
- package/dist/server/machines/machineClient.js.map +1 -0
- package/dist/server/machines/machinePluginProxyRoutes.js +157 -0
- package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -0
- package/dist/server/machines/machineProxyRoutes.js +127 -0
- package/dist/server/machines/machineProxyRoutes.js.map +1 -0
- package/dist/server/machines/machineRoutes.js +54 -0
- package/dist/server/machines/machineRoutes.js.map +1 -0
- package/dist/server/machines/machineService.js +230 -0
- package/dist/server/machines/machineService.js.map +1 -0
- package/dist/server/machines/machineStore.js +123 -0
- package/dist/server/machines/machineStore.js.map +1 -0
- package/dist/server/machines/proxyUtils.js +30 -0
- package/dist/server/machines/proxyUtils.js.map +1 -0
- package/dist/server/ompWebPluginService.js +279 -0
- package/dist/server/ompWebPluginService.js.map +1 -0
- package/dist/server/ompWebStatus.js +601 -0
- package/dist/server/ompWebStatus.js.map +1 -0
- package/dist/server/ompWebStatusCache.js +31 -0
- package/dist/server/ompWebStatusCache.js.map +1 -0
- package/dist/server/piPackageRoutes.js +82 -0
- package/dist/server/piPackageRoutes.js.map +1 -0
- package/dist/server/piPackageService.js +65 -0
- package/dist/server/piPackageService.js.map +1 -0
- package/dist/server/projects/directorySuggestions.js +37 -0
- package/dist/server/projects/directorySuggestions.js.map +1 -0
- package/dist/server/projects/projectService.js +31 -0
- package/dist/server/projects/projectService.js.map +1 -0
- package/dist/server/push/PushNotificationService.js +137 -0
- package/dist/server/push/PushNotificationService.js.map +1 -0
- package/dist/server/push/pushRoutes.js +55 -0
- package/dist/server/push/pushRoutes.js.map +1 -0
- package/dist/server/realtime/sessionEventHub.js +39 -0
- package/dist/server/realtime/sessionEventHub.js.map +1 -0
- package/dist/server/sessiond/sessionProxyRoutes.js +61 -0
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -0
- package/dist/server/sessiond.js +92 -0
- package/dist/server/sessiond.js.map +1 -0
- package/dist/server/sessions/attachmentService.js +112 -0
- package/dist/server/sessions/attachmentService.js.map +1 -0
- package/dist/server/sessions/authProviderOptions.js +52 -0
- package/dist/server/sessions/authProviderOptions.js.map +1 -0
- package/dist/server/sessions/authRoutes.js +59 -0
- package/dist/server/sessions/authRoutes.js.map +1 -0
- package/dist/server/sessions/authService.js +105 -0
- package/dist/server/sessions/authService.js.map +1 -0
- package/dist/server/sessions/builtinCommands.js +29 -0
- package/dist/server/sessions/builtinCommands.js.map +1 -0
- package/dist/server/sessions/editPreview.js +196 -0
- package/dist/server/sessions/editPreview.js.map +1 -0
- package/dist/server/sessions/messagePaging.js +41 -0
- package/dist/server/sessions/messagePaging.js.map +1 -0
- package/dist/server/sessions/oauthLoginFlowService.js +136 -0
- package/dist/server/sessions/oauthLoginFlowService.js.map +1 -0
- package/dist/server/sessions/piSessionManagerGateway.js +97 -0
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -0
- package/dist/server/sessions/piSessionService.js +2401 -0
- package/dist/server/sessions/piSessionService.js.map +1 -0
- package/dist/server/sessions/schedulePrompt/schedulePromptService.js +46 -0
- package/dist/server/sessions/schedulePrompt/schedulePromptService.js.map +1 -0
- package/dist/server/sessions/schedulePrompt/scheduler.js +315 -0
- package/dist/server/sessions/schedulePrompt/scheduler.js.map +1 -0
- package/dist/server/sessions/schedulePrompt/storage.js +118 -0
- package/dist/server/sessions/schedulePrompt/storage.js.map +1 -0
- package/dist/server/sessions/schedulePrompt/tool.js +252 -0
- package/dist/server/sessions/schedulePrompt/tool.js.map +1 -0
- package/dist/server/sessions/schedulePrompt/types.js +2 -0
- package/dist/server/sessions/schedulePrompt/types.js.map +1 -0
- package/dist/server/sessions/sessionArchiveStore.js +254 -0
- package/dist/server/sessions/sessionArchiveStore.js.map +1 -0
- package/dist/server/sessions/sessionArchiveTree.js +35 -0
- package/dist/server/sessions/sessionArchiveTree.js.map +1 -0
- package/dist/server/sessions/sessionCleanup.js +157 -0
- package/dist/server/sessions/sessionCleanup.js.map +1 -0
- package/dist/server/sessions/sessionCommandService.js +260 -0
- package/dist/server/sessions/sessionCommandService.js.map +1 -0
- package/dist/server/sessions/sessionNameGenerator.js +61 -0
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -0
- package/dist/server/sessions/sessionRoutes.js +344 -0
- package/dist/server/sessions/sessionRoutes.js.map +1 -0
- package/dist/server/sessions/sessionRuntimeStore.js +2 -0
- package/dist/server/sessions/sessionRuntimeStore.js.map +1 -0
- package/dist/server/sessions/spawnSessionTool.js +41 -0
- package/dist/server/sessions/spawnSessionTool.js.map +1 -0
- package/dist/server/sessions/spawnSubsessionTool.js +203 -0
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -0
- package/dist/server/sessions/spawnTargetResolver.js +36 -0
- package/dist/server/sessions/spawnTargetResolver.js.map +1 -0
- package/dist/server/sessions/subsessionTranscript.js +233 -0
- package/dist/server/sessions/subsessionTranscript.js.map +1 -0
- package/dist/server/storage/projectStore.js +83 -0
- package/dist/server/storage/projectStore.js.map +1 -0
- package/dist/server/terminalProxyRoutes.js +140 -0
- package/dist/server/terminalProxyRoutes.js.map +1 -0
- package/dist/server/terminals/terminalRoutes.js +153 -0
- package/dist/server/terminals/terminalRoutes.js.map +1 -0
- package/dist/server/terminals/terminalService.js +320 -0
- package/dist/server/terminals/terminalService.js.map +1 -0
- package/dist/server/terminals/terminalSize.js +17 -0
- package/dist/server/terminals/terminalSize.js.map +1 -0
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/utils.js +8 -0
- package/dist/server/utils.js.map +1 -0
- package/dist/server/webSocketBridge.js +32 -0
- package/dist/server/webSocketBridge.js.map +1 -0
- package/dist/server/workingDirectory.js +44 -0
- package/dist/server/workingDirectory.js.map +1 -0
- package/dist/server/workspaceExplorerRoutes.js +109 -0
- package/dist/server/workspaceExplorerRoutes.js.map +1 -0
- package/dist/server/workspaces/effectivePathAccess.js +27 -0
- package/dist/server/workspaces/effectivePathAccess.js.map +1 -0
- package/dist/server/workspaces/fileContentService.js +181 -0
- package/dist/server/workspaces/fileContentService.js.map +1 -0
- package/dist/server/workspaces/fileSuggestions.js +512 -0
- package/dist/server/workspaces/fileSuggestions.js.map +1 -0
- package/dist/server/workspaces/fileTreeService.js +27 -0
- package/dist/server/workspaces/fileTreeService.js.map +1 -0
- package/dist/server/workspaces/gitWorktreeDiscovery.js +34 -0
- package/dist/server/workspaces/gitWorktreeDiscovery.js.map +1 -0
- package/dist/server/workspaces/imagePreviewService.js +40 -0
- package/dist/server/workspaces/imagePreviewService.js.map +1 -0
- package/dist/server/workspaces/pathAccessPolicy.js +87 -0
- package/dist/server/workspaces/pathAccessPolicy.js.map +1 -0
- package/dist/server/workspaces/pathSafety.js +54 -0
- package/dist/server/workspaces/pathSafety.js.map +1 -0
- package/dist/server/workspaces/projectOmpWebConfig.js +56 -0
- package/dist/server/workspaces/projectOmpWebConfig.js.map +1 -0
- package/dist/server/workspaces/workspaceContext.js +8 -0
- package/dist/server/workspaces/workspaceContext.js.map +1 -0
- package/dist/server/workspaces/workspaceDeletionRoutes.js +111 -0
- package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -0
- package/dist/server/workspaces/workspaceService.js +39 -0
- package/dist/server/workspaces/workspaceService.js.map +1 -0
- package/dist/sessiond/config.js +9 -0
- package/dist/sessiond/config.js.map +1 -0
- package/dist/sessiond/sessionDaemonClient.js +65 -0
- package/dist/sessiond/sessionDaemonClient.js.map +1 -0
- package/dist/shared/activity.js +26 -0
- package/dist/shared/activity.js.map +1 -0
- package/dist/shared/apiTypes.d.ts +688 -0
- package/dist/shared/apiTypes.js +11 -0
- package/dist/shared/apiTypes.js.map +1 -0
- package/dist/shared/capabilities.js +52 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/federatedRoutes.js +79 -0
- package/dist/shared/federatedRoutes.js.map +1 -0
- package/dist/shared/machinePluginIds.js +41 -0
- package/dist/shared/machinePluginIds.js.map +1 -0
- package/dist/shared/ompWebStatusParsing.js +100 -0
- package/dist/shared/ompWebStatusParsing.js.map +1 -0
- package/dist/shared/pluginIds.js +5 -0
- package/dist/shared/pluginIds.js.map +1 -0
- package/dist/shared/promptAttachments.js +90 -0
- package/dist/shared/promptAttachments.js.map +1 -0
- package/dist/shared/thinkingLevels.d.ts +19 -0
- package/dist/shared/thinkingLevels.js +24 -0
- package/dist/shared/thinkingLevels.js.map +1 -0
- package/dist/shared/utils.js +4 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/shared/workspaceDeletion.js +12 -0
- package/dist/shared/workspaceDeletion.js.map +1 -0
- package/dist/shared/workspaceFiles.js +3 -0
- package/dist/shared/workspaceFiles.js.map +1 -0
- package/docs/assets/favicon.svg +11 -0
- package/docs/assets/omp-web-banner.png +0 -0
- package/docs/assets/omp-web-desktop.png +0 -0
- package/docs/assets/omp-web-mobile.png +0 -0
- package/docs/assets/omp-web-tablet.png +0 -0
- package/docs/config.md +208 -0
- package/docs/plugins.md +916 -0
- package/extensions/omp-web.ts +133 -0
- package/install.sh +5 -0
- package/package.json +141 -0
- package/plugin-api/unstable.d.ts +1 -0
- package/plugin-api.d.ts +1 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { OMP_WEB_CAPABILITIES } from "./apiTypes.js";
|
|
2
|
+
export { OMP_WEB_CAPABILITIES };
|
|
3
|
+
export const KNOWN_OMP_WEB_CAPABILITIES = Object.values(OMP_WEB_CAPABILITIES);
|
|
4
|
+
const knownOmpWebCapabilities = new Set(KNOWN_OMP_WEB_CAPABILITIES);
|
|
5
|
+
export const WEB_RUNTIME_CAPABILITIES = [
|
|
6
|
+
OMP_WEB_CAPABILITIES.sessionsDeleteArchived,
|
|
7
|
+
OMP_WEB_CAPABILITIES.sessionsBulkMutations,
|
|
8
|
+
OMP_WEB_CAPABILITIES.sessionsCleanup,
|
|
9
|
+
OMP_WEB_CAPABILITIES.sessionsReload,
|
|
10
|
+
OMP_WEB_CAPABILITIES.promptAttachments,
|
|
11
|
+
OMP_WEB_CAPABILITIES.workspaceFileSuggestions,
|
|
12
|
+
OMP_WEB_CAPABILITIES.piPackagesManage,
|
|
13
|
+
OMP_WEB_CAPABILITIES.selectedMachineSettings,
|
|
14
|
+
];
|
|
15
|
+
export const SESSIOND_RUNTIME_CAPABILITIES = [
|
|
16
|
+
OMP_WEB_CAPABILITIES.sessionsDeleteArchived,
|
|
17
|
+
OMP_WEB_CAPABILITIES.sessionsBulkMutations,
|
|
18
|
+
OMP_WEB_CAPABILITIES.sessionsCleanup,
|
|
19
|
+
OMP_WEB_CAPABILITIES.sessionsReload,
|
|
20
|
+
OMP_WEB_CAPABILITIES.promptAttachments,
|
|
21
|
+
];
|
|
22
|
+
const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
|
|
23
|
+
[OMP_WEB_CAPABILITIES.sessionsDeleteArchived]: ["web", "sessiond"],
|
|
24
|
+
[OMP_WEB_CAPABILITIES.sessionsBulkMutations]: ["web", "sessiond"],
|
|
25
|
+
[OMP_WEB_CAPABILITIES.sessionsCleanup]: ["web", "sessiond"],
|
|
26
|
+
[OMP_WEB_CAPABILITIES.sessionsReload]: ["web", "sessiond"],
|
|
27
|
+
[OMP_WEB_CAPABILITIES.promptAttachments]: ["web", "sessiond"],
|
|
28
|
+
[OMP_WEB_CAPABILITIES.workspaceFileSuggestions]: ["web"],
|
|
29
|
+
[OMP_WEB_CAPABILITIES.piPackagesManage]: ["web"],
|
|
30
|
+
[OMP_WEB_CAPABILITIES.selectedMachineSettings]: ["web"],
|
|
31
|
+
};
|
|
32
|
+
export function isOmpWebCapability(value) {
|
|
33
|
+
return typeof value === "string" && knownOmpWebCapabilities.has(value);
|
|
34
|
+
}
|
|
35
|
+
export function supportsOmpWebCapability(source, capability) {
|
|
36
|
+
return source?.capabilities?.includes(capability) === true;
|
|
37
|
+
}
|
|
38
|
+
export function parseKnownOmpWebCapabilities(value) {
|
|
39
|
+
if (!Array.isArray(value) || !value.every((capability) => typeof capability === "string"))
|
|
40
|
+
return undefined;
|
|
41
|
+
return value.filter(isOmpWebCapability);
|
|
42
|
+
}
|
|
43
|
+
export function effectiveOmpWebCapabilities(components) {
|
|
44
|
+
return KNOWN_OMP_WEB_CAPABILITIES.filter((capability) => {
|
|
45
|
+
const requiredComponents = EFFECTIVE_CAPABILITY_REQUIREMENTS[capability];
|
|
46
|
+
return requiredComponents.every((component) => {
|
|
47
|
+
const runtime = components[component];
|
|
48
|
+
return runtime?.available === true && supportsOmpWebCapability(runtime, capability);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmF,MAAM,eAAe,CAAC;AAEtI,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAGhC,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC9E,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,CAAC,sBAAsB;IAC3C,oBAAoB,CAAC,qBAAqB;IAC1C,oBAAoB,CAAC,eAAe;IACpC,oBAAoB,CAAC,cAAc;IACnC,oBAAoB,CAAC,iBAAiB;IACtC,oBAAoB,CAAC,wBAAwB;IAC7C,oBAAoB,CAAC,gBAAgB;IACrC,oBAAoB,CAAC,uBAAuB;CACE,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,oBAAoB,CAAC,sBAAsB;IAC3C,oBAAoB,CAAC,qBAAqB;IAC1C,oBAAoB,CAAC,eAAe;IACpC,oBAAoB,CAAC,cAAc;IACnC,oBAAoB,CAAC,iBAAiB;CACQ,CAAC;AAEjD,MAAM,iCAAiC,GAAG;IACxC,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAClE,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IACjE,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3D,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC1D,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC7D,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC;IACxD,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC;IAChD,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,CAAC,KAAK,CAAC;CACuB,CAAC;AAEjF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAkE,EAAE,UAA4B;IACvI,OAAO,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,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,kBAAkB,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,UAA+G;IACzJ,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACtD,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,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export const PI_PACKAGE_MUTATION_PROXY_TIMEOUT_MS = 5 * 60_000;
|
|
2
|
+
export const FEDERATED_HTTP_ROUTES = [
|
|
3
|
+
{ method: "GET", path: "/omp-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 },
|
|
11
|
+
{ method: "GET", path: "/projects" },
|
|
12
|
+
{ method: "POST", path: "/projects" },
|
|
13
|
+
{ method: "DELETE", path: "/projects/:projectId" },
|
|
14
|
+
{ method: "GET", path: "/project-directories" },
|
|
15
|
+
{ method: "GET", path: "/projects/:projectId/workspaces" },
|
|
16
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId" },
|
|
17
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/tree" },
|
|
18
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/file" },
|
|
19
|
+
{ method: "PUT", path: "/projects/:projectId/workspaces/:workspaceId/file" },
|
|
20
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId/file" },
|
|
21
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/file/move" },
|
|
22
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/file/preview" },
|
|
23
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/files" },
|
|
24
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/git/status" },
|
|
25
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/git/diff" },
|
|
26
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
27
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
28
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
29
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId/continue" },
|
|
30
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId" },
|
|
31
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminal-command-runs" },
|
|
32
|
+
{ method: "GET", path: "/terminal-command-runs" },
|
|
33
|
+
{ method: "GET", path: "/terminal-command-runs/:runId" },
|
|
34
|
+
{ method: "POST", path: "/terminal-command-runs/:runId/cancel" },
|
|
35
|
+
{ method: "GET", path: "/files" },
|
|
36
|
+
{ method: "GET", path: "/activity" },
|
|
37
|
+
{ method: "GET", path: "/sessions" },
|
|
38
|
+
{ method: "POST", path: "/sessions" },
|
|
39
|
+
{ method: "POST", path: "/sessions/cleanup/preview" },
|
|
40
|
+
{ method: "POST", path: "/sessions/cleanup" },
|
|
41
|
+
{ method: "POST", path: "/sessions/bulk/archive" },
|
|
42
|
+
{ method: "POST", path: "/sessions/bulk/delete-archived" },
|
|
43
|
+
{ method: "GET", path: "/sessions/:sessionId/messages" },
|
|
44
|
+
{ method: "GET", path: "/sessions/:sessionId/status" },
|
|
45
|
+
{ method: "GET", path: "/sessions/:sessionId/models" },
|
|
46
|
+
{ method: "POST", path: "/sessions/:sessionId/model" },
|
|
47
|
+
{ method: "POST", path: "/sessions/:sessionId/model/cycle" },
|
|
48
|
+
{ method: "GET", path: "/sessions/:sessionId/thinking-levels" },
|
|
49
|
+
{ method: "POST", path: "/sessions/:sessionId/thinking-level" },
|
|
50
|
+
{ method: "POST", path: "/sessions/:sessionId/thinking-level/cycle" },
|
|
51
|
+
{ method: "GET", path: "/sessions/:sessionId/commands" },
|
|
52
|
+
{ method: "POST", path: "/sessions/:sessionId/prompt" },
|
|
53
|
+
{ method: "POST", path: "/sessions/:sessionId/attachments" },
|
|
54
|
+
{ method: "POST", path: "/sessions/:sessionId/shell" },
|
|
55
|
+
{ method: "POST", path: "/sessions/:sessionId/commands/run" },
|
|
56
|
+
{ method: "POST", path: "/sessions/:sessionId/commands/respond" },
|
|
57
|
+
{ method: "POST", path: "/sessions/:sessionId/abort" },
|
|
58
|
+
{ method: "POST", path: "/sessions/:sessionId/stop" },
|
|
59
|
+
{ method: "POST", path: "/sessions/:sessionId/archive" },
|
|
60
|
+
{ method: "POST", path: "/sessions/:sessionId/archive-tree" },
|
|
61
|
+
{ method: "POST", path: "/sessions/:sessionId/restore" },
|
|
62
|
+
{ method: "DELETE", path: "/sessions/:sessionId" },
|
|
63
|
+
{ method: "POST", path: "/sessions/:sessionId/reload" },
|
|
64
|
+
{ method: "POST", path: "/sessions/:sessionId/detach-parent" },
|
|
65
|
+
{ method: "GET", path: "/auth/providers" },
|
|
66
|
+
{ method: "POST", path: "/auth/api-key" },
|
|
67
|
+
{ method: "POST", path: "/auth/logout" },
|
|
68
|
+
{ method: "POST", path: "/auth/oauth" },
|
|
69
|
+
{ method: "GET", path: "/auth/oauth/:flowId" },
|
|
70
|
+
{ method: "POST", path: "/auth/oauth/:flowId/respond" },
|
|
71
|
+
{ method: "POST", path: "/auth/oauth/:flowId/cancel" },
|
|
72
|
+
];
|
|
73
|
+
export const FEDERATED_WEBSOCKET_ROUTES = [
|
|
74
|
+
"/events",
|
|
75
|
+
"/sessions/events",
|
|
76
|
+
"/sessions/:sessionId/events",
|
|
77
|
+
"/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId/socket",
|
|
78
|
+
];
|
|
79
|
+
//# sourceMappingURL=federatedRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isOmpWebPluginId } from "./pluginIds.js";
|
|
2
|
+
const MACHINE_PLUGIN_ID_PREFIX = "machine.";
|
|
3
|
+
export function machineScopedPluginId(machineId, pluginId) {
|
|
4
|
+
if (machineId === "")
|
|
5
|
+
throw new Error("Machine id is required");
|
|
6
|
+
if (!isOmpWebPluginId(pluginId))
|
|
7
|
+
throw new Error(`Invalid PI WEB plugin id: ${pluginId}`);
|
|
8
|
+
return `${MACHINE_PLUGIN_ID_PREFIX}${stringToHex(machineId)}.${pluginId}`;
|
|
9
|
+
}
|
|
10
|
+
export function parseMachineScopedPluginId(pluginId) {
|
|
11
|
+
if (!pluginId.startsWith(MACHINE_PLUGIN_ID_PREFIX))
|
|
12
|
+
return undefined;
|
|
13
|
+
const rest = pluginId.slice(MACHINE_PLUGIN_ID_PREFIX.length);
|
|
14
|
+
const separator = rest.indexOf(".");
|
|
15
|
+
if (separator < 1)
|
|
16
|
+
return undefined;
|
|
17
|
+
const encodedMachineId = rest.slice(0, separator);
|
|
18
|
+
const sourcePluginId = rest.slice(separator + 1);
|
|
19
|
+
if (!isHexString(encodedMachineId) || !isOmpWebPluginId(sourcePluginId))
|
|
20
|
+
return undefined;
|
|
21
|
+
const machineId = hexToString(encodedMachineId);
|
|
22
|
+
if (machineId === "")
|
|
23
|
+
return undefined;
|
|
24
|
+
return { machineId, pluginId: sourcePluginId };
|
|
25
|
+
}
|
|
26
|
+
function stringToHex(value) {
|
|
27
|
+
return [...new TextEncoder().encode(value)]
|
|
28
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
29
|
+
.join("");
|
|
30
|
+
}
|
|
31
|
+
function hexToString(value) {
|
|
32
|
+
const bytes = new Uint8Array(value.length / 2);
|
|
33
|
+
for (let index = 0; index < value.length; index += 2) {
|
|
34
|
+
bytes[index / 2] = Number.parseInt(value.slice(index, index + 2), 16);
|
|
35
|
+
}
|
|
36
|
+
return new TextDecoder().decode(bytes);
|
|
37
|
+
}
|
|
38
|
+
function isHexString(value) {
|
|
39
|
+
return value.length > 0 && value.length % 2 === 0 && /^[0-9a-f]+$/u.test(value);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=machinePluginIds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machinePluginIds.js","sourceRoot":"","sources":["../../src/shared/machinePluginIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,wBAAwB,GAAG,UAAU,CAAC;AAO5C,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,QAAgB;IACvE,IAAI,SAAS,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAChE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IAC1F,OAAO,GAAG,wBAAwB,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1F,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { parseKnownOmpWebCapabilities } from "./capabilities.js";
|
|
2
|
+
import { isRecord } from "./utils.js";
|
|
3
|
+
export function parseOmpWebVersionResponse(value) {
|
|
4
|
+
if (!isRecord(value))
|
|
5
|
+
return undefined;
|
|
6
|
+
const packageName = value["packageName"];
|
|
7
|
+
const generatedAt = value["generatedAt"];
|
|
8
|
+
const components = value["components"];
|
|
9
|
+
if (typeof packageName !== "string" || packageName === "" || typeof generatedAt !== "string" || generatedAt === "" || !isRecord(components))
|
|
10
|
+
return undefined;
|
|
11
|
+
const web = parseOmpWebComponentStatus(components["web"]);
|
|
12
|
+
const sessiond = parseOmpWebComponentStatus(components["sessiond"]);
|
|
13
|
+
if (web === undefined || sessiond === undefined)
|
|
14
|
+
return undefined;
|
|
15
|
+
return { packageName, generatedAt, components: { web, sessiond } };
|
|
16
|
+
}
|
|
17
|
+
export function parseOmpWebRuntimeResponse(value) {
|
|
18
|
+
if (!isRecord(value))
|
|
19
|
+
return undefined;
|
|
20
|
+
const packageName = value["packageName"];
|
|
21
|
+
const generatedAt = value["generatedAt"];
|
|
22
|
+
const components = value["components"];
|
|
23
|
+
const capabilities = parseKnownOmpWebCapabilities(value["capabilities"]);
|
|
24
|
+
if (typeof packageName !== "string" || packageName === "" || typeof generatedAt !== "string" || generatedAt === "" || !isRecord(components) || capabilities === undefined)
|
|
25
|
+
return undefined;
|
|
26
|
+
const web = parseOmpWebRuntimeComponent(components["web"]);
|
|
27
|
+
const sessiond = parseOmpWebRuntimeComponent(components["sessiond"]);
|
|
28
|
+
if (web === undefined || sessiond === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
return { packageName, generatedAt, components: { web, sessiond }, capabilities };
|
|
31
|
+
}
|
|
32
|
+
export function parseOmpWebRuntimeComponent(value) {
|
|
33
|
+
if (!isRecord(value))
|
|
34
|
+
return undefined;
|
|
35
|
+
const component = value["component"];
|
|
36
|
+
const label = value["label"];
|
|
37
|
+
const runtimeVersion = value["runtimeVersion"];
|
|
38
|
+
const available = value["available"];
|
|
39
|
+
const capabilities = parseKnownOmpWebCapabilities(value["capabilities"]);
|
|
40
|
+
const error = value["error"];
|
|
41
|
+
if (component !== "web" && component !== "sessiond")
|
|
42
|
+
return undefined;
|
|
43
|
+
if (typeof label !== "string" || label === "" || typeof available !== "boolean" || capabilities === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
return {
|
|
46
|
+
component,
|
|
47
|
+
label,
|
|
48
|
+
...(typeof runtimeVersion === "string" ? { runtimeVersion } : {}),
|
|
49
|
+
available,
|
|
50
|
+
capabilities,
|
|
51
|
+
...(typeof error === "string" ? { error } : {}),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function parseOmpWebComponentStatus(value) {
|
|
55
|
+
if (!isRecord(value))
|
|
56
|
+
return undefined;
|
|
57
|
+
const component = value["component"];
|
|
58
|
+
const label = value["label"];
|
|
59
|
+
const runtimeVersion = value["runtimeVersion"];
|
|
60
|
+
const installedVersion = value["installedVersion"];
|
|
61
|
+
const stale = value["stale"];
|
|
62
|
+
const available = value["available"];
|
|
63
|
+
const error = value["error"];
|
|
64
|
+
const installation = parseOmpWebInstallationInfo(value["installation"]);
|
|
65
|
+
if (component !== "web" && component !== "sessiond")
|
|
66
|
+
return undefined;
|
|
67
|
+
if (typeof label !== "string" || label === "" || typeof stale !== "boolean" || typeof available !== "boolean")
|
|
68
|
+
return undefined;
|
|
69
|
+
return {
|
|
70
|
+
component,
|
|
71
|
+
label,
|
|
72
|
+
...(typeof runtimeVersion === "string" ? { runtimeVersion } : {}),
|
|
73
|
+
...(typeof installedVersion === "string" ? { installedVersion } : {}),
|
|
74
|
+
stale,
|
|
75
|
+
available,
|
|
76
|
+
...(installation === undefined ? {} : { installation }),
|
|
77
|
+
...(typeof error === "string" ? { error } : {}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function parseOmpWebInstallationInfo(value) {
|
|
81
|
+
if (!isRecord(value))
|
|
82
|
+
return undefined;
|
|
83
|
+
const kind = value["kind"];
|
|
84
|
+
const path = value["path"];
|
|
85
|
+
const source = value["source"];
|
|
86
|
+
const scope = value["scope"];
|
|
87
|
+
const npmRoot = value["npmRoot"];
|
|
88
|
+
const dockerMode = value["dockerMode"];
|
|
89
|
+
if (kind !== "pi-package" && kind !== "npm-global" && kind !== "local" && kind !== "docker" && kind !== "unknown")
|
|
90
|
+
return undefined;
|
|
91
|
+
return {
|
|
92
|
+
kind,
|
|
93
|
+
...(typeof path === "string" ? { path } : {}),
|
|
94
|
+
...(typeof source === "string" ? { source } : {}),
|
|
95
|
+
...(scope === "user" || scope === "project" ? { scope } : {}),
|
|
96
|
+
...(typeof npmRoot === "string" ? { npmRoot } : {}),
|
|
97
|
+
...(dockerMode === "runtime" || dockerMode === "dev" ? { dockerMode } : {}),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ompWebStatusParsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ompWebStatusParsing.js","sourceRoot":"","sources":["../../src/shared/ompWebStatusParsing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginIds.js","sourceRoot":"","sources":["../../src/shared/pluginIds.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { isRecord } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Image mime types supported by the pi coding agent. Mirrors
|
|
4
|
+
* `detectSupportedImageMimeType` in `@earendil-works/pi-coding-agent`.
|
|
5
|
+
*/
|
|
6
|
+
export const SUPPORTED_IMAGE_MIME_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
7
|
+
const supportedImageMimeTypes = new Set(SUPPORTED_IMAGE_MIME_TYPES);
|
|
8
|
+
/**
|
|
9
|
+
* Maximum base64 payload per image. Matches pi's `DEFAULT_MAX_BYTES`
|
|
10
|
+
* (4.5MB, headroom below Anthropic's 5MB inline image limit). pi resizes
|
|
11
|
+
* images down to this size; we validate against it as the hard upper bound.
|
|
12
|
+
*/
|
|
13
|
+
export const MAX_INLINE_IMAGE_BASE64_BYTES = Math.round(4.5 * 1024 * 1024);
|
|
14
|
+
/** Maximum number of attachments allowed on a single prompt. */
|
|
15
|
+
export const MAX_PROMPT_ATTACHMENTS = 16;
|
|
16
|
+
export function isSupportedImageMimeType(value) {
|
|
17
|
+
return typeof value === "string" && supportedImageMimeTypes.has(value);
|
|
18
|
+
}
|
|
19
|
+
export function extensionForImageMimeType(mimeType) {
|
|
20
|
+
switch (mimeType) {
|
|
21
|
+
case "image/jpeg": return "jpg";
|
|
22
|
+
case "image/png": return "png";
|
|
23
|
+
case "image/gif": return "gif";
|
|
24
|
+
case "image/webp": return "webp";
|
|
25
|
+
default: return "bin";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const base64Pattern = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
29
|
+
export function base64ByteLength(data) {
|
|
30
|
+
const padding = data.endsWith("==") ? 2 : data.endsWith("=") ? 1 : 0;
|
|
31
|
+
return Math.max(0, Math.floor((data.length * 3) / 4) - padding);
|
|
32
|
+
}
|
|
33
|
+
export function parsePromptAttachments(value, options = {}) {
|
|
34
|
+
if (value === undefined)
|
|
35
|
+
return [];
|
|
36
|
+
if (!Array.isArray(value))
|
|
37
|
+
throw new Error("attachments must be an array");
|
|
38
|
+
const maxAttachments = options.maxAttachments ?? MAX_PROMPT_ATTACHMENTS;
|
|
39
|
+
if (value.length > maxAttachments)
|
|
40
|
+
throw new Error(`too many attachments (max ${String(maxAttachments)})`);
|
|
41
|
+
return value.map((entry, index) => parsePromptAttachment(entry, index, options));
|
|
42
|
+
}
|
|
43
|
+
function parsePromptAttachment(value, index, options) {
|
|
44
|
+
if (!isRecord(value))
|
|
45
|
+
throw new Error(`attachment ${String(index)} must be an object`);
|
|
46
|
+
const record = value;
|
|
47
|
+
const kind = record["kind"];
|
|
48
|
+
if (kind === "image")
|
|
49
|
+
return parseImageAttachment(record, index, options);
|
|
50
|
+
if (kind === "file" && options.allowFileAttachments === true)
|
|
51
|
+
return parseFileAttachment(record, index);
|
|
52
|
+
throw new Error(`attachment ${String(index)} has unsupported kind`);
|
|
53
|
+
}
|
|
54
|
+
function parseImageAttachment(record, index, options) {
|
|
55
|
+
const mimeType = record["mimeType"];
|
|
56
|
+
if (!isSupportedImageMimeType(mimeType))
|
|
57
|
+
throw new Error(`attachment ${String(index)} has unsupported image type`);
|
|
58
|
+
const data = requireBase64Data(record["data"], index, { allowEmpty: false });
|
|
59
|
+
if (options.enforceInlineSizeLimit === true && base64ByteLength(data) > MAX_INLINE_IMAGE_BASE64_BYTES) {
|
|
60
|
+
throw new Error(`attachment ${String(index)} exceeds the inline image size limit`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
kind: "image",
|
|
64
|
+
mimeType,
|
|
65
|
+
data,
|
|
66
|
+
...attachmentName(record),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function parseFileAttachment(record, index) {
|
|
70
|
+
const mimeType = record["mimeType"];
|
|
71
|
+
if (typeof mimeType !== "string" || mimeType.trim() === "")
|
|
72
|
+
throw new Error(`attachment ${String(index)} has invalid file type`);
|
|
73
|
+
return {
|
|
74
|
+
kind: "file",
|
|
75
|
+
mimeType: mimeType.trim(),
|
|
76
|
+
data: requireBase64Data(record["data"], index, { allowEmpty: true }),
|
|
77
|
+
...attachmentName(record),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function requireBase64Data(value, index, options) {
|
|
81
|
+
if (typeof value !== "string" || (!options.allowEmpty && value === "") || !base64Pattern.test(value)) {
|
|
82
|
+
throw new Error(`attachment ${String(index)} has invalid base64 data`);
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
function attachmentName(record) {
|
|
87
|
+
const name = record["name"];
|
|
88
|
+
return typeof name === "string" && name !== "" ? { name } : {};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=promptAttachments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptAttachments.js","sourceRoot":"","sources":["../../src/shared/promptAttachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type ThinkingLevel = "off" | "inherit" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
2
|
+
export declare const KNOWN_THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
3
|
+
export declare function isKnownThinkingLevel(value: string): value is ThinkingLevel;
|
|
4
|
+
export declare function thinkingLevelLabel(level: string | undefined): string;
|
|
5
|
+
export interface ThinkingGauge {
|
|
6
|
+
/** Number of bars to render (the non-"off" levels). */
|
|
7
|
+
total: number;
|
|
8
|
+
/** Number of filled bars for the current level. */
|
|
9
|
+
filled: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Describe a thinking-level gauge from the available set rather than a hardcoded
|
|
13
|
+
* table, so it stays correct even if pi changes the available levels at runtime.
|
|
14
|
+
*
|
|
15
|
+
* Convention: the first available level is treated as "no thinking". The gauge
|
|
16
|
+
* therefore renders one bar per remaining level, and fills up to the current
|
|
17
|
+
* level's rank. An unknown current level fills 0 bars instead of throwing.
|
|
18
|
+
*/
|
|
19
|
+
export declare function thinkingGauge(level: string | undefined, available: readonly string[]): ThinkingGauge;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const KNOWN_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
2
|
+
export function isKnownThinkingLevel(value) {
|
|
3
|
+
return KNOWN_THINKING_LEVELS.some((level) => level === value);
|
|
4
|
+
}
|
|
5
|
+
export function thinkingLevelLabel(level) {
|
|
6
|
+
return level === undefined || level === "" ? "off" : level;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Describe a thinking-level gauge from the available set rather than a hardcoded
|
|
10
|
+
* table, so it stays correct even if pi changes the available levels at runtime.
|
|
11
|
+
*
|
|
12
|
+
* Convention: the first available level is treated as "no thinking". The gauge
|
|
13
|
+
* therefore renders one bar per remaining level, and fills up to the current
|
|
14
|
+
* level's rank. An unknown current level fills 0 bars instead of throwing.
|
|
15
|
+
*/
|
|
16
|
+
export function thinkingGauge(level, available) {
|
|
17
|
+
const pool = available.length >= 2 ? available : KNOWN_THINKING_LEVELS;
|
|
18
|
+
const total = pool.length - 1;
|
|
19
|
+
const normalized = thinkingLevelLabel(level);
|
|
20
|
+
const index = pool.indexOf(normalized);
|
|
21
|
+
const filled = index <= 0 ? 0 : Math.min(index, total);
|
|
22
|
+
return { total, filled };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=thinkingLevels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinkingLevels.js","sourceRoot":"","sources":["../../src/shared/thinkingLevels.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAA6C,CAAC;AAEtI,MAAM,UAAU,oBAAoB,CAAC,KAAa;IACjD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC3D,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB,EAAE,SAA4B;IACpF,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const workspaceDeleteOperation = "workspace.delete";
|
|
2
|
+
export const workspaceDeleteOperationMetadataKey = "pi.operation";
|
|
3
|
+
export const targetWorkspaceIdMetadataKey = "target.workspaceId";
|
|
4
|
+
const targetWorkspacePathMetadataKey = "target.workspacePath";
|
|
5
|
+
export function workspaceDeletionMetadata(workspace) {
|
|
6
|
+
return {
|
|
7
|
+
[workspaceDeleteOperationMetadataKey]: workspaceDeleteOperation,
|
|
8
|
+
[targetWorkspaceIdMetadataKey]: workspace.id,
|
|
9
|
+
[targetWorkspacePathMetadataKey]: workspace.path,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=workspaceDeletion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceDeletion.js","sourceRoot":"","sources":["../../src/shared/workspaceDeletion.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAC3D,MAAM,CAAC,MAAM,mCAAmC,GAAG,cAAc,CAAC;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,8BAA8B,GAAG,sBAAsB,CAAC;AAO9D,MAAM,UAAU,yBAAyB,CAAC,SAAkC;IAC1E,OAAO;QACL,CAAC,mCAAmC,CAAC,EAAE,wBAAwB;QAC/D,CAAC,4BAA4B,CAAC,EAAE,SAAS,CAAC,EAAE;QAC5C,CAAC,8BAA8B,CAAC,EAAE,SAAS,CAAC,IAAI;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceFiles.js","sourceRoot":"","sources":["../../src/shared/workspaceFiles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">PI WEB mark</title>
|
|
3
|
+
<desc id="desc">A horizontal brand bar.</desc>
|
|
4
|
+
<style>
|
|
5
|
+
.bar { fill: #00f0d8; }
|
|
6
|
+
@media (prefers-color-scheme: light) {
|
|
7
|
+
.bar { fill: #008c82; }
|
|
8
|
+
}
|
|
9
|
+
</style>
|
|
10
|
+
<rect class="bar" x="128" y="448" width="768" height="128"/>
|
|
11
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|