@hyperdrive.bot/paseo-protocol 0.3.40 → 0.3.42

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
@@ -101,7 +101,9 @@ export const MutableDaemonConfigSchema = z
101
101
  .passthrough(),
102
102
  browserTools: MutableBrowserToolsConfigSchema.default({ enabled: false }),
103
103
  providers: z.record(z.string(), MutableDaemonProviderConfigSchema).default({}),
104
- metadataGeneration: MutableMetadataGenerationConfigSchema.default({ providers: [] }),
104
+ metadataGeneration: MutableMetadataGenerationConfigSchema.default({
105
+ providers: [],
106
+ }),
105
107
  autoArchiveAfterMerge: z.boolean().default(false),
106
108
  enableTerminalAgentHooks: z.boolean().default(false),
107
109
  appendSystemPrompt: z.string().default(""),
@@ -471,6 +473,12 @@ const AgentSessionConfigSchema = z.object({
471
473
  .optional(),
472
474
  systemPrompt: z.string().optional(),
473
475
  mcpServers: z.record(z.string(), McpServerConfigSchema).optional(),
476
+ // Per-run tool allowlist, in Claude Code permission-rule syntax ("Bash",
477
+ // "Bash(git:*)", "mcp__server__tool"). Optional: absent means "no allowlist",
478
+ // which is the pre-existing behaviour, so old clients keep working.
479
+ // Enforced by the claude provider through a PreToolUse hook; other providers
480
+ // reject the field rather than accept it and silently ignore it.
481
+ allowedTools: z.array(z.string()).optional(),
474
482
  });
475
483
  const AgentPermissionUpdateSchema = z.record(z.string(), z.unknown());
476
484
  const AgentPermissionActionSchema = z.object({
@@ -1178,8 +1186,25 @@ const WorkspaceStateBucketSchema = z.enum([
1178
1186
  "failed",
1179
1187
  "running",
1180
1188
  "attention",
1189
+ // COMPAT(pendingBucket): added in 0.3.42. A settled agent that still owns
1190
+ // armed background work (monitor / cron / background shell / live subagent).
1191
+ "pending",
1181
1192
  "done",
1182
1193
  ]);
1194
+ /**
1195
+ * Client-side tolerant form of {@link WorkspaceStateBucketSchema}.
1196
+ *
1197
+ * A newer daemon may send a bucket an older app build has never heard of. A
1198
+ * bare `z.enum` THROWS on that, which fails the whole workspace-descriptor
1199
+ * parse and blanks the list — a total outage from an additive change. The
1200
+ * `.catch` degrades one field instead.
1201
+ *
1202
+ * The fallback is deliberately `running`, not `done`: an unknown bucket means
1203
+ * "this daemon knows about a state we don't", and the safe direction is to keep
1204
+ * the workspace VISIBLE rather than silently filing it under finished. Guessing
1205
+ * "done" would reproduce the exact class of bug the pending bucket exists to fix.
1206
+ */
1207
+ const IncomingWorkspaceStateBucketSchema = WorkspaceStateBucketSchema.catch("running");
1183
1208
  export const FetchWorkspacesRequestMessageSchema = z.object({
1184
1209
  type: z.literal("fetch_workspaces_request"),
1185
1210
  requestId: z.string(),
@@ -3120,7 +3145,7 @@ export const WorkspaceDescriptorPayloadSchema = z
3120
3145
  // is derived from the branch/directory.
3121
3146
  title: z.string().nullable().optional(),
3122
3147
  archivingAt: z.string().nullable().optional().default(null),
3123
- status: WorkspaceStateBucketSchema,
3148
+ status: IncomingWorkspaceStateBucketSchema,
3124
3149
  // Best-effort workspace status entry timestamp. Old daemons omit the
3125
3150
  // field; old clients treat missing and null equivalently. The transform
3126
3151
  // coerces a missing field to `null` so downstream code never has to
@@ -489,13 +489,14 @@ export declare const WSOutboundMessageSchema: {
489
489
  name: import("zod").ZodString;
490
490
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
491
491
  archivingAt: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>>;
492
- status: import("zod").ZodEnum<{
492
+ status: import("zod").ZodCatch<import("zod").ZodEnum<{
493
493
  running: "running";
494
494
  attention: "attention";
495
495
  needs_input: "needs_input";
496
496
  failed: "failed";
497
+ pending: "pending";
497
498
  done: "done";
498
- }>;
499
+ }>>;
499
500
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
500
501
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
501
502
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
@@ -673,7 +674,7 @@ export declare const WSOutboundMessageSchema: {
673
674
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
674
675
  name: string;
675
676
  archivingAt: string | null;
676
- status: "running" | "attention" | "needs_input" | "failed" | "done";
677
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
677
678
  statusEnteredAt: string | null;
678
679
  activityAt: string | null;
679
680
  scripts: {
@@ -776,7 +777,7 @@ export declare const WSOutboundMessageSchema: {
776
777
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
777
778
  name: string;
778
779
  archivingAt: string | null;
779
- status: "running" | "attention" | "needs_input" | "failed" | "done";
780
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
780
781
  statusEnteredAt: string | null;
781
782
  activityAt: string | null;
782
783
  scripts: {
@@ -1560,13 +1561,14 @@ export declare const WSOutboundMessageSchema: {
1560
1561
  name: import("zod").ZodString;
1561
1562
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
1562
1563
  archivingAt: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>>;
1563
- status: import("zod").ZodEnum<{
1564
+ status: import("zod").ZodCatch<import("zod").ZodEnum<{
1564
1565
  running: "running";
1565
1566
  attention: "attention";
1566
1567
  needs_input: "needs_input";
1567
1568
  failed: "failed";
1569
+ pending: "pending";
1568
1570
  done: "done";
1569
- }>;
1571
+ }>>;
1570
1572
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
1571
1573
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
1572
1574
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
@@ -1744,7 +1746,7 @@ export declare const WSOutboundMessageSchema: {
1744
1746
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
1745
1747
  name: string;
1746
1748
  archivingAt: string | null;
1747
- status: "running" | "attention" | "needs_input" | "failed" | "done";
1749
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
1748
1750
  statusEnteredAt: string | null;
1749
1751
  activityAt: string | null;
1750
1752
  scripts: {
@@ -1847,7 +1849,7 @@ export declare const WSOutboundMessageSchema: {
1847
1849
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
1848
1850
  name: string;
1849
1851
  archivingAt: string | null;
1850
- status: "running" | "attention" | "needs_input" | "failed" | "done";
1852
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
1851
1853
  statusEnteredAt: string | null;
1852
1854
  activityAt: string | null;
1853
1855
  scripts: {
@@ -2005,13 +2007,14 @@ export declare const WSOutboundMessageSchema: {
2005
2007
  name: import("zod").ZodString;
2006
2008
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
2007
2009
  archivingAt: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>>;
2008
- status: import("zod").ZodEnum<{
2010
+ status: import("zod").ZodCatch<import("zod").ZodEnum<{
2009
2011
  running: "running";
2010
2012
  attention: "attention";
2011
2013
  needs_input: "needs_input";
2012
2014
  failed: "failed";
2015
+ pending: "pending";
2013
2016
  done: "done";
2014
- }>;
2017
+ }>>;
2015
2018
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
2016
2019
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
2017
2020
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
@@ -2189,7 +2192,7 @@ export declare const WSOutboundMessageSchema: {
2189
2192
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
2190
2193
  name: string;
2191
2194
  archivingAt: string | null;
2192
- status: "running" | "attention" | "needs_input" | "failed" | "done";
2195
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
2193
2196
  statusEnteredAt: string | null;
2194
2197
  activityAt: string | null;
2195
2198
  scripts: {
@@ -2292,7 +2295,7 @@ export declare const WSOutboundMessageSchema: {
2292
2295
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
2293
2296
  name: string;
2294
2297
  archivingAt: string | null;
2295
- status: "running" | "attention" | "needs_input" | "failed" | "done";
2298
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
2296
2299
  statusEnteredAt: string | null;
2297
2300
  activityAt: string | null;
2298
2301
  scripts: {
@@ -3005,13 +3008,14 @@ export declare const WSOutboundMessageSchema: {
3005
3008
  name: import("zod").ZodString;
3006
3009
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
3007
3010
  archivingAt: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>>;
3008
- status: import("zod").ZodEnum<{
3011
+ status: import("zod").ZodCatch<import("zod").ZodEnum<{
3009
3012
  running: "running";
3010
3013
  attention: "attention";
3011
3014
  needs_input: "needs_input";
3012
3015
  failed: "failed";
3016
+ pending: "pending";
3013
3017
  done: "done";
3014
- }>;
3018
+ }>>;
3015
3019
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
3016
3020
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
3017
3021
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
@@ -3189,7 +3193,7 @@ export declare const WSOutboundMessageSchema: {
3189
3193
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
3190
3194
  name: string;
3191
3195
  archivingAt: string | null;
3192
- status: "running" | "attention" | "needs_input" | "failed" | "done";
3196
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
3193
3197
  statusEnteredAt: string | null;
3194
3198
  activityAt: string | null;
3195
3199
  scripts: {
@@ -3292,7 +3296,7 @@ export declare const WSOutboundMessageSchema: {
3292
3296
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
3293
3297
  name: string;
3294
3298
  archivingAt: string | null;
3295
- status: "running" | "attention" | "needs_input" | "failed" | "done";
3299
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
3296
3300
  statusEnteredAt: string | null;
3297
3301
  activityAt: string | null;
3298
3302
  scripts: {
@@ -5009,13 +5013,14 @@ export declare const WSOutboundMessageSchema: {
5009
5013
  name: import("zod").ZodString;
5010
5014
  title: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5011
5015
  archivingAt: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>>;
5012
- status: import("zod").ZodEnum<{
5016
+ status: import("zod").ZodCatch<import("zod").ZodEnum<{
5013
5017
  running: "running";
5014
5018
  attention: "attention";
5015
5019
  needs_input: "needs_input";
5016
5020
  failed: "failed";
5021
+ pending: "pending";
5017
5022
  done: "done";
5018
- }>;
5023
+ }>>;
5019
5024
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
5020
5025
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
5021
5026
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
@@ -5193,7 +5198,7 @@ export declare const WSOutboundMessageSchema: {
5193
5198
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
5194
5199
  name: string;
5195
5200
  archivingAt: string | null;
5196
- status: "running" | "attention" | "needs_input" | "failed" | "done";
5201
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
5197
5202
  statusEnteredAt: string | null;
5198
5203
  activityAt: string | null;
5199
5204
  scripts: {
@@ -5296,7 +5301,7 @@ export declare const WSOutboundMessageSchema: {
5296
5301
  workspaceKind: "worktree" | "checkout" | "directory" | "local_checkout";
5297
5302
  name: string;
5298
5303
  archivingAt: string | null;
5299
- status: "running" | "attention" | "needs_input" | "failed" | "done";
5304
+ status: "running" | "attention" | "needs_input" | "failed" | "pending" | "done";
5300
5305
  statusEnteredAt: string | null;
5301
5306
  activityAt: string | null;
5302
5307
  scripts: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperdrive.bot/paseo-protocol",
3
- "version": "0.3.40",
3
+ "version": "0.3.42",
4
4
  "description": "Paseo shared protocol schemas and wire types",
5
5
  "files": [
6
6
  "dist",