@jmfederico/pi-web 1.202608.2 → 1.202609.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 +3 -3
- package/dist/.plugins-ready +1 -0
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/client/apple-touch-icon-dev.png +0 -0
- package/dist/client/assets/index-AroYaCLx.js +4130 -0
- package/dist/client/assets/vendor-editor-core-YWog6mAR.js +10 -0
- package/dist/client/assets/vendor-editor-languages-DOCw3vc9.js +28 -0
- package/dist/client/favicon-dev.svg +8 -0
- package/dist/client/index.html +5 -5
- package/dist/client/pwa-icon-dev-192.png +0 -0
- package/dist/client/pwa-icon-dev-512.png +0 -0
- package/dist/config.js +20 -0
- package/dist/config.js.map +1 -1
- package/dist/docker/piWebDockerCommandPlan.js +9 -1
- package/dist/docker/piWebDockerCommandPlan.js.map +1 -1
- package/dist/nativeServices/installedServiceDefinitions.js +25 -19
- package/dist/nativeServices/installedServiceDefinitions.js.map +1 -1
- package/dist/nativeServices/serviceAction.js +38 -26
- package/dist/nativeServices/serviceAction.js.map +1 -1
- package/dist/nativeServices/servicePlan.js +3 -3
- package/dist/nativeServices/servicePlan.js.map +1 -1
- package/dist/pi-packages/captains-log/README.md +11 -0
- package/dist/pi-packages/captains-log/dist/browser/channelProtocol.js +29 -0
- package/dist/pi-packages/captains-log/dist/browser/index.js +144 -0
- package/dist/pi-packages/captains-log/dist/browser/markdown.js +67 -0
- package/dist/pi-packages/captains-log/dist/browser/panel.js +105 -0
- package/dist/pi-packages/captains-log/dist/browser/protocol.js +26 -0
- package/dist/pi-packages/captains-log/dist/companion.js +126 -0
- package/dist/pi-packages/captains-log/dist/roundtrip.js +62 -0
- package/dist/pi-packages/captains-log/dist/server.js +210 -0
- package/dist/pi-packages/captains-log/dist/store.js +75 -0
- package/dist/pi-packages/captains-log/docs/usage.md +30 -0
- package/dist/pi-packages/captains-log/package.json +35 -0
- package/dist/pi-packages/captains-log/tsconfig.json +21 -0
- package/dist/pi-packages/captains-log/vite.config.mjs +28 -0
- package/dist/pi-packages/relays/package.json +1 -1
- package/dist/pi-packages/relays/pi-web-plugin.js +1 -1
- package/dist/pi-packages/relays/prompts/relay-worktree.md +13 -142
- package/dist/pi-packages/relays/prompts/relay.md +25 -132
- package/dist/pi-packages/relays/relayDiscovery.js +2 -2
- package/dist/pi-packages/relays/relaysPanelElement.js +1 -1
- package/dist/pi-packages/relays/skills/relay/SKILL.md +59 -88
- package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +253 -0
- package/dist/pi-web-plugins/files/browser/assets/files-icon-DZObYhxb.svg +3 -0
- package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +439 -0
- package/dist/pi-web-plugins/files/package.json +15 -0
- package/dist/pi-web-plugins/git/browser/git-panel.js +54 -24
- package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +1 -1
- package/dist/pi-web-plugins/git/git-backend.js +5 -5
- package/dist/pi-web-plugins/git/server-plugin.js +5 -3
- package/dist/pi-web-plugins/info/pi-web-plugin.js +1 -1
- package/dist/pi-web-plugins/mermaid/browser/mermaid-engine.js +3590 -0
- package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +6 -0
- package/dist/pi-web-plugins/mermaid/package.json +13 -0
- package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +210 -0
- package/dist/pi-web-plugins/terminal/package.json +16 -0
- package/dist/pi-web-plugins/terminal/server-plugin.js +365 -0
- package/dist/{server/terminals → pi-web-plugins/terminal}/terminalService.js +162 -65
- package/dist/pi-web-plugins/updates/pi-web-plugin.js +45 -35
- package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +1 -1
- package/dist/piWebVersionReport.js +12 -4
- package/dist/piWebVersionReport.js.map +1 -1
- package/dist/plugin-api.d.ts +222 -23
- package/dist/plugin-api.js +1 -0
- package/dist/pluginRecoveryCli.js +3 -2
- package/dist/pluginRecoveryCli.js.map +1 -1
- package/dist/server/activity/workspaceActivityService.js.map +1 -1
- package/dist/server/app.js +33 -12
- package/dist/server/app.js.map +1 -1
- package/dist/server/configRoutes.js +6 -1
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/deploymentIdentity.js +67 -0
- package/dist/server/deploymentIdentity.js.map +1 -0
- package/dist/server/deploymentIdentityRoutes.js +22 -0
- package/dist/server/deploymentIdentityRoutes.js.map +1 -0
- package/dist/server/knownAutoInstallPiPackages.js +1 -1
- package/dist/server/knownAutoInstallPiPackages.js.map +1 -1
- package/dist/server/knownPiPackages.js +12 -0
- package/dist/server/knownPiPackages.js.map +1 -0
- package/dist/server/machines/machineClient.js +2 -2
- package/dist/server/machines/machineClient.js.map +1 -1
- package/dist/server/machines/machinePluginProxyRoutes.js +53 -11
- package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -1
- package/dist/server/machines/machineProxyRoutes.js +70 -7
- package/dist/server/machines/machineProxyRoutes.js.map +1 -1
- package/dist/server/notices/serverNoticeRoutes.js +34 -0
- package/dist/server/notices/serverNoticeRoutes.js.map +1 -0
- package/dist/server/notices/serverNoticeService.js +26 -0
- package/dist/server/notices/serverNoticeService.js.map +1 -0
- package/dist/server/notices/serverNoticeStore.js +119 -0
- package/dist/server/notices/serverNoticeStore.js.map +1 -0
- package/dist/server/piPackageService.js +5 -5
- package/dist/server/piPackageService.js.map +1 -1
- package/dist/server/piWebPluginCatalog.js +46 -12
- package/dist/server/piWebPluginCatalog.js.map +1 -1
- package/dist/server/piWebPluginLifecycle.js +26 -3
- package/dist/server/piWebPluginLifecycle.js.map +1 -1
- package/dist/server/piWebPluginService.js +37 -2
- package/dist/server/piWebPluginService.js.map +1 -1
- package/dist/server/piWebStatus.js +1 -1
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/pluginCallbackDrain.js +35 -0
- package/dist/server/pluginCallbackDrain.js.map +1 -0
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +84 -0
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -0
- package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js +234 -0
- package/dist/server/plugins/pluginBackendChannelProxyCoordinator.js.map +1 -0
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +52 -0
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -0
- package/dist/server/plugins/pluginBackendProxyRoutes.js +38 -31
- package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
- package/dist/server/plugins/pluginBackendRegistry.js +740 -0
- package/dist/server/plugins/pluginBackendRegistry.js.map +1 -0
- package/dist/server/plugins/serverPluginPiSessionEventsCapability.js +34 -0
- package/dist/server/plugins/serverPluginPiSessionEventsCapability.js.map +1 -0
- package/dist/server/plugins/serverPluginPiSessionsCapability.js +185 -0
- package/dist/server/plugins/serverPluginPiSessionsCapability.js.map +1 -0
- package/dist/server/plugins/serverPluginRuntime.js +1028 -107
- package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
- package/dist/server/plugins/serverPluginWorkspacesCapability.js +114 -0
- package/dist/server/plugins/serverPluginWorkspacesCapability.js.map +1 -0
- package/dist/server/sessiond/pluginBackendChannelRoutes.js +393 -0
- package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -0
- package/dist/server/sessiond/pluginBackendRoutes.js +10 -7
- package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
- package/dist/server/sessiond/sessionDaemonShutdown.js +9 -2
- package/dist/server/sessiond/sessionDaemonShutdown.js.map +1 -1
- package/dist/server/sessiond/sessionProxyRoutes.js +2 -0
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
- package/dist/server/sessiond/sessionServiceDependencies.js +1 -0
- package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
- package/dist/server/sessiond.js +82 -21
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/attachmentService.js +1 -5
- package/dist/server/sessions/attachmentService.js.map +1 -1
- package/dist/server/sessions/builtinCommands.js +2 -2
- package/dist/server/sessions/builtinCommands.js.map +1 -1
- package/dist/server/sessions/clientSessionPreview.js +14 -0
- package/dist/server/sessions/clientSessionPreview.js.map +1 -0
- package/dist/server/sessions/piSessionEventConnections.js +65 -0
- package/dist/server/sessions/piSessionEventConnections.js.map +1 -0
- package/dist/server/sessions/piSessionManagerGateway.js +171 -1
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +442 -90
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionActivityMarker.js +105 -0
- package/dist/server/sessions/sessionActivityMarker.js.map +1 -0
- package/dist/server/sessions/sessionEnvironmentFacts.js +5 -4
- package/dist/server/sessions/sessionEnvironmentFacts.js.map +1 -1
- package/dist/server/sessions/sessionNameGenerator.js +3 -2
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
- package/dist/server/sessions/sessionRoutes.js +18 -0
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/sessions/spawnSessionTool.js +1 -1
- package/dist/server/sessions/spawnSessionTool.js.map +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server/sessions/transcriptBranchCache.js +81 -0
- package/dist/server/sessions/transcriptBranchCache.js.map +1 -0
- package/dist/server/sessions/transcriptMessages.js +54 -0
- package/dist/server/sessions/transcriptMessages.js.map +1 -0
- package/dist/server/terminals/requiredTerminalService.js +103 -0
- package/dist/server/terminals/requiredTerminalService.js.map +1 -0
- package/dist/server/webSocketBridge.js +339 -0
- package/dist/server/webSocketBridge.js.map +1 -1
- package/dist/server/workspaces/projectPiWebConfig.js +6 -1
- package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
- package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +23 -3
- package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -1
- package/dist/server/workspaces/workspaceCatalog.js +3 -1
- package/dist/server/workspaces/workspaceCatalog.js.map +1 -1
- package/dist/server/workspaces/workspaceProviderRegistry.js +64 -149
- package/dist/server/workspaces/workspaceProviderRegistry.js.map +1 -1
- package/dist/server/workspaces/workspaceRemovalService.js +38 -5
- package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
- package/dist/server-plugin-api.d.ts +216 -22
- package/dist/server-plugin-api.js +319 -2
- package/dist/server-plugin-api.js.map +1 -1
- package/dist/serverPluginRecovery.js +4 -0
- package/dist/serverPluginRecovery.js.map +1 -1
- package/dist/sessiond/sessionDaemonClient.js +3 -3
- package/dist/sessiond/sessionDaemonClient.js.map +1 -1
- package/dist/shared/apiTypes.js +1 -1
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/federatedRoutes.js +47 -17
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/dist/shared/machinePluginIds.js +28 -7
- package/dist/shared/machinePluginIds.js.map +1 -1
- package/dist/shared/pluginApiTypes.d.ts +21 -1
- package/dist/shared/pluginApiTypes.js +0 -1
- package/dist/shared/pluginBackendProtocol.js +163 -2
- package/dist/shared/pluginBackendProtocol.js.map +1 -1
- package/dist/shared/pluginIds.js +8 -1
- package/dist/shared/pluginIds.js.map +1 -1
- package/dist/shared/requiredTerminalPlugin.js +6 -0
- package/dist/shared/requiredTerminalPlugin.js.map +1 -0
- package/dist/shared/serverNoticeContract.js +88 -0
- package/dist/shared/serverNoticeContract.js.map +1 -0
- package/dist/shared/sessionDefaults.js +41 -0
- package/dist/shared/sessionDefaults.js.map +1 -0
- package/docs/config.md +77 -37
- package/docs/plugins.md +146 -1213
- package/examples/session-bridge-plugin/README.md +20 -0
- package/examples/session-bridge-plugin/docs/usage.md +54 -0
- package/examples/session-bridge-plugin/package.json +26 -0
- package/examples/session-bridge-plugin/src/browser/index.ts +84 -0
- package/examples/session-bridge-plugin/src/browser/protocol.ts +24 -0
- package/examples/session-bridge-plugin/src/companion.ts +65 -0
- package/examples/session-bridge-plugin/src/reviewRun.ts +39 -0
- package/examples/session-bridge-plugin/src/server.ts +85 -0
- package/examples/session-bridge-plugin/src/store.ts +57 -0
- package/examples/session-bridge-plugin/tsconfig.json +21 -0
- package/examples/workspace-provider-plugin/README.md +4 -4
- package/examples/workspace-provider-plugin/package.json +1 -1
- package/examples/workspace-provider-plugin/src/browser/index.ts +9 -9
- package/examples/workspace-provider-plugin/src/server.ts +15 -11
- package/package.json +17 -11
- package/dist/client/assets/CodeViewer-BMWwxG7q.js +0 -4
- package/dist/client/assets/TerminalPanel-CacQDIYn.js +0 -187
- package/dist/client/assets/index-DUW2xnoV.js +0 -4279
- package/dist/client/assets/vendor-editor-core-CXO8gGab.js +0 -12
- package/dist/client/assets/vendor-editor-languages-CpW4sJsX.js +0 -46
- package/dist/client/assets/vendor-editor-legacy-CYBnW6ZU.js +0 -1
- package/dist/client/assets/vendor-terminal-BrP-ENHg.css +0 -1
- package/dist/client/assets/vendor-terminal-D8k4UKM2.js +0 -35
- package/dist/server/terminalProxyRoutes.js +0 -141
- package/dist/server/terminalProxyRoutes.js.map +0 -1
- package/dist/server/terminals/terminalRoutes.js +0 -155
- package/dist/server/terminals/terminalRoutes.js.map +0 -1
- package/dist/server/terminals/terminalService.js.map +0 -1
- package/dist/server/terminals/terminalSize.js +0 -17
- package/dist/server/terminals/terminalSize.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isAbsolute, parse, relative, resolve, sep } from "node:path";
|
|
2
|
-
import { workspaceDeletionMetadata } from "../../shared/workspaceDeletion.js";
|
|
2
|
+
import { workspaceDeleteOperation, workspaceDeletionMetadata } from "../../shared/workspaceDeletion.js";
|
|
3
3
|
import { requireWorkspaceRemovalPrecondition, WORKSPACE_REMOVAL_OPERATION_TIMEOUT_MS, } from "../../shared/workspaceRemovalProtocol.js";
|
|
4
4
|
import { WorkspaceProviderRemovalError, } from "./workspaceProviderRegistry.js";
|
|
5
5
|
import { composeWorktreePreRemoveCommand, realWorktreePreRemoveHookProbe, worktreePreRemoveHookPath, } from "./worktreePreRemoveHook.js";
|
|
@@ -20,10 +20,13 @@ export class WorkspaceRemovalService {
|
|
|
20
20
|
this.providers = providers;
|
|
21
21
|
this.terminals = terminals;
|
|
22
22
|
this.flights = new Map();
|
|
23
|
+
this.shutdown = new AbortController();
|
|
23
24
|
this.timeoutMs = positiveInteger(options.timeoutMs ?? WORKSPACE_REMOVAL_OPERATION_TIMEOUT_MS, "timeoutMs");
|
|
24
25
|
this.preRemoveHook = options.preRemoveHook ?? realWorktreePreRemoveHookProbe;
|
|
26
|
+
this.notices = options.notices;
|
|
25
27
|
}
|
|
26
28
|
async remove(project, workspaceId, precondition, signal) {
|
|
29
|
+
throwIfAborted(this.shutdown.signal);
|
|
27
30
|
let expectedPrecondition;
|
|
28
31
|
try {
|
|
29
32
|
expectedPrecondition = requireWorkspaceRemovalPrecondition(precondition);
|
|
@@ -53,6 +56,21 @@ export class WorkspaceRemovalService {
|
|
|
53
56
|
void promise.then(() => { this.finishFlight(key, flight); }, () => { this.finishFlight(key, flight); });
|
|
54
57
|
return await this.waitForFlight(flight, signal);
|
|
55
58
|
}
|
|
59
|
+
/** Cancels removal orchestration before the required Terminal capability is disposed. */
|
|
60
|
+
closeAll(reason = "Session daemon shutdown") {
|
|
61
|
+
this.closePromise ??= this.closeRemovalFlights(reason);
|
|
62
|
+
return this.closePromise;
|
|
63
|
+
}
|
|
64
|
+
async closeRemovalFlights(reason) {
|
|
65
|
+
if (!this.shutdown.signal.aborted)
|
|
66
|
+
this.shutdown.abort(new DOMException(reason, "AbortError"));
|
|
67
|
+
const flights = [...this.flights.values()];
|
|
68
|
+
for (const flight of flights) {
|
|
69
|
+
if (!flight.controller.signal.aborted)
|
|
70
|
+
flight.controller.abort(abortError(this.shutdown.signal));
|
|
71
|
+
}
|
|
72
|
+
await Promise.allSettled(flights.map(({ promise }) => promise));
|
|
73
|
+
}
|
|
56
74
|
async executeRemoval(project, workspaceId, precondition, flightSignal) {
|
|
57
75
|
try {
|
|
58
76
|
return await runBoundedRemoval(this.timeoutMs, flightSignal, async (signal) => {
|
|
@@ -91,6 +109,10 @@ export class WorkspaceRemovalService {
|
|
|
91
109
|
title: plan.title,
|
|
92
110
|
command,
|
|
93
111
|
metadata: workspaceDeletionMetadata(target),
|
|
112
|
+
failureNotice: {
|
|
113
|
+
message: "Workspace removal failed. See terminal output.",
|
|
114
|
+
context: { targetWorkspaceId: target.id },
|
|
115
|
+
},
|
|
94
116
|
});
|
|
95
117
|
}
|
|
96
118
|
catch (error) {
|
|
@@ -99,10 +121,18 @@ export class WorkspaceRemovalService {
|
|
|
99
121
|
});
|
|
100
122
|
}
|
|
101
123
|
catch (error) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
124
|
+
const failure = error instanceof WorkspaceRemovalDeadlineError
|
|
125
|
+
? new WorkspaceRemovalError(error.message, 504, { cause: error })
|
|
126
|
+
: error;
|
|
127
|
+
if (!isAbortError(failure))
|
|
128
|
+
this.notices?.record({
|
|
129
|
+
severity: "error",
|
|
130
|
+
message: `Workspace removal failed: ${errorMessage(failure)}`,
|
|
131
|
+
source: workspaceDeleteOperation,
|
|
132
|
+
scope: { projectId: project.id },
|
|
133
|
+
context: { targetWorkspaceId: workspaceId },
|
|
134
|
+
});
|
|
135
|
+
throw failure;
|
|
106
136
|
}
|
|
107
137
|
}
|
|
108
138
|
waitForFlight(flight, signal) {
|
|
@@ -232,6 +262,9 @@ function throwIfAborted(signal) {
|
|
|
232
262
|
if (signal?.aborted === true)
|
|
233
263
|
throw abortError(signal);
|
|
234
264
|
}
|
|
265
|
+
function isAbortError(error) {
|
|
266
|
+
return error instanceof Error && error.name === "AbortError";
|
|
267
|
+
}
|
|
235
268
|
function abortError(signal) {
|
|
236
269
|
const reason = signal?.reason;
|
|
237
270
|
return reason instanceof Error ? reason : new Error("Workspace removal request cancelled", { cause: reason });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceRemovalService.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceRemovalService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceRemovalService.js","sourceRoot":"","sources":["../../../src/server/workspaces/workspaceRemovalService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
|
-
import type { JsonObject, JsonPrimitive, JsonValue, WorkspaceRemovalPresentation } from "./shared/pluginApiTypes.js";
|
|
2
|
-
export type { JsonObject, JsonPrimitive, JsonValue, WorkspaceRemovalPresentation };
|
|
1
|
+
import type { JsonObject, JsonPrimitive, JsonValue, PluginCapability, PluginCapabilityProvision, WorkspaceProviderMetadata, WorkspaceRemovalPresentation } from "./shared/pluginApiTypes.js";
|
|
2
|
+
export type { JsonObject, JsonPrimitive, JsonValue, PluginCapability, PluginCapabilityProvision, WorkspaceProviderMetadata, WorkspaceRemovalPresentation, };
|
|
3
3
|
type MaybePromise<T> = T | Promise<T>;
|
|
4
4
|
/** Public server entry exported by a package's `serverModule`. */
|
|
5
5
|
export interface PiWebServerPlugin {
|
|
6
|
-
apiVersion:
|
|
6
|
+
apiVersion: 3;
|
|
7
7
|
name: string;
|
|
8
|
+
/** Exact capability versions that must be active before this plugin starts. */
|
|
9
|
+
requires?: readonly PluginCapability[];
|
|
8
10
|
activate(context: ServerPluginActivationContext): MaybePromise<ServerPluginActivation>;
|
|
9
11
|
}
|
|
10
12
|
/** Host-owned frozen values supplied during server plugin activation. */
|
|
11
13
|
export interface ServerPluginActivationContext {
|
|
12
|
-
readonly apiVersion:
|
|
14
|
+
readonly apiVersion: 3;
|
|
13
15
|
readonly pluginId: string;
|
|
14
16
|
readonly packageRoot: string;
|
|
17
|
+
/** Absolute plugin-specific persistent directory, created by the host before activation. Plugins own all file I/O and data formats. */
|
|
18
|
+
readonly dataDirectory: string;
|
|
15
19
|
readonly logger: ServerPluginLogger;
|
|
16
20
|
readonly settings: JsonObject;
|
|
21
|
+
/** Record a host-attributed application notice when this capability is available. */
|
|
22
|
+
readonly notices?: ServerPluginNoticeReporterV1;
|
|
17
23
|
/**
|
|
18
24
|
* Execute an argv-based command through host-owned output and time bounds.
|
|
19
25
|
* The caller must forward the signal for its current bounded operation.
|
|
@@ -21,9 +27,50 @@ export interface ServerPluginActivationContext {
|
|
|
21
27
|
readonly execFile: (request: ServerPluginExecFileRequest) => Promise<ServerPluginExecFileResult>;
|
|
22
28
|
/**
|
|
23
29
|
* Signal for this activation invocation. It is aborted when activation times
|
|
24
|
-
* out or settles
|
|
30
|
+
* out or settles and must not be retained for lifetime cleanup.
|
|
25
31
|
*/
|
|
26
32
|
readonly signal: AbortSignal;
|
|
33
|
+
/**
|
|
34
|
+
* Signal for the complete plugin lifetime. It is aborted as soon as host
|
|
35
|
+
* ingress quiesces, before bounded disposal begins.
|
|
36
|
+
*/
|
|
37
|
+
readonly lifetimeSignal: AbortSignal;
|
|
38
|
+
}
|
|
39
|
+
export type ServerPluginNoticeSeverity = "info" | "warning" | "error";
|
|
40
|
+
/** Browser-visibility selectors, matched only against the selected machine context; each id is at most 512 characters. */
|
|
41
|
+
export type ServerPluginNoticeScope = {
|
|
42
|
+
readonly projectId: string;
|
|
43
|
+
readonly workspaceId?: string;
|
|
44
|
+
readonly sessionId?: string;
|
|
45
|
+
} | {
|
|
46
|
+
readonly projectId?: string;
|
|
47
|
+
readonly workspaceId: string;
|
|
48
|
+
readonly sessionId?: string;
|
|
49
|
+
} | {
|
|
50
|
+
readonly projectId?: string;
|
|
51
|
+
readonly workspaceId?: string;
|
|
52
|
+
readonly sessionId: string;
|
|
53
|
+
};
|
|
54
|
+
/** Plugin-authored notice data. The host supplies the immutable source identity. */
|
|
55
|
+
export interface ServerPluginNoticeInput {
|
|
56
|
+
readonly severity: ServerPluginNoticeSeverity;
|
|
57
|
+
/** Non-empty human-readable text, limited to 4 KiB of UTF-8. */
|
|
58
|
+
readonly message: string;
|
|
59
|
+
/** Omit for a global notice; a supplied scope must contain at least one id. */
|
|
60
|
+
readonly scope?: ServerPluginNoticeScope;
|
|
61
|
+
/** Detached metadata; keys never affect visibility. Limited to 16 KiB and JSON depth 32. */
|
|
62
|
+
readonly context?: JsonObject;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Optional versioned capability for recording host-owned server notices.
|
|
66
|
+
* It remains live through activation, start, active operation, and shutdown
|
|
67
|
+
* dependency cleanup, then is revoked before failed-start rollback or this
|
|
68
|
+
* plugin's ordinary disposal begins.
|
|
69
|
+
*/
|
|
70
|
+
export interface ServerPluginNoticeReporterV1 {
|
|
71
|
+
readonly version: 1;
|
|
72
|
+
/** Throws after reporter revocation or when the complete input is invalid. */
|
|
73
|
+
readonly record: (input: ServerPluginNoticeInput) => void;
|
|
27
74
|
}
|
|
28
75
|
/** Host-owned logger supplied through the frozen activation context. */
|
|
29
76
|
export interface ServerPluginLogger {
|
|
@@ -51,17 +98,108 @@ export interface ServerPluginExecFileResult {
|
|
|
51
98
|
stdoutTruncated: boolean;
|
|
52
99
|
stderrTruncated: boolean;
|
|
53
100
|
}
|
|
101
|
+
/** Current host authority selected only by opaque project and workspace ids. */
|
|
102
|
+
export interface PiWebHostWorkspaceSelection {
|
|
103
|
+
readonly projectId: string;
|
|
104
|
+
readonly workspaceId: string;
|
|
105
|
+
}
|
|
106
|
+
/** Detached project and workspace projections resolved from current host authority. */
|
|
107
|
+
export interface PiWebHostWorkspaceAuthority {
|
|
108
|
+
readonly project: ProjectInput;
|
|
109
|
+
readonly workspace: ServerPluginPeerWorkspace;
|
|
110
|
+
}
|
|
111
|
+
/** Package-attributed resolver for current project/workspace authority. */
|
|
112
|
+
export interface PiWebHostWorkspacesV1 {
|
|
113
|
+
readonly version: 1;
|
|
114
|
+
/** Re-resolve both ids on every call; stale or mismatched selections reject. */
|
|
115
|
+
readonly resolve: (selection: PiWebHostWorkspaceSelection) => Promise<PiWebHostWorkspaceAuthority>;
|
|
116
|
+
}
|
|
117
|
+
/** Exact workspaces v1 capability supplied separately for each declaring server plugin. */
|
|
118
|
+
export declare const PI_WEB_HOST_WORKSPACES_CAPABILITY: PluginCapability<PiWebHostWorkspacesV1, 1>;
|
|
119
|
+
/** Bounded input for one host-owned Pi session run in current workspace authority. */
|
|
120
|
+
export interface PiWebHostPiSessionRunInput {
|
|
121
|
+
/** Opaque current project id, limited to 512 characters. */
|
|
122
|
+
readonly projectId: string;
|
|
123
|
+
/** Opaque current workspace id, limited to 512 characters. */
|
|
124
|
+
readonly workspaceId: string;
|
|
125
|
+
/** Non-empty initial prompt, limited to 64 KiB of UTF-8. */
|
|
126
|
+
readonly prompt: string;
|
|
127
|
+
}
|
|
128
|
+
/** Detached final outcome for one host-owned Pi session run. */
|
|
129
|
+
export type PiWebHostPiSessionRunCompletion = {
|
|
130
|
+
readonly status: "completed";
|
|
131
|
+
} | {
|
|
132
|
+
readonly status: "failed";
|
|
133
|
+
/** Non-empty host-projected failure text, limited to 4 KiB of UTF-8. */
|
|
134
|
+
readonly error: string;
|
|
135
|
+
} | {
|
|
136
|
+
readonly status: "cancelled";
|
|
137
|
+
};
|
|
138
|
+
/** Published host-owned conversation; creation does not open a messaging connection. */
|
|
139
|
+
export interface PiWebHostPiSessionCreated {
|
|
140
|
+
readonly sessionId: string;
|
|
141
|
+
}
|
|
142
|
+
/** Host-owned conversation identity; initial completion never closes the session. */
|
|
143
|
+
export interface PiWebHostPiSessionRun extends PiWebHostPiSessionCreated {
|
|
144
|
+
/** Initial submission outcome, including final provider errors; not later user turns. */
|
|
145
|
+
readonly completion: Promise<PiWebHostPiSessionRunCompletion>;
|
|
146
|
+
}
|
|
147
|
+
/** Bounded initial-run admission. Plugin revocation cancels only unpublished startup. */
|
|
148
|
+
export interface PiWebHostPiSessionsV1 {
|
|
149
|
+
readonly version: 1;
|
|
150
|
+
/** Publish an observed session without a prompt; connect separately before companion kickoff. */
|
|
151
|
+
readonly create: (input: PiWebHostWorkspaceSelection) => Promise<PiWebHostPiSessionCreated>;
|
|
152
|
+
/** Re-resolve current authority, start one session, and admit its initial prompt. */
|
|
153
|
+
readonly run: (input: PiWebHostPiSessionRunInput) => Promise<PiWebHostPiSessionRun>;
|
|
154
|
+
}
|
|
155
|
+
/** Exact PI sessions v1 capability supplied separately for each declaring server plugin. */
|
|
156
|
+
export declare const PI_WEB_HOST_PI_SESSIONS_CAPABILITY: PluginCapability<PiWebHostPiSessionsV1, 1>;
|
|
157
|
+
/** Exact hosted conversation on the selected machine; creation is separate. */
|
|
158
|
+
export interface PiWebHostPiSessionSelection extends PiWebHostWorkspaceSelection {
|
|
159
|
+
readonly sessionId: string;
|
|
160
|
+
}
|
|
161
|
+
/** Ephemeral connection to one hosted session's native pi.events bus. */
|
|
162
|
+
export interface PiWebHostPiSessionConnection {
|
|
163
|
+
/** Aborts on close, plugin disposal, or hosted runtime replacement/close. */
|
|
164
|
+
readonly signal: AbortSignal;
|
|
165
|
+
/** Subscribe before emitting: replies may arrive synchronously. No replay. */
|
|
166
|
+
readonly on: (channel: string, handler: (data: unknown) => void | Promise<void>) => () => void;
|
|
167
|
+
/** Native fire-and-forget delivery; not an acknowledgement or agent completion. */
|
|
168
|
+
readonly emit: (channel: string, data: unknown) => void;
|
|
169
|
+
/** Idempotent; detaches listeners without stopping the conversation. */
|
|
170
|
+
readonly close: () => void;
|
|
171
|
+
}
|
|
172
|
+
export interface PiWebHostPiSessionEventsV1 {
|
|
173
|
+
readonly version: 1;
|
|
174
|
+
readonly connect: (selection: PiWebHostPiSessionSelection) => Promise<PiWebHostPiSessionConnection>;
|
|
175
|
+
}
|
|
176
|
+
/** Session-local package messaging, not an agent-control or SDK capability. */
|
|
177
|
+
export declare const PI_WEB_HOST_PI_SESSION_EVENTS_CAPABILITY: PluginCapability<PiWebHostPiSessionEventsV1, 1>;
|
|
178
|
+
/** Resolver containing only the exact capability requirements declared by a plugin. */
|
|
179
|
+
export interface ServerPluginCapabilityResolver {
|
|
180
|
+
readonly resolve: <Value>(capability: PluginCapability<Value>) => Value;
|
|
181
|
+
}
|
|
182
|
+
/** Frozen values supplied once all declared dependencies are active. */
|
|
183
|
+
export interface ServerPluginStartContext {
|
|
184
|
+
readonly capabilities: ServerPluginCapabilityResolver;
|
|
185
|
+
/** Signal for this bounded start invocation, not the plugin lifetime. */
|
|
186
|
+
readonly signal: AbortSignal;
|
|
187
|
+
}
|
|
54
188
|
/**
|
|
55
189
|
* Signals passed to lifecycle callbacks are scoped to that single invocation
|
|
56
|
-
* and are aborted when it times out or settles.
|
|
57
|
-
*
|
|
190
|
+
* and are aborted when it times out or settles. Lifetime cancellation is
|
|
191
|
+
* supplied separately during activation and precedes bounded disposal.
|
|
58
192
|
*/
|
|
59
193
|
export interface ServerPluginActivation {
|
|
60
194
|
workspaceProvider?: WorkspaceProvider;
|
|
61
|
-
/**
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
|
|
195
|
+
/** Serve bounded requests and optional duplex channels from this package's paired browser entry. */
|
|
196
|
+
peer?: ServerPluginPeer;
|
|
197
|
+
/** Typed capability values owned by this plugin and published only after start succeeds. */
|
|
198
|
+
provides?: readonly PluginCapabilityProvision[];
|
|
199
|
+
/** Initialize resources after every exact declared capability requirement is active. */
|
|
200
|
+
start?(context: ServerPluginStartContext): MaybePromise<void>;
|
|
201
|
+
/** Release resources within one host-bounded disposal invocation. */
|
|
202
|
+
dispose?(signal: AbortSignal): MaybePromise<void>;
|
|
65
203
|
/** Inspect health within one host-bounded health invocation. */
|
|
66
204
|
health?(signal: AbortSignal): MaybePromise<ServerPluginHealth>;
|
|
67
205
|
}
|
|
@@ -70,6 +208,73 @@ export interface ServerPluginHealth {
|
|
|
70
208
|
message?: string;
|
|
71
209
|
details?: JsonObject;
|
|
72
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Capabilities for this package's matching browser entry. An activation may
|
|
213
|
+
* supply a request handler, a channel handler, or both, but never neither.
|
|
214
|
+
*/
|
|
215
|
+
export type ServerPluginPeer = {
|
|
216
|
+
request(context: ServerPluginPeerRequestContext): MaybePromise<JsonValue>;
|
|
217
|
+
/** Open one finite-lived, host-bounded duplex channel. */
|
|
218
|
+
openChannel?(context: ServerPluginPeerChannelOpenContext): MaybePromise<ServerPluginPeerChannel>;
|
|
219
|
+
} | {
|
|
220
|
+
request?: undefined;
|
|
221
|
+
/** Open one finite-lived, host-bounded duplex channel. */
|
|
222
|
+
openChannel(context: ServerPluginPeerChannelOpenContext): MaybePromise<ServerPluginPeerChannel>;
|
|
223
|
+
};
|
|
224
|
+
/** Channel instance returned by `openChannel()` after the host validates scope. */
|
|
225
|
+
export interface ServerPluginPeerChannel {
|
|
226
|
+
/** Consume one browser-authored JSON frame in accepted order within a host-bounded invocation. */
|
|
227
|
+
receive(data: JsonValue, signal: AbortSignal): MaybePromise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Optional plugin-owned completion signal. Resolve it only after the final
|
|
230
|
+
* send; the host boundedly drains accepted transport work before physical
|
|
231
|
+
* close and admission release.
|
|
232
|
+
*/
|
|
233
|
+
readonly closed?: PromiseLike<void>;
|
|
234
|
+
/** Release channel resources once after disconnect, failure, expiry, shutdown, or plugin completion. */
|
|
235
|
+
close?(context: ServerPluginPeerChannelCloseContext): MaybePromise<void>;
|
|
236
|
+
}
|
|
237
|
+
export interface ServerPluginPeerChannelCloseContext {
|
|
238
|
+
readonly code: number;
|
|
239
|
+
readonly reason: string;
|
|
240
|
+
/** Signal for this bounded close invocation, not the already-ended channel lifetime. */
|
|
241
|
+
readonly signal: AbortSignal;
|
|
242
|
+
}
|
|
243
|
+
/** Host-resolved, browser-visible workspace projection without provider-private data. */
|
|
244
|
+
export interface ServerPluginPeerWorkspace {
|
|
245
|
+
readonly id: string;
|
|
246
|
+
readonly projectId: string;
|
|
247
|
+
readonly path: string;
|
|
248
|
+
readonly label: string;
|
|
249
|
+
readonly isMain: boolean;
|
|
250
|
+
readonly provider?: WorkspaceProviderMetadata;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Every value is host-derived, cloned, and frozen. The signal belongs only to
|
|
254
|
+
* this callback and is aborted when the request times out, is cancelled, or
|
|
255
|
+
* settles.
|
|
256
|
+
*/
|
|
257
|
+
export interface ServerPluginPeerRequestContext {
|
|
258
|
+
readonly project: ProjectInput;
|
|
259
|
+
readonly workspace: ServerPluginPeerWorkspace;
|
|
260
|
+
readonly operation: string;
|
|
261
|
+
readonly input: JsonValue;
|
|
262
|
+
readonly signal: AbortSignal;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Host-resolved channel scope. `signal` remains live for the channel lifetime
|
|
266
|
+
* and is aborted on disconnect, failure, expiry, or shutdown. `send()` clones
|
|
267
|
+
* and bounds one JSON frame synchronously; success means queue acceptance, not
|
|
268
|
+
* remote receipt. Invalid data or host queue overflow throws and closes the channel.
|
|
269
|
+
*/
|
|
270
|
+
export interface ServerPluginPeerChannelOpenContext {
|
|
271
|
+
readonly project: ProjectInput;
|
|
272
|
+
readonly workspace: ServerPluginPeerWorkspace;
|
|
273
|
+
readonly operation: string;
|
|
274
|
+
readonly input: JsonValue;
|
|
275
|
+
readonly signal: AbortSignal;
|
|
276
|
+
readonly send: (data: JsonValue) => void;
|
|
277
|
+
}
|
|
73
278
|
/**
|
|
74
279
|
* Every signal supplied to a provider is scoped to that single callback
|
|
75
280
|
* invocation. The host aborts it when the operation times out or settles; it
|
|
@@ -80,7 +285,6 @@ export interface WorkspaceProvider {
|
|
|
80
285
|
fallback?: boolean;
|
|
81
286
|
probe(project: ProjectInput, signal: AbortSignal): Promise<ProviderClaim>;
|
|
82
287
|
list(project: ProjectInput, signal: AbortSignal): Promise<ProviderWorkspace[]>;
|
|
83
|
-
request?(context: ProviderRequestContext): Promise<ProviderResponse>;
|
|
84
288
|
prepareRemove?(context: ProviderRemoveContext): Promise<WorkspaceRemovePlan>;
|
|
85
289
|
}
|
|
86
290
|
export type ProviderClaim = "claim" | "pass";
|
|
@@ -105,16 +309,6 @@ export interface ProviderWorkspace {
|
|
|
105
309
|
publicMetadata?: JsonObject;
|
|
106
310
|
removal?: WorkspaceRemovalPresentation;
|
|
107
311
|
}
|
|
108
|
-
export interface ProviderRequestContext {
|
|
109
|
-
readonly project: ProjectInput;
|
|
110
|
-
/** Host-validated, frozen projection of one listed provider workspace. */
|
|
111
|
-
readonly workspace: Readonly<ProviderWorkspace>;
|
|
112
|
-
readonly operation: string;
|
|
113
|
-
readonly input: JsonValue;
|
|
114
|
-
readonly signal: AbortSignal;
|
|
115
|
-
}
|
|
116
|
-
/** Provider-private JSON result returned through the host's scoped bridge. */
|
|
117
|
-
export type ProviderResponse = JsonValue;
|
|
118
312
|
export interface ProviderRemoveContext {
|
|
119
313
|
readonly project: ProjectInput;
|
|
120
314
|
/** Host-validated, frozen projection of one listed provider workspace. */
|