@getpaseo/server 0.1.58 → 0.1.60
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/dist/scripts/dev-runner.js +26 -7
- package/dist/scripts/dev-runner.js.map +1 -1
- package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
- package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
- package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
- package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
- package/dist/server/client/daemon-client.d.ts +58 -9
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +151 -10
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +55 -48
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +541 -331
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +3 -2
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +31 -16
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts +2 -1
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +29 -1
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +9 -5
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +76 -69
- package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.js +13 -6
- package/dist/server/server/agent/agent-storage.js.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
- package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
- package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
- package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.js +245 -0
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts +12 -1
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +276 -65
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +196 -152
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +40 -42
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
- package/dist/server/server/agent/model-resolver.js +3 -1
- package/dist/server/server/agent/model-resolver.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts +6 -0
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
- package/dist/server/server/agent/prompt-attachments.js +31 -0
- package/dist/server/server/agent/prompt-attachments.js.map +1 -0
- package/dist/server/server/agent/provider-launch-config.d.ts +12 -10
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +34 -0
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +1 -0
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +22 -1
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts +5 -2
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +20 -9
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +17 -5
- package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js +150 -61
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +8 -4
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +73 -8
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.js +21 -0
- package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
- package/dist/server/server/agent/providers/claude-agent.d.ts +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +15 -8
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +37 -4
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +61 -31
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -2
- package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +64 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js +585 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts +19 -4
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +227 -118
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts +69 -0
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js +1177 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -4
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +13 -13
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.js +20 -36
- package/dist/server/server/agent-attention-policy.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +6 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +113 -11
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/chat/chat-rpc-schemas.d.ts +44 -44
- package/dist/server/server/chat/chat-types.d.ts +6 -6
- package/dist/server/server/checkout-diff-manager.d.ts +0 -1
- package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
- package/dist/server/server/checkout-diff-manager.js +6 -4
- package/dist/server/server/checkout-diff-manager.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +1 -0
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +2 -1
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +392 -392
- package/dist/server/server/loop-service.d.ts +52 -52
- package/dist/server/server/paseo-worktree-archive-service.d.ts +41 -0
- package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-archive-service.js +137 -0
- package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
- package/dist/server/server/paseo-worktree-service.d.ts +24 -0
- package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-service.js +94 -0
- package/dist/server/server/paseo-worktree-service.js.map +1 -0
- package/dist/server/server/path-utils.d.ts +1 -0
- package/dist/server/server/path-utils.d.ts.map +1 -1
- package/dist/server/server/path-utils.js +9 -0
- package/dist/server/server/path-utils.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +73 -73
- package/dist/server/server/persistence-hooks.d.ts.map +1 -1
- package/dist/server/server/persistence-hooks.js +3 -0
- package/dist/server/server/persistence-hooks.js.map +1 -1
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +30 -0
- package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
- package/dist/server/server/resolve-worktree-creation-intent.js +163 -0
- package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
- package/dist/server/server/schedule/rpc-schemas.d.ts +192 -192
- package/dist/server/server/schedule/service.d.ts +1 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/types.d.ts +44 -44
- package/dist/server/server/script-health-monitor.d.ts +39 -0
- package/dist/server/server/script-health-monitor.d.ts.map +1 -0
- package/dist/server/server/script-health-monitor.js +158 -0
- package/dist/server/server/script-health-monitor.js.map +1 -0
- package/dist/server/server/script-proxy.d.ts +40 -0
- package/dist/server/server/script-proxy.d.ts.map +1 -0
- package/dist/server/server/script-proxy.js +245 -0
- package/dist/server/server/script-proxy.js.map +1 -0
- package/dist/server/server/script-route-branch-handler.d.ts +10 -0
- package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
- package/dist/server/server/script-route-branch-handler.js +45 -0
- package/dist/server/server/script-route-branch-handler.js.map +1 -0
- package/dist/server/server/script-status-projection.d.ts +29 -0
- package/dist/server/server/script-status-projection.d.ts.map +1 -0
- package/dist/server/server/script-status-projection.js +133 -0
- package/dist/server/server/script-status-projection.js.map +1 -0
- package/dist/server/server/session.d.ts +77 -13
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +1290 -548
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +27 -3
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +112 -29
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-archive-service.d.ts +8 -0
- package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
- package/dist/server/server/workspace-archive-service.js +17 -0
- package/dist/server/server/workspace-archive-service.js.map +1 -0
- package/dist/server/server/workspace-git-metadata.d.ts +24 -0
- package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
- package/dist/server/server/workspace-git-metadata.js +78 -0
- package/dist/server/server/workspace-git-metadata.js.map +1 -0
- package/dist/server/server/workspace-git-service.d.ts +104 -5
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +442 -56
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-reconciliation-service.d.ts +54 -0
- package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
- package/dist/server/server/workspace-reconciliation-service.js +176 -0
- package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
- package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-bootstrap.js +4 -3
- package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
- package/dist/server/server/workspace-registry.d.ts +8 -8
- package/dist/server/server/workspace-registry.test-helpers.d.ts +37 -0
- package/dist/server/server/workspace-registry.test-helpers.d.ts.map +1 -0
- package/dist/server/server/workspace-registry.test-helpers.js +121 -0
- package/dist/server/server/workspace-registry.test-helpers.js.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.js +78 -0
- package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
- package/dist/server/server/workspace-service-env.d.ts +17 -0
- package/dist/server/server/workspace-service-env.d.ts.map +1 -0
- package/dist/server/server/workspace-service-env.js +80 -0
- package/dist/server/server/workspace-service-env.js.map +1 -0
- package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
- package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
- package/dist/server/server/workspace-service-port-registry.js +59 -0
- package/dist/server/server/workspace-service-port-registry.js.map +1 -0
- package/dist/server/server/worktree-bootstrap.d.ts +55 -10
- package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
- package/dist/server/server/worktree-bootstrap.js +290 -112
- package/dist/server/server/worktree-bootstrap.js.map +1 -1
- package/dist/server/server/worktree-core.d.ts +25 -0
- package/dist/server/server/worktree-core.d.ts.map +1 -0
- package/dist/server/server/worktree-core.js +75 -0
- package/dist/server/server/worktree-core.js.map +1 -0
- package/dist/server/server/worktree-errors.d.ts +12 -0
- package/dist/server/server/worktree-errors.d.ts.map +1 -0
- package/dist/server/server/worktree-errors.js +31 -0
- package/dist/server/server/worktree-errors.js.map +1 -0
- package/dist/server/server/worktree-session.d.ts +56 -70
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +176 -251
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/services/github-service.d.ts +225 -0
- package/dist/server/services/github-service.d.ts.map +1 -0
- package/dist/server/services/github-service.js +1381 -0
- package/dist/server/services/github-service.js.map +1 -0
- package/dist/server/shared/messages.d.ts +29408 -12268
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +391 -65
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/dist/server/terminal/terminal-manager.d.ts +9 -0
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +27 -0
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
- package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
- package/dist/server/terminal/terminal-output-coalescer.js +55 -0
- package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +32 -1
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +397 -17
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +63 -10
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +321 -229
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/promise-timeout.d.ts +9 -0
- package/dist/server/utils/promise-timeout.d.ts.map +1 -0
- package/dist/server/utils/promise-timeout.js +25 -0
- package/dist/server/utils/promise-timeout.js.map +1 -0
- package/dist/server/utils/script-hostname.d.ts +8 -0
- package/dist/server/utils/script-hostname.d.ts.map +1 -0
- package/dist/server/utils/script-hostname.js +14 -0
- package/dist/server/utils/script-hostname.js.map +1 -0
- package/dist/server/utils/string-command-shell.d.ts +10 -0
- package/dist/server/utils/string-command-shell.d.ts.map +1 -0
- package/dist/server/utils/string-command-shell.js +21 -0
- package/dist/server/utils/string-command-shell.js.map +1 -0
- package/dist/server/utils/worktree.d.ts +54 -7
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +434 -129
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/package.json +11 -14
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
- package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
|
@@ -2,12 +2,16 @@ import { AgentCreateFailedStatusPayloadSchema, AgentCreatedStatusPayloadSchema,
|
|
|
2
2
|
import { isRelayClientWebSocketUrl } from "../shared/daemon-endpoints.js";
|
|
3
3
|
import { asUint8Array, decodeTerminalSnapshotPayload, decodeTerminalStreamFrame, encodeTerminalResizePayload, encodeTerminalStreamFrame, TerminalStreamOpcode, } from "../shared/terminal-stream-protocol.js";
|
|
4
4
|
import { createRelayE2eeTransportFactory, createWebSocketTransportFactory, decodeMessageData, defaultWebSocketFactory, describeTransportClose, describeTransportError, encodeUtf8String, } from "./daemon-client-transport.js";
|
|
5
|
+
import { DaemonClientRuntimeMetrics } from "./daemon-client-runtime-metrics.js";
|
|
5
6
|
const consoleLogger = {
|
|
6
7
|
debug: () => { },
|
|
7
|
-
info: (obj, msg) => console.
|
|
8
|
+
info: (obj, msg) => console.log(msg, obj),
|
|
8
9
|
warn: (obj, msg) => console.warn(msg, obj),
|
|
9
10
|
error: (obj, msg) => console.error(msg, obj),
|
|
10
11
|
};
|
|
12
|
+
const perfNow = typeof performance !== "undefined" && typeof performance.now === "function"
|
|
13
|
+
? () => performance.now()
|
|
14
|
+
: () => Date.now();
|
|
11
15
|
class DaemonRpcError extends Error {
|
|
12
16
|
constructor(params) {
|
|
13
17
|
const parts = [params.error];
|
|
@@ -97,6 +101,8 @@ export class DaemonClient {
|
|
|
97
101
|
this.terminalStreamListeners = new Set();
|
|
98
102
|
this.pendingSendQueue = [];
|
|
99
103
|
this.lastServerInfoMessage = null;
|
|
104
|
+
this.runtimeMetricsInterval = null;
|
|
105
|
+
this.runtimeMetrics = null;
|
|
100
106
|
this.logger = config.logger ?? consoleLogger;
|
|
101
107
|
this.logConnectionPath = isRelayClientWebSocketUrl(this.config.url) ? "relay" : "direct";
|
|
102
108
|
let parsedUrlForLog = null;
|
|
@@ -119,6 +125,22 @@ export class DaemonClient {
|
|
|
119
125
|
Number.isFinite(this.config.runtimeGeneration)
|
|
120
126
|
? this.config.runtimeGeneration
|
|
121
127
|
: null;
|
|
128
|
+
const runtimeMetricsIntervalMs = typeof config.runtimeMetricsIntervalMs === "number" && config.runtimeMetricsIntervalMs > 0
|
|
129
|
+
? config.runtimeMetricsIntervalMs
|
|
130
|
+
: 0;
|
|
131
|
+
if (runtimeMetricsIntervalMs > 0) {
|
|
132
|
+
const runtimeMetricsWindowMs = typeof config.runtimeMetricsWindowMs === "number" && config.runtimeMetricsWindowMs > 0
|
|
133
|
+
? Math.max(config.runtimeMetricsWindowMs, runtimeMetricsIntervalMs)
|
|
134
|
+
: undefined;
|
|
135
|
+
this.runtimeMetrics = new DaemonClientRuntimeMetrics(this.logger, {
|
|
136
|
+
connectionPath: this.logConnectionPath,
|
|
137
|
+
serverId: this.logServerId,
|
|
138
|
+
getConnectionStatus: () => this.connectionState.status,
|
|
139
|
+
}, runtimeMetricsWindowMs ? { windowMs: runtimeMetricsWindowMs } : undefined);
|
|
140
|
+
this.runtimeMetricsInterval = setInterval(() => {
|
|
141
|
+
this.runtimeMetrics?.flush();
|
|
142
|
+
}, runtimeMetricsIntervalMs);
|
|
143
|
+
}
|
|
122
144
|
}
|
|
123
145
|
// ============================================================================
|
|
124
146
|
// Connection
|
|
@@ -308,6 +330,12 @@ export class DaemonClient {
|
|
|
308
330
|
this.rejectPendingSendQueue(new Error("Daemon client closed"));
|
|
309
331
|
this.clearTerminalSlots();
|
|
310
332
|
this.lastServerInfoMessage = null;
|
|
333
|
+
if (this.runtimeMetricsInterval) {
|
|
334
|
+
clearInterval(this.runtimeMetricsInterval);
|
|
335
|
+
this.runtimeMetricsInterval = null;
|
|
336
|
+
this.runtimeMetrics?.flush({ final: true });
|
|
337
|
+
this.runtimeMetrics = null;
|
|
338
|
+
}
|
|
311
339
|
this.updateConnectionState({ status: "disposed" }, { event: "DISPOSE", reason: "Client closed", reasonCode: "disposed" });
|
|
312
340
|
}
|
|
313
341
|
ensureConnected() {
|
|
@@ -641,6 +669,7 @@ export class DaemonClient {
|
|
|
641
669
|
const message = SessionInboundMessageSchema.parse({
|
|
642
670
|
type: "fetch_agents_request",
|
|
643
671
|
requestId: resolvedRequestId,
|
|
672
|
+
...(options?.scope ? { scope: options.scope } : {}),
|
|
644
673
|
...(options?.filter ? { filter: options.filter } : {}),
|
|
645
674
|
...(options?.sort ? { sort: options.sort } : {}),
|
|
646
675
|
...(options?.page ? { page: options.page } : {}),
|
|
@@ -662,6 +691,31 @@ export class DaemonClient {
|
|
|
662
691
|
},
|
|
663
692
|
});
|
|
664
693
|
}
|
|
694
|
+
async fetchAgentHistory(options) {
|
|
695
|
+
const resolvedRequestId = this.createRequestId(options?.requestId);
|
|
696
|
+
const message = SessionInboundMessageSchema.parse({
|
|
697
|
+
type: "fetch_agent_history_request",
|
|
698
|
+
requestId: resolvedRequestId,
|
|
699
|
+
...(options?.filter ? { filter: options.filter } : {}),
|
|
700
|
+
...(options?.sort ? { sort: options.sort } : {}),
|
|
701
|
+
...(options?.page ? { page: options.page } : {}),
|
|
702
|
+
});
|
|
703
|
+
return this.sendRequest({
|
|
704
|
+
requestId: resolvedRequestId,
|
|
705
|
+
message,
|
|
706
|
+
timeout: 10000,
|
|
707
|
+
options: { skipQueue: true },
|
|
708
|
+
select: (msg) => {
|
|
709
|
+
if (msg.type !== "fetch_agent_history_response") {
|
|
710
|
+
return null;
|
|
711
|
+
}
|
|
712
|
+
if (msg.payload.requestId !== resolvedRequestId) {
|
|
713
|
+
return null;
|
|
714
|
+
}
|
|
715
|
+
return msg.payload;
|
|
716
|
+
},
|
|
717
|
+
});
|
|
718
|
+
}
|
|
665
719
|
async fetchWorkspaces(options) {
|
|
666
720
|
const resolvedRequestId = this.createRequestId(options?.requestId);
|
|
667
721
|
const message = SessionInboundMessageSchema.parse({
|
|
@@ -699,6 +753,18 @@ export class DaemonClient {
|
|
|
699
753
|
timeout: 10000,
|
|
700
754
|
});
|
|
701
755
|
}
|
|
756
|
+
async startWorkspaceScript(workspaceId, scriptName, requestId) {
|
|
757
|
+
return this.sendCorrelatedSessionRequest({
|
|
758
|
+
requestId,
|
|
759
|
+
message: {
|
|
760
|
+
type: "start_workspace_script_request",
|
|
761
|
+
workspaceId,
|
|
762
|
+
scriptName,
|
|
763
|
+
},
|
|
764
|
+
responseType: "start_workspace_script_response",
|
|
765
|
+
timeout: 10000,
|
|
766
|
+
});
|
|
767
|
+
}
|
|
702
768
|
async listAvailableEditors(requestId) {
|
|
703
769
|
return this.sendCorrelatedSessionRequest({
|
|
704
770
|
requestId,
|
|
@@ -732,6 +798,17 @@ export class DaemonClient {
|
|
|
732
798
|
timeout: 10000,
|
|
733
799
|
});
|
|
734
800
|
}
|
|
801
|
+
async fetchWorkspaceSetupStatus(workspaceId, requestId) {
|
|
802
|
+
return this.sendCorrelatedSessionRequest({
|
|
803
|
+
requestId,
|
|
804
|
+
message: {
|
|
805
|
+
type: "workspace_setup_status_request",
|
|
806
|
+
workspaceId,
|
|
807
|
+
},
|
|
808
|
+
responseType: "workspace_setup_status_response",
|
|
809
|
+
timeout: 10000,
|
|
810
|
+
});
|
|
811
|
+
}
|
|
735
812
|
async fetchAgent(agentId, requestId) {
|
|
736
813
|
const resolvedRequestId = this.createRequestId(requestId);
|
|
737
814
|
const message = SessionInboundMessageSchema.parse({
|
|
@@ -798,10 +875,14 @@ export class DaemonClient {
|
|
|
798
875
|
type: "create_agent_request",
|
|
799
876
|
requestId,
|
|
800
877
|
config,
|
|
878
|
+
...(options.workspaceId !== undefined ? { workspaceId: options.workspaceId } : {}),
|
|
801
879
|
...(options.initialPrompt ? { initialPrompt: options.initialPrompt } : {}),
|
|
802
880
|
...(options.clientMessageId ? { clientMessageId: options.clientMessageId } : {}),
|
|
803
881
|
...(options.outputSchema ? { outputSchema: options.outputSchema } : {}),
|
|
804
882
|
...(options.images && options.images.length > 0 ? { images: options.images } : {}),
|
|
883
|
+
...(options.attachments && options.attachments.length > 0
|
|
884
|
+
? { attachments: options.attachments }
|
|
885
|
+
: {}),
|
|
805
886
|
...(options.git ? { git: options.git } : {}),
|
|
806
887
|
...(options.worktreeName ? { worktreeName: options.worktreeName } : {}),
|
|
807
888
|
...(options.labels && Object.keys(options.labels).length > 0
|
|
@@ -1004,6 +1085,7 @@ export class DaemonClient {
|
|
|
1004
1085
|
text,
|
|
1005
1086
|
...(messageId ? { messageId } : {}),
|
|
1006
1087
|
...(options?.images ? { images: options.images } : {}),
|
|
1088
|
+
...(options?.attachments ? { attachments: options.attachments } : {}),
|
|
1007
1089
|
});
|
|
1008
1090
|
const payload = await this.sendRequest({
|
|
1009
1091
|
requestId,
|
|
@@ -1458,15 +1540,20 @@ export class DaemonClient {
|
|
|
1458
1540
|
return responsePromise;
|
|
1459
1541
|
}
|
|
1460
1542
|
normalizeCheckoutDiffCompare(compare) {
|
|
1461
|
-
const ignoreWhitespace = compare.ignoreWhitespace === true;
|
|
1462
1543
|
if (compare.mode === "uncommitted") {
|
|
1463
|
-
return
|
|
1544
|
+
return compare.ignoreWhitespace === true
|
|
1545
|
+
? { mode: "uncommitted", ignoreWhitespace: true }
|
|
1546
|
+
: { mode: "uncommitted" };
|
|
1464
1547
|
}
|
|
1465
1548
|
const trimmedBaseRef = compare.baseRef?.trim();
|
|
1466
1549
|
if (!trimmedBaseRef) {
|
|
1467
|
-
return
|
|
1550
|
+
return compare.ignoreWhitespace === true
|
|
1551
|
+
? { mode: "base", ignoreWhitespace: true }
|
|
1552
|
+
: { mode: "base" };
|
|
1468
1553
|
}
|
|
1469
|
-
return
|
|
1554
|
+
return compare.ignoreWhitespace === true
|
|
1555
|
+
? { mode: "base", baseRef: trimmedBaseRef, ignoreWhitespace: true }
|
|
1556
|
+
: { mode: "base", baseRef: trimmedBaseRef };
|
|
1470
1557
|
}
|
|
1471
1558
|
async getCheckoutDiff(cwd, compare, requestId) {
|
|
1472
1559
|
const oneShotSubscriptionId = `oneshot-checkout-diff:${crypto.randomUUID()}`;
|
|
@@ -1626,6 +1713,20 @@ export class DaemonClient {
|
|
|
1626
1713
|
timeout: 60000,
|
|
1627
1714
|
});
|
|
1628
1715
|
}
|
|
1716
|
+
async pullRequestTimeline(input, requestId) {
|
|
1717
|
+
return this.sendCorrelatedSessionRequest({
|
|
1718
|
+
requestId,
|
|
1719
|
+
message: {
|
|
1720
|
+
type: "pull_request_timeline_request",
|
|
1721
|
+
cwd: input.cwd,
|
|
1722
|
+
prNumber: input.prNumber,
|
|
1723
|
+
repoOwner: input.repoOwner,
|
|
1724
|
+
repoName: input.repoName,
|
|
1725
|
+
},
|
|
1726
|
+
responseType: "pull_request_timeline_response",
|
|
1727
|
+
timeout: 60000,
|
|
1728
|
+
});
|
|
1729
|
+
}
|
|
1629
1730
|
async checkoutSwitchBranch(cwd, branch, requestId) {
|
|
1630
1731
|
return this.sendCorrelatedSessionRequest({
|
|
1631
1732
|
requestId,
|
|
@@ -1706,6 +1807,12 @@ export class DaemonClient {
|
|
|
1706
1807
|
type: "create_paseo_worktree_request",
|
|
1707
1808
|
cwd: input.cwd,
|
|
1708
1809
|
worktreeSlug: input.worktreeSlug,
|
|
1810
|
+
...(input.attachments && input.attachments.length > 0
|
|
1811
|
+
? { attachments: input.attachments }
|
|
1812
|
+
: {}),
|
|
1813
|
+
...(input.refName !== undefined ? { refName: input.refName } : {}),
|
|
1814
|
+
...(input.action !== undefined ? { action: input.action } : {}),
|
|
1815
|
+
...(input.githubPrNumber !== undefined ? { githubPrNumber: input.githubPrNumber } : {}),
|
|
1709
1816
|
},
|
|
1710
1817
|
responseType: "create_paseo_worktree_response",
|
|
1711
1818
|
timeout: 60000,
|
|
@@ -1736,6 +1843,20 @@ export class DaemonClient {
|
|
|
1736
1843
|
timeout: 10000,
|
|
1737
1844
|
});
|
|
1738
1845
|
}
|
|
1846
|
+
async searchGitHub(options, requestId) {
|
|
1847
|
+
return this.sendCorrelatedSessionRequest({
|
|
1848
|
+
requestId,
|
|
1849
|
+
message: {
|
|
1850
|
+
type: "github_search_request",
|
|
1851
|
+
cwd: options.cwd,
|
|
1852
|
+
query: options.query,
|
|
1853
|
+
limit: options.limit,
|
|
1854
|
+
kinds: options.kinds,
|
|
1855
|
+
},
|
|
1856
|
+
responseType: "github_search_response",
|
|
1857
|
+
timeout: 15000,
|
|
1858
|
+
});
|
|
1859
|
+
}
|
|
1739
1860
|
async getDirectorySuggestions(options, requestId) {
|
|
1740
1861
|
return this.sendCorrelatedSessionRequest({
|
|
1741
1862
|
requestId,
|
|
@@ -2010,9 +2131,6 @@ export class DaemonClient {
|
|
|
2010
2131
|
if (settled) {
|
|
2011
2132
|
return;
|
|
2012
2133
|
}
|
|
2013
|
-
if (message.type !== "agent_update") {
|
|
2014
|
-
return;
|
|
2015
|
-
}
|
|
2016
2134
|
if (message.payload.kind !== "upsert") {
|
|
2017
2135
|
return;
|
|
2018
2136
|
}
|
|
@@ -2096,12 +2214,15 @@ export class DaemonClient {
|
|
|
2096
2214
|
options: { skipQueue: true },
|
|
2097
2215
|
});
|
|
2098
2216
|
}
|
|
2099
|
-
async createTerminal(cwd, name, requestId) {
|
|
2217
|
+
async createTerminal(cwd, name, requestId, options) {
|
|
2100
2218
|
const resolvedRequestId = this.createRequestId(requestId);
|
|
2101
2219
|
const message = SessionInboundMessageSchema.parse({
|
|
2102
2220
|
type: "create_terminal_request",
|
|
2103
2221
|
cwd,
|
|
2104
2222
|
name,
|
|
2223
|
+
agentId: options?.agentId,
|
|
2224
|
+
command: options?.command,
|
|
2225
|
+
args: options?.args,
|
|
2105
2226
|
requestId: resolvedRequestId,
|
|
2106
2227
|
});
|
|
2107
2228
|
return this.sendCorrelatedRequest({
|
|
@@ -2593,7 +2714,13 @@ export class DaemonClient {
|
|
|
2593
2714
|
if (rawBytes) {
|
|
2594
2715
|
const frame = decodeTerminalStreamFrame(rawBytes);
|
|
2595
2716
|
if (frame) {
|
|
2717
|
+
const binaryStartMs = perfNow();
|
|
2596
2718
|
this.handleBinaryFrame(frame);
|
|
2719
|
+
this.runtimeMetrics?.recordBinaryFrame(frame.opcode === TerminalStreamOpcode.Output
|
|
2720
|
+
? "output"
|
|
2721
|
+
: frame.opcode === TerminalStreamOpcode.Snapshot
|
|
2722
|
+
? "snapshot"
|
|
2723
|
+
: "other", rawBytes.byteLength, perfNow() - binaryStartMs);
|
|
2597
2724
|
return;
|
|
2598
2725
|
}
|
|
2599
2726
|
}
|
|
@@ -2601,6 +2728,8 @@ export class DaemonClient {
|
|
|
2601
2728
|
if (!payload) {
|
|
2602
2729
|
return;
|
|
2603
2730
|
}
|
|
2731
|
+
const bytes = rawBytes?.byteLength ?? payload.length;
|
|
2732
|
+
const startMs = perfNow();
|
|
2604
2733
|
let parsedJson;
|
|
2605
2734
|
try {
|
|
2606
2735
|
parsedJson = JSON.parse(payload);
|
|
@@ -2615,9 +2744,15 @@ export class DaemonClient {
|
|
|
2615
2744
|
return;
|
|
2616
2745
|
}
|
|
2617
2746
|
if (parsed.data.type === "pong") {
|
|
2747
|
+
this.runtimeMetrics?.recordMessage("pong", bytes, perfNow() - startMs);
|
|
2618
2748
|
return;
|
|
2619
2749
|
}
|
|
2620
2750
|
this.handleSessionMessage(parsed.data.message);
|
|
2751
|
+
const msgType = parsed.data.message.type;
|
|
2752
|
+
this.runtimeMetrics?.recordMessage(msgType, bytes, perfNow() - startMs);
|
|
2753
|
+
if (parsed.data.message.type === "agent_stream") {
|
|
2754
|
+
this.runtimeMetrics?.recordAgentStream(parsed.data.message.payload);
|
|
2755
|
+
}
|
|
2621
2756
|
}
|
|
2622
2757
|
handleBinaryFrame(frame) {
|
|
2623
2758
|
const terminalId = this.slotTerminals.get(frame.slot);
|
|
@@ -2811,6 +2946,12 @@ export class DaemonClient {
|
|
|
2811
2946
|
workspaceId: msg.payload.kind === "upsert" ? msg.payload.workspace.id : msg.payload.id,
|
|
2812
2947
|
payload: msg.payload,
|
|
2813
2948
|
};
|
|
2949
|
+
case "workspace_setup_progress":
|
|
2950
|
+
return {
|
|
2951
|
+
type: "workspace_setup_progress",
|
|
2952
|
+
workspaceId: msg.payload.workspaceId,
|
|
2953
|
+
payload: msg.payload,
|
|
2954
|
+
};
|
|
2814
2955
|
case "agent_stream":
|
|
2815
2956
|
return {
|
|
2816
2957
|
type: "agent_stream",
|
|
@@ -2907,7 +3048,7 @@ export class DaemonClient {
|
|
|
2907
3048
|
}
|
|
2908
3049
|
}
|
|
2909
3050
|
function resolveAgentConfig(options) {
|
|
2910
|
-
const { config, provider, cwd, initialPrompt: _initialPrompt, images: _images, git: _git, worktreeName: _worktreeName, requestId: _requestId, labels: _labels, ...overrides } = options;
|
|
3051
|
+
const { config, provider, cwd, workspaceId: _workspaceId, initialPrompt: _initialPrompt, images: _images, git: _git, worktreeName: _worktreeName, requestId: _requestId, labels: _labels, ...overrides } = options;
|
|
2911
3052
|
const baseConfig = {
|
|
2912
3053
|
...(provider ? { provider } : {}),
|
|
2913
3054
|
...(cwd ? { cwd } : {}),
|