@hyperdrive.bot/paseo-client 0.3.34 → 0.3.36
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/daemon-client.d.ts +136 -2
- package/dist/daemon-client.js +185 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.js +4 -0
- package/package.json +3 -3
package/dist/daemon-client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { z } from "zod";
|
|
2
2
|
import { type ClientCapability } from "@hyperdrive.bot/paseo-protocol/client-capabilities";
|
|
3
3
|
import { AgentRefreshedStatusPayloadSchema, CheckoutRenameBranchResponseSchema, RenameTerminalResponseSchema, RestartRequestedStatusPayloadSchema, ShutdownRequestedStatusPayloadSchema, DaemonUpdateResponseSchema, type ServerInfoStatusPayload } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
4
|
-
import type { AgentStreamEventPayload, InstalledExtension, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreatePaseoWorktreeRequest, FileDownloadTokenResponse, FileExplorerResponse, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, GitHubSearchResponse, GitHubSearchRequest, DirectorySuggestionsResponse, PaseoWorktreeListResponse, PaseoWorktreeArchiveResponse, ProjectIconResponse, ProjectAddResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, PaseoConfigRaw, PaseoConfigRevision, ProjectRenameResponse, WatchNotificationActionMessage, WatchSessionSearchMessage, WatchComposerDictateMessage, WorkflowSnapshot, WorkflowStatus, WorkflowTaskGraph, WorkspaceCreateRequest } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
4
|
+
import type { AgentStreamEventPayload, InstalledExtension, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreatePaseoWorktreeRequest, FileDownloadTokenResponse, FileExplorerResponse, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, GitHubSearchResponse, GitHubSearchRequest, DirectorySuggestionsResponse, PaseoWorktreeListResponse, PaseoWorktreeArchiveResponse, ProjectIconResponse, ProjectAddResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, PaseoConfigRaw, PaseoConfigRevision, ProjectRenameResponse, BackgroundTaskPayload, WatchNotificationActionMessage, WatchSessionSearchMessage, WatchComposerDictateMessage, WorkflowSnapshot, WorkflowStatus, WorkflowTaskGraph, WorkspaceCreateRequest } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
5
5
|
import type { AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentProviderNotice, AgentProvider, AgentSessionConfig } from "@hyperdrive.bot/paseo-protocol/agent-types";
|
|
6
|
-
import type { MutableDaemonConfig, MutableDaemonConfigPatch } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
6
|
+
import type { MutableDaemonConfig, MutableDaemonConfigPatch, ProvidersReloadConfigPayload } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
7
7
|
import type { FileUploadErrorCode } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
8
8
|
import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
|
|
9
9
|
import { type TerminalStreamEvent } from "./terminal-stream-router.js";
|
|
@@ -283,6 +283,97 @@ type LoopLogsPayload = Extract<SessionOutboundMessage, {
|
|
|
283
283
|
type LoopStopPayload = Extract<SessionOutboundMessage, {
|
|
284
284
|
type: "loop/stop/response";
|
|
285
285
|
}>["payload"];
|
|
286
|
+
type FleetListPayload = Extract<SessionOutboundMessage, {
|
|
287
|
+
type: "fleet/list/response";
|
|
288
|
+
}>["payload"];
|
|
289
|
+
type FleetInspectPayload = Extract<SessionOutboundMessage, {
|
|
290
|
+
type: "fleet/inspect/response";
|
|
291
|
+
}>["payload"];
|
|
292
|
+
type FleetRunNowPayload = Extract<SessionOutboundMessage, {
|
|
293
|
+
type: "fleet/run-now/response";
|
|
294
|
+
}>["payload"];
|
|
295
|
+
type FleetPausePayload = Extract<SessionOutboundMessage, {
|
|
296
|
+
type: "fleet/pause/response";
|
|
297
|
+
}>["payload"];
|
|
298
|
+
type FleetResumePayload = Extract<SessionOutboundMessage, {
|
|
299
|
+
type: "fleet/resume/response";
|
|
300
|
+
}>["payload"];
|
|
301
|
+
type FleetAskPayload = Extract<SessionOutboundMessage, {
|
|
302
|
+
type: "fleet/ask/response";
|
|
303
|
+
}>["payload"];
|
|
304
|
+
type FleetDecisionsPayload = Extract<SessionOutboundMessage, {
|
|
305
|
+
type: "fleet/decisions/response";
|
|
306
|
+
}>["payload"];
|
|
307
|
+
type FleetResolveDecisionPayload = Extract<SessionOutboundMessage, {
|
|
308
|
+
type: "fleet/resolve-decision/response";
|
|
309
|
+
}>["payload"];
|
|
310
|
+
type FleetSetParamsPayload = Extract<SessionOutboundMessage, {
|
|
311
|
+
type: "fleet/set-params/response";
|
|
312
|
+
}>["payload"];
|
|
313
|
+
type FleetSetModePayload = Extract<SessionOutboundMessage, {
|
|
314
|
+
type: "fleet/set-mode/response";
|
|
315
|
+
}>["payload"];
|
|
316
|
+
type FleetCreatePayload = Extract<SessionOutboundMessage, {
|
|
317
|
+
type: "fleet/create/response";
|
|
318
|
+
}>["payload"];
|
|
319
|
+
type FleetExecutionsPayload = Extract<SessionOutboundMessage, {
|
|
320
|
+
type: "fleet/executions/response";
|
|
321
|
+
}>["payload"];
|
|
322
|
+
export interface InspectFleetLoopOptions {
|
|
323
|
+
requestId?: string;
|
|
324
|
+
name: string;
|
|
325
|
+
}
|
|
326
|
+
export interface SetFleetLoopModeOptions {
|
|
327
|
+
requestId?: string;
|
|
328
|
+
name: string;
|
|
329
|
+
mode: "live" | "dry-run";
|
|
330
|
+
}
|
|
331
|
+
export interface AskFleetDecisionOptions {
|
|
332
|
+
requestId?: string;
|
|
333
|
+
name: string;
|
|
334
|
+
kind: "gate-approval" | "action-approval" | "outcome-review";
|
|
335
|
+
question: string;
|
|
336
|
+
posture: "blocking" | "deferring" | "advisory";
|
|
337
|
+
options: Array<{
|
|
338
|
+
id: string;
|
|
339
|
+
label: string;
|
|
340
|
+
effect: {
|
|
341
|
+
kind: "act" | "rehearse" | "defer" | "suppress";
|
|
342
|
+
reversibility: "reversible" | "compensable" | "irreversible";
|
|
343
|
+
compensatingAction?: string;
|
|
344
|
+
};
|
|
345
|
+
}>;
|
|
346
|
+
runId?: string;
|
|
347
|
+
itemKey?: string;
|
|
348
|
+
evidence?: string;
|
|
349
|
+
onExpiry?: string;
|
|
350
|
+
expiresInMs?: number;
|
|
351
|
+
}
|
|
352
|
+
export interface ListFleetDecisionsOptions {
|
|
353
|
+
requestId?: string;
|
|
354
|
+
name?: string;
|
|
355
|
+
includeResolved?: boolean;
|
|
356
|
+
}
|
|
357
|
+
export interface ResolveFleetDecisionOptions {
|
|
358
|
+
requestId?: string;
|
|
359
|
+
decisionId: string;
|
|
360
|
+
optionId: string;
|
|
361
|
+
}
|
|
362
|
+
export interface SetFleetLoopParamsOptions {
|
|
363
|
+
requestId?: string;
|
|
364
|
+
name: string;
|
|
365
|
+
values: Record<string, string | number | boolean | string[]>;
|
|
366
|
+
}
|
|
367
|
+
export interface CreateFleetLoopOptions {
|
|
368
|
+
requestId?: string;
|
|
369
|
+
name: string;
|
|
370
|
+
description: string;
|
|
371
|
+
cron: string;
|
|
372
|
+
action: string;
|
|
373
|
+
mode?: "live" | "dry-run";
|
|
374
|
+
rails?: string;
|
|
375
|
+
allowed?: string;
|
|
376
|
+
}
|
|
286
377
|
type ScheduleCreatePayload = Extract<SessionOutboundMessage, {
|
|
287
378
|
type: "schedule/create/response";
|
|
288
379
|
}>["payload"];
|
|
@@ -739,6 +830,25 @@ export declare class DaemonClient {
|
|
|
739
830
|
* CLI's own `ctrl+x ctrl+k` kill chord over the PTY (kills it inside Claude
|
|
740
831
|
* Code). Resolves to whether the dismiss was delivered.
|
|
741
832
|
*/
|
|
833
|
+
/**
|
|
834
|
+
* List background shells -- one agent's, or every agent's when `agentId` is
|
|
835
|
+
* omitted. These are commands the provider launched with `run_in_background`
|
|
836
|
+
* so they outlive the turn; the rows carry the command, status and start time
|
|
837
|
+
* so the client can show what is running and for how long.
|
|
838
|
+
*/
|
|
839
|
+
listBackgroundTasks(agentId?: string): Promise<BackgroundTaskPayload[]>;
|
|
840
|
+
/**
|
|
841
|
+
* Read a background shell's captured output. Resolves with `text: null` when
|
|
842
|
+
* the daemon does not know the shell or it captured nothing. The daemon tails
|
|
843
|
+
* and redacts before sending.
|
|
844
|
+
*/
|
|
845
|
+
readBackgroundTaskOutput(agentId: string, taskId: string, options?: {
|
|
846
|
+
maxBytes?: number;
|
|
847
|
+
}): Promise<{
|
|
848
|
+
text: string | null;
|
|
849
|
+
truncated: boolean;
|
|
850
|
+
byteSize: number;
|
|
851
|
+
}>;
|
|
742
852
|
dismissBackgroundTask(agentId: string, taskId: string): Promise<{
|
|
743
853
|
dismissed: boolean;
|
|
744
854
|
}>;
|
|
@@ -1004,6 +1114,13 @@ export declare class DaemonClient {
|
|
|
1004
1114
|
cwd?: string;
|
|
1005
1115
|
requestId?: string;
|
|
1006
1116
|
}): Promise<GetProvidersSnapshotPayload>;
|
|
1117
|
+
/**
|
|
1118
|
+
* Re-read `agents.providers` from the daemon's config.json into its live
|
|
1119
|
+
* provider registry. No restart. Returns the add/update/remove diff.
|
|
1120
|
+
*/
|
|
1121
|
+
reloadProviderConfig(options?: {
|
|
1122
|
+
requestId?: string;
|
|
1123
|
+
}): Promise<ProvidersReloadConfigPayload>;
|
|
1007
1124
|
getDaemonConfig(requestId?: string): Promise<{
|
|
1008
1125
|
requestId: string;
|
|
1009
1126
|
config: MutableDaemonConfig;
|
|
@@ -1079,6 +1196,23 @@ export declare class DaemonClient {
|
|
|
1079
1196
|
waitForChatMessages(options: WaitForChatMessagesOptions): Promise<ChatWaitPayload>;
|
|
1080
1197
|
scheduleCreate(options: CreateScheduleOptions): Promise<ScheduleCreatePayload>;
|
|
1081
1198
|
scheduleList(requestId?: string): Promise<ScheduleListPayload>;
|
|
1199
|
+
fleetList(requestId?: string): Promise<FleetListPayload>;
|
|
1200
|
+
fleetInspect(options: InspectFleetLoopOptions): Promise<FleetInspectPayload>;
|
|
1201
|
+
fleetRunNow(options: InspectFleetLoopOptions): Promise<FleetRunNowPayload>;
|
|
1202
|
+
fleetPause(options: InspectFleetLoopOptions): Promise<FleetPausePayload>;
|
|
1203
|
+
/** Raise a typed question from a loop. */
|
|
1204
|
+
fleetAsk(options: AskFleetDecisionOptions): Promise<FleetAskPayload>;
|
|
1205
|
+
/** Decisions loops are waiting on a person for, most urgent first. */
|
|
1206
|
+
fleetDecisions(options?: ListFleetDecisionsOptions): Promise<FleetDecisionsPayload>;
|
|
1207
|
+
/** Answer one decision as the human. */
|
|
1208
|
+
fleetResolveDecision(options: ResolveFleetDecisionOptions): Promise<FleetResolveDecisionPayload>;
|
|
1209
|
+
/** Persist a loop's declared parameters. */
|
|
1210
|
+
fleetSetParams(options: SetFleetLoopParamsOptions): Promise<FleetSetParamsPayload>;
|
|
1211
|
+
/** Promote a loop to live, or demote it to dry-run. */
|
|
1212
|
+
fleetSetMode(options: SetFleetLoopModeOptions): Promise<FleetSetModePayload>;
|
|
1213
|
+
fleetResume(options: InspectFleetLoopOptions): Promise<FleetResumePayload>;
|
|
1214
|
+
fleetCreate(options: CreateFleetLoopOptions): Promise<FleetCreatePayload>;
|
|
1215
|
+
fleetExecutions(options: InspectFleetLoopOptions): Promise<FleetExecutionsPayload>;
|
|
1082
1216
|
scheduleInspect(options: InspectScheduleOptions): Promise<ScheduleInspectPayload>;
|
|
1083
1217
|
scheduleLogs(options: InspectScheduleOptions): Promise<ScheduleLogsPayload>;
|
|
1084
1218
|
schedulePause(options: InspectScheduleOptions): Promise<SchedulePausePayload>;
|
package/dist/daemon-client.js
CHANGED
|
@@ -1319,6 +1319,49 @@ export class DaemonClient {
|
|
|
1319
1319
|
* CLI's own `ctrl+x ctrl+k` kill chord over the PTY (kills it inside Claude
|
|
1320
1320
|
* Code). Resolves to whether the dismiss was delivered.
|
|
1321
1321
|
*/
|
|
1322
|
+
/**
|
|
1323
|
+
* List background shells -- one agent's, or every agent's when `agentId` is
|
|
1324
|
+
* omitted. These are commands the provider launched with `run_in_background`
|
|
1325
|
+
* so they outlive the turn; the rows carry the command, status and start time
|
|
1326
|
+
* so the client can show what is running and for how long.
|
|
1327
|
+
*/
|
|
1328
|
+
async listBackgroundTasks(agentId) {
|
|
1329
|
+
const requestId = this.createRequestId();
|
|
1330
|
+
const message = SessionInboundMessageSchema.parse({
|
|
1331
|
+
type: "list_background_tasks_request",
|
|
1332
|
+
...(agentId === undefined ? {} : { agentId }),
|
|
1333
|
+
requestId,
|
|
1334
|
+
});
|
|
1335
|
+
const result = await this.sendCorrelatedRequest({
|
|
1336
|
+
requestId,
|
|
1337
|
+
message,
|
|
1338
|
+
responseType: "list_background_tasks_response",
|
|
1339
|
+
options: { skipQueue: true },
|
|
1340
|
+
});
|
|
1341
|
+
return result.tasks;
|
|
1342
|
+
}
|
|
1343
|
+
/**
|
|
1344
|
+
* Read a background shell's captured output. Resolves with `text: null` when
|
|
1345
|
+
* the daemon does not know the shell or it captured nothing. The daemon tails
|
|
1346
|
+
* and redacts before sending.
|
|
1347
|
+
*/
|
|
1348
|
+
async readBackgroundTaskOutput(agentId, taskId, options) {
|
|
1349
|
+
const requestId = this.createRequestId();
|
|
1350
|
+
const message = SessionInboundMessageSchema.parse({
|
|
1351
|
+
type: "background_task_output_request",
|
|
1352
|
+
agentId,
|
|
1353
|
+
taskId,
|
|
1354
|
+
...(options?.maxBytes === undefined ? {} : { maxBytes: options.maxBytes }),
|
|
1355
|
+
requestId,
|
|
1356
|
+
});
|
|
1357
|
+
const result = await this.sendCorrelatedRequest({
|
|
1358
|
+
requestId,
|
|
1359
|
+
message,
|
|
1360
|
+
responseType: "background_task_output_response",
|
|
1361
|
+
options: { skipQueue: true },
|
|
1362
|
+
});
|
|
1363
|
+
return { text: result.text, truncated: result.truncated, byteSize: result.byteSize };
|
|
1364
|
+
}
|
|
1322
1365
|
async dismissBackgroundTask(agentId, taskId) {
|
|
1323
1366
|
const requestId = this.createRequestId();
|
|
1324
1367
|
const message = SessionInboundMessageSchema.parse({
|
|
@@ -3141,6 +3184,20 @@ export class DaemonClient {
|
|
|
3141
3184
|
});
|
|
3142
3185
|
return normalizeProvidersSnapshotPayload(payload);
|
|
3143
3186
|
}
|
|
3187
|
+
/**
|
|
3188
|
+
* Re-read `agents.providers` from the daemon's config.json into its live
|
|
3189
|
+
* provider registry. No restart. Returns the add/update/remove diff.
|
|
3190
|
+
*/
|
|
3191
|
+
async reloadProviderConfig(options) {
|
|
3192
|
+
return this.sendCorrelatedSessionRequest({
|
|
3193
|
+
requestId: options?.requestId,
|
|
3194
|
+
message: {
|
|
3195
|
+
type: "providers.reload_config.request",
|
|
3196
|
+
},
|
|
3197
|
+
responseType: "providers.reload_config.response",
|
|
3198
|
+
timeout: 15000,
|
|
3199
|
+
});
|
|
3200
|
+
}
|
|
3144
3201
|
async getDaemonConfig(requestId) {
|
|
3145
3202
|
return this.sendCorrelatedSessionRequest({
|
|
3146
3203
|
requestId,
|
|
@@ -3673,6 +3730,134 @@ export class DaemonClient {
|
|
|
3673
3730
|
responseType: "schedule/list/response",
|
|
3674
3731
|
});
|
|
3675
3732
|
}
|
|
3733
|
+
async fleetList(requestId) {
|
|
3734
|
+
return this.sendCorrelatedSessionRequest({
|
|
3735
|
+
requestId,
|
|
3736
|
+
message: {
|
|
3737
|
+
type: "fleet/list",
|
|
3738
|
+
},
|
|
3739
|
+
responseType: "fleet/list/response",
|
|
3740
|
+
});
|
|
3741
|
+
}
|
|
3742
|
+
async fleetInspect(options) {
|
|
3743
|
+
return this.sendCorrelatedSessionRequest({
|
|
3744
|
+
requestId: options.requestId,
|
|
3745
|
+
message: {
|
|
3746
|
+
type: "fleet/inspect",
|
|
3747
|
+
name: options.name,
|
|
3748
|
+
},
|
|
3749
|
+
responseType: "fleet/inspect/response",
|
|
3750
|
+
});
|
|
3751
|
+
}
|
|
3752
|
+
async fleetRunNow(options) {
|
|
3753
|
+
return this.sendCorrelatedSessionRequest({
|
|
3754
|
+
requestId: options.requestId,
|
|
3755
|
+
message: {
|
|
3756
|
+
type: "fleet/run-now",
|
|
3757
|
+
name: options.name,
|
|
3758
|
+
},
|
|
3759
|
+
responseType: "fleet/run-now/response",
|
|
3760
|
+
});
|
|
3761
|
+
}
|
|
3762
|
+
async fleetPause(options) {
|
|
3763
|
+
return this.sendCorrelatedSessionRequest({
|
|
3764
|
+
requestId: options.requestId,
|
|
3765
|
+
message: {
|
|
3766
|
+
type: "fleet/pause",
|
|
3767
|
+
name: options.name,
|
|
3768
|
+
},
|
|
3769
|
+
responseType: "fleet/pause/response",
|
|
3770
|
+
});
|
|
3771
|
+
}
|
|
3772
|
+
/** Raise a typed question from a loop. */
|
|
3773
|
+
async fleetAsk(options) {
|
|
3774
|
+
const { requestId, ...rest } = options;
|
|
3775
|
+
return this.sendCorrelatedSessionRequest({
|
|
3776
|
+
requestId,
|
|
3777
|
+
message: { type: "fleet/ask", ...rest },
|
|
3778
|
+
responseType: "fleet/ask/response",
|
|
3779
|
+
});
|
|
3780
|
+
}
|
|
3781
|
+
/** Decisions loops are waiting on a person for, most urgent first. */
|
|
3782
|
+
async fleetDecisions(options = {}) {
|
|
3783
|
+
return this.sendCorrelatedSessionRequest({
|
|
3784
|
+
requestId: options.requestId,
|
|
3785
|
+
message: {
|
|
3786
|
+
type: "fleet/decisions",
|
|
3787
|
+
name: options.name,
|
|
3788
|
+
includeResolved: options.includeResolved,
|
|
3789
|
+
},
|
|
3790
|
+
responseType: "fleet/decisions/response",
|
|
3791
|
+
});
|
|
3792
|
+
}
|
|
3793
|
+
/** Answer one decision as the human. */
|
|
3794
|
+
async fleetResolveDecision(options) {
|
|
3795
|
+
return this.sendCorrelatedSessionRequest({
|
|
3796
|
+
requestId: options.requestId,
|
|
3797
|
+
message: {
|
|
3798
|
+
type: "fleet/resolve-decision",
|
|
3799
|
+
decisionId: options.decisionId,
|
|
3800
|
+
optionId: options.optionId,
|
|
3801
|
+
},
|
|
3802
|
+
responseType: "fleet/resolve-decision/response",
|
|
3803
|
+
});
|
|
3804
|
+
}
|
|
3805
|
+
/** Persist a loop's declared parameters. */
|
|
3806
|
+
async fleetSetParams(options) {
|
|
3807
|
+
return this.sendCorrelatedSessionRequest({
|
|
3808
|
+
requestId: options.requestId,
|
|
3809
|
+
message: { type: "fleet/set-params", name: options.name, values: options.values },
|
|
3810
|
+
responseType: "fleet/set-params/response",
|
|
3811
|
+
});
|
|
3812
|
+
}
|
|
3813
|
+
/** Promote a loop to live, or demote it to dry-run. */
|
|
3814
|
+
async fleetSetMode(options) {
|
|
3815
|
+
return this.sendCorrelatedSessionRequest({
|
|
3816
|
+
requestId: options.requestId,
|
|
3817
|
+
message: {
|
|
3818
|
+
type: "fleet/set-mode",
|
|
3819
|
+
name: options.name,
|
|
3820
|
+
mode: options.mode,
|
|
3821
|
+
},
|
|
3822
|
+
responseType: "fleet/set-mode/response",
|
|
3823
|
+
});
|
|
3824
|
+
}
|
|
3825
|
+
async fleetResume(options) {
|
|
3826
|
+
return this.sendCorrelatedSessionRequest({
|
|
3827
|
+
requestId: options.requestId,
|
|
3828
|
+
message: {
|
|
3829
|
+
type: "fleet/resume",
|
|
3830
|
+
name: options.name,
|
|
3831
|
+
},
|
|
3832
|
+
responseType: "fleet/resume/response",
|
|
3833
|
+
});
|
|
3834
|
+
}
|
|
3835
|
+
async fleetCreate(options) {
|
|
3836
|
+
return this.sendCorrelatedSessionRequest({
|
|
3837
|
+
requestId: options.requestId,
|
|
3838
|
+
message: {
|
|
3839
|
+
type: "fleet/create",
|
|
3840
|
+
name: options.name,
|
|
3841
|
+
description: options.description,
|
|
3842
|
+
cron: options.cron,
|
|
3843
|
+
action: options.action,
|
|
3844
|
+
...(options.mode !== undefined ? { mode: options.mode } : {}),
|
|
3845
|
+
...(options.rails !== undefined ? { rails: options.rails } : {}),
|
|
3846
|
+
...(options.allowed !== undefined ? { allowed: options.allowed } : {}),
|
|
3847
|
+
},
|
|
3848
|
+
responseType: "fleet/create/response",
|
|
3849
|
+
});
|
|
3850
|
+
}
|
|
3851
|
+
async fleetExecutions(options) {
|
|
3852
|
+
return this.sendCorrelatedSessionRequest({
|
|
3853
|
+
requestId: options.requestId,
|
|
3854
|
+
message: {
|
|
3855
|
+
type: "fleet/executions",
|
|
3856
|
+
name: options.name,
|
|
3857
|
+
},
|
|
3858
|
+
responseType: "fleet/executions/response",
|
|
3859
|
+
});
|
|
3860
|
+
}
|
|
3676
3861
|
async scheduleInspect(options) {
|
|
3677
3862
|
return this.sendCorrelatedSessionRequest({
|
|
3678
3863
|
requestId: options.requestId,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentSnapshotPayload, CreateAgentRequestMessage, FetchWorkspacesRequestMessage, FetchWorkspacesResponseMessage, GetProvidersSnapshotResponseMessage, ListAvailableProvidersResponse, ListProviderFeaturesRequestMessage, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, MutableDaemonConfig, MutableDaemonConfigPatch, ProviderDiagnosticResponseMessage, ProjectPlacementPayload, RefreshProvidersSnapshotResponseMessage, SendAgentMessageRequest, SessionOutboundMessage, WorkspaceDescriptorPayload } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
1
|
+
import type { AgentSnapshotPayload, CreateAgentRequestMessage, FetchWorkspacesRequestMessage, FetchWorkspacesResponseMessage, GetProvidersSnapshotResponseMessage, ListAvailableProvidersResponse, ListProviderFeaturesRequestMessage, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, MutableDaemonConfig, MutableDaemonConfigPatch, ProviderDiagnosticResponseMessage, ProjectPlacementPayload, RefreshProvidersSnapshotResponseMessage, SendAgentMessageRequest, ProvidersReloadConfigPayload, SessionOutboundMessage, WorkspaceDescriptorPayload } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
2
2
|
import { DaemonClient } from "./daemon-client.js";
|
|
3
3
|
import type { FetchAgentTimelineCursor, FetchAgentTimelineDirection, FetchAgentTimelinePayload, FetchAgentTimelineProjection } from "./daemon-client.js";
|
|
4
4
|
export { DaemonClient };
|
|
@@ -241,6 +241,15 @@ export interface PaseoProviderActions {
|
|
|
241
241
|
}): Promise<PaseoProviderAvailabilityResult>;
|
|
242
242
|
snapshot(options?: PaseoProviderListOptions): Promise<PaseoProviderSnapshotResult>;
|
|
243
243
|
refresh(options?: PaseoProviderRefreshOptions): Promise<PaseoProviderRefreshResult>;
|
|
244
|
+
/**
|
|
245
|
+
* Re-read `agents.providers` from the daemon's config.json into its live
|
|
246
|
+
* registry — add, update, AND remove — without restarting the daemon.
|
|
247
|
+
* Distinct from {@link refresh}, which only re-probes availability of the
|
|
248
|
+
* providers the daemon already knows about.
|
|
249
|
+
*/
|
|
250
|
+
reloadConfig(options?: {
|
|
251
|
+
requestId?: string;
|
|
252
|
+
}): Promise<ProvidersReloadConfigPayload>;
|
|
244
253
|
diagnostic(provider: PaseoAgentProvider, options?: {
|
|
245
254
|
requestId?: string;
|
|
246
255
|
}): Promise<PaseoProviderDiagnosticResult>;
|
package/dist/index.js
CHANGED
|
@@ -42,6 +42,10 @@ export function createPaseoClient(config) {
|
|
|
42
42
|
listAvailable: (options) => daemonClient.listAvailableProviders(options),
|
|
43
43
|
snapshot: (options) => daemonClient.getProvidersSnapshot(options),
|
|
44
44
|
refresh: (options) => daemonClient.refreshProvidersSnapshot(options),
|
|
45
|
+
// Re-read agents.providers from the daemon's config.json (add/update/remove).
|
|
46
|
+
// Distinct from `refresh`, which only re-probes availability of the
|
|
47
|
+
// providers the daemon already knows about.
|
|
48
|
+
reloadConfig: (options) => daemonClient.reloadProviderConfig(options),
|
|
45
49
|
diagnostic: (provider, options) => daemonClient.getProviderDiagnostic(provider, options),
|
|
46
50
|
subscribe: (handler) => daemonClient.on("providers_snapshot_update", (message) => {
|
|
47
51
|
handler(message.payload);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperdrive.bot/paseo-client",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.36",
|
|
4
4
|
"description": "Paseo client SDK package",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"test": "vitest run"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@hyperdrive.bot/paseo-protocol": "0.3.
|
|
39
|
-
"@hyperdrive.bot/paseo-relay": "0.3.
|
|
38
|
+
"@hyperdrive.bot/paseo-protocol": "0.3.36",
|
|
39
|
+
"@hyperdrive.bot/paseo-relay": "0.3.36",
|
|
40
40
|
"zod": "^4.4.3"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|