@camerontaylor/paseo-protocol 0.11.2-fork.2 → 0.12.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.
package/dist/messages.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { AgentMessageSchema } from "./agent-message.js";
1
2
  import { PluginRegistryIdentitySchema } from "./plugin-registry.js";
2
3
  import { AgentProfileSchema, AgentSkillSelectionSchema } from "./agent-profile.js";
3
4
  export { AgentProfileSchema, AgentSkillSelectionSchema, } from "./agent-profile.js";
@@ -478,6 +479,7 @@ const ToolCallDetailPayloadSchema = z.discriminatedUnion("type", [
478
479
  }),
479
480
  ]);
480
481
  const ToolCallBasePayloadSchema = z.object({
482
+ agentMessage: AgentMessageSchema.optional(),
481
483
  type: z.literal("tool_call"),
482
484
  callId: z.string(),
483
485
  name: z.string(),
@@ -685,6 +687,8 @@ export const AgentSnapshotPayloadSchema = z.object({
685
687
  attentionTimestamp: z.string().nullable().optional(),
686
688
  archivedAt: z.string().nullable().optional(),
687
689
  providerUnavailable: z.boolean().optional(),
690
+ // Private helper marker, retained for exact-ID snapshots and older wire messages.
691
+ internal: z.boolean().optional(),
688
692
  artifacts: z.array(AgentArtifactSchema).optional(),
689
693
  companionEntries: z.array(CompanionEntrySchema).optional(),
690
694
  });
@@ -775,6 +779,9 @@ const AgentDirectoryFilterSchema = z.object({
775
779
  includeArchived: z.boolean().optional(),
776
780
  requiresAttention: z.boolean().optional(),
777
781
  thinkingOptionId: z.string().nullable().optional(),
782
+ // Retained for wire parsing; private helpers are excluded from public discovery.
783
+ includeInternal: z.boolean().optional(),
784
+ includeBackground: z.boolean().optional(),
778
785
  });
779
786
  export const DeleteAgentRequestMessageSchema = z.object({
780
787
  type: z.literal("delete_agent_request"),
@@ -1124,6 +1131,7 @@ export const FetchAgentsRequestMessageSchema = z.object({
1124
1131
  type: z.literal("fetch_agents_request"),
1125
1132
  requestId: z.string(),
1126
1133
  scope: z.enum(["active"]).optional(),
1134
+ includeBackground: z.boolean().optional(),
1127
1135
  filter: AgentDirectoryFilterSchema.optional(),
1128
1136
  sort: z
1129
1137
  .array(z.object({
@@ -1153,6 +1161,7 @@ const WorkspaceStateBucketSchema = z.enum([
1153
1161
  "done",
1154
1162
  ]);
1155
1163
  export const FetchWorkspacesRequestMessageSchema = z.object({
1164
+ includeBackground: z.boolean().optional(),
1156
1165
  type: z.literal("fetch_workspaces_request"),
1157
1166
  requestId: z.string(),
1158
1167
  filter: z
@@ -1161,6 +1170,9 @@ export const FetchWorkspacesRequestMessageSchema = z.object({
1161
1170
  projectId: z.string().optional(),
1162
1171
  // Unused: accepted so older clients still parse, but the server does not filter on it.
1163
1172
  idPrefix: z.string().optional(),
1173
+ // Retained for wire parsing of older requests.
1174
+ includeInternal: z.boolean().optional(),
1175
+ includeBackground: z.boolean().optional(),
1164
1176
  })
1165
1177
  .optional(),
1166
1178
  sort: z
@@ -1230,6 +1242,8 @@ export const SendAgentMessageRequestSchema = z.object({
1230
1242
  /** Accepts full ID, unique prefix, or exact full title (server resolves). */
1231
1243
  agentId: z.string(),
1232
1244
  text: z.string(),
1245
+ /** Opaque sender identity for agent-originated prompts. */
1246
+ sourceAgentId: z.string().min(1).optional(),
1233
1247
  messageId: z.string().optional(), // Client-provided ID for deduplication
1234
1248
  activeTurnBehavior: ActiveTurnBehaviorSchema.optional(),
1235
1249
  images: z.array(ImageAttachmentSchema).optional(),
@@ -1531,6 +1545,13 @@ export const CreateAgentRequestMessageSchema = z.object({
1531
1545
  git: GitSetupOptionsSchema.optional(),
1532
1546
  worktree: CreateAgentWorktreeTargetSchema.optional(),
1533
1547
  autoArchive: z.boolean().optional(),
1548
+ // An ephemeral helper: the daemon never persists, lists, flags or announces
1549
+ // it, and plugin lifecycle hooks skip it. Lives on the request rather than
1550
+ // in the config schema, which is reused for updates. Retained for wire parsing;
1551
+ // public internal creation is no longer supported.
1552
+ internal: z.boolean().optional(),
1553
+ // Workspace creation intent, rejected when selecting an existing workspace.
1554
+ background: z.boolean().optional(),
1534
1555
  labels: z.record(z.string(), z.string()).default({}),
1535
1556
  requestId: z.string(),
1536
1557
  });
@@ -2583,6 +2604,10 @@ export const WorkspaceCreateRequestSchema = z.object({
2583
2604
  title: z.string().optional(),
2584
2605
  // Optional prompt context for workspace-level name/branch generation.
2585
2606
  firstAgentContext: FirstAgentContextSchema.optional(),
2607
+ // Retained for wire parsing; public internal creation is no longer supported.
2608
+ internal: z.boolean().optional(),
2609
+ background: z.boolean().optional(),
2610
+ callerAgentId: z.string().optional(),
2586
2611
  source: z.discriminatedUnion("kind", [
2587
2612
  z.object({
2588
2613
  kind: z.literal("directory"),
@@ -3016,6 +3041,8 @@ export const SessionEventSubscriptionSchema = z.enum([
3016
3041
  "script_status_update",
3017
3042
  "workspace_setup_progress",
3018
3043
  "agent.provider_subagents.update",
3044
+ "agent.side_conversation.update",
3045
+ "agent.side_conversation.removed",
3019
3046
  // COMPAT(durableAgentQueue): fork addition (TM-02). Only sent by clients that
3020
3047
  // saw features.durableAgentQueueV1; an old daemon parsing this enum rejects
3021
3048
  // the subscription request, which is why the client gates before subscribing.
@@ -3450,6 +3477,11 @@ export const ServerInfoStatusPayloadSchema = z
3450
3477
  creationLifecycle: z.boolean().optional(),
3451
3478
  // COMPAT(hubAgentRpc): added in v0.8.0; remove gate after 2027-03-05.
3452
3479
  hubAgentRpc: z.boolean().optional(),
3480
+ // COMPAT(internalAgents): added in v0.9.0; remove gate after 2027-03-17.
3481
+ internalAgents: z.boolean().optional(),
3482
+ // COMPAT(internalWorkspaces): added in v0.9.0; remove gate after 2027-03-17.
3483
+ internalWorkspaces: z.boolean().optional(),
3484
+ backgroundWorkspaces: z.boolean().optional(),
3453
3485
  providersSnapshot: z.boolean().optional(),
3454
3486
  usageSources: z.boolean().optional(),
3455
3487
  usageReportsStreaming: z.boolean().optional(),
@@ -3579,6 +3611,11 @@ export const ServerInfoStatusPayloadSchema = z
3579
3611
  providerSubagentNesting: z.boolean().optional(),
3580
3612
  // COMPAT(sideConversations): added in 0.7.0-beta.2.fork.1, fork-only — stock peers never gain it, so the gate lasts as long as stock peers are supported.
3581
3613
  sideConversations: z.boolean().optional(),
3614
+ // COMPAT(sideConversationEvents): added in 0.12.0-beta.1.fork.1 — session event
3615
+ // subscriptions can carry the side-conversation update/removal stream, so a modern
3616
+ // (owned-subscription) client can receive proofs for those events. Older fork daemons
3617
+ // advertise sideConversations without this selector support, so clients gate on it.
3618
+ sideConversationEvents: z.boolean().optional(),
3582
3619
  // COMPAT(workspacePinning): added in v0.1.107, remove gate after 2027-01-12.
3583
3620
  workspacePinning: z.boolean().optional(),
3584
3621
  // COMPAT(workspaceMarkUnread): added in v0.5.0, remove after 2027-08-20.
@@ -3599,6 +3636,8 @@ export const ServerInfoStatusPayloadSchema = z
3599
3636
  commitBaseClassification: z.boolean().optional(),
3600
3637
  // COMPAT(providerRemoval): added in v0.1.105, drop the gate when floor >= v0.1.105.
3601
3638
  providerRemoval: z.boolean().optional(),
3639
+ // COMPAT(hopliteProvider): added after v0.11.2, remove after 2027-04-15 once host floor includes the bundled adapter.
3640
+ hopliteProvider: z.boolean().optional(),
3602
3641
  // COMPAT(providerConfigReplace): added in v0.2.X, remove after 2027-02-02 when old daemons are unsupported.
3603
3642
  providerConfigReplace: z.boolean().optional(),
3604
3643
  // COMPAT(providerConfigRename): added in v0.2.X, remove after 2027-02-02 when old daemons are unsupported.
@@ -3619,6 +3658,7 @@ export const ServerInfoStatusPayloadSchema = z
3619
3658
  ownedSubscriptions: z.boolean().optional(),
3620
3659
  // COMPAT(canonicalSubmittedPrompts): added in v0.2.6, remove gate after 2027-01-30.
3621
3660
  canonicalSubmittedPrompts: z.boolean().optional(),
3661
+ agentMessageProvenance: z.boolean().optional(),
3622
3662
  // COMPAT(agentTurnIdentity): accept peers that observed pre-release v0.2.6 through 2027-01-31.
3623
3663
  agentTurnIdentity: z.boolean().optional(),
3624
3664
  // COMPAT(stableProjectIdentity): added in v0.1.109, remove gate after 2027-01-15.
@@ -3914,6 +3954,9 @@ export const WorkspaceDescriptorPayloadSchema = z
3914
3954
  pinnedAt: z.string().nullable().optional(),
3915
3955
  // COMPAT(workspaceLabels): added in v0.5.0, remove optional after 2027-08-14.
3916
3956
  labels: z.array(z.string()).optional(),
3957
+ // Retained for wire parsing of older daemon descriptors.
3958
+ internal: z.boolean().optional(),
3959
+ background: z.boolean().optional(),
3917
3960
  archivingAt: z.string().nullable().optional().default(null),
3918
3961
  status: WorkspaceStateBucketSchema,
3919
3962
  // Best-effort workspace status entry timestamp. Old daemons omit the
@@ -4640,7 +4683,8 @@ export const SideConversationTimelineGetResponseMessageSchema = z.object({
4640
4683
  });
4641
4684
  export const SideConversationUpdateMessageSchema = z.object({
4642
4685
  type: z.literal("agent.side_conversation.update"),
4643
- payload: SideConversationSnapshotPayloadSchema,
4686
+ // subscriptionId is the owned-delivery proof tag; it stays optional for legacy broadcasts.
4687
+ payload: SideConversationSnapshotPayloadSchema.extend({ subscriptionId: z.string().optional() }),
4644
4688
  });
4645
4689
  export const SideConversationListResponseMessageSchema = z.object({
4646
4690
  type: z.literal("agent.side_conversation.list.response"),
@@ -4656,6 +4700,7 @@ export const SideConversationRemovedMessageSchema = z.object({
4656
4700
  payload: z.object({
4657
4701
  parentAgentId: z.string(),
4658
4702
  threadId: z.string(),
4703
+ subscriptionId: z.string().optional(),
4659
4704
  }),
4660
4705
  });
4661
4706
  export const SetAgentTimelineSubscriptionResponseMessageSchema = z.object({
@@ -23,6 +23,7 @@ const AGENT_FIELDS = [
23
23
  "modeId",
24
24
  "background",
25
25
  "notifyOnFinish",
26
+ "internal",
26
27
  "settings",
27
28
  "labels",
28
29
  ];
@@ -170,6 +171,7 @@ const FIELD_LABELS = {
170
171
  newMode: "New mode",
171
172
  nextRunAt: "Next run",
172
173
  notifyOnFinish: "Notify on finish",
174
+ internal: "Internal",
173
175
  prNumber: "Change request",
174
176
  projectId: "Project",
175
177
  removedDirectory: "Removed directory",
@@ -30,6 +30,7 @@ export const ACP_PROVIDER_ICON_NAMES = [
30
30
  "glm-acp-agent",
31
31
  "goose",
32
32
  "grok",
33
+ "hoplite",
33
34
  "junie",
34
35
  "kilo",
35
36
  "kimi",
@@ -1,5 +1,5 @@
1
1
  import type { ToolCallTimelineItem } from "./agent-types.js";
2
- export type ToolCallDisplayInput = Pick<ToolCallTimelineItem, "name" | "status" | "error" | "metadata" | "detail"> & {
2
+ export type ToolCallDisplayInput = Pick<ToolCallTimelineItem, "name" | "status" | "error" | "metadata" | "detail" | "agentMessage"> & {
3
3
  cwd?: string;
4
4
  };
5
5
  export interface ToolCallDisplayModel {
@@ -1,3 +1,4 @@
1
+ import { buildAgentMessageDisplay } from "./agent-message-display.js";
1
2
  import { getPaseoToolLeafName, isPaseoToolName } from "./tool-name-normalization.js";
2
3
  import { stripCwdPrefix } from "./path-utils.js";
3
4
  function isRecord(value) {
@@ -120,6 +121,9 @@ function buildUnknownDetailOverride(input) {
120
121
  return {};
121
122
  }
122
123
  export function buildToolCallDisplayModel(input) {
124
+ if (input.agentMessage) {
125
+ return { displayName: buildAgentMessageDisplay(input.agentMessage).displayName };
126
+ }
123
127
  const canonicalDisplay = buildCanonicalDetailDisplay(input);
124
128
  const unknownDetailOverride = buildUnknownDetailOverride(input);
125
129
  const displayName = unknownDetailOverride.displayName ??