@dexto/server 1.6.19 → 1.6.21

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 (111) hide show
  1. package/dist/a2a/jsonrpc/methods.cjs +1 -1
  2. package/dist/a2a/jsonrpc/methods.d.ts +14 -4
  3. package/dist/a2a/jsonrpc/methods.d.ts.map +1 -1
  4. package/dist/a2a/jsonrpc/methods.js +1 -1
  5. package/dist/hono/index.cjs +39 -8
  6. package/dist/hono/index.d.ts +43 -4503
  7. package/dist/hono/index.d.ts.map +1 -1
  8. package/dist/hono/index.js +42 -9
  9. package/dist/hono/routes/a2a-jsonrpc.d.ts.map +1 -1
  10. package/dist/hono/routes/a2a-tasks.cjs +173 -34
  11. package/dist/hono/routes/a2a-tasks.d.ts +1 -498
  12. package/dist/hono/routes/a2a-tasks.d.ts.map +1 -1
  13. package/dist/hono/routes/a2a-tasks.js +177 -34
  14. package/dist/hono/routes/a2a.d.ts.map +1 -1
  15. package/dist/hono/routes/agents.cjs +410 -329
  16. package/dist/hono/routes/agents.d.ts +16048 -73
  17. package/dist/hono/routes/agents.d.ts.map +1 -1
  18. package/dist/hono/routes/agents.js +418 -330
  19. package/dist/hono/routes/approvals.cjs +103 -78
  20. package/dist/hono/routes/approvals.d.ts +2090 -112
  21. package/dist/hono/routes/approvals.d.ts.map +1 -1
  22. package/dist/hono/routes/approvals.js +108 -78
  23. package/dist/hono/routes/dexto-auth.cjs +40 -33
  24. package/dist/hono/routes/dexto-auth.d.ts +401 -2
  25. package/dist/hono/routes/dexto-auth.d.ts.map +1 -1
  26. package/dist/hono/routes/dexto-auth.js +40 -33
  27. package/dist/hono/routes/discovery.cjs +16 -14
  28. package/dist/hono/routes/discovery.d.ts +586 -1
  29. package/dist/hono/routes/discovery.d.ts.map +1 -1
  30. package/dist/hono/routes/discovery.js +16 -14
  31. package/dist/hono/routes/greeting.cjs +26 -22
  32. package/dist/hono/routes/greeting.d.ts +787 -3
  33. package/dist/hono/routes/greeting.d.ts.map +1 -1
  34. package/dist/hono/routes/greeting.js +26 -22
  35. package/dist/hono/routes/health.d.ts +1 -1
  36. package/dist/hono/routes/key.cjs +60 -52
  37. package/dist/hono/routes/key.d.ts +1597 -1
  38. package/dist/hono/routes/key.d.ts.map +1 -1
  39. package/dist/hono/routes/key.js +60 -52
  40. package/dist/hono/routes/llm.cjs +381 -348
  41. package/dist/hono/routes/llm.d.ts +12137 -87
  42. package/dist/hono/routes/llm.d.ts.map +1 -1
  43. package/dist/hono/routes/llm.js +385 -348
  44. package/dist/hono/routes/mcp.cjs +273 -212
  45. package/dist/hono/routes/mcp.d.ts +6605 -316
  46. package/dist/hono/routes/mcp.d.ts.map +1 -1
  47. package/dist/hono/routes/mcp.js +287 -213
  48. package/dist/hono/routes/memory.cjs +102 -89
  49. package/dist/hono/routes/memory.d.ts +5368 -4
  50. package/dist/hono/routes/memory.d.ts.map +1 -1
  51. package/dist/hono/routes/memory.js +108 -90
  52. package/dist/hono/routes/messages.cjs +171 -164
  53. package/dist/hono/routes/messages.d.ts +3899 -10
  54. package/dist/hono/routes/messages.d.ts.map +1 -1
  55. package/dist/hono/routes/messages.js +181 -165
  56. package/dist/hono/routes/models.cjs +106 -64
  57. package/dist/hono/routes/models.d.ts +2874 -1
  58. package/dist/hono/routes/models.d.ts.map +1 -1
  59. package/dist/hono/routes/models.js +108 -64
  60. package/dist/hono/routes/openrouter.cjs +79 -65
  61. package/dist/hono/routes/openrouter.d.ts +854 -1
  62. package/dist/hono/routes/openrouter.d.ts.map +1 -1
  63. package/dist/hono/routes/openrouter.js +79 -65
  64. package/dist/hono/routes/prompts.cjs +137 -104
  65. package/dist/hono/routes/prompts.d.ts +2820 -12
  66. package/dist/hono/routes/prompts.d.ts.map +1 -1
  67. package/dist/hono/routes/prompts.js +144 -105
  68. package/dist/hono/routes/queue.cjs +158 -132
  69. package/dist/hono/routes/queue.d.ts +5148 -13
  70. package/dist/hono/routes/queue.d.ts.map +1 -1
  71. package/dist/hono/routes/queue.js +168 -133
  72. package/dist/hono/routes/resources.cjs +65 -46
  73. package/dist/hono/routes/resources.d.ts +1983 -5
  74. package/dist/hono/routes/resources.d.ts.map +1 -1
  75. package/dist/hono/routes/resources.js +72 -47
  76. package/dist/hono/routes/schedules.cjs +233 -226
  77. package/dist/hono/routes/schedules.d.ts +4202 -26
  78. package/dist/hono/routes/schedules.d.ts.map +1 -1
  79. package/dist/hono/routes/schedules.js +233 -226
  80. package/dist/hono/routes/search.cjs +34 -30
  81. package/dist/hono/routes/search.d.ts +2837 -14
  82. package/dist/hono/routes/search.d.ts.map +1 -1
  83. package/dist/hono/routes/search.js +40 -31
  84. package/dist/hono/routes/sessions.cjs +404 -392
  85. package/dist/hono/routes/sessions.d.ts +16585 -30
  86. package/dist/hono/routes/sessions.d.ts.map +1 -1
  87. package/dist/hono/routes/sessions.js +408 -393
  88. package/dist/hono/routes/static.d.ts.map +1 -1
  89. package/dist/hono/routes/system-prompt.cjs +57 -61
  90. package/dist/hono/routes/system-prompt.d.ts +1228 -2
  91. package/dist/hono/routes/system-prompt.d.ts.map +1 -1
  92. package/dist/hono/routes/system-prompt.js +58 -62
  93. package/dist/hono/routes/tools.cjs +29 -34
  94. package/dist/hono/routes/tools.d.ts +1756 -7
  95. package/dist/hono/routes/tools.d.ts.map +1 -1
  96. package/dist/hono/routes/tools.js +33 -33
  97. package/dist/hono/routes/webhooks.cjs +159 -132
  98. package/dist/hono/routes/webhooks.d.ts +2504 -14
  99. package/dist/hono/routes/webhooks.d.ts.map +1 -1
  100. package/dist/hono/routes/webhooks.js +163 -132
  101. package/dist/hono/routes/workspaces.cjs +84 -79
  102. package/dist/hono/routes/workspaces.d.ts +2093 -2
  103. package/dist/hono/routes/workspaces.d.ts.map +1 -1
  104. package/dist/hono/routes/workspaces.js +89 -80
  105. package/dist/hono/schemas/responses.cjs +492 -235
  106. package/dist/hono/schemas/responses.d.ts +1461 -146
  107. package/dist/hono/schemas/responses.d.ts.map +1 -1
  108. package/dist/hono/schemas/responses.js +247 -9
  109. package/dist/hono/types.d.ts +11 -0
  110. package/dist/hono/types.d.ts.map +1 -1
  111. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAmErE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6NvD"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAShE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElE,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C6D,CAAC;AAE7F,QAAA,MAAM,qBAAqB;;;;;;EAI0B,CAAC;AAEtD,QAAA,MAAM,wBAAwB;;;;;;;;;EAQkC,CAAC;AAuCjE,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAcrB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBtB,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsGvD;AAED,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;CAAE,CAAC;AAE7E,KAAK,eAAe,GAAG,kBAAkB,CAAC,OAAO,SAAS,EAAE,EAAE,CAAC,CAAC;AAChE,KAAK,uBAAuB,GAAG,kBAAkB,CAC7C,OAAO,iBAAiB,EACxB;IAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;CAAE,CACtD,CAAC;AACF,KAAK,uBAAuB,GAAG,kBAAkB,CAC7C,OAAO,iBAAiB,EACxB;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAC9B,CAAC;AACF,KAAK,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,cAAc,EAAE,oBAAoB,CAAC,CAAC;AAC5F,KAAK,wBAAwB,GAAG,kBAAkB,CAC9C,OAAO,kBAAkB,EACzB,oBAAoB,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;CAAE,CAC7E,CAAC;AAEF,MAAM,MAAM,mBAAmB,GACzB,eAAe,GACf,uBAAuB,GACvB,uBAAuB,GACvB,oBAAoB,GACpB,wBAAwB,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
2
2
  import { PromptError } from "@dexto/core";
3
- import { PromptInfoSchema, PromptDefinitionSchema } from "../schemas/responses.js";
3
+ import {
4
+ ApiErrorResponseSchema,
5
+ BadRequestErrorResponse,
6
+ InternalErrorResponse,
7
+ PromptDefinitionSchema,
8
+ PromptInfoSchema
9
+ } from "../schemas/responses.js";
4
10
  const CustomPromptRequestSchema = z.object({
5
11
  name: z.string().min(1, "Prompt name is required").describe("Unique name for the custom prompt"),
6
12
  title: z.string().optional().describe("Display title for the prompt"),
@@ -26,123 +32,142 @@ const ResolvePromptQuerySchema = z.object({
26
32
  context: z.string().optional().describe("Additional context for prompt resolution"),
27
33
  args: z.string().optional().describe("Arguments to substitute in the prompt template (pass as a JSON string)")
28
34
  }).describe("Query parameters for resolving prompt templates");
29
- function createPromptsRouter(getAgent) {
30
- const app = new OpenAPIHono();
31
- const listRoute = createRoute({
32
- method: "get",
33
- path: "/prompts",
34
- summary: "List Prompts",
35
- description: "Retrieves all available prompts, including both built-in and custom prompts",
36
- tags: ["prompts"],
37
- responses: {
38
- 200: {
39
- description: "List all prompts",
40
- content: {
41
- "application/json": {
42
- schema: z.object({
43
- prompts: z.array(PromptInfoSchema).describe("Array of available prompts")
44
- }).strict().describe("Prompts list response")
45
- }
35
+ const ListPromptsResponseSchema = z.object({
36
+ prompts: z.array(PromptInfoSchema).describe("Array of available prompts")
37
+ }).strict().describe("Prompts list response");
38
+ const CreatePromptResponseSchema = z.object({
39
+ prompt: PromptInfoSchema.describe("Created prompt information")
40
+ }).strict().describe("Create prompt response");
41
+ const GetPromptDefinitionResponseSchema = z.object({
42
+ definition: PromptDefinitionSchema.describe("Prompt definition")
43
+ }).strict().describe("Get prompt definition response");
44
+ const ResolvePromptResponseSchema = z.object({
45
+ text: z.string().describe("Resolved prompt text"),
46
+ resources: z.array(z.string()).describe("Array of resource identifiers")
47
+ }).strict().describe("Resolve prompt response");
48
+ function serializePromptInfo(prompt) {
49
+ return PromptInfoSchema.parse(JSON.parse(JSON.stringify(prompt)));
50
+ }
51
+ function serializePromptDefinition(definition) {
52
+ return PromptDefinitionSchema.parse(JSON.parse(JSON.stringify(definition)));
53
+ }
54
+ const listRoute = createRoute({
55
+ method: "get",
56
+ path: "/prompts",
57
+ summary: "List Prompts",
58
+ description: "Retrieves all available prompts, including both built-in and custom prompts",
59
+ tags: ["prompts"],
60
+ responses: {
61
+ 200: {
62
+ description: "List all prompts",
63
+ content: {
64
+ "application/json": {
65
+ schema: ListPromptsResponseSchema
66
+ }
67
+ }
68
+ },
69
+ 500: InternalErrorResponse
70
+ }
71
+ });
72
+ const createCustomRoute = createRoute({
73
+ method: "post",
74
+ path: "/prompts/custom",
75
+ summary: "Create Custom Prompt",
76
+ description: "Creates a new custom prompt with optional resource attachment. Maximum request size: 10MB",
77
+ tags: ["prompts"],
78
+ request: {
79
+ body: {
80
+ content: {
81
+ "application/json": {
82
+ schema: CustomPromptRequestSchema
46
83
  }
47
84
  }
48
85
  }
49
- });
50
- const createCustomRoute = createRoute({
51
- method: "post",
52
- path: "/prompts/custom",
53
- summary: "Create Custom Prompt",
54
- description: "Creates a new custom prompt with optional resource attachment. Maximum request size: 10MB",
55
- tags: ["prompts"],
56
- request: {
57
- body: {
58
- content: {
59
- "application/json": {
60
- schema: CustomPromptRequestSchema
61
- }
86
+ },
87
+ responses: {
88
+ 201: {
89
+ description: "Custom prompt created",
90
+ content: {
91
+ "application/json": {
92
+ schema: CreatePromptResponseSchema
62
93
  }
63
94
  }
64
95
  },
65
- responses: {
66
- 201: {
67
- description: "Custom prompt created",
68
- content: {
69
- "application/json": {
70
- schema: z.object({
71
- prompt: PromptInfoSchema.describe("Created prompt information")
72
- }).strict().describe("Create prompt response")
73
- }
96
+ 400: BadRequestErrorResponse,
97
+ 500: InternalErrorResponse
98
+ }
99
+ });
100
+ const deleteCustomRoute = createRoute({
101
+ method: "delete",
102
+ path: "/prompts/custom/{name}",
103
+ summary: "Delete Custom Prompt",
104
+ description: "Permanently deletes a custom prompt. Built-in prompts cannot be deleted",
105
+ tags: ["prompts"],
106
+ request: {
107
+ params: z.object({
108
+ name: z.string().min(1, "Prompt name is required").describe("The prompt name")
109
+ })
110
+ },
111
+ responses: {
112
+ 204: { description: "Prompt deleted" }
113
+ }
114
+ });
115
+ const getPromptRoute = createRoute({
116
+ method: "get",
117
+ path: "/prompts/{name}",
118
+ summary: "Get Prompt Definition",
119
+ description: "Fetches the definition for a specific prompt",
120
+ tags: ["prompts"],
121
+ request: {
122
+ params: PromptNameParamSchema
123
+ },
124
+ responses: {
125
+ 200: {
126
+ description: "Prompt definition",
127
+ content: {
128
+ "application/json": {
129
+ schema: GetPromptDefinitionResponseSchema
74
130
  }
75
131
  }
76
- }
77
- });
78
- const deleteCustomRoute = createRoute({
79
- method: "delete",
80
- path: "/prompts/custom/{name}",
81
- summary: "Delete Custom Prompt",
82
- description: "Permanently deletes a custom prompt. Built-in prompts cannot be deleted",
83
- tags: ["prompts"],
84
- request: {
85
- params: z.object({
86
- name: z.string().min(1, "Prompt name is required").describe("The prompt name")
87
- })
88
132
  },
89
- responses: {
90
- 204: { description: "Prompt deleted" }
133
+ 404: {
134
+ description: "Prompt not found",
135
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
91
136
  }
92
- });
93
- const getPromptRoute = createRoute({
94
- method: "get",
95
- path: "/prompts/{name}",
96
- summary: "Get Prompt Definition",
97
- description: "Fetches the definition for a specific prompt",
98
- tags: ["prompts"],
99
- request: {
100
- params: PromptNameParamSchema
101
- },
102
- responses: {
103
- 200: {
104
- description: "Prompt definition",
105
- content: {
106
- "application/json": {
107
- schema: z.object({
108
- definition: PromptDefinitionSchema.describe("Prompt definition")
109
- }).strict().describe("Get prompt definition response")
110
- }
137
+ }
138
+ });
139
+ const resolvePromptRoute = createRoute({
140
+ method: "get",
141
+ path: "/prompts/{name}/resolve",
142
+ summary: "Resolve Prompt",
143
+ description: "Resolves a prompt template with provided arguments and returns the final text with resources",
144
+ tags: ["prompts"],
145
+ request: {
146
+ params: PromptNameParamSchema,
147
+ query: ResolvePromptQuerySchema
148
+ },
149
+ responses: {
150
+ 200: {
151
+ description: "Resolved prompt content",
152
+ content: {
153
+ "application/json": {
154
+ schema: ResolvePromptResponseSchema
111
155
  }
112
- },
113
- 404: { description: "Prompt not found" }
114
- }
115
- });
116
- const resolvePromptRoute = createRoute({
117
- method: "get",
118
- path: "/prompts/{name}/resolve",
119
- summary: "Resolve Prompt",
120
- description: "Resolves a prompt template with provided arguments and returns the final text with resources",
121
- tags: ["prompts"],
122
- request: {
123
- params: PromptNameParamSchema,
124
- query: ResolvePromptQuerySchema
156
+ }
125
157
  },
126
- responses: {
127
- 200: {
128
- description: "Resolved prompt content",
129
- content: {
130
- "application/json": {
131
- schema: z.object({
132
- text: z.string().describe("Resolved prompt text"),
133
- resources: z.array(z.string()).describe("Array of resource identifiers")
134
- }).strict().describe("Resolve prompt response")
135
- }
136
- }
137
- },
138
- 404: { description: "Prompt not found" }
158
+ 404: {
159
+ description: "Prompt not found",
160
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
139
161
  }
140
- });
162
+ }
163
+ });
164
+ function createPromptsRouter(getAgent) {
165
+ const app = new OpenAPIHono();
141
166
  return app.openapi(listRoute, async (ctx) => {
142
167
  const agent = await getAgent(ctx);
143
168
  const prompts = await agent.listPrompts();
144
- const list = Object.values(prompts);
145
- return ctx.json({ prompts: list });
169
+ const list = Object.values(prompts).map(serializePromptInfo);
170
+ return ctx.json(ListPromptsResponseSchema.parse({ prompts: list }), 200);
146
171
  }).openapi(createCustomRoute, async (ctx) => {
147
172
  const agent = await getAgent(ctx);
148
173
  const payload = ctx.req.valid("json");
@@ -166,7 +191,10 @@ function createPromptsRouter(getAgent) {
166
191
  } : {}
167
192
  };
168
193
  const prompt = await agent.createCustomPrompt(createPayload);
169
- return ctx.json({ prompt }, 201);
194
+ return ctx.json(
195
+ CreatePromptResponseSchema.parse({ prompt: serializePromptInfo(prompt) }),
196
+ 201
197
+ );
170
198
  }).openapi(deleteCustomRoute, async (ctx) => {
171
199
  const agent = await getAgent(ctx);
172
200
  const { name } = ctx.req.valid("param");
@@ -177,7 +205,12 @@ function createPromptsRouter(getAgent) {
177
205
  const { name } = ctx.req.valid("param");
178
206
  const definition = await agent.getPromptDefinition(name);
179
207
  if (!definition) throw PromptError.notFound(name);
180
- return ctx.json({ definition });
208
+ return ctx.json(
209
+ GetPromptDefinitionResponseSchema.parse({
210
+ definition: serializePromptDefinition(definition)
211
+ }),
212
+ 200
213
+ );
181
214
  }).openapi(resolvePromptRoute, async (ctx) => {
182
215
  const agent = await getAgent(ctx);
183
216
  const { name } = ctx.req.valid("param");
@@ -196,7 +229,13 @@ function createPromptsRouter(getAgent) {
196
229
  if (context !== void 0) options.context = context;
197
230
  if (parsedArgs !== void 0) options.args = parsedArgs;
198
231
  const result = await agent.resolvePrompt(name, options);
199
- return ctx.json({ text: result.text, resources: result.resources });
232
+ return ctx.json(
233
+ ResolvePromptResponseSchema.parse({
234
+ text: result.text,
235
+ resources: result.resources
236
+ }),
237
+ 200
238
+ );
200
239
  });
201
240
  }
202
241
  export {
@@ -22,169 +22,186 @@ __export(queue_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(queue_exports);
24
24
  var import_zod_openapi = require("@hono/zod-openapi");
25
+ var import_core = require("@dexto/core");
25
26
  var import_responses = require("../schemas/responses.js");
26
27
  const QueuedMessageSchema = import_zod_openapi.z.object({
27
28
  id: import_zod_openapi.z.string().describe("Unique identifier for the queued message"),
28
29
  content: import_zod_openapi.z.array(import_responses.ContentPartSchema).describe("Message content parts"),
29
30
  queuedAt: import_zod_openapi.z.number().describe("Unix timestamp when message was queued"),
30
- metadata: import_zod_openapi.z.record(import_zod_openapi.z.unknown()).optional().describe("Optional metadata"),
31
+ metadata: import_responses.JsonObjectSchema.optional().describe("Optional metadata"),
31
32
  kind: import_zod_openapi.z.enum(["default", "background"]).optional().describe("Optional queued message kind")
32
33
  }).strict().describe("A message waiting in the queue");
33
- const TextPartSchema = import_zod_openapi.z.object({
34
- type: import_zod_openapi.z.literal("text").describe("Content type identifier"),
35
- text: import_zod_openapi.z.string().describe("Text content")
36
- }).describe("Text content part");
37
- const ImagePartSchema = import_zod_openapi.z.object({
38
- type: import_zod_openapi.z.literal("image").describe("Content type identifier"),
39
- image: import_zod_openapi.z.string().describe("Base64-encoded image data or URL"),
40
- mimeType: import_zod_openapi.z.string().optional().describe("MIME type (e.g., image/png)")
41
- }).describe("Image content part");
42
- const FilePartSchema = import_zod_openapi.z.object({
43
- type: import_zod_openapi.z.literal("file").describe("Content type identifier"),
44
- data: import_zod_openapi.z.string().describe("Base64-encoded file data or URL"),
45
- mimeType: import_zod_openapi.z.string().describe("MIME type (e.g., application/pdf)"),
46
- filename: import_zod_openapi.z.string().optional().describe("Optional filename")
47
- }).describe("File content part");
48
- const QueueContentPartSchema = import_zod_openapi.z.discriminatedUnion("type", [TextPartSchema, ImagePartSchema, FilePartSchema]).describe("Content part - text, image, or file");
49
34
  const QueueMessageBodySchema = import_zod_openapi.z.object({
50
- content: import_zod_openapi.z.union([import_zod_openapi.z.string(), import_zod_openapi.z.array(QueueContentPartSchema)]).describe("Message content - string for text, or ContentPart[] for multimodal"),
35
+ content: import_responses.RequestContentSchema,
51
36
  kind: import_zod_openapi.z.enum(["default", "background"]).optional().describe("Optional queued message kind")
52
37
  }).describe("Request body for queueing a message");
53
- function createQueueRouter(getAgent) {
54
- const app = new import_zod_openapi.OpenAPIHono();
55
- const getQueueRoute = (0, import_zod_openapi.createRoute)({
56
- method: "get",
57
- path: "/queue/{sessionId}",
58
- summary: "Get queued messages",
59
- description: "Returns all messages waiting in the queue for a session",
60
- tags: ["queue"],
61
- request: {
62
- params: import_zod_openapi.z.object({
63
- sessionId: import_zod_openapi.z.string().min(1).describe("Session ID")
64
- })
65
- },
66
- responses: {
67
- 200: {
68
- description: "List of queued messages",
69
- content: {
70
- "application/json": {
71
- schema: import_zod_openapi.z.object({
72
- messages: import_zod_openapi.z.array(QueuedMessageSchema).describe("Queued messages"),
73
- count: import_zod_openapi.z.number().describe("Number of messages in queue")
74
- }).strict()
75
- }
38
+ const GetQueueResponseSchema = import_zod_openapi.z.object({
39
+ messages: import_zod_openapi.z.array(QueuedMessageSchema).describe("Queued messages"),
40
+ count: import_zod_openapi.z.number().describe("Number of messages in queue")
41
+ }).strict().describe("Get queue response");
42
+ const QueueMessageResponseSchema = import_zod_openapi.z.object({
43
+ queued: import_zod_openapi.z.literal(true).describe("Indicates message was queued"),
44
+ id: import_zod_openapi.z.string().describe("ID of the queued message"),
45
+ position: import_zod_openapi.z.number().describe("Position in the queue (1-based)")
46
+ }).strict().describe("Queue message response");
47
+ const RemoveQueuedMessageResponseSchema = import_zod_openapi.z.object({
48
+ removed: import_zod_openapi.z.literal(true).describe("Indicates message was removed"),
49
+ id: import_zod_openapi.z.string().describe("ID of the removed message")
50
+ }).strict().describe("Remove queued message response");
51
+ const ClearQueueResponseSchema = import_zod_openapi.z.object({
52
+ cleared: import_zod_openapi.z.literal(true).describe("Indicates queue was cleared"),
53
+ count: import_zod_openapi.z.number().describe("Number of messages that were removed")
54
+ }).strict().describe("Clear queue response");
55
+ const QueueSessionParamSchema = import_zod_openapi.z.object({
56
+ sessionId: import_zod_openapi.z.string().min(1).describe("Session ID")
57
+ }).describe("Queue session params");
58
+ const QueueMessageParamSchema = import_zod_openapi.z.object({
59
+ sessionId: import_zod_openapi.z.string().min(1).describe("Session ID"),
60
+ messageId: import_zod_openapi.z.string().min(1).describe("ID of the queued message to remove")
61
+ }).describe("Queue message identifier params");
62
+ const getQueueRoute = (0, import_zod_openapi.createRoute)({
63
+ method: "get",
64
+ path: "/queue/{sessionId}",
65
+ summary: "Get queued messages",
66
+ description: "Returns all messages waiting in the queue for a session",
67
+ tags: ["queue"],
68
+ request: {
69
+ params: QueueSessionParamSchema
70
+ },
71
+ responses: {
72
+ 200: {
73
+ description: "List of queued messages",
74
+ content: {
75
+ "application/json": {
76
+ schema: GetQueueResponseSchema
76
77
  }
77
- },
78
- 404: { description: "Session not found" }
79
- }
80
- });
81
- const queueMessageRoute = (0, import_zod_openapi.createRoute)({
82
- method: "post",
83
- path: "/queue/{sessionId}",
84
- summary: "Queue a message",
85
- description: "Adds a message to the queue for processing when the session is no longer busy",
86
- tags: ["queue"],
87
- request: {
88
- params: import_zod_openapi.z.object({
89
- sessionId: import_zod_openapi.z.string().min(1).describe("Session ID")
90
- }),
91
- body: {
92
- content: { "application/json": { schema: QueueMessageBodySchema } }
93
78
  }
94
79
  },
95
- responses: {
96
- 201: {
97
- description: "Message queued successfully",
98
- content: {
99
- "application/json": {
100
- schema: import_zod_openapi.z.object({
101
- queued: import_zod_openapi.z.literal(true).describe("Indicates message was queued"),
102
- id: import_zod_openapi.z.string().describe("ID of the queued message"),
103
- position: import_zod_openapi.z.number().describe("Position in the queue (1-based)")
104
- }).strict()
105
- }
106
- }
107
- },
108
- 404: { description: "Session not found" }
80
+ 404: {
81
+ description: "Session not found",
82
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
83
+ },
84
+ 400: import_responses.BadRequestErrorResponse,
85
+ 500: import_responses.InternalErrorResponse
86
+ }
87
+ });
88
+ const queueMessageRoute = (0, import_zod_openapi.createRoute)({
89
+ method: "post",
90
+ path: "/queue/{sessionId}",
91
+ summary: "Queue a message",
92
+ description: "Adds a message to the queue for processing when the session is no longer busy",
93
+ tags: ["queue"],
94
+ request: {
95
+ params: QueueSessionParamSchema,
96
+ body: {
97
+ content: { "application/json": { schema: QueueMessageBodySchema } }
109
98
  }
110
- });
111
- const removeQueuedMessageRoute = (0, import_zod_openapi.createRoute)({
112
- method: "delete",
113
- path: "/queue/{sessionId}/{messageId}",
114
- summary: "Remove queued message",
115
- description: "Removes a specific message from the queue",
116
- tags: ["queue"],
117
- request: {
118
- params: import_zod_openapi.z.object({
119
- sessionId: import_zod_openapi.z.string().min(1).describe("Session ID"),
120
- messageId: import_zod_openapi.z.string().min(1).describe("ID of the queued message to remove")
121
- })
99
+ },
100
+ responses: {
101
+ 201: {
102
+ description: "Message queued successfully",
103
+ content: {
104
+ "application/json": {
105
+ schema: QueueMessageResponseSchema
106
+ }
107
+ }
122
108
  },
123
- responses: {
124
- 200: {
125
- description: "Message removed successfully",
126
- content: {
127
- "application/json": {
128
- schema: import_zod_openapi.z.object({
129
- removed: import_zod_openapi.z.literal(true).describe("Indicates message was removed"),
130
- id: import_zod_openapi.z.string().describe("ID of the removed message")
131
- }).strict()
132
- }
109
+ 404: {
110
+ description: "Session not found",
111
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
112
+ },
113
+ 400: import_responses.BadRequestErrorResponse,
114
+ 500: import_responses.InternalErrorResponse
115
+ }
116
+ });
117
+ const removeQueuedMessageRoute = (0, import_zod_openapi.createRoute)({
118
+ method: "delete",
119
+ path: "/queue/{sessionId}/{messageId}",
120
+ summary: "Remove queued message",
121
+ description: "Removes a specific message from the queue",
122
+ tags: ["queue"],
123
+ request: {
124
+ params: QueueMessageParamSchema
125
+ },
126
+ responses: {
127
+ 200: {
128
+ description: "Message removed successfully",
129
+ content: {
130
+ "application/json": {
131
+ schema: RemoveQueuedMessageResponseSchema
133
132
  }
134
- },
135
- 404: { description: "Session or message not found" }
136
- }
137
- });
138
- const clearQueueRoute = (0, import_zod_openapi.createRoute)({
139
- method: "delete",
140
- path: "/queue/{sessionId}",
141
- summary: "Clear message queue",
142
- description: "Removes all messages from the queue for a session",
143
- tags: ["queue"],
144
- request: {
145
- params: import_zod_openapi.z.object({
146
- sessionId: import_zod_openapi.z.string().min(1).describe("Session ID")
147
- })
133
+ }
148
134
  },
149
- responses: {
150
- 200: {
151
- description: "Queue cleared successfully",
152
- content: {
153
- "application/json": {
154
- schema: import_zod_openapi.z.object({
155
- cleared: import_zod_openapi.z.literal(true).describe("Indicates queue was cleared"),
156
- count: import_zod_openapi.z.number().describe("Number of messages that were removed")
157
- }).strict()
158
- }
135
+ 404: {
136
+ description: "Session or message not found",
137
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
138
+ },
139
+ 400: import_responses.BadRequestErrorResponse,
140
+ 500: import_responses.InternalErrorResponse
141
+ }
142
+ });
143
+ const clearQueueRoute = (0, import_zod_openapi.createRoute)({
144
+ method: "delete",
145
+ path: "/queue/{sessionId}",
146
+ summary: "Clear message queue",
147
+ description: "Removes all messages from the queue for a session",
148
+ tags: ["queue"],
149
+ request: {
150
+ params: QueueSessionParamSchema
151
+ },
152
+ responses: {
153
+ 200: {
154
+ description: "Queue cleared successfully",
155
+ content: {
156
+ "application/json": {
157
+ schema: ClearQueueResponseSchema
159
158
  }
160
- },
161
- 404: { description: "Session not found" }
162
- }
163
- });
159
+ }
160
+ },
161
+ 404: {
162
+ description: "Session not found",
163
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
164
+ },
165
+ 400: import_responses.BadRequestErrorResponse,
166
+ 500: import_responses.InternalErrorResponse
167
+ }
168
+ });
169
+ function createQueueRouter(getAgent) {
170
+ const app = new import_zod_openapi.OpenAPIHono();
164
171
  return app.openapi(getQueueRoute, async (ctx) => {
165
172
  const agent = await getAgent(ctx);
166
173
  const { sessionId } = ctx.req.valid("param");
167
174
  const messages = await agent.getQueuedMessages(sessionId);
168
- return ctx.json({
169
- messages,
170
- count: messages.length
171
- });
175
+ const responseMessages = messages.map((message) => ({
176
+ id: message.id,
177
+ content: message.content.map(import_responses.toApiContentPart),
178
+ queuedAt: message.queuedAt,
179
+ ...message.metadata !== void 0 ? { metadata: message.metadata } : {},
180
+ ...message.kind !== void 0 ? { kind: message.kind } : {}
181
+ }));
182
+ return ctx.json(
183
+ GetQueueResponseSchema.parse({
184
+ messages: responseMessages,
185
+ count: responseMessages.length
186
+ }),
187
+ 200
188
+ );
172
189
  }).openapi(queueMessageRoute, async (ctx) => {
173
190
  const agent = await getAgent(ctx);
174
191
  const { sessionId } = ctx.req.valid("param");
175
192
  const { content: rawContent } = ctx.req.valid("json");
176
- const content = typeof rawContent === "string" ? [{ type: "text", text: rawContent }] : rawContent;
193
+ const content = (0, import_responses.toContentInput)(rawContent);
177
194
  const { kind } = ctx.req.valid("json");
178
195
  const result = await agent.queueMessage(sessionId, {
179
196
  content,
180
197
  ...kind !== void 0 && { kind }
181
198
  });
182
199
  return ctx.json(
183
- {
184
- queued: result.queued,
200
+ QueueMessageResponseSchema.parse({
201
+ queued: true,
185
202
  id: result.id,
186
203
  position: result.position
187
- },
204
+ }),
188
205
  201
189
206
  );
190
207
  }).openapi(removeQueuedMessageRoute, async (ctx) => {
@@ -192,14 +209,23 @@ function createQueueRouter(getAgent) {
192
209
  const { sessionId, messageId } = ctx.req.valid("param");
193
210
  const removed = await agent.removeQueuedMessage(sessionId, messageId);
194
211
  if (!removed) {
195
- return ctx.json({ error: "Message not found in queue" }, 404);
212
+ throw new import_core.DextoRuntimeError(
213
+ "queued_message_not_found",
214
+ "queue",
215
+ import_core.ErrorType.NOT_FOUND,
216
+ "Message not found in queue",
217
+ { sessionId, messageId }
218
+ );
196
219
  }
197
- return ctx.json({ removed: true, id: messageId });
220
+ return ctx.json(
221
+ RemoveQueuedMessageResponseSchema.parse({ removed: true, id: messageId }),
222
+ 200
223
+ );
198
224
  }).openapi(clearQueueRoute, async (ctx) => {
199
225
  const agent = await getAgent(ctx);
200
226
  const { sessionId } = ctx.req.valid("param");
201
227
  const count = await agent.clearMessageQueue(sessionId);
202
- return ctx.json({ cleared: true, count });
228
+ return ctx.json(ClearQueueResponseSchema.parse({ cleared: true, count }), 200);
203
229
  });
204
230
  }
205
231
  // Annotate the CommonJS export names for ESM import in node: