@fragno-dev/pi-harness 0.0.0-stage → 0.0.3

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.
Files changed (140) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +181 -2
  3. package/dist/browser/agent-harness-event-protocol-CuKubox1.js +666 -0
  4. package/dist/browser/agent-harness-event-protocol-CuKubox1.js.map +1 -0
  5. package/dist/browser/agent-harness-event-protocol-d6mH_9n3.d.ts +261 -0
  6. package/dist/browser/agent-harness-event-protocol-d6mH_9n3.d.ts.map +1 -0
  7. package/dist/browser/client/clients.d.ts +2 -0
  8. package/dist/browser/client/clients.js +2 -0
  9. package/dist/browser/client/pi-workflow-emission-stream.d.ts +13 -0
  10. package/dist/browser/client/pi-workflow-emission-stream.d.ts.map +1 -0
  11. package/dist/browser/client/pi-workflow-emission-stream.js +29 -0
  12. package/dist/browser/client/pi-workflow-emission-stream.js.map +1 -0
  13. package/dist/browser/client/react.d.ts +147 -0
  14. package/dist/browser/client/react.d.ts.map +1 -0
  15. package/dist/browser/client/react.js +187 -0
  16. package/dist/browser/client/react.js.map +1 -0
  17. package/dist/browser/client/solid.d.ts +150 -0
  18. package/dist/browser/client/solid.d.ts.map +1 -0
  19. package/dist/browser/client/solid.js +130 -0
  20. package/dist/browser/client/solid.js.map +1 -0
  21. package/dist/browser/client/svelte.d.ts +150 -0
  22. package/dist/browser/client/svelte.d.ts.map +1 -0
  23. package/dist/browser/client/svelte.js +132 -0
  24. package/dist/browser/client/svelte.js.map +1 -0
  25. package/dist/browser/client/vanilla.d.ts +177 -0
  26. package/dist/browser/client/vanilla.d.ts.map +1 -0
  27. package/dist/browser/client/vanilla.js +159 -0
  28. package/dist/browser/client/vanilla.js.map +1 -0
  29. package/dist/browser/client/vue.d.ts +150 -0
  30. package/dist/browser/client/vue.d.ts.map +1 -0
  31. package/dist/browser/client/vue.js +128 -0
  32. package/dist/browser/client/vue.js.map +1 -0
  33. package/dist/browser/client/workflow-lofi-session-projection.d.ts +17 -0
  34. package/dist/browser/client/workflow-lofi-session-projection.d.ts.map +1 -0
  35. package/dist/browser/client/workflow-lofi-session-projection.js +107 -0
  36. package/dist/browser/client/workflow-lofi-session-projection.js.map +1 -0
  37. package/dist/browser/clients-DYXj19je.d.ts +247 -0
  38. package/dist/browser/clients-DYXj19je.d.ts.map +1 -0
  39. package/dist/browser/clients-pIAk6ClP.js +1853 -0
  40. package/dist/browser/clients-pIAk6ClP.js.map +1 -0
  41. package/dist/browser/pi/context-usage.d.ts +20 -0
  42. package/dist/browser/pi/context-usage.d.ts.map +1 -0
  43. package/dist/browser/pi/context-usage.js +84 -0
  44. package/dist/browser/pi/context-usage.js.map +1 -0
  45. package/dist/browser/pi/harness/agent-harness-event-protocol.d.ts +2 -0
  46. package/dist/browser/pi/harness/agent-harness-event-protocol.js +2 -0
  47. package/dist/browser/pi/route-schemas.d.ts +2 -0
  48. package/dist/browser/pi/route-schemas.js +130 -0
  49. package/dist/browser/pi/route-schemas.js.map +1 -0
  50. package/dist/browser/pi/workflow-session-projection.d.ts +2 -0
  51. package/dist/browser/pi/workflow-session-projection.js +2 -0
  52. package/dist/browser/route-schemas-DQB5ZR1E.d.ts +109 -0
  53. package/dist/browser/route-schemas-DQB5ZR1E.d.ts.map +1 -0
  54. package/dist/browser/types-8q4RWFXT.js +23 -0
  55. package/dist/browser/types-8q4RWFXT.js.map +1 -0
  56. package/dist/browser/types-Dk856kV1.d.ts +527 -0
  57. package/dist/browser/types-Dk856kV1.d.ts.map +1 -0
  58. package/dist/browser/workflow-session-projection-CJ4MUkpJ.js +443 -0
  59. package/dist/browser/workflow-session-projection-CJ4MUkpJ.js.map +1 -0
  60. package/dist/browser/workflow-session-projection-Dj_a79GF.d.ts +93 -0
  61. package/dist/browser/workflow-session-projection-Dj_a79GF.d.ts.map +1 -0
  62. package/dist/node/pi/compact-command-outcome-projection.js +41 -0
  63. package/dist/node/pi/compact-command-outcome-projection.js.map +1 -0
  64. package/dist/node/pi/context-usage.d.ts +20 -0
  65. package/dist/node/pi/context-usage.d.ts.map +1 -0
  66. package/dist/node/pi/context-usage.js +84 -0
  67. package/dist/node/pi/context-usage.js.map +1 -0
  68. package/dist/node/pi/definition.d.ts +535 -0
  69. package/dist/node/pi/definition.d.ts.map +1 -0
  70. package/dist/node/pi/definition.js +71 -0
  71. package/dist/node/pi/definition.js.map +1 -0
  72. package/dist/node/pi/factory.d.ts +142 -0
  73. package/dist/node/pi/factory.d.ts.map +1 -0
  74. package/dist/node/pi/factory.js +22 -0
  75. package/dist/node/pi/factory.js.map +1 -0
  76. package/dist/node/pi/harness/agent-harness-event-protocol.d.ts +261 -0
  77. package/dist/node/pi/harness/agent-harness-event-protocol.d.ts.map +1 -0
  78. package/dist/node/pi/harness/agent-harness-event-protocol.js +588 -0
  79. package/dist/node/pi/harness/agent-harness-event-protocol.js.map +1 -0
  80. package/dist/node/pi/harness/json-value.js +82 -0
  81. package/dist/node/pi/harness/json-value.js.map +1 -0
  82. package/dist/node/pi/harness/pi-operation-completed.d.ts +16 -0
  83. package/dist/node/pi/harness/pi-operation-completed.d.ts.map +1 -0
  84. package/dist/node/pi/harness/pi-operation-completed.js +71 -0
  85. package/dist/node/pi/harness/pi-operation-completed.js.map +1 -0
  86. package/dist/node/pi/harness/session-storage.d.ts +62 -0
  87. package/dist/node/pi/harness/session-storage.d.ts.map +1 -0
  88. package/dist/node/pi/harness/session-storage.js +174 -0
  89. package/dist/node/pi/harness/session-storage.js.map +1 -0
  90. package/dist/node/pi/pi-jsonl-export.d.ts +11 -0
  91. package/dist/node/pi/pi-jsonl-export.d.ts.map +1 -0
  92. package/dist/node/pi/pi-jsonl-export.js +31 -0
  93. package/dist/node/pi/pi-jsonl-export.js.map +1 -0
  94. package/dist/node/pi/route-schemas.d.ts +109 -0
  95. package/dist/node/pi/route-schemas.d.ts.map +1 -0
  96. package/dist/node/pi/route-schemas.js +130 -0
  97. package/dist/node/pi/route-schemas.js.map +1 -0
  98. package/dist/node/pi/session-command-protocol.d.ts +14 -0
  99. package/dist/node/pi/session-command-protocol.d.ts.map +1 -0
  100. package/dist/node/pi/session-command-protocol.js +25 -0
  101. package/dist/node/pi/session-command-protocol.js.map +1 -0
  102. package/dist/node/pi/session-entry-projection.js +79 -0
  103. package/dist/node/pi/session-entry-projection.js.map +1 -0
  104. package/dist/node/pi/skills.d.ts +70 -0
  105. package/dist/node/pi/skills.d.ts.map +1 -0
  106. package/dist/node/pi/skills.js +150 -0
  107. package/dist/node/pi/skills.js.map +1 -0
  108. package/dist/node/pi/tools.d.ts +12 -0
  109. package/dist/node/pi/tools.d.ts.map +1 -0
  110. package/dist/node/pi/tools.js +8 -0
  111. package/dist/node/pi/tools.js.map +1 -0
  112. package/dist/node/pi/types.d.ts +165 -0
  113. package/dist/node/pi/types.d.ts.map +1 -0
  114. package/dist/node/pi/types.js +49 -0
  115. package/dist/node/pi/types.js.map +1 -0
  116. package/dist/node/pi/wait-for-command-step.js +46 -0
  117. package/dist/node/pi/wait-for-command-step.js.map +1 -0
  118. package/dist/node/pi/workflow-session-live-projection.js +220 -0
  119. package/dist/node/pi/workflow-session-live-projection.js.map +1 -0
  120. package/dist/node/pi/workflow-session-projection.d.ts +84 -0
  121. package/dist/node/pi/workflow-session-projection.d.ts.map +1 -0
  122. package/dist/node/pi/workflow-session-projection.js +100 -0
  123. package/dist/node/pi/workflow-session-projection.js.map +1 -0
  124. package/dist/node/pi/workflows/interactive-chat-workflow.d.ts +37 -0
  125. package/dist/node/pi/workflows/interactive-chat-workflow.d.ts.map +1 -0
  126. package/dist/node/pi/workflows/interactive-chat-workflow.js +219 -0
  127. package/dist/node/pi/workflows/interactive-chat-workflow.js.map +1 -0
  128. package/dist/node/pi/workflows/workflow-agent-harness.d.ts +142 -0
  129. package/dist/node/pi/workflows/workflow-agent-harness.d.ts.map +1 -0
  130. package/dist/node/pi/workflows/workflow-agent-harness.js +450 -0
  131. package/dist/node/pi/workflows/workflow-agent-harness.js.map +1 -0
  132. package/dist/node/routes.d.ts +631 -0
  133. package/dist/node/routes.d.ts.map +1 -0
  134. package/dist/node/routes.js +355 -0
  135. package/dist/node/routes.js.map +1 -0
  136. package/dist/node/schema.d.ts +5 -0
  137. package/dist/node/schema.d.ts.map +1 -0
  138. package/dist/node/schema.js +7 -0
  139. package/dist/node/schema.js.map +1 -0
  140. package/package.json +175 -3
@@ -0,0 +1,130 @@
1
+ import { t as MAX_PI_COMMAND_IMAGE_DATA_LENGTH } from "../types-8q4RWFXT.js";
2
+ import { z } from "zod";
3
+ //#region src/pi/route-schemas.ts
4
+ const workflowStatusValueSchema = z.enum([
5
+ "active",
6
+ "paused",
7
+ "errored",
8
+ "terminated",
9
+ "complete",
10
+ "waiting"
11
+ ]);
12
+ const sessionBaseSchema = z.object({
13
+ id: z.string(),
14
+ name: z.string().nullable(),
15
+ metadata: z.record(z.string(), z.unknown()).nullable(),
16
+ workflowName: z.string(),
17
+ createdAt: z.date(),
18
+ updatedAt: z.date()
19
+ });
20
+ const ImageContentSchema = z.object({
21
+ type: z.literal("image"),
22
+ data: z.base64().min(1),
23
+ mimeType: z.string()
24
+ });
25
+ const agentMessageSchema = z.unknown();
26
+ const workflowStatusSchema = z.object({
27
+ status: workflowStatusValueSchema,
28
+ error: z.object({
29
+ name: z.string(),
30
+ message: z.string()
31
+ }).optional(),
32
+ output: z.any().optional()
33
+ });
34
+ const piAgentStateSnapshotSchema = z.object({ messages: z.array(z.unknown()) });
35
+ const sessionDetailSchema = sessionBaseSchema.extend({
36
+ workflow: workflowStatusSchema,
37
+ agent: z.object({ state: piAgentStateSnapshotSchema })
38
+ });
39
+ const promptInputSchema = z.object({
40
+ text: z.string(),
41
+ images: z.array(ImageContentSchema).refine((images) => images.reduce((totalLength, image) => totalLength + image.data.length, 0) <= MAX_PI_COMMAND_IMAGE_DATA_LENGTH, { message: "Image data exceeds the command persistence limit." }).optional()
42
+ });
43
+ const commandInputSchema = z.discriminatedUnion("kind", [
44
+ z.object({
45
+ kind: z.literal("prompt"),
46
+ input: promptInputSchema
47
+ }),
48
+ z.object({
49
+ kind: z.literal("skill"),
50
+ input: z.object({
51
+ name: z.string(),
52
+ additionalInstructions: z.string().optional()
53
+ })
54
+ }),
55
+ z.object({
56
+ kind: z.literal("promptFromTemplate"),
57
+ input: z.object({
58
+ name: z.string(),
59
+ args: z.array(z.string()).optional()
60
+ })
61
+ }),
62
+ z.object({
63
+ kind: z.literal("compact"),
64
+ input: z.object({ customInstructions: z.string().optional() })
65
+ }),
66
+ z.object({
67
+ kind: z.literal("abort"),
68
+ reason: z.string().optional()
69
+ }),
70
+ z.object({
71
+ kind: z.literal("steer"),
72
+ input: promptInputSchema
73
+ }),
74
+ z.object({
75
+ kind: z.literal("followUp"),
76
+ input: promptInputSchema
77
+ })
78
+ ]);
79
+ const piSessionCommandPayloadSchema = z.discriminatedUnion("kind", [
80
+ z.object({
81
+ commandId: z.string(),
82
+ kind: z.literal("prompt"),
83
+ input: promptInputSchema
84
+ }),
85
+ z.object({
86
+ commandId: z.string(),
87
+ kind: z.literal("skill"),
88
+ input: z.object({
89
+ name: z.string(),
90
+ additionalInstructions: z.string().optional()
91
+ })
92
+ }),
93
+ z.object({
94
+ commandId: z.string(),
95
+ kind: z.literal("promptFromTemplate"),
96
+ input: z.object({
97
+ name: z.string(),
98
+ args: z.array(z.string()).optional()
99
+ })
100
+ }),
101
+ z.object({
102
+ commandId: z.string(),
103
+ kind: z.literal("compact"),
104
+ input: z.object({ customInstructions: z.string().optional() })
105
+ }),
106
+ z.object({
107
+ commandId: z.string(),
108
+ kind: z.literal("abort"),
109
+ reason: z.string().optional()
110
+ }),
111
+ z.object({
112
+ commandId: z.string(),
113
+ kind: z.literal("steer"),
114
+ input: promptInputSchema
115
+ }),
116
+ z.object({
117
+ commandId: z.string(),
118
+ kind: z.literal("followUp"),
119
+ input: promptInputSchema
120
+ })
121
+ ]);
122
+ const commandAckSchema = z.object({
123
+ accepted: z.literal(true),
124
+ commandId: z.string(),
125
+ status: workflowStatusValueSchema
126
+ });
127
+ //#endregion
128
+ export { agentMessageSchema, commandAckSchema, commandInputSchema, piSessionCommandPayloadSchema, sessionBaseSchema, sessionDetailSchema };
129
+
130
+ //# sourceMappingURL=route-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-schemas.js","names":["z","AgentMessage","PiHarnessFrontendAgentMessage","MAX_PI_COMMAND_IMAGE_DATA_LENGTH","PiSessionCommandPayload","PiWorkflowStatus","workflowStatusValueSchema","enum","ZodType","sessionBaseSchema","object","id","string","name","nullable","metadata","record","unknown","workflowName","createdAt","date","updatedAt","ImageContentSchema","type","literal","data","base64","min","mimeType","agentMessageSchema","workflowStatusSchema","status","error","message","optional","output","any","piAgentStateSnapshotSchema","messages","array","sessionDetailSchema","extend","workflow","agent","state","promptInputSchema","text","images","refine","reduce","totalLength","image","length","commandInputSchema","discriminatedUnion","kind","input","additionalInstructions","args","customInstructions","reason","piSessionCommandPayloadSchema","commandId","commandAckSchema","accepted"],"sources":["../../../src/pi/route-schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\n\nimport type { PiHarnessFrontendAgentMessage } from \"./harness/agent-harness-event-protocol\";\nimport {\n MAX_PI_COMMAND_IMAGE_DATA_LENGTH,\n type PiSessionCommandPayload,\n type PiWorkflowStatus,\n} from \"./types\";\n\nconst workflowStatusValueSchema = z.enum([\n \"active\",\n \"paused\",\n \"errored\",\n \"terminated\",\n \"complete\",\n \"waiting\",\n]) satisfies z.ZodType<PiWorkflowStatus>;\n\nconst sessionBaseSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n workflowName: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nconst ImageContentSchema = z.object({\n type: z.literal(\"image\"),\n data: z.base64().min(1),\n mimeType: z.string(),\n});\n\nconst agentMessageSchema = z.unknown() as z.ZodType<AgentMessage>;\nconst workflowStatusSchema = z.object({\n status: workflowStatusValueSchema,\n error: z\n .object({\n name: z.string(),\n message: z.string(),\n })\n .optional(),\n output: z.any().optional(),\n});\n\nconst piAgentStateSnapshotSchema = z.object({\n messages: z.array(z.unknown() as z.ZodType<PiHarnessFrontendAgentMessage>),\n});\n\nconst sessionDetailSchema = sessionBaseSchema.extend({\n workflow: workflowStatusSchema,\n agent: z.object({\n state: piAgentStateSnapshotSchema,\n }),\n});\n\nconst promptInputSchema = z.object({\n text: z.string(),\n images: z\n .array(ImageContentSchema)\n .refine(\n (images) =>\n images.reduce((totalLength, image) => totalLength + image.data.length, 0) <=\n MAX_PI_COMMAND_IMAGE_DATA_LENGTH,\n { message: \"Image data exceeds the command persistence limit.\" },\n )\n .optional(),\n});\n\nconst commandInputSchema = z.discriminatedUnion(\"kind\", [\n z.object({ kind: z.literal(\"prompt\"), input: promptInputSchema }),\n z.object({\n kind: z.literal(\"skill\"),\n input: z.object({ name: z.string(), additionalInstructions: z.string().optional() }),\n }),\n z.object({\n kind: z.literal(\"promptFromTemplate\"),\n input: z.object({ name: z.string(), args: z.array(z.string()).optional() }),\n }),\n z.object({\n kind: z.literal(\"compact\"),\n input: z.object({ customInstructions: z.string().optional() }),\n }),\n z.object({ kind: z.literal(\"abort\"), reason: z.string().optional() }),\n z.object({ kind: z.literal(\"steer\"), input: promptInputSchema }),\n z.object({ kind: z.literal(\"followUp\"), input: promptInputSchema }),\n]);\n\nconst piSessionCommandPayloadSchema: z.ZodType<PiSessionCommandPayload> = z.discriminatedUnion(\n \"kind\",\n [\n z.object({ commandId: z.string(), kind: z.literal(\"prompt\"), input: promptInputSchema }),\n z.object({\n commandId: z.string(),\n kind: z.literal(\"skill\"),\n input: z.object({ name: z.string(), additionalInstructions: z.string().optional() }),\n }),\n z.object({\n commandId: z.string(),\n kind: z.literal(\"promptFromTemplate\"),\n input: z.object({ name: z.string(), args: z.array(z.string()).optional() }),\n }),\n z.object({\n commandId: z.string(),\n kind: z.literal(\"compact\"),\n input: z.object({ customInstructions: z.string().optional() }),\n }),\n z.object({ commandId: z.string(), kind: z.literal(\"abort\"), reason: z.string().optional() }),\n z.object({ commandId: z.string(), kind: z.literal(\"steer\"), input: promptInputSchema }),\n z.object({ commandId: z.string(), kind: z.literal(\"followUp\"), input: promptInputSchema }),\n ],\n);\n\nconst commandAckSchema = z.object({\n accepted: z.literal(true),\n commandId: z.string(),\n status: workflowStatusValueSchema,\n});\n\nexport {\n agentMessageSchema,\n commandAckSchema,\n commandInputSchema,\n piSessionCommandPayloadSchema,\n sessionBaseSchema,\n sessionDetailSchema,\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as PiSessionProjectionStatus, c as PiWorkflowSessionProjectionState, d as projectPiWorkflowSession, i as PiSessionActivity, l as PiWorkflowSessionProjectionStep, n as DraftAgentMessage, o as PiWorkflowSessionProjectionEmission, r as DraftTool, s as PiWorkflowSessionProjectionInstance, t as DraftAgentActivity, u as createLoadingPiWorkflowSessionProjection } from "../workflow-session-projection-Dj_a79GF.js";
2
+ export { DraftAgentActivity, DraftAgentMessage, DraftTool, PiSessionActivity, PiSessionProjectionStatus, PiWorkflowSessionProjectionEmission, PiWorkflowSessionProjectionInstance, PiWorkflowSessionProjectionState, PiWorkflowSessionProjectionStep, createLoadingPiWorkflowSessionProjection, projectPiWorkflowSession };
@@ -0,0 +1,2 @@
1
+ import { n as projectPiWorkflowSession, t as createLoadingPiWorkflowSessionProjection } from "../workflow-session-projection-CJ4MUkpJ.js";
2
+ export { createLoadingPiWorkflowSessionProjection, projectPiWorkflowSession };
@@ -0,0 +1,109 @@
1
+ import { r as PiSessionCommandPayload } from "./types-Dk856kV1.js";
2
+ import { d as PiHarnessFrontendAgentMessage } from "./agent-harness-event-protocol-d6mH_9n3.js";
3
+ import { z } from "zod";
4
+ import { AgentMessage } from "@earendil-works/pi-agent-core";
5
+ //#region src/pi/route-schemas.d.ts
6
+ declare const sessionBaseSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodNullable<z.ZodString>;
9
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
10
+ workflowName: z.ZodString;
11
+ createdAt: z.ZodDate;
12
+ updatedAt: z.ZodDate;
13
+ }, z.core.$strip>;
14
+ declare const agentMessageSchema: z.ZodType<AgentMessage>;
15
+ declare const sessionDetailSchema: z.ZodObject<{
16
+ id: z.ZodString;
17
+ name: z.ZodNullable<z.ZodString>;
18
+ metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
19
+ workflowName: z.ZodString;
20
+ createdAt: z.ZodDate;
21
+ updatedAt: z.ZodDate;
22
+ workflow: z.ZodObject<{
23
+ status: z.ZodEnum<{
24
+ active: "active";
25
+ paused: "paused";
26
+ errored: "errored";
27
+ terminated: "terminated";
28
+ complete: "complete";
29
+ waiting: "waiting";
30
+ }>;
31
+ error: z.ZodOptional<z.ZodObject<{
32
+ name: z.ZodString;
33
+ message: z.ZodString;
34
+ }, z.core.$strip>>;
35
+ output: z.ZodOptional<z.ZodAny>;
36
+ }, z.core.$strip>;
37
+ agent: z.ZodObject<{
38
+ state: z.ZodObject<{
39
+ messages: z.ZodArray<z.ZodType<PiHarnessFrontendAgentMessage, unknown, z.core.$ZodTypeInternals<PiHarnessFrontendAgentMessage, unknown>>>;
40
+ }, z.core.$strip>;
41
+ }, z.core.$strip>;
42
+ }, z.core.$strip>;
43
+ declare const commandInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
44
+ kind: z.ZodLiteral<"prompt">;
45
+ input: z.ZodObject<{
46
+ text: z.ZodString;
47
+ images: z.ZodOptional<z.ZodArray<z.ZodObject<{
48
+ type: z.ZodLiteral<"image">;
49
+ data: z.ZodBase64;
50
+ mimeType: z.ZodString;
51
+ }, z.core.$strip>>>;
52
+ }, z.core.$strip>;
53
+ }, z.core.$strip>, z.ZodObject<{
54
+ kind: z.ZodLiteral<"skill">;
55
+ input: z.ZodObject<{
56
+ name: z.ZodString;
57
+ additionalInstructions: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>;
59
+ }, z.core.$strip>, z.ZodObject<{
60
+ kind: z.ZodLiteral<"promptFromTemplate">;
61
+ input: z.ZodObject<{
62
+ name: z.ZodString;
63
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
+ }, z.core.$strip>;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ kind: z.ZodLiteral<"compact">;
67
+ input: z.ZodObject<{
68
+ customInstructions: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strip>;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ kind: z.ZodLiteral<"abort">;
72
+ reason: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strip>, z.ZodObject<{
74
+ kind: z.ZodLiteral<"steer">;
75
+ input: z.ZodObject<{
76
+ text: z.ZodString;
77
+ images: z.ZodOptional<z.ZodArray<z.ZodObject<{
78
+ type: z.ZodLiteral<"image">;
79
+ data: z.ZodBase64;
80
+ mimeType: z.ZodString;
81
+ }, z.core.$strip>>>;
82
+ }, z.core.$strip>;
83
+ }, z.core.$strip>, z.ZodObject<{
84
+ kind: z.ZodLiteral<"followUp">;
85
+ input: z.ZodObject<{
86
+ text: z.ZodString;
87
+ images: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
+ type: z.ZodLiteral<"image">;
89
+ data: z.ZodBase64;
90
+ mimeType: z.ZodString;
91
+ }, z.core.$strip>>>;
92
+ }, z.core.$strip>;
93
+ }, z.core.$strip>], "kind">;
94
+ declare const piSessionCommandPayloadSchema: z.ZodType<PiSessionCommandPayload>;
95
+ declare const commandAckSchema: z.ZodObject<{
96
+ accepted: z.ZodLiteral<true>;
97
+ commandId: z.ZodString;
98
+ status: z.ZodEnum<{
99
+ active: "active";
100
+ paused: "paused";
101
+ errored: "errored";
102
+ terminated: "terminated";
103
+ complete: "complete";
104
+ waiting: "waiting";
105
+ }>;
106
+ }, z.core.$strip>;
107
+ //#endregion
108
+ export { sessionBaseSchema as a, piSessionCommandPayloadSchema as i, commandAckSchema as n, sessionDetailSchema as o, commandInputSchema as r, agentMessageSchema as t };
109
+ //# sourceMappingURL=route-schemas-DQB5ZR1E.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-schemas-DQB5ZR1E.d.ts","names":[],"sources":["../../src/pi/route-schemas.ts"],"mappings":";;;;;cAoBM,mBAAiB,EAAA;;;;;;;;cAejB,oBAAoC,EAAE,QAAQ;cAgB9C,qBAAmB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBnB,oBAAkB,EAAA,uBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBlB,+BAA+B,EAAE,QAAQ;cAyBzC,kBAAgB,EAAA"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ z.object({
3
+ metadata: z.record(z.string(), z.unknown()).optional(),
4
+ __piSession: z.object({ name: z.string().nullable() })
5
+ });
6
+ var PiSessionDataIntegrityError = class extends Error {
7
+ workflowName;
8
+ sessionId;
9
+ code = "PI_SESSION_DATA_INTEGRITY_ERROR";
10
+ constructor(workflowName, sessionId, cause) {
11
+ super(`Persisted Pi session data for ${workflowName}/${sessionId} is invalid.`, { cause });
12
+ this.workflowName = workflowName;
13
+ this.sessionId = sessionId;
14
+ this.name = "PiSessionDataIntegrityError";
15
+ }
16
+ };
17
+ /** Maximum total Base64 characters persisted in one Pi command event. */
18
+ const MAX_PI_COMMAND_IMAGE_DATA_LENGTH = 8 * 1024 * 1024;
19
+ const PI_SESSION_COMMAND_STEP_PREFIX = "command:";
20
+ //#endregion
21
+ export { PI_SESSION_COMMAND_STEP_PREFIX as n, PiSessionDataIntegrityError as r, MAX_PI_COMMAND_IMAGE_DATA_LENGTH as t };
22
+
23
+ //# sourceMappingURL=types-8q4RWFXT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-8q4RWFXT.js","names":["StandardSchemaV1","InstanceStatus","WorkflowRegistryEntry","Static","TSchema","TypeBoxSchema","z","HookContext","AgentTool","AgentToolResult","AssistantMessage","PiHarnessFrontendAgentMessage","PiHarnessOperation","PiLoggerConfig","enabled","level","PiWorkflowStatus","PiSessionMetadata","Record","PiSession","id","name","metadata","workflowName","createdAt","Date","updatedAt","piSessionWorkflowParamsSchema","object","record","string","unknown","optional","__piSession","nullable","PiSessionDataUnavailableError","Error","code","constructor","sessionId","PiSessionDataIntegrityError","cause","projectPiSessionFromWorkflowInstance","instance","params","persistedParams","Array","isArray","Object","hasOwn","safeParse","success","error","data","PiOperationDetails","actor","stepName","operationId","operation","PiOperationCompletedHookPayload","modelCalls","Pick","usage","MAX_PI_COMMAND_IMAGE_DATA_LENGTH","PI_SESSION_COMMAND_STEP_PREFIX","PiPromptInput","text","images","type","mimeType","PiCompactCommandOutcome","kind","commandId","status","message","PiSessionCommandPayload","input","additionalInstructions","args","customInstructions","reason","PiAgentStateSnapshot","messages","PiSessionDetail","workflow","output","agent","state","PiToolResultSchema","TDetails","PiToolDetailsFromResultSchema","TResultSchema","PiToolDefinition","TParameters","resultSchema","handoff","AnyPiToolDefinition","Omit","execute","toolCallId","signal","AbortSignal","onUpdate","partialResult","Promise","PiFragmentConfig","workflows","onOperationCompleted","payload","context","logging"],"sources":["../../src/pi/types.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@fragno-dev/core/api\";\nimport type { InstanceStatus, WorkflowRegistryEntry } from \"@fragno-dev/workflows/workflow\";\nimport type { Static, TSchema as TypeBoxSchema } from \"typebox\";\nimport { z } from \"zod\";\n\nimport type { HookContext } from \"@fragno-dev/db\";\n\nimport type { AgentTool, AgentToolResult } from \"@earendil-works/pi-agent-core\";\nimport type { AssistantMessage } from \"@earendil-works/pi-ai\";\n\nimport type { PiHarnessFrontendAgentMessage } from \"./harness/agent-harness-event-protocol\";\nimport type { PiHarnessOperation } from \"./workflows/workflow-agent-harness\";\n\nexport type PiLoggerConfig = {\n enabled?: boolean;\n level?: \"off\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n};\n\nexport type PiWorkflowStatus = InstanceStatus[\"status\"];\n\nexport type PiSessionMetadata = Record<string, unknown>;\n\nexport type PiSession = {\n id: string;\n name: string | null;\n metadata: PiSessionMetadata | null;\n workflowName: string;\n createdAt: Date;\n updatedAt: Date;\n};\n\nconst piSessionWorkflowParamsSchema = z.object({\n metadata: z.record(z.string(), z.unknown()).optional(),\n __piSession: z.object({\n name: z.string().nullable(),\n }),\n});\n\nexport class PiSessionDataUnavailableError extends Error {\n readonly code = \"PI_SESSION_DATA_UNAVAILABLE\";\n\n constructor(\n readonly workflowName: string,\n readonly sessionId: string,\n ) {\n super(`Workflow ${workflowName}/${sessionId} does not contain Pi session data.`);\n this.name = \"PiSessionDataUnavailableError\";\n }\n}\n\nexport class PiSessionDataIntegrityError extends Error {\n readonly code = \"PI_SESSION_DATA_INTEGRITY_ERROR\";\n\n constructor(\n readonly workflowName: string,\n readonly sessionId: string,\n cause: unknown,\n ) {\n super(`Persisted Pi session data for ${workflowName}/${sessionId} is invalid.`, { cause });\n this.name = \"PiSessionDataIntegrityError\";\n }\n}\n\nexport const projectPiSessionFromWorkflowInstance = (instance: {\n id: string;\n workflowName: string;\n params: unknown;\n createdAt: Date;\n updatedAt: Date;\n}): PiSession | null => {\n const persistedParams = instance.params;\n if (\n typeof persistedParams !== \"object\" ||\n persistedParams === null ||\n Array.isArray(persistedParams) ||\n !Object.hasOwn(persistedParams, \"__piSession\")\n ) {\n return null;\n }\n\n const params = piSessionWorkflowParamsSchema.safeParse(persistedParams);\n if (!params.success) {\n throw new PiSessionDataIntegrityError(instance.workflowName, instance.id, params.error);\n }\n\n return {\n id: instance.id,\n name: params.data.__piSession.name,\n metadata: params.data.metadata ?? null,\n workflowName: instance.workflowName,\n createdAt: instance.createdAt,\n updatedAt: instance.updatedAt,\n };\n};\n\nexport type PiOperationDetails = {\n actor: unknown;\n workflowName: string;\n sessionId: string;\n metadata: PiSessionMetadata | null;\n stepName: string;\n operationId: string;\n operation: PiHarnessOperation[\"kind\"];\n};\n\nexport type PiOperationCompletedHookPayload = PiOperationDetails & {\n /**\n * Model calls exposed by Pi as assistant messages during this operation.\n *\n * Compact operations and tree navigation with summarization are not included yet because Pi\n * does not expose their internal model calls as first-class harness events.\n */\n modelCalls: Array<\n Pick<\n AssistantMessage,\n | \"api\"\n | \"provider\"\n | \"model\"\n | \"responseModel\"\n | \"responseId\"\n | \"usage\"\n | \"stopReason\"\n | \"timestamp\"\n >\n >;\n usage: AssistantMessage[\"usage\"];\n};\n\n/** Maximum total Base64 characters persisted in one Pi command event. */\nexport const MAX_PI_COMMAND_IMAGE_DATA_LENGTH = 8 * 1024 * 1024;\n\nexport const PI_SESSION_COMMAND_STEP_PREFIX = \"command:\";\n\nexport type PiPromptInput = {\n text: string;\n images?: Array<{ type: \"image\"; data: string; mimeType: string }>;\n};\n\nexport type PiCompactCommandOutcome =\n | {\n kind: \"compact\";\n commandId: string;\n status: \"succeeded\";\n }\n | {\n kind: \"compact\";\n commandId: string;\n status: \"rejected\";\n code: \"nothing_to_compact\" | \"compaction_failed\";\n message: string;\n };\n\nexport type PiSessionCommandPayload =\n | { commandId: string; kind: \"prompt\"; input: PiPromptInput }\n | { commandId: string; kind: \"skill\"; input: { name: string; additionalInstructions?: string } }\n | { commandId: string; kind: \"promptFromTemplate\"; input: { name: string; args?: string[] } }\n | { commandId: string; kind: \"compact\"; input: { customInstructions?: string } }\n | { commandId: string; kind: \"abort\"; reason?: string }\n | { commandId: string; kind: \"steer\"; input: PiPromptInput }\n | { commandId: string; kind: \"followUp\"; input: PiPromptInput };\n\nexport type PiAgentStateSnapshot = {\n messages: PiHarnessFrontendAgentMessage[];\n};\n\nexport type PiSessionDetail = PiSession & {\n workflow: {\n status: PiWorkflowStatus;\n error?: { name: string; message: string };\n output?: unknown;\n };\n agent: {\n state: PiAgentStateSnapshot;\n };\n};\n\nexport type PiToolResultSchema<TDetails> = StandardSchemaV1<unknown, TDetails> | TypeBoxSchema;\n\nexport type PiToolDetailsFromResultSchema<TResultSchema> =\n TResultSchema extends StandardSchemaV1<unknown, infer TDetails>\n ? TDetails\n : TResultSchema extends TypeBoxSchema\n ? Static<TResultSchema>\n : unknown;\n\nexport type PiToolDefinition<\n TParameters extends TypeBoxSchema = TypeBoxSchema,\n TDetails = unknown,\n TResultSchema extends PiToolResultSchema<TDetails> | undefined =\n | PiToolResultSchema<TDetails>\n | undefined,\n> = AgentTool<TParameters, TDetails> & {\n name: string;\n resultSchema?: TResultSchema;\n handoff?: boolean;\n};\n\nexport type AnyPiToolDefinition = Omit<AgentTool<TypeBoxSchema, unknown>, \"execute\"> & {\n name: string;\n resultSchema?: PiToolResultSchema<unknown>;\n handoff?: boolean;\n execute: (\n toolCallId: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any,\n signal?: AbortSignal,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onUpdate?: (partialResult: AgentToolResult<any>) => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) => Promise<AgentToolResult<any>>;\n};\n\nexport interface PiFragmentConfig {\n workflows?: WorkflowRegistryEntry[];\n /**\n * Called through a durable hook after a harness operation commits a terminal outcome.\n *\n * Usage reporting currently excludes compact operations and tree navigation with summarization.\n */\n onOperationCompleted?: (\n payload: PiOperationCompletedHookPayload,\n context: HookContext,\n ) => Promise<void> | void;\n /**\n * Optional logging config for internal pi-harness diagnostics.\n */\n logging?: PiLoggerConfig;\n}\n"],"mappings":";AA+BsCM,EAAEsB,OAAO;CAC7CN,UAAUhB,EAAEuB,OAAOvB,EAAEwB,OAAO,GAAGxB,EAAEyB,QAAQ,CAAC,CAAC,CAACC,SAAS;CACrDC,aAAa3B,EAAEsB,OAAO,EACpBP,MAAMf,EAAEwB,OAAO,CAAC,CAACI,SAAS,EAC5B,CAAC;AACH,CAAC;AAcD,IAAaM,8BAAb,cAAiDJ,MAAM;CAI1Cb;CACAgB;CAJX,OAAgB;CAEhBD,YACE,cACA,WACAG,OACA;EACA,MAAM,iCAAiClB,aAAY,GAAIgB,UAAS,eAAgB,EAAEE,MAAM,CAAC;EAJhFlB,KAAAA,eAAAA;EACAgB,KAAAA,YAAAA;EAIT,KAAKlB,OAAO;CACd;AACF;;AAoEA,MAAa0C,mCAAmC,IAAI,OAAO;AAE3D,MAAaC,iCAAiC"}