@getpaseo/protocol 0.1.93 → 0.1.95

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/messages.js CHANGED
@@ -38,6 +38,15 @@ const MutableMetadataGenerationConfigSchema = z
38
38
  providers: z.array(MutableStructuredGenerationProviderSchema).default([]),
39
39
  })
40
40
  .passthrough();
41
+ export const TerminalProfileSchema = z
42
+ .object({
43
+ id: z.string(),
44
+ name: z.string(),
45
+ command: z.string(),
46
+ args: z.array(z.string()).optional(),
47
+ icon: z.string().optional(),
48
+ })
49
+ .passthrough();
41
50
  export const MutableDaemonConfigSchema = z
42
51
  .object({
43
52
  mcp: z
@@ -49,6 +58,7 @@ export const MutableDaemonConfigSchema = z
49
58
  metadataGeneration: MutableMetadataGenerationConfigSchema.default({ providers: [] }),
50
59
  autoArchiveAfterMerge: z.boolean().default(false),
51
60
  appendSystemPrompt: z.string().default(""),
61
+ terminalProfiles: z.array(TerminalProfileSchema).optional(),
52
62
  })
53
63
  .passthrough();
54
64
  export const MutableDaemonConfigPatchSchema = z
@@ -60,6 +70,7 @@ export const MutableDaemonConfigPatchSchema = z
60
70
  metadataGeneration: MutableMetadataGenerationConfigSchema.partial().optional(),
61
71
  autoArchiveAfterMerge: z.boolean().optional(),
62
72
  appendSystemPrompt: z.string().optional(),
73
+ terminalProfiles: z.array(TerminalProfileSchema).optional(),
63
74
  })
64
75
  .partial()
65
76
  .passthrough();
@@ -131,9 +142,11 @@ export const ProviderSnapshotEntrySchema = z.object({
131
142
  description: z.string().optional(),
132
143
  defaultModeId: z.string().nullable().optional(),
133
144
  });
134
- const AgentCapabilityFlagsSchema = z.object({
145
+ const AgentCapabilityFlagsSchema = z
146
+ .object({
135
147
  supportsStreaming: z.boolean(),
136
148
  supportsSessionPersistence: z.boolean(),
149
+ supportsSessionListing: z.boolean().optional(),
137
150
  supportsDynamicModes: z.boolean(),
138
151
  supportsMcpServers: z.boolean(),
139
152
  supportsReasoningStream: z.boolean(),
@@ -144,7 +157,8 @@ const AgentCapabilityFlagsSchema = z.object({
144
157
  supportsRewindFiles: z.boolean().optional().default(false),
145
158
  // COMPAT(rewind): added in v0.1.X, drop when floor >= v0.1.X.
146
159
  supportsRewindBoth: z.boolean().optional().default(false),
147
- });
160
+ })
161
+ .catchall(z.boolean());
148
162
  const AgentUsageSchema = z.object({
149
163
  inputTokens: z.number().optional(),
150
164
  cachedInputTokens: z.number().optional(),
@@ -1179,6 +1193,16 @@ export const CheckoutGithubSetAutoMergeRequestSchema = z.object({
1179
1193
  mergeMethod: z.enum(["merge", "squash", "rebase"]).optional(),
1180
1194
  requestId: z.string(),
1181
1195
  });
1196
+ const GitHubRepoSegmentSchema = z.string().regex(/^[A-Za-z0-9._-]+$/);
1197
+ export const CheckoutGithubGetCheckDetailsRequestSchema = z.object({
1198
+ type: z.literal("checkout.github.get_check_details.request"),
1199
+ cwd: z.string(),
1200
+ repoOwner: GitHubRepoSegmentSchema,
1201
+ repoName: GitHubRepoSegmentSchema,
1202
+ checkRunId: z.number().int().positive(),
1203
+ workflowRunId: z.number().int().positive().optional(),
1204
+ requestId: z.string(),
1205
+ });
1182
1206
  export const CheckoutPrStatusRequestSchema = z.object({
1183
1207
  type: z.literal("checkout_pr_status_request"),
1184
1208
  cwd: z.string(),
@@ -1594,6 +1618,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
1594
1618
  CheckoutPrCreateRequestSchema,
1595
1619
  CheckoutPrMergeRequestSchema,
1596
1620
  CheckoutGithubSetAutoMergeRequestSchema,
1621
+ CheckoutGithubGetCheckDetailsRequestSchema,
1597
1622
  CheckoutPrStatusRequestSchema,
1598
1623
  PullRequestTimelineRequestSchema,
1599
1624
  CheckoutSwitchBranchRequestSchema,
@@ -1800,6 +1825,8 @@ export const ServerInfoStatusPayloadSchema = z
1800
1825
  .object({
1801
1826
  providersSnapshot: z.boolean().optional(),
1802
1827
  checkoutGithubSetAutoMerge: z.boolean().optional(),
1828
+ // COMPAT(githubCheckDetails): added in v0.1.92, remove gate after 2026-12-08.
1829
+ githubCheckDetails: z.boolean().optional(),
1803
1830
  // COMPAT(daemonStatusRpc): added in v0.1.76, remove gate after 2026-11-18.
1804
1831
  daemonStatusRpc: z.boolean().optional(),
1805
1832
  // COMPAT(terminalRestoreModes): added in v0.1.81, remove gate after 2026-11-23.
@@ -2212,6 +2239,8 @@ export const OpenProjectResponseMessageSchema = z.object({
2212
2239
  requestId: z.string(),
2213
2240
  workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2214
2241
  error: z.string().nullable(),
2242
+ // Unknown codes from newer daemons degrade to null; clients fall back to `error`.
2243
+ errorCode: z.enum(["directory_not_found"]).nullish().catch(null),
2215
2244
  }),
2216
2245
  });
2217
2246
  export const StartWorkspaceScriptResponseMessageSchema = z.object({
@@ -2607,6 +2636,8 @@ export const CheckoutPrStatusSchema = z.object({
2607
2636
  url: z.string().nullable(),
2608
2637
  workflow: z.string().optional(),
2609
2638
  duration: z.string().optional(),
2639
+ checkRunId: z.number().optional(),
2640
+ workflowRunId: z.number().optional(),
2610
2641
  }))
2611
2642
  .optional()
2612
2643
  .default([]),
@@ -2735,6 +2766,54 @@ export const CheckoutGithubSetAutoMergeResponseSchema = z.object({
2735
2766
  requestId: z.string(),
2736
2767
  }),
2737
2768
  });
2769
+ const CheckoutGithubCheckAnnotationSchema = z.object({
2770
+ path: z.string().optional(),
2771
+ startLine: z.number().optional(),
2772
+ endLine: z.number().optional(),
2773
+ annotationLevel: z.string().optional(),
2774
+ message: z.string().optional(),
2775
+ title: z.string().optional(),
2776
+ rawDetails: z.string().optional(),
2777
+ });
2778
+ const CheckoutGithubCheckJobSchema = z.object({
2779
+ jobId: z.number(),
2780
+ name: z.string(),
2781
+ status: z.string().nullable().optional(),
2782
+ conclusion: z.string().nullable().optional(),
2783
+ url: z.string().nullable().optional(),
2784
+ logTail: z.string().optional(),
2785
+ logTruncated: z.boolean().optional(),
2786
+ });
2787
+ export const CheckoutGithubCheckDetailsSchema = z.object({
2788
+ checkRunId: z.number(),
2789
+ workflowRunId: z.number().nullable().optional(),
2790
+ name: z.string(),
2791
+ status: z.string().nullable().optional(),
2792
+ conclusion: z.string().nullable().optional(),
2793
+ url: z.string().nullable().optional(),
2794
+ detailsUrl: z.string().nullable().optional(),
2795
+ output: z
2796
+ .object({
2797
+ title: z.string().nullable().optional(),
2798
+ summary: z.string().nullable().optional(),
2799
+ text: z.string().nullable().optional(),
2800
+ })
2801
+ .nullable()
2802
+ .optional(),
2803
+ annotations: z.array(CheckoutGithubCheckAnnotationSchema).optional().default([]),
2804
+ failedJobs: z.array(CheckoutGithubCheckJobSchema).optional().default([]),
2805
+ truncated: z.boolean().optional().default(false),
2806
+ });
2807
+ export const CheckoutGithubGetCheckDetailsResponseSchema = z.object({
2808
+ type: z.literal("checkout.github.get_check_details.response"),
2809
+ payload: z.object({
2810
+ cwd: z.string(),
2811
+ success: z.boolean(),
2812
+ details: CheckoutGithubCheckDetailsSchema.nullable().optional().default(null),
2813
+ error: CheckoutErrorSchema.nullable(),
2814
+ requestId: z.string(),
2815
+ }),
2816
+ });
2738
2817
  export const CheckoutPrStatusResponseSchema = z.object({
2739
2818
  type: z.literal("checkout_pr_status_response"),
2740
2819
  payload: CheckoutPrStatusPayloadSchema,
@@ -2767,6 +2846,8 @@ const PullRequestTimelineReviewItemSchema = z.object({
2767
2846
  id: z.string().optional().default(""),
2768
2847
  kind: z.literal("review"),
2769
2848
  author: z.string().optional().default("unknown"),
2849
+ authorUrl: z.string().nullable().optional(),
2850
+ avatarUrl: z.string().nullable().optional(),
2770
2851
  body: z.string().optional().default(""),
2771
2852
  createdAt: z.number().optional().default(0),
2772
2853
  url: z.string().optional().default(""),
@@ -2779,9 +2860,25 @@ const PullRequestTimelineCommentItemSchema = z.object({
2779
2860
  id: z.string().optional().default(""),
2780
2861
  kind: z.literal("comment"),
2781
2862
  author: z.string().optional().default("unknown"),
2863
+ authorUrl: z.string().nullable().optional(),
2864
+ avatarUrl: z.string().nullable().optional(),
2782
2865
  body: z.string().optional().default(""),
2783
2866
  createdAt: z.number().optional().default(0),
2784
2867
  url: z.string().optional().default(""),
2868
+ // GitHub review id this inline comment belongs to; lets clients nest review
2869
+ // threads under their parent review. Absent on issue comments and on
2870
+ // timelines from daemons that predate the field.
2871
+ reviewId: z.string().optional(),
2872
+ location: z
2873
+ .object({
2874
+ path: z.string(),
2875
+ line: z.number().optional(),
2876
+ startLine: z.number().optional(),
2877
+ threadId: z.string().optional(),
2878
+ isResolved: z.boolean().optional(),
2879
+ isOutdated: z.boolean().optional(),
2880
+ })
2881
+ .optional(),
2785
2882
  });
2786
2883
  export const PullRequestTimelineItemSchema = z.preprocess((value) => {
2787
2884
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -3273,6 +3370,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
3273
3370
  CheckoutPrCreateResponseSchema,
3274
3371
  CheckoutPrMergeResponseSchema,
3275
3372
  CheckoutGithubSetAutoMergeResponseSchema,
3373
+ CheckoutGithubGetCheckDetailsResponseSchema,
3276
3374
  CheckoutPrStatusResponseSchema,
3277
3375
  PullRequestTimelineResponseSchema,
3278
3376
  CheckoutSwitchBranchResponseSchema,
@@ -0,0 +1,5 @@
1
+ export declare const BUILTIN_PROVIDER_ICON_NAMES: string[];
2
+ export declare const ACP_PROVIDER_ICON_NAMES: string[];
3
+ export declare const TERMINAL_PROFILE_ICON_NAMES: string[];
4
+ export declare const KNOWN_PROVIDER_ICON_NAMES: string[];
5
+ //# sourceMappingURL=provider-icon-names.d.ts.map
@@ -0,0 +1,50 @@
1
+ export const BUILTIN_PROVIDER_ICON_NAMES = [
2
+ "claude",
3
+ "codex",
4
+ "copilot",
5
+ "kiro",
6
+ "omp",
7
+ "opencode",
8
+ "pi",
9
+ ];
10
+ export const ACP_PROVIDER_ICON_NAMES = [
11
+ "agoragentic-acp",
12
+ "amp-acp",
13
+ "auggie",
14
+ "autohand",
15
+ "cline",
16
+ "codebuddy-code",
17
+ "codewhale",
18
+ "cortex-code",
19
+ "corust-agent",
20
+ "crow-cli",
21
+ "cursor",
22
+ "deepagents",
23
+ "dimcode",
24
+ "dirac",
25
+ "factory-droid",
26
+ "fast-agent",
27
+ "gemini",
28
+ "glm-acp-agent",
29
+ "goose",
30
+ "grok",
31
+ "junie",
32
+ "kilo",
33
+ "kimi",
34
+ "minion-code",
35
+ "mistral-vibe",
36
+ "nova",
37
+ "poolside",
38
+ "qoder",
39
+ "qwen-code",
40
+ "sigit",
41
+ "stakpak",
42
+ "vtcode",
43
+ ];
44
+ export const TERMINAL_PROFILE_ICON_NAMES = ["agy"];
45
+ export const KNOWN_PROVIDER_ICON_NAMES = [
46
+ ...BUILTIN_PROVIDER_ICON_NAMES,
47
+ ...ACP_PROVIDER_ICON_NAMES,
48
+ ...TERMINAL_PROFILE_ICON_NAMES,
49
+ ];
50
+ //# sourceMappingURL=provider-icon-names.js.map
@@ -0,0 +1,6 @@
1
+ import type { TerminalProfile } from "./messages.js";
2
+ export declare const DEFAULT_TERMINAL_PROFILES: readonly TerminalProfile[];
3
+ export declare function guessTerminalProfileIcon(command: string): string | undefined;
4
+ export declare function getTerminalProfileIcon(profile: TerminalProfile): string | undefined;
5
+ export declare function resolveTerminalProfiles(terminalProfiles: TerminalProfile[] | undefined): readonly TerminalProfile[];
6
+ //# sourceMappingURL=terminal-profiles.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { KNOWN_PROVIDER_ICON_NAMES } from "./provider-icon-names.js";
2
+ export const DEFAULT_TERMINAL_PROFILES = [
3
+ { id: "claude", name: "Claude Code", command: "claude", icon: "claude" },
4
+ { id: "codex", name: "Codex", command: "codex", icon: "codex" },
5
+ { id: "opencode", name: "OpenCode", command: "opencode", icon: "opencode" },
6
+ ];
7
+ const WELL_KNOWN_COMMAND_ICONS = new Map(KNOWN_PROVIDER_ICON_NAMES.map((name) => [name, name]));
8
+ function getCommandBaseName(command) {
9
+ const lastSlash = command.lastIndexOf("/");
10
+ const lastBackslash = command.lastIndexOf("\\");
11
+ const start = Math.max(lastSlash, lastBackslash) + 1;
12
+ const base = command.slice(start).toLowerCase();
13
+ const dotIndex = base.indexOf(".");
14
+ return dotIndex > 0 ? base.slice(0, dotIndex) : base;
15
+ }
16
+ export function guessTerminalProfileIcon(command) {
17
+ return WELL_KNOWN_COMMAND_ICONS.get(getCommandBaseName(command));
18
+ }
19
+ export function getTerminalProfileIcon(profile) {
20
+ return profile.icon ?? guessTerminalProfileIcon(profile.command);
21
+ }
22
+ export function resolveTerminalProfiles(terminalProfiles) {
23
+ if (terminalProfiles === undefined) {
24
+ return DEFAULT_TERMINAL_PROFILES;
25
+ }
26
+ return terminalProfiles;
27
+ }
28
+ //# sourceMappingURL=terminal-profiles.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/protocol",
3
- "version": "0.1.93",
3
+ "version": "0.1.95",
4
4
  "description": "Paseo shared protocol schemas and wire types",
5
5
  "files": [
6
6
  "dist",