@camerontaylor/paseo-protocol 0.11.1-fork.1 → 0.11.2-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.
@@ -1,5 +1,15 @@
1
1
  import type { AgentAttachment } from "./messages.js";
2
2
  export type AgentProvider = string;
3
+ export type AgentArtifactKind = "html" | "markdown" | "image" | "svg" | "pdf" | "diff";
4
+ export interface AgentArtifact {
5
+ path: string;
6
+ name: string;
7
+ kind: AgentArtifactKind;
8
+ mimeType: string;
9
+ size: number;
10
+ createdAt: string;
11
+ updatedAt: string;
12
+ }
3
13
  export interface AgentMetadata {
4
14
  [key: string]: unknown;
5
15
  }
@@ -17,7 +17,10 @@ export declare const CLIENT_CAPS: {
17
17
  readonly timelineNotifications: "timeline_notifications";
18
18
  readonly pluginTimelineItems: "plugin_timeline_items";
19
19
  readonly workspaceSetupBlocked: "workspace_setup_blocked";
20
+ readonly durableAgentQueue: "durable_agent_queue";
21
+ readonly durableVoiceInputV1: "durable_voice_input_v1";
20
22
  readonly browserHost: "browser_host";
23
+ readonly companionStreamPortV1: "companion_stream_port_v1";
21
24
  };
22
25
  export type ClientCapability = (typeof CLIENT_CAPS)[keyof typeof CLIENT_CAPS];
23
26
  //# sourceMappingURL=client-capabilities.d.ts.map
@@ -47,6 +47,19 @@ export const CLIENT_CAPS = {
47
47
  pluginTimelineItems: "plugin_timeline_items",
48
48
  // COMPAT(workspaceSetupBlocked): added in v0.8.0, remove after 2027-03-07 once client floor >= v0.8.0.
49
49
  workspaceSetupBlocked: "workspace_setup_blocked",
50
+ // COMPAT(durableAgentQueue): fork addition (TM-02). The daemon only mirrors
51
+ // `agent.queue.update` to clients that advertise this, so a client with a
52
+ // strict outbound union never receives the event.
53
+ durableAgentQueue: "durable_agent_queue",
54
+ // COMPAT(durableVoiceInputV1): fork addition (TM-04). Gate for voice
55
+ // attachment admission into the durable queue and the receipt-read RPC.
56
+ // Keep the gate while stock peers are supported.
57
+ durableVoiceInputV1: "durable_voice_input_v1",
50
58
  browserHost: "browser_host",
59
+ // COMPAT(companionStreamPortV1): added in v0.11.0-beta.3-fork, remove after 2027-04-01.
60
+ // Clients declaring this get the optional `artifacts` / `companionEntries`
61
+ // agent-snapshot fields. Paired with the `agent.companion.update_entry.*`
62
+ // operations; not the source fork's `companionStream` capability name.
63
+ companionStreamPortV1: "companion_stream_port_v1",
51
64
  };
52
65
  //# sourceMappingURL=client-capabilities.js.map
@@ -0,0 +1,75 @@
1
+ import { z } from "zod";
2
+ export declare const CompanionEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ kind: z.ZodLiteral<"question">;
4
+ status: z.ZodEnum<{
5
+ open: "open";
6
+ reviewed: "reviewed";
7
+ done: "done";
8
+ reply_sent: "reply_sent";
9
+ }>;
10
+ id: z.ZodString;
11
+ timestamp: z.ZodString;
12
+ text: z.ZodString;
13
+ truncated: z.ZodBoolean;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ kind: z.ZodLiteral<"feature_request">;
16
+ status: z.ZodEnum<{
17
+ open: "open";
18
+ reviewed: "reviewed";
19
+ done: "done";
20
+ }>;
21
+ id: z.ZodString;
22
+ timestamp: z.ZodString;
23
+ text: z.ZodString;
24
+ truncated: z.ZodBoolean;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ kind: z.ZodLiteral<"permission">;
27
+ requestId: z.ZodString;
28
+ requestKind: z.ZodEnum<{
29
+ tool: "tool";
30
+ plan: "plan";
31
+ question: "question";
32
+ mode: "mode";
33
+ other: "other";
34
+ }>;
35
+ status: z.ZodEnum<{
36
+ pending: "pending";
37
+ allowed: "allowed";
38
+ denied: "denied";
39
+ expired: "expired";
40
+ }>;
41
+ id: z.ZodString;
42
+ timestamp: z.ZodString;
43
+ text: z.ZodString;
44
+ truncated: z.ZodBoolean;
45
+ }, z.core.$strip>, z.ZodObject<{
46
+ kind: z.ZodLiteral<"outcome">;
47
+ status: z.ZodEnum<{
48
+ completed: "completed";
49
+ failed: "failed";
50
+ canceled: "canceled";
51
+ }>;
52
+ id: z.ZodString;
53
+ timestamp: z.ZodString;
54
+ text: z.ZodString;
55
+ truncated: z.ZodBoolean;
56
+ }, z.core.$strip>, z.ZodObject<{
57
+ kind: z.ZodLiteral<"pin">;
58
+ sourceId: z.ZodOptional<z.ZodString>;
59
+ id: z.ZodString;
60
+ timestamp: z.ZodString;
61
+ text: z.ZodString;
62
+ truncated: z.ZodBoolean;
63
+ }, z.core.$strip>, z.ZodObject<{
64
+ kind: z.ZodLiteral<"q_and_a">;
65
+ answer: z.ZodOptional<z.ZodString>;
66
+ questionMessageId: z.ZodOptional<z.ZodString>;
67
+ answerMessageId: z.ZodOptional<z.ZodString>;
68
+ id: z.ZodString;
69
+ timestamp: z.ZodString;
70
+ text: z.ZodString;
71
+ truncated: z.ZodBoolean;
72
+ }, z.core.$strip>], "kind">;
73
+ export type CompanionEntry = z.infer<typeof CompanionEntrySchema>;
74
+ export declare function isCompanionEntryPending(entry: CompanionEntry): boolean;
75
+ //# sourceMappingURL=companion-stream.d.ts.map
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ const common = {
3
+ id: z.string(),
4
+ timestamp: z.string(),
5
+ text: z.string(),
6
+ truncated: z.boolean(),
7
+ };
8
+ export const CompanionEntrySchema = z.discriminatedUnion("kind", [
9
+ z.object({
10
+ ...common,
11
+ kind: z.literal("question"),
12
+ status: z.enum(["open", "reviewed", "done", "reply_sent"]),
13
+ }),
14
+ z.object({
15
+ ...common,
16
+ kind: z.literal("feature_request"),
17
+ status: z.enum(["open", "reviewed", "done"]),
18
+ }),
19
+ z.object({
20
+ ...common,
21
+ kind: z.literal("permission"),
22
+ requestId: z.string(),
23
+ requestKind: z.enum(["tool", "plan", "question", "mode", "other"]),
24
+ status: z.enum(["pending", "allowed", "denied", "expired"]),
25
+ }),
26
+ z.object({
27
+ ...common,
28
+ kind: z.literal("outcome"),
29
+ status: z.enum(["completed", "failed", "canceled"]),
30
+ }),
31
+ z.object({
32
+ ...common,
33
+ kind: z.literal("pin"),
34
+ sourceId: z.string().optional(),
35
+ }),
36
+ z.object({
37
+ ...common,
38
+ kind: z.literal("q_and_a"),
39
+ answer: z.string().optional(),
40
+ questionMessageId: z.string().optional(),
41
+ answerMessageId: z.string().optional(),
42
+ }),
43
+ ]);
44
+ export function isCompanionEntryPending(entry) {
45
+ return ((entry.kind === "question" && entry.status === "open") ||
46
+ (entry.kind === "feature_request" && entry.status === "open") ||
47
+ (entry.kind === "permission" && entry.status === "pending"));
48
+ }
49
+ //# sourceMappingURL=companion-stream.js.map