@mastra/server 1.20.0 → 1.21.0-alpha.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.
Files changed (164) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +12 -2
  3. package/dist/{chunk-NCCK5NVX.cjs → chunk-22YG2467.cjs} +3 -3
  4. package/dist/{chunk-NCCK5NVX.cjs.map → chunk-22YG2467.cjs.map} +1 -1
  5. package/dist/{chunk-3W54ZNYP.cjs → chunk-5IKQNFW5.cjs} +3 -3
  6. package/dist/{chunk-3W54ZNYP.cjs.map → chunk-5IKQNFW5.cjs.map} +1 -1
  7. package/dist/chunk-6MFKRF4K.cjs +176 -0
  8. package/dist/chunk-6MFKRF4K.cjs.map +1 -0
  9. package/dist/{chunk-G726SOOJ.cjs → chunk-7G44ZSFS.cjs} +3 -3
  10. package/dist/{chunk-G726SOOJ.cjs.map → chunk-7G44ZSFS.cjs.map} +1 -1
  11. package/dist/{chunk-TYYGY4H4.cjs → chunk-7HOYCW7S.cjs} +3 -3
  12. package/dist/{chunk-TYYGY4H4.cjs.map → chunk-7HOYCW7S.cjs.map} +1 -1
  13. package/dist/{chunk-MH2WUZWZ.js → chunk-7KJ4NUEH.js} +3 -3
  14. package/dist/{chunk-MH2WUZWZ.js.map → chunk-7KJ4NUEH.js.map} +1 -1
  15. package/dist/chunk-AJYJ4H7P.js +438 -0
  16. package/dist/chunk-AJYJ4H7P.js.map +1 -0
  17. package/dist/{chunk-ULLR3RN3.cjs → chunk-AYD7DM5U.cjs} +3 -3
  18. package/dist/{chunk-ULLR3RN3.cjs.map → chunk-AYD7DM5U.cjs.map} +1 -1
  19. package/dist/chunk-B6HNPO67.cjs +195 -0
  20. package/dist/chunk-B6HNPO67.cjs.map +1 -0
  21. package/dist/chunk-BQXQZPYZ.js +189 -0
  22. package/dist/chunk-BQXQZPYZ.js.map +1 -0
  23. package/dist/{chunk-DAEHQAZC.cjs → chunk-DNYJSPA5.cjs} +27 -6
  24. package/dist/chunk-DNYJSPA5.cjs.map +1 -0
  25. package/dist/{chunk-UE4FGLA3.cjs → chunk-DWXE75AZ.cjs} +38 -38
  26. package/dist/{chunk-UE4FGLA3.cjs.map → chunk-DWXE75AZ.cjs.map} +1 -1
  27. package/dist/chunk-FCCXLAOT.js +153 -0
  28. package/dist/chunk-FCCXLAOT.js.map +1 -0
  29. package/dist/{chunk-5CDCKTHB.js → chunk-FCLPA23B.js} +27 -6
  30. package/dist/chunk-FCLPA23B.js.map +1 -0
  31. package/dist/{chunk-XINNAPVH.cjs → chunk-FGXFUFWK.cjs} +29 -29
  32. package/dist/{chunk-XINNAPVH.cjs.map → chunk-FGXFUFWK.cjs.map} +1 -1
  33. package/dist/chunk-FURWD3DL.cjs +180 -0
  34. package/dist/chunk-FURWD3DL.cjs.map +1 -0
  35. package/dist/{chunk-23U24RPR.cjs → chunk-G5IQN5ZG.cjs} +3 -3
  36. package/dist/{chunk-23U24RPR.cjs.map → chunk-G5IQN5ZG.cjs.map} +1 -1
  37. package/dist/{chunk-UFK5THVP.cjs → chunk-GANMD6GP.cjs} +3 -3
  38. package/dist/{chunk-UFK5THVP.cjs.map → chunk-GANMD6GP.cjs.map} +1 -1
  39. package/dist/{chunk-OSMI5XLT.cjs → chunk-GLB2TK6A.cjs} +12 -7
  40. package/dist/chunk-GLB2TK6A.cjs.map +1 -0
  41. package/dist/chunk-GWPNQNXF.cjs +45 -0
  42. package/dist/chunk-GWPNQNXF.cjs.map +1 -0
  43. package/dist/chunk-IRRJW5EA.cjs +695 -0
  44. package/dist/chunk-IRRJW5EA.cjs.map +1 -0
  45. package/dist/{chunk-G2ZZKKQI.js → chunk-L7PDVJZD.js} +3 -3
  46. package/dist/{chunk-G2ZZKKQI.js.map → chunk-L7PDVJZD.js.map} +1 -1
  47. package/dist/{chunk-K6RNBFGH.js → chunk-M4BZ2B7D.js} +3 -3
  48. package/dist/{chunk-K6RNBFGH.js.map → chunk-M4BZ2B7D.js.map} +1 -1
  49. package/dist/{chunk-4D7KSU4X.js → chunk-MWRVCCZE.js} +3 -3
  50. package/dist/{chunk-4D7KSU4X.js.map → chunk-MWRVCCZE.js.map} +1 -1
  51. package/dist/chunk-NCW7IFFR.js +690 -0
  52. package/dist/chunk-NCW7IFFR.js.map +1 -0
  53. package/dist/{chunk-MKW43AJ3.js → chunk-NL7Y763D.js} +3 -3
  54. package/dist/{chunk-MKW43AJ3.js.map → chunk-NL7Y763D.js.map} +1 -1
  55. package/dist/{chunk-MYFV2L3T.js → chunk-OBR4SMSZ.js} +3 -3
  56. package/dist/{chunk-MYFV2L3T.js.map → chunk-OBR4SMSZ.js.map} +1 -1
  57. package/dist/chunk-OJ72T77G.cjs +452 -0
  58. package/dist/chunk-OJ72T77G.cjs.map +1 -0
  59. package/dist/{chunk-5YMAXL54.js → chunk-QSA443WV.js} +3 -3
  60. package/dist/{chunk-5YMAXL54.js.map → chunk-QSA443WV.js.map} +1 -1
  61. package/dist/{chunk-4NRXB7VI.js → chunk-SNGR4M5I.js} +3 -3
  62. package/dist/{chunk-4NRXB7VI.js.map → chunk-SNGR4M5I.js.map} +1 -1
  63. package/dist/{chunk-XDFOXO76.js → chunk-SW6IJZFQ.js} +9 -9
  64. package/dist/{chunk-XDFOXO76.js.map → chunk-SW6IJZFQ.js.map} +1 -1
  65. package/dist/{chunk-WPBRQTMO.js → chunk-VCA6BSYU.js} +3 -3
  66. package/dist/{chunk-WPBRQTMO.js.map → chunk-VCA6BSYU.js.map} +1 -1
  67. package/dist/{chunk-HHF4VF75.js → chunk-VHUB2TYN.js} +3 -3
  68. package/dist/{chunk-HHF4VF75.js.map → chunk-VHUB2TYN.js.map} +1 -1
  69. package/dist/chunk-VKIIGA2F.js +35 -0
  70. package/dist/chunk-VKIIGA2F.js.map +1 -0
  71. package/dist/{chunk-2QCTUEHS.cjs → chunk-VVWHCAF2.cjs} +3 -3
  72. package/dist/{chunk-2QCTUEHS.cjs.map → chunk-VVWHCAF2.cjs.map} +1 -1
  73. package/dist/{chunk-YFQ5JIUD.js → chunk-WO7BJJIB.js} +12 -7
  74. package/dist/chunk-WO7BJJIB.js.map +1 -0
  75. package/dist/{chunk-A5J2TY2W.cjs → chunk-XKKTZVZX.cjs} +3 -3
  76. package/dist/{chunk-A5J2TY2W.cjs.map → chunk-XKKTZVZX.cjs.map} +1 -1
  77. package/dist/chunk-ZA3NGM3L.js +174 -0
  78. package/dist/chunk-ZA3NGM3L.js.map +1 -0
  79. package/dist/docs/SKILL.md +1 -1
  80. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  81. package/dist/docs/references/reference-server-routes.md +22 -1
  82. package/dist/{observational-memory-B25SASRW-T76NSRNU.cjs → observational-memory-WOEVNCG4-5THJIIQE.cjs} +26 -26
  83. package/dist/{observational-memory-B25SASRW-T76NSRNU.cjs.map → observational-memory-WOEVNCG4-5THJIIQE.cjs.map} +1 -1
  84. package/dist/{observational-memory-B25SASRW-L4GYD2ZN.js → observational-memory-WOEVNCG4-DT36JHO2.js} +3 -3
  85. package/dist/{observational-memory-B25SASRW-L4GYD2ZN.js.map → observational-memory-WOEVNCG4-DT36JHO2.js.map} +1 -1
  86. package/dist/server/handlers/agent-builder.cjs +16 -16
  87. package/dist/server/handlers/agent-builder.js +1 -1
  88. package/dist/server/handlers/conversations.cjs +24 -0
  89. package/dist/server/handlers/conversations.cjs.map +1 -0
  90. package/dist/server/handlers/conversations.d.ts +153 -0
  91. package/dist/server/handlers/conversations.d.ts.map +1 -0
  92. package/dist/server/handlers/conversations.js +3 -0
  93. package/dist/server/handlers/conversations.js.map +1 -0
  94. package/dist/server/handlers/datasets.cjs +26 -26
  95. package/dist/server/handlers/datasets.js +1 -1
  96. package/dist/server/handlers/logs.cjs +4 -4
  97. package/dist/server/handlers/logs.js +1 -1
  98. package/dist/server/handlers/observability-new-endpoints.cjs +27 -27
  99. package/dist/server/handlers/observability-new-endpoints.d.ts +8 -0
  100. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  101. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  102. package/dist/server/handlers/observability.cjs +32 -32
  103. package/dist/server/handlers/observability.js +2 -2
  104. package/dist/server/handlers/responses.adapter.cjs +60 -0
  105. package/dist/server/handlers/responses.adapter.cjs.map +1 -0
  106. package/dist/server/handlers/responses.adapter.d.ts +98 -0
  107. package/dist/server/handlers/responses.adapter.d.ts.map +1 -0
  108. package/dist/server/handlers/responses.adapter.js +3 -0
  109. package/dist/server/handlers/responses.adapter.js.map +1 -0
  110. package/dist/server/handlers/responses.cjs +20 -0
  111. package/dist/server/handlers/responses.cjs.map +1 -0
  112. package/dist/server/handlers/responses.d.ts +387 -0
  113. package/dist/server/handlers/responses.d.ts.map +1 -0
  114. package/dist/server/handlers/responses.js +3 -0
  115. package/dist/server/handlers/responses.js.map +1 -0
  116. package/dist/server/handlers/responses.storage.cjs +28 -0
  117. package/dist/server/handlers/responses.storage.cjs.map +1 -0
  118. package/dist/server/handlers/responses.storage.d.ts +97 -0
  119. package/dist/server/handlers/responses.storage.d.ts.map +1 -0
  120. package/dist/server/handlers/responses.storage.js +3 -0
  121. package/dist/server/handlers/responses.storage.js.map +1 -0
  122. package/dist/server/handlers/scores.cjs +7 -7
  123. package/dist/server/handlers/scores.js +1 -1
  124. package/dist/server/handlers/stored-agents.cjs +7 -7
  125. package/dist/server/handlers/stored-agents.js +1 -1
  126. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  127. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  128. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  129. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  130. package/dist/server/handlers/stored-scorers.cjs +6 -6
  131. package/dist/server/handlers/stored-scorers.js +1 -1
  132. package/dist/server/handlers/tools.cjs +6 -6
  133. package/dist/server/handlers/tools.js +1 -1
  134. package/dist/server/handlers/workflows.cjs +24 -24
  135. package/dist/server/handlers/workflows.js +1 -1
  136. package/dist/server/handlers.cjs +28 -18
  137. package/dist/server/handlers.d.ts +2 -0
  138. package/dist/server/handlers.d.ts.map +1 -1
  139. package/dist/server/handlers.js +9 -7
  140. package/dist/server/schemas/conversations.d.ts +74 -0
  141. package/dist/server/schemas/conversations.d.ts.map +1 -0
  142. package/dist/server/schemas/index.cjs +185 -91
  143. package/dist/server/schemas/index.d.ts +2 -0
  144. package/dist/server/schemas/index.d.ts.map +1 -1
  145. package/dist/server/schemas/index.js +5 -3
  146. package/dist/server/schemas/responses.d.ts +341 -0
  147. package/dist/server/schemas/responses.d.ts.map +1 -0
  148. package/dist/server/server-adapter/index.cjs +153 -138
  149. package/dist/server/server-adapter/index.cjs.map +1 -1
  150. package/dist/server/server-adapter/index.js +30 -15
  151. package/dist/server/server-adapter/index.js.map +1 -1
  152. package/dist/server/server-adapter/routes/conversations.d.ts +150 -0
  153. package/dist/server/server-adapter/routes/conversations.d.ts.map +1 -0
  154. package/dist/server/server-adapter/routes/index.d.ts +4 -0
  155. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  156. package/dist/server/server-adapter/routes/observability.d.ts +4 -0
  157. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  158. package/dist/server/server-adapter/routes/responses.d.ts +385 -0
  159. package/dist/server/server-adapter/routes/responses.d.ts.map +1 -0
  160. package/package.json +4 -4
  161. package/dist/chunk-5CDCKTHB.js.map +0 -1
  162. package/dist/chunk-DAEHQAZC.cjs.map +0 -1
  163. package/dist/chunk-OSMI5XLT.cjs.map +0 -1
  164. package/dist/chunk-YFQ5JIUD.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ import z from 'zod';
2
+
3
+ // src/server/schemas/responses.ts
4
+ var responseIdPathParams = z.object({
5
+ responseId: z.string().describe("Unique identifier for the stored response")
6
+ });
7
+ var responseInputTextPartSchema = z.object({
8
+ type: z.enum(["input_text", "text", "output_text"]),
9
+ text: z.string()
10
+ });
11
+ var responseInputMessageSchema = z.object({
12
+ role: z.enum(["system", "developer", "user", "assistant"]),
13
+ content: z.union([z.string(), z.array(responseInputTextPartSchema)])
14
+ });
15
+ var providerOptionValuesSchema = z.record(z.string(), z.unknown());
16
+ var providerOptionsSchema = z.object({
17
+ openai: providerOptionValuesSchema.optional().describe("OpenAI provider options such as previousResponseId, conversation, or responseId")
18
+ }).passthrough();
19
+ var responseTextFormatJsonObjectSchema = z.object({
20
+ type: z.literal("json_object").describe("Requests JSON object output compatibility for the response")
21
+ });
22
+ var responseTextFormatJsonSchemaSchema = z.object({
23
+ type: z.literal("json_schema"),
24
+ name: z.string(),
25
+ description: z.string().optional(),
26
+ schema: z.record(z.string(), z.unknown()),
27
+ strict: z.boolean().optional()
28
+ });
29
+ var responseTextFormatSchema = z.union([
30
+ responseTextFormatJsonObjectSchema,
31
+ responseTextFormatJsonSchemaSchema
32
+ ]);
33
+ var responseTextSchema = z.object({
34
+ format: responseTextFormatSchema
35
+ });
36
+ var createResponseBodySchema = z.object({
37
+ model: z.string().describe("Model identifier used to generate the response, such as openai/gpt-5"),
38
+ agent_id: z.string().optional().describe(
39
+ "Mastra agent ID for the request. Required on initial requests; follow-up stored turns can omit it when using previous_response_id"
40
+ ),
41
+ input: z.union([z.string(), z.array(responseInputMessageSchema)]),
42
+ instructions: z.string().optional(),
43
+ text: responseTextSchema.optional().describe(
44
+ "Optional text output format. Supports `json_object` for JSON mode and `json_schema` for schema-constrained structured output."
45
+ ),
46
+ conversation_id: z.string().optional().describe("Optional conversation ID. In Mastra this is the raw threadId."),
47
+ providerOptions: providerOptionsSchema.optional().describe("Optional provider-specific options passed through to the underlying model call"),
48
+ stream: z.boolean().optional().default(false),
49
+ store: z.boolean().optional().default(false),
50
+ previous_response_id: z.string().optional()
51
+ }).passthrough().superRefine((body, ctx) => {
52
+ if (!body.agent_id && !body.previous_response_id) {
53
+ ctx.addIssue({
54
+ code: z.ZodIssueCode.custom,
55
+ path: ["agent_id"],
56
+ message: "Responses requests require an agent_id, or a previous_response_id from a stored agent-backed response"
57
+ });
58
+ }
59
+ });
60
+ var responseOutputTextSchema = z.object({
61
+ type: z.literal("output_text"),
62
+ text: z.string(),
63
+ annotations: z.array(z.unknown()).optional(),
64
+ logprobs: z.array(z.unknown()).optional()
65
+ });
66
+ var responseInputTextContentSchema = z.object({
67
+ type: z.literal("input_text"),
68
+ text: z.string()
69
+ });
70
+ var conversationMessageContentSchema = z.union([responseInputTextContentSchema, responseOutputTextSchema]);
71
+ var responseOutputMessageSchema = z.object({
72
+ id: z.string(),
73
+ type: z.literal("message"),
74
+ role: z.literal("assistant"),
75
+ status: z.enum(["in_progress", "completed", "incomplete"]),
76
+ content: z.array(responseOutputTextSchema)
77
+ });
78
+ var responseOutputFunctionCallSchema = z.object({
79
+ id: z.string(),
80
+ type: z.literal("function_call"),
81
+ call_id: z.string(),
82
+ name: z.string(),
83
+ arguments: z.string(),
84
+ status: z.enum(["in_progress", "completed", "incomplete"]).optional()
85
+ });
86
+ var responseOutputFunctionCallOutputSchema = z.object({
87
+ id: z.string(),
88
+ type: z.literal("function_call_output"),
89
+ call_id: z.string(),
90
+ output: z.string()
91
+ });
92
+ var responseUsageSchema = z.object({
93
+ input_tokens: z.number(),
94
+ output_tokens: z.number(),
95
+ total_tokens: z.number(),
96
+ input_tokens_details: z.object({
97
+ cached_tokens: z.number()
98
+ }).optional(),
99
+ output_tokens_details: z.object({
100
+ reasoning_tokens: z.number()
101
+ }).optional()
102
+ });
103
+ var responseToolSchema = z.object({
104
+ type: z.literal("function"),
105
+ name: z.string(),
106
+ description: z.string().optional(),
107
+ parameters: z.unknown().optional()
108
+ });
109
+ var responseOutputItemSchema = z.union([
110
+ responseOutputMessageSchema,
111
+ responseOutputFunctionCallSchema,
112
+ responseOutputFunctionCallOutputSchema
113
+ ]);
114
+ var conversationItemMessageSchema = z.object({
115
+ id: z.string(),
116
+ type: z.literal("message"),
117
+ role: z.enum(["system", "user", "assistant"]),
118
+ status: z.literal("completed"),
119
+ content: z.array(conversationMessageContentSchema)
120
+ });
121
+ var conversationItemSchema = z.union([
122
+ conversationItemMessageSchema,
123
+ responseOutputFunctionCallSchema,
124
+ responseOutputFunctionCallOutputSchema
125
+ ]);
126
+ var responseObjectSchema = z.object({
127
+ id: z.string(),
128
+ object: z.literal("response"),
129
+ created_at: z.number(),
130
+ completed_at: z.number().nullable(),
131
+ model: z.string(),
132
+ status: z.enum(["in_progress", "completed", "incomplete"]),
133
+ output: z.array(responseOutputItemSchema),
134
+ usage: responseUsageSchema.nullable(),
135
+ error: z.null().optional(),
136
+ incomplete_details: z.null().optional(),
137
+ instructions: z.string().nullable().optional(),
138
+ text: responseTextSchema.nullable().optional(),
139
+ previous_response_id: z.string().nullable().optional(),
140
+ conversation_id: z.string().nullable().optional(),
141
+ providerOptions: providerOptionsSchema.optional(),
142
+ tools: z.array(responseToolSchema).optional(),
143
+ store: z.boolean().optional()
144
+ });
145
+ var deleteResponseSchema = z.object({
146
+ id: z.string(),
147
+ object: z.literal("response"),
148
+ deleted: z.literal(true)
149
+ });
150
+
151
+ export { conversationItemMessageSchema, conversationItemSchema, conversationMessageContentSchema, createResponseBodySchema, deleteResponseSchema, responseIdPathParams, responseInputMessageSchema, responseInputTextContentSchema, responseInputTextPartSchema, responseObjectSchema, responseOutputFunctionCallOutputSchema, responseOutputFunctionCallSchema, responseOutputItemSchema, responseOutputMessageSchema, responseOutputTextSchema, responseTextFormatSchema, responseToolSchema, responseUsageSchema };
152
+ //# sourceMappingURL=chunk-FCCXLAOT.js.map
153
+ //# sourceMappingURL=chunk-FCCXLAOT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/responses.ts"],"names":[],"mappings":"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","file":"chunk-FCCXLAOT.js","sourcesContent":["import z from 'zod';\n\nexport const responseIdPathParams = z.object({\n responseId: z.string().describe('Unique identifier for the stored response'),\n});\n\nexport const responseInputTextPartSchema = z.object({\n type: z.enum(['input_text', 'text', 'output_text']),\n text: z.string(),\n});\n\nexport const responseInputMessageSchema = z.object({\n role: z.enum(['system', 'developer', 'user', 'assistant']),\n content: z.union([z.string(), z.array(responseInputTextPartSchema)]),\n});\n\nexport type ResponseInputMessage = z.infer<typeof responseInputMessageSchema>;\n\nconst providerOptionValuesSchema = z.record(z.string(), z.unknown());\n\nconst providerOptionsSchema = z\n .object({\n openai: providerOptionValuesSchema\n .optional()\n .describe('OpenAI provider options such as previousResponseId, conversation, or responseId'),\n })\n .passthrough();\n\nconst responseTextFormatJsonObjectSchema = z.object({\n type: z.literal('json_object').describe('Requests JSON object output compatibility for the response'),\n});\n\nconst responseTextFormatJsonSchemaSchema = z.object({\n type: z.literal('json_schema'),\n name: z.string(),\n description: z.string().optional(),\n schema: z.record(z.string(), z.unknown()),\n strict: z.boolean().optional(),\n});\n\nexport const responseTextFormatSchema = z.union([\n responseTextFormatJsonObjectSchema,\n responseTextFormatJsonSchemaSchema,\n]);\n\nexport type ResponseTextFormat = z.infer<typeof responseTextFormatSchema>;\n\nconst responseTextSchema = z.object({\n format: responseTextFormatSchema,\n});\n\nexport type ResponseTextConfig = z.infer<typeof responseTextSchema>;\n\nexport const createResponseBodySchema = z\n .object({\n model: z.string().describe('Model identifier used to generate the response, such as openai/gpt-5'),\n agent_id: z\n .string()\n .optional()\n .describe(\n 'Mastra agent ID for the request. Required on initial requests; follow-up stored turns can omit it when using previous_response_id',\n ),\n input: z.union([z.string(), z.array(responseInputMessageSchema)]),\n instructions: z.string().optional(),\n text: responseTextSchema\n .optional()\n .describe(\n 'Optional text output format. Supports `json_object` for JSON mode and `json_schema` for schema-constrained structured output.',\n ),\n conversation_id: z.string().optional().describe('Optional conversation ID. In Mastra this is the raw threadId.'),\n providerOptions: providerOptionsSchema\n .optional()\n .describe('Optional provider-specific options passed through to the underlying model call'),\n stream: z.boolean().optional().default(false),\n store: z.boolean().optional().default(false),\n previous_response_id: z.string().optional(),\n })\n .passthrough()\n .superRefine((body, ctx) => {\n if (!body.agent_id && !body.previous_response_id) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['agent_id'],\n message:\n 'Responses requests require an agent_id, or a previous_response_id from a stored agent-backed response',\n });\n }\n });\n\nexport type CreateResponseBody = z.infer<typeof createResponseBodySchema>;\n\nexport const responseOutputTextSchema = z.object({\n type: z.literal('output_text'),\n text: z.string(),\n annotations: z.array(z.unknown()).optional(),\n logprobs: z.array(z.unknown()).optional(),\n});\n\nexport const responseInputTextContentSchema = z.object({\n type: z.literal('input_text'),\n text: z.string(),\n});\n\nexport const conversationMessageContentSchema = z.union([responseInputTextContentSchema, responseOutputTextSchema]);\n\nexport const responseOutputMessageSchema = z.object({\n id: z.string(),\n type: z.literal('message'),\n role: z.literal('assistant'),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n content: z.array(responseOutputTextSchema),\n});\n\nexport const responseOutputFunctionCallSchema = z.object({\n id: z.string(),\n type: z.literal('function_call'),\n call_id: z.string(),\n name: z.string(),\n arguments: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']).optional(),\n});\n\nexport const responseOutputFunctionCallOutputSchema = z.object({\n id: z.string(),\n type: z.literal('function_call_output'),\n call_id: z.string(),\n output: z.string(),\n});\n\nexport const responseUsageSchema = z.object({\n input_tokens: z.number(),\n output_tokens: z.number(),\n total_tokens: z.number(),\n input_tokens_details: z\n .object({\n cached_tokens: z.number(),\n })\n .optional(),\n output_tokens_details: z\n .object({\n reasoning_tokens: z.number(),\n })\n .optional(),\n});\n\nexport type ResponseUsage = z.infer<typeof responseUsageSchema>;\n\nexport const responseToolSchema = z.object({\n type: z.literal('function'),\n name: z.string(),\n description: z.string().optional(),\n parameters: z.unknown().optional(),\n});\n\nexport type ResponseTool = z.infer<typeof responseToolSchema>;\n\nexport const responseOutputItemSchema = z.union([\n responseOutputMessageSchema,\n responseOutputFunctionCallSchema,\n responseOutputFunctionCallOutputSchema,\n]);\n\nexport type ResponseOutputItem = z.infer<typeof responseOutputItemSchema>;\n\nexport const conversationItemMessageSchema = z.object({\n id: z.string(),\n type: z.literal('message'),\n role: z.enum(['system', 'user', 'assistant']),\n status: z.literal('completed'),\n content: z.array(conversationMessageContentSchema),\n});\n\nexport const conversationItemSchema = z.union([\n conversationItemMessageSchema,\n responseOutputFunctionCallSchema,\n responseOutputFunctionCallOutputSchema,\n]);\n\nexport type ConversationItem = z.infer<typeof conversationItemSchema>;\n\nexport const responseObjectSchema = z.object({\n id: z.string(),\n object: z.literal('response'),\n created_at: z.number(),\n completed_at: z.number().nullable(),\n model: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n output: z.array(responseOutputItemSchema),\n usage: responseUsageSchema.nullable(),\n error: z.null().optional(),\n incomplete_details: z.null().optional(),\n instructions: z.string().nullable().optional(),\n text: responseTextSchema.nullable().optional(),\n previous_response_id: z.string().nullable().optional(),\n conversation_id: z.string().nullable().optional(),\n providerOptions: providerOptionsSchema.optional(),\n tools: z.array(responseToolSchema).optional(),\n store: z.boolean().optional(),\n});\n\nexport type ResponseObject = z.infer<typeof responseObjectSchema>;\n\nexport const deleteResponseSchema = z.object({\n id: z.string(),\n object: z.literal('response'),\n deleted: z.literal(true),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n"]}
@@ -7699,7 +7699,7 @@ ${suggestedResponse}
7699
7699
  * In resource scope mode, loads messages for the entire resource (all threads).
7700
7700
  * In thread scope mode, loads messages for just the current thread.
7701
7701
  */
7702
- async loadUnobservedMessages(threadId, resourceId, lastObservedAt) {
7702
+ async loadMessagesFromStorage(threadId, resourceId, lastObservedAt) {
7703
7703
  const startDate = lastObservedAt ? new Date(lastObservedAt.getTime() + 1) : void 0;
7704
7704
  let result;
7705
7705
  if (this.scope === "resource" && resourceId) {
@@ -8387,7 +8387,7 @@ ${grouped}` : grouped;
8387
8387
  if (opts.messages) {
8388
8388
  unobservedMessages = this.getUnobservedMessages(opts.messages, record);
8389
8389
  } else {
8390
- const rawMessages = await this.loadUnobservedMessages(
8390
+ const rawMessages = await this.loadMessagesFromStorage(
8391
8391
  threadId,
8392
8392
  resourceId,
8393
8393
  record.lastObservedAt ? new Date(record.lastObservedAt) : void 0
@@ -8500,6 +8500,27 @@ ${grouped}` : grouped;
8500
8500
  const record = await this.getOrCreateRecord(threadId, resourceId);
8501
8501
  return this.getUnobservedMessages(messages, record);
8502
8502
  }
8503
+ /**
8504
+ * Load unobserved messages from storage for a thread/resource.
8505
+ *
8506
+ * Fetches the OM record, queries storage for messages after the
8507
+ * lastObservedAt cursor, then applies part-level filtering so
8508
+ * partially-observed messages only include their unobserved parts.
8509
+ *
8510
+ * Use this when you need to load stored conversation history that
8511
+ * hasn't been observed yet (e.g. in a stateless gateway proxy that
8512
+ * only receives the latest message from the HTTP request).
8513
+ */
8514
+ async loadUnobservedMessages(opts) {
8515
+ const { threadId, resourceId } = opts;
8516
+ const record = await this.getOrCreateRecord(threadId, resourceId);
8517
+ const rawMessages = await this.loadMessagesFromStorage(
8518
+ threadId,
8519
+ resourceId,
8520
+ record.lastObservedAt ? new Date(record.lastObservedAt) : void 0
8521
+ );
8522
+ return this.getUnobservedMessages(rawMessages, record);
8523
+ }
8503
8524
  /**
8504
8525
  * Create a buffered observation chunk without merging into active observations.
8505
8526
  *
@@ -8561,7 +8582,7 @@ ${grouped}` : grouped;
8561
8582
  if (opts.messages) {
8562
8583
  candidateMessages = this.getUnobservedMessages(opts.messages, record, { excludeBuffered: true });
8563
8584
  } else {
8564
- const rawMessages = await this.loadUnobservedMessages(
8585
+ const rawMessages = await this.loadMessagesFromStorage(
8565
8586
  threadId,
8566
8587
  resourceId,
8567
8588
  record.lastObservedAt ? new Date(record.lastObservedAt) : void 0
@@ -8803,7 +8824,7 @@ ${grouped}` : grouped;
8803
8824
  await this.withLock(lockKey, async () => {
8804
8825
  const freshRecord = await this.getOrCreateRecord(threadId, resourceId);
8805
8826
  generationBefore = freshRecord.generationCount;
8806
- const unobservedMessages = messages ? this.getUnobservedMessages(messages, freshRecord) : await this.loadUnobservedMessages(
8827
+ const unobservedMessages = messages ? this.getUnobservedMessages(messages, freshRecord) : await this.loadMessagesFromStorage(
8807
8828
  threadId,
8808
8829
  resourceId,
8809
8830
  freshRecord.lastObservedAt ? new Date(freshRecord.lastObservedAt) : void 0
@@ -9430,5 +9451,5 @@ function getObservationsAsOf(activeObservations, asOf) {
9430
9451
  }
9431
9452
 
9432
9453
  export { ModelByInputTokens, OBSERVER_SYSTEM_PROMPT, ObservationalMemory, ObservationalMemoryProcessor, TokenCounter, buildObserverPrompt, buildObserverSystemPrompt, combineObservationGroupRanges, deriveObservationGroupProvenance, e, estimateTokenCount, extractCurrentTask, formatMessagesForObserver, formatToolResultForObserver, getObservationsAsOf, hasCurrentTaskSection, injectAnchorIds, optimizeObservationsForContext, parseAnchorId, parseObservationGroups, parseObserverOutput, reconcileObservationGroupsFromReflection, renderObservationGroupsForReflection, resolveToolResultValue, stripEphemeralAnchorIds, stripObservationGroups, truncateStringByTokens, wrapInObservationGroup };
9433
- //# sourceMappingURL=chunk-5CDCKTHB.js.map
9434
- //# sourceMappingURL=chunk-5CDCKTHB.js.map
9454
+ //# sourceMappingURL=chunk-FCLPA23B.js.map
9455
+ //# sourceMappingURL=chunk-FCLPA23B.js.map