@camerontaylor/paseo-client 0.10.2-fork.1 → 0.11.0-beta.1.fork.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.
@@ -6,7 +6,7 @@ import type { SessionEventSubscription } from "@camerontaylor/paseo-protocol/mes
6
6
  import type { ClientCapability } from "@camerontaylor/paseo-protocol/client-capabilities";
7
7
  import type { AgentAttentionNotificationPayload } from "@camerontaylor/paseo-protocol/agent-attention-notification";
8
8
  import { AgentRefreshedStatusPayloadSchema, CheckoutRenameBranchResponseSchema, CheckoutBaseRefSetResponseSchema, RenameTerminalResponseSchema, RestartRequestedStatusPayloadSchema, ShutdownRequestedStatusPayloadSchema, DaemonUpdateResponseSchema, type ActiveTurnBehavior, type ServerInfoStatusPayload } from "@camerontaylor/paseo-protocol/messages";
9
- import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreatePaseoWorktreeRequest, FileDownloadTokenResponse, FileUploadResponse, FileExplorerResponse, FileVersion, FileWriteResult, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommit, ParsedDiffFile, CheckoutCommitResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutForgeSetAutoMergeResponse, CheckoutGithubSetAutoMergeResponse, CheckoutForgeGetCheckDetailsResponse, CheckoutGithubGetCheckDetailsResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, ForgeSearchResponse, ForgeSearchRequest, GitHubSearchResponse, GitHubSearchRequest, DirectorySuggestionsResponse, PaseoWorktreeListResponse, PaseoWorktreeArchiveResponse, ProjectIconSource, ProjectIconResponse, ProjectIconGetResponse, ProjectAddResponse, ProjectCreateDirectoryResponse, OpenProjectResponseMessage, WorkspaceGithubSearchRepositoriesResponse, ProjectGithubCloneProtocol, ProjectGithubCloneResponse, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DaemonConfigReloadResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, PaseoConfigRaw, PaseoConfigRevision, WorkspaceCreateRequest, WorkspaceRecoveryState, PluginListItem, PluginLogEntry, PluginSourceStatusItem, PluginSourceUpdateItem, PluginUpdateSelection, PluginUpdateProposal, PluginUpdatePreview, PluginUpdateResult, AgentSkillSelection, AgentSkillsStatus, AgentSkillsSaveResult } from "@camerontaylor/paseo-protocol/messages";
9
+ import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreatePaseoWorktreeRequest, FileDownloadTokenResponse, FileUploadResponse, FileExplorerResponse, FileVersion, FileWriteResult, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommit, ParsedDiffFile, CheckoutCommitResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutForgeSetAutoMergeResponse, CheckoutGithubSetAutoMergeResponse, CheckoutForgeGetCheckDetailsResponse, CheckoutGithubGetCheckDetailsResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, ForgeSearchResponse, ForgeSearchRequest, GitHubSearchResponse, GitHubSearchRequest, DirectorySuggestionsResponse, PaseoWorktreeListResponse, PaseoWorktreeArchiveResponse, ProjectIconSource, ProjectIconResponse, ProjectIconGetResponse, ProjectAddResponse, ProjectCreateDirectoryResponse, OpenProjectResponseMessage, WorkspaceGithubSearchRepositoriesResponse, ProjectGithubCloneProtocol, ProjectGithubCloneResponse, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, UsageListReportsResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DaemonConfigReloadResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, PaseoConfigRaw, PaseoConfigRevision, WorkspaceCreateRequest, WorkspaceRecoveryState, PluginListItem, PluginLogEntry, PluginSourceStatusItem, PluginSourceUpdateItem, PluginUpdateSelection, PluginUpdateProposal, PluginUpdatePreview, PluginUpdateResult, AgentSkillSelection, AgentSkillsStatus, AgentSkillsSaveResult } from "@camerontaylor/paseo-protocol/messages";
10
10
  import type { AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentProviderNotice, AgentProvider, AgentSessionConfig } from "@camerontaylor/paseo-protocol/agent-types";
11
11
  import type { AgentConfigApply, MutableDaemonConfig, MutableDaemonConfigPatch } from "@camerontaylor/paseo-protocol/messages";
12
12
  import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
@@ -148,6 +148,7 @@ export interface DaemonClientTrace {
148
148
  }
149
149
  export interface SendMessageOptions {
150
150
  messageId?: string;
151
+ /** What happens when the agent is mid-turn. The daemon interrupts the turn when omitted. */
151
152
  activeTurnBehavior?: ActiveTurnBehavior;
152
153
  images?: Array<{
153
154
  data: string;
@@ -265,6 +266,7 @@ type GetProvidersSnapshotPayload = GetProvidersSnapshotResponseMessage["payload"
265
266
  type RefreshProvidersSnapshotPayload = RefreshProvidersSnapshotResponseMessage["payload"];
266
267
  type ProviderDiagnosticPayload = ProviderDiagnosticResponseMessage["payload"];
267
268
  type ProviderUsageListPayload = ProviderUsageListResponseMessage["payload"];
269
+ type UsageListReportsPayload = UsageListReportsResponseMessage["payload"];
268
270
  type DaemonStatusPayload = DaemonGetStatusResponse["payload"];
269
271
  type DaemonPairingOfferPayload = DaemonGetPairingOfferResponse["payload"];
270
272
  type DiagnosticsPayload = DiagnosticsResponse["payload"];
@@ -586,6 +588,7 @@ export declare class DaemonConnectionError extends Error {
586
588
  readonly code: "DAEMON_CONNECTION_LOST" | "DAEMON_REQUEST_TIMEOUT";
587
589
  constructor(message: string, code?: "DAEMON_CONNECTION_LOST" | "DAEMON_REQUEST_TIMEOUT");
588
590
  }
591
+ export declare function supportsUsageReports(features: ServerInfoStatusPayload["features"]): boolean;
589
592
  export declare class DaemonClient {
590
593
  private config;
591
594
  private readonly providerSnapshotUpdates;
@@ -672,6 +675,9 @@ export declare class DaemonClient {
672
675
  * This prevents waiters from hanging forever when called during connection.
673
676
  */
674
677
  private sendSessionMessageOrThrow;
678
+ /** Resolves once connected, waiting out a connection that is still being established. */
679
+ private whenConnected;
680
+ private sendWhenConnected;
675
681
  /**
676
682
  * Flush pending send queue - called when connection is established.
677
683
  */
@@ -1185,6 +1191,11 @@ export declare class DaemonClient {
1185
1191
  listProviderUsage(options?: {
1186
1192
  requestId?: string;
1187
1193
  }): Promise<ProviderUsageListPayload>;
1194
+ listUsageReports(options?: {
1195
+ requestId?: string;
1196
+ forceRefresh?: boolean;
1197
+ reportIds?: string[];
1198
+ }): Promise<UsageListReportsPayload>;
1188
1199
  listCommands(options: ListCommandsOptions): Promise<ListCommandsPayload>;
1189
1200
  listCommands(agentId: string, requestId?: string): Promise<ListCommandsPayload>;
1190
1201
  listCommands(agentId: string, options?: LegacyListCommandsOptions): Promise<ListCommandsPayload>;
@@ -1,3 +1,4 @@
1
+ import { legacyUsageIcon } from "./legacy-usage-icons.js";
1
2
  import { subscribeTimeline } from "./timeline-subscription/index.js";
2
3
  import { ProviderSnapshotUpdates } from "./provider-snapshots/index.js";
3
4
  import { ConnectionSubscriptions, DEFAULT_CLIENT_CAPABILITIES, } from "./connection/index.js";
@@ -283,6 +284,10 @@ function toReasonCode(reason) {
283
284
  }
284
285
  return "unknown";
285
286
  }
287
+ export function supportsUsageReports(features) {
288
+ // COMPAT(providerUsageList): added in v0.1.98, remove after 2027-03-26.
289
+ return features?.usageSources === true || features?.providerUsageList === true;
290
+ }
286
291
  export class DaemonClient {
287
292
  constructor(config) {
288
293
  this.config = config;
@@ -870,11 +875,20 @@ export class DaemonClient {
870
875
  * This prevents waiters from hanging forever when called during connection.
871
876
  */
872
877
  sendSessionMessageOrThrow(message) {
878
+ return this.sendWhenConnected(() => {
879
+ const payload = SessionInboundMessageSchema.parse(message);
880
+ this.sendJsonMessage("session", payload.type, { type: "session", message: payload });
881
+ });
882
+ }
883
+ /** Resolves once connected, waiting out a connection that is still being established. */
884
+ whenConnected() {
885
+ return this.sendWhenConnected(() => undefined);
886
+ }
887
+ sendWhenConnected(send) {
873
888
  const status = this.connectionState.status;
874
889
  // If connected, send immediately
875
890
  if (this.transport && status === "connected") {
876
- const payload = SessionInboundMessageSchema.parse(message);
877
- this.sendJsonMessage("session", payload.type, { type: "session", message: payload });
891
+ send();
878
892
  return Promise.resolve();
879
893
  }
880
894
  // If connecting, queue the message to be sent once connected
@@ -888,7 +902,7 @@ export class DaemonClient {
888
902
  }
889
903
  reject(new DaemonConnectionError("Timed out waiting for connection to send message", "DAEMON_REQUEST_TIMEOUT"));
890
904
  }, DEFAULT_SEND_QUEUE_TIMEOUT_MS);
891
- this.pendingSendQueue.push({ message, resolve, reject, timeoutHandle });
905
+ this.pendingSendQueue.push({ send, resolve, reject, timeoutHandle });
892
906
  });
893
907
  }
894
908
  // Not connected and not connecting - fail immediately
@@ -904,8 +918,7 @@ export class DaemonClient {
904
918
  clearTimeout(pending.timeoutHandle);
905
919
  try {
906
920
  if (this.transport && this.connectionState.status === "connected") {
907
- const payload = SessionInboundMessageSchema.parse(pending.message);
908
- this.sendJsonMessage("session", payload.type, { type: "session", message: payload });
921
+ pending.send();
909
922
  pending.resolve();
910
923
  }
911
924
  else {
@@ -3260,6 +3273,8 @@ export class DaemonClient {
3260
3273
  if (!bytes) {
3261
3274
  throw new Error("File bytes are required.");
3262
3275
  }
3276
+ // The file frames bypass the send queue, so start only on an open connection.
3277
+ await this.whenConnected();
3263
3278
  const uploadTransport = this.transport;
3264
3279
  const resolvedRequestId = this.createRequestId(input.requestId);
3265
3280
  const modifiedAt = input.modifiedAt ?? new Date().toISOString();
@@ -3565,6 +3580,46 @@ export class DaemonClient {
3565
3580
  },
3566
3581
  });
3567
3582
  }
3583
+ async listUsageReports(options) {
3584
+ const features = this.getLastServerInfoMessage()?.features;
3585
+ if (!supportsUsageReports(features)) {
3586
+ throw new Error("Update the host to see usage.");
3587
+ }
3588
+ // COMPAT(providerUsageList): added in v0.1.98, remove after 2027-03-26.
3589
+ if (features?.usageSources !== true) {
3590
+ // Released hosts serve a five-minute cache and have no forceRefresh option.
3591
+ const payload = await this.listProviderUsage({ requestId: options?.requestId });
3592
+ return {
3593
+ requestId: payload.requestId,
3594
+ reports: payload.providers
3595
+ .filter((provider) => !options?.reportIds || options.reportIds.includes(provider.providerId))
3596
+ .map((provider) => ({
3597
+ id: provider.providerId,
3598
+ sourceId: provider.providerId,
3599
+ sourceLabel: provider.displayName,
3600
+ icon: legacyUsageIcon(provider.providerId),
3601
+ account: {},
3602
+ fetchedAt: provider.fetchedAt ?? payload.fetchedAt,
3603
+ report: {
3604
+ status: provider.status,
3605
+ windows: provider.windows,
3606
+ balances: provider.balances ?? undefined,
3607
+ details: provider.details ?? undefined,
3608
+ planLabel: provider.planLabel ?? undefined,
3609
+ error: provider.error ?? undefined,
3610
+ },
3611
+ })),
3612
+ };
3613
+ }
3614
+ return this.sendNamespacedCorrelatedSessionRequest({
3615
+ requestId: options?.requestId,
3616
+ message: {
3617
+ type: "usage.list_reports.request",
3618
+ forceRefresh: options?.forceRefresh,
3619
+ reportIds: options?.reportIds,
3620
+ },
3621
+ });
3622
+ }
3568
3623
  async listCommands(input, legacyOptions) {
3569
3624
  const options = normalizeListCommandsOptions(input, legacyOptions);
3570
3625
  return this.sendCorrelatedSessionRequest({
package/dist/index.d.ts CHANGED
@@ -2,12 +2,12 @@ import type { OwnedSubscription } from "./connection/index.js";
2
2
  export type { OwnedSubscription, SubscriptionObserver } from "./connection/index.js";
3
3
  import type { DaemonClientConfig } from "./daemon-client.js";
4
4
  import type { AgentPermissionResponse } from "@camerontaylor/paseo-protocol/agent-types";
5
- import type { AgentSnapshotPayload, CreationSnapshot, CreateAgentRequestMessage, FetchWorkspacesRequestMessage, FetchWorkspacesResponseMessage, GetProvidersSnapshotResponseMessage, ListAvailableProvidersResponse, ListCommandsResponse, ListProviderFeaturesRequestMessage, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ProjectListRequestMessage, ProjectListResponseMessage, ListProviderModesResponseMessage, MutableDaemonConfig, MutableDaemonConfigPatch, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, ProjectPlacementPayload, WorkspaceProjectDescriptorPayload, RefreshProvidersSnapshotResponseMessage, SendAgentMessageRequest, SessionOutboundMessage, WorkspaceDescriptorPayload, WorkspaceCreateRequest } from "@camerontaylor/paseo-protocol/messages";
5
+ import type { AgentSnapshotPayload, CreationSnapshot, CreateAgentRequestMessage, FetchWorkspacesRequestMessage, FetchWorkspacesResponseMessage, GetProvidersSnapshotResponseMessage, ListAvailableProvidersResponse, ListCommandsResponse, ListProviderFeaturesRequestMessage, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ProjectListRequestMessage, ProjectListResponseMessage, ListProviderModesResponseMessage, MutableDaemonConfig, MutableDaemonConfigPatch, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, ProjectPlacementPayload, WorkspaceProjectDescriptorPayload, RefreshProvidersSnapshotResponseMessage, SessionOutboundMessage, WorkspaceDescriptorPayload, WorkspaceCreateRequest } from "@camerontaylor/paseo-protocol/messages";
6
6
  import { DaemonClient } from "./daemon-client.js";
7
7
  import { type PaseoTerminalActions, type PaseoWorkspaceTerminalActions } from "./terminals/index.js";
8
8
  export type { PaseoTerminal, PaseoTerminalActions, PaseoTerminalHandle, PaseoTerminalCreateOptions, PaseoTerminalListOptions, PaseoTerminalListResult, PaseoTerminalCaptureOptions, PaseoTerminalCaptureResult, PaseoWorkspaceTerminalActions, } from "./terminals/index.js";
9
9
  import type { PluginTimelineItem } from "@camerontaylor/paseo-protocol/agent-types";
10
- import type { FetchAgentsEntry, FetchAgentsOptions, FetchAgentsPageInfo, FetchAgentTimelineCursor, FetchAgentTimelineDirection, FetchAgentTimelinePayload, FetchAgentTimelineProjection, WaitForFinishResult } from "./daemon-client.js";
10
+ import type { FetchAgentsEntry, FetchAgentsOptions, FetchAgentsPageInfo, FetchAgentTimelineCursor, FetchAgentTimelineDirection, FetchAgentTimelinePayload, FetchAgentTimelineProjection, SendMessageOptions, WaitForFinishResult } from "./daemon-client.js";
11
11
  export type ConnectionState = {
12
12
  status: "idle";
13
13
  } | {
@@ -193,14 +193,7 @@ export interface PaseoAgentTimelineRefetchOptions {
193
193
  projection?: FetchAgentTimelineProjection;
194
194
  requestId?: string;
195
195
  }
196
- export interface PaseoAgentSendOptions {
197
- messageId?: string;
198
- images?: Array<{
199
- data: string;
200
- mimeType: string;
201
- }>;
202
- attachments?: SendAgentMessageRequest["attachments"];
203
- }
196
+ export type PaseoAgentSendOptions = SendMessageOptions;
204
197
  export interface PaseoAgentRunOptions extends PaseoAgentSendOptions {
205
198
  timeoutMs?: number;
206
199
  }
@@ -0,0 +1,2 @@
1
+ export declare function legacyUsageIcon(sourceId: string): string | undefined;
2
+ //# sourceMappingURL=legacy-usage-icons.d.ts.map
@@ -0,0 +1,16 @@
1
+ // COMPAT(providerUsageList): added in v0.1.98, remove after 2027-03-26.
2
+ // Released hosts omit source icons. Delete these copies with the list conversion.
3
+ const ICONS = {
4
+ claude: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"/></svg>\n',
5
+ codex: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" fill-rule="evenodd"><path d="M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z"/></svg>\n',
6
+ copilot: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 416" fill="currentColor"><path d="M181.33 266.143c0-11.497 9.32-20.818 20.818-20.818 11.498 0 20.819 9.321 20.819 20.818v38.373c0 11.497-9.321 20.818-20.819 20.818-11.497 0-20.818-9.32-20.818-20.818v-38.373zM308.807 245.325c-11.477 0-20.798 9.321-20.798 20.818v38.373c0 11.497 9.32 20.818 20.798 20.818 11.497 0 20.818-9.32 20.818-20.818v-38.373c0-11.497-9.32-20.818-20.818-20.818z"\n fill-rule="nonzero"/><path d="M512.002 246.393v57.384c-.02 7.411-3.696 14.638-9.67 19.011C431.767 374.444 344.695 416 256 416c-98.138 0-196.379-56.542-246.33-93.21-5.975-4.374-9.65-11.6-9.671-19.012v-57.384a35.347 35.347 0 016.857-20.922l15.583-21.085c8.336-11.312 20.757-14.31 33.98-14.31 4.988-56.953 16.794-97.604 45.024-127.354C155.194 5.77 226.56 0 256 0c29.441 0 100.807 5.77 154.557 62.722 28.19 29.75 40.036 70.401 45.025 127.354 13.263 0 25.602 2.936 33.958 14.31l15.583 21.127c4.476 6.077 6.878 13.345 6.878 20.88zm-97.666-26.075c-.677-13.058-11.292-18.19-22.338-21.824-11.64 7.309-25.848 10.183-39.46 10.183-14.454 0-41.432-3.47-63.872-25.869-5.667-5.625-9.527-14.454-12.155-24.247a212.902 212.902 0 00-20.469-1.088c-6.098 0-13.099.349-20.551 1.088-2.628 9.793-6.509 18.622-12.155 24.247-22.4 22.4-49.418 25.87-63.872 25.87-13.612 0-27.86-2.855-39.501-10.184-11.005 3.613-21.558 8.828-22.277 21.824-1.17 24.555-1.272 49.11-1.375 73.645-.041 12.318-.082 24.658-.288 36.976.062 7.166 4.374 13.818 10.882 16.774 52.97 24.124 103.045 36.278 149.137 36.278 46.01 0 96.085-12.154 149.014-36.278 6.508-2.956 10.84-9.608 10.881-16.774.637-36.832.124-73.809-1.642-110.62h.041zM107.521 168.97c8.643 8.623 24.966 14.392 42.56 14.392 13.448 0 39.03-2.874 60.156-24.329 9.28-8.951 15.05-31.35 14.413-54.079-.657-18.231-5.769-33.28-13.448-39.665-8.315-7.371-27.203-10.574-48.33-8.644-22.399 2.238-41.267 9.588-50.875 19.833-20.798 22.728-16.323 80.317-4.476 92.492zm130.556-56.008c.637 3.51.965 7.35 1.273 11.517 0 2.875 0 5.77-.308 8.952 6.406-.636 11.847-.636 16.959-.636s10.553 0 16.959.636c-.329-3.182-.329-6.077-.329-8.952.329-4.167.657-8.007 1.294-11.517-6.735-.637-12.812-.965-17.924-.965s-11.21.328-17.924.965zm49.275-8.008c-.637 22.728 5.133 45.128 14.413 54.08 21.105 21.454 46.708 24.328 60.155 24.328 17.596 0 33.918-5.769 42.561-14.392 11.847-12.175 16.322-69.764-4.476-92.492-9.608-10.245-28.476-17.595-50.875-19.833-21.127-1.93-40.015 1.273-48.33 8.644-7.679 6.385-12.791 21.434-13.448 39.665z"/></svg>\n',
7
+ cursor: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 466.73 532.09">\n <path fill="currentColor" d="M457.43,125.94L244.42,2.96c-6.84-3.95-15.28-3.95-22.12,0L9.3,125.94c-5.75,3.32-9.3,9.46-9.3,16.11v247.99c0,6.65,3.55,12.79,9.3,16.11l213.01,122.98c6.84,3.95,15.28,3.95,22.12,0l213.01-122.98c5.75-3.32,9.3-9.46,9.3-16.11v-247.99c0-6.65-3.55-12.79-9.3-16.11h-.01ZM444.05,151.99l-205.63,356.16c-1.39,2.4-5.06,1.42-5.06-1.36v-233.21c0-4.66-2.49-8.97-6.53-11.31L24.87,145.67c-2.4-1.39-1.42-5.06,1.36-5.06h411.26c5.84,0,9.49,6.33,6.57,11.39h-.01Z"/>\n</svg>\n',
8
+ zai: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" fill-rule="evenodd"><title>Z.ai</title><path d="M8.07 1.333L6.618 3.302H.435L1.887 1.333h6.184zM15.503 12.699L14.052 14.667h-6.161l1.449-1.968h6.163zM16 1.333L6.176 14.667H0L9.824 1.333H16z"/></svg>\n',
9
+ grok: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2M20 14h2M9 13v2M15 13v2"/></svg>\n',
10
+ kimi: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19.514 7.342C19.711 7.862 19.814 8.413 19.816 8.969C19.816 12.494 15.998 14.697 12.946 12.934C11.529 12.116 10.657 10.605 10.657 8.969C10.657 5.646 14.085 3.431 17.115 4.793C15.26 3.373 12.99 2.607 10.655 2.612C4.772 2.614 0.005 7.381 0 13.265C0.002 19.148 4.772 23.918 10.655 23.92C16.538 23.916 21.306 19.147 21.31 13.265C21.312 11.155 20.687 9.095 19.514 7.342ZM14.841 4.666C14.841 8.191 18.657 10.395 21.709 8.632C23.127 7.814 24 6.302 24 4.666C24 1.14 20.184-1.061 17.13 0.699C15.714 1.519 14.841 3.03 14.841 4.666"/>\n</svg>\n',
11
+ minimax: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z"/></svg>\n',
12
+ };
13
+ export function legacyUsageIcon(sourceId) {
14
+ return Object.hasOwn(ICONS, sourceId) ? ICONS[sourceId] : undefined;
15
+ }
16
+ //# sourceMappingURL=legacy-usage-icons.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camerontaylor/paseo-client",
3
- "version": "0.10.2-fork.1",
3
+ "version": "0.11.0-beta.1.fork.1",
4
4
  "description": "Paseo client SDK package",
5
5
  "files": [
6
6
  "dist",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "scripts": {
33
33
  "clean": "node ../../scripts/clean-package-dist.mjs",
34
- "build": "npm run build --workspace=@camerontaylor/paseo-protocol && tsc -p tsconfig.json --incremental false",
34
+ "build": "npm run build --workspace=@camerontaylor/paseo-protocol && npm run build --workspace=@camerontaylor/paseo-relay && tsc -p tsconfig.json --incremental false",
35
35
  "build:clean": "npm run clean && npm run build",
36
36
  "prepack": "npm run build:clean",
37
37
  "typecheck": "tsgo --noEmit",
@@ -39,8 +39,8 @@
39
39
  "test": "vitest run"
40
40
  },
41
41
  "dependencies": {
42
- "@camerontaylor/paseo-protocol": "0.10.2-fork.1",
43
- "@camerontaylor/paseo-relay": "0.10.2-fork.1",
42
+ "@camerontaylor/paseo-protocol": "0.11.0-beta.1.fork.1",
43
+ "@camerontaylor/paseo-relay": "0.11.0-beta.1.fork.1",
44
44
  "zod": "^4.4.3"
45
45
  },
46
46
  "devDependencies": {