@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":"queue.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAuDrE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwLrD"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAYhE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAelE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKwB,CAAC;AAmCrD,QAAA,MAAM,uBAAuB;;;;;;EAIQ,CAAC;AAEtC,QAAA,MAAM,uBAAuB;;;;;;;;;EAKmB,CAAC;AAEjD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBjB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB5B,CAAC;AAEH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsErD;AAED,KAAK,sBAAsB,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;CAAE,CAAC;AACjF,KAAK,sBAAsB,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;CAAE,CAAC;AAEjF,KAAK,mBAAmB,GAAG,kBAAkB,CAAC,OAAO,aAAa,EAAE,sBAAsB,CAAC,CAAC;AAC5F,KAAK,uBAAuB,GAAG,kBAAkB,CAC7C,OAAO,iBAAiB,EACxB,sBAAsB,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;CAAE,CAC5E,CAAC;AACF,KAAK,8BAA8B,GAAG,kBAAkB,CACpD,OAAO,wBAAwB,EAC/B,sBAAsB,CACzB,CAAC;AACF,KAAK,qBAAqB,GAAG,kBAAkB,CAAC,OAAO,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,8BAA8B,GAC9B,qBAAqB,CAAC"}
@@ -1,167 +1,193 @@
1
1
  import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
2
- import { ContentPartSchema } from "../schemas/responses.js";
2
+ import { DextoRuntimeError, ErrorType } from "@dexto/core";
3
+ import {
4
+ ApiErrorResponseSchema,
5
+ BadRequestErrorResponse,
6
+ ContentPartSchema,
7
+ InternalErrorResponse,
8
+ JsonObjectSchema,
9
+ RequestContentSchema,
10
+ toApiContentPart,
11
+ toContentInput
12
+ } from "../schemas/responses.js";
3
13
  const QueuedMessageSchema = z.object({
4
14
  id: z.string().describe("Unique identifier for the queued message"),
5
15
  content: z.array(ContentPartSchema).describe("Message content parts"),
6
16
  queuedAt: z.number().describe("Unix timestamp when message was queued"),
7
- metadata: z.record(z.unknown()).optional().describe("Optional metadata"),
17
+ metadata: JsonObjectSchema.optional().describe("Optional metadata"),
8
18
  kind: z.enum(["default", "background"]).optional().describe("Optional queued message kind")
9
19
  }).strict().describe("A message waiting in the queue");
10
- const TextPartSchema = z.object({
11
- type: z.literal("text").describe("Content type identifier"),
12
- text: z.string().describe("Text content")
13
- }).describe("Text content part");
14
- const ImagePartSchema = z.object({
15
- type: z.literal("image").describe("Content type identifier"),
16
- image: z.string().describe("Base64-encoded image data or URL"),
17
- mimeType: z.string().optional().describe("MIME type (e.g., image/png)")
18
- }).describe("Image content part");
19
- const FilePartSchema = z.object({
20
- type: z.literal("file").describe("Content type identifier"),
21
- data: z.string().describe("Base64-encoded file data or URL"),
22
- mimeType: z.string().describe("MIME type (e.g., application/pdf)"),
23
- filename: z.string().optional().describe("Optional filename")
24
- }).describe("File content part");
25
- const QueueContentPartSchema = z.discriminatedUnion("type", [TextPartSchema, ImagePartSchema, FilePartSchema]).describe("Content part - text, image, or file");
26
20
  const QueueMessageBodySchema = z.object({
27
- content: z.union([z.string(), z.array(QueueContentPartSchema)]).describe("Message content - string for text, or ContentPart[] for multimodal"),
21
+ content: RequestContentSchema,
28
22
  kind: z.enum(["default", "background"]).optional().describe("Optional queued message kind")
29
23
  }).describe("Request body for queueing a message");
30
- function createQueueRouter(getAgent) {
31
- const app = new OpenAPIHono();
32
- const getQueueRoute = createRoute({
33
- method: "get",
34
- path: "/queue/{sessionId}",
35
- summary: "Get queued messages",
36
- description: "Returns all messages waiting in the queue for a session",
37
- tags: ["queue"],
38
- request: {
39
- params: z.object({
40
- sessionId: z.string().min(1).describe("Session ID")
41
- })
42
- },
43
- responses: {
44
- 200: {
45
- description: "List of queued messages",
46
- content: {
47
- "application/json": {
48
- schema: z.object({
49
- messages: z.array(QueuedMessageSchema).describe("Queued messages"),
50
- count: z.number().describe("Number of messages in queue")
51
- }).strict()
52
- }
24
+ const GetQueueResponseSchema = z.object({
25
+ messages: z.array(QueuedMessageSchema).describe("Queued messages"),
26
+ count: z.number().describe("Number of messages in queue")
27
+ }).strict().describe("Get queue response");
28
+ const QueueMessageResponseSchema = z.object({
29
+ queued: z.literal(true).describe("Indicates message was queued"),
30
+ id: z.string().describe("ID of the queued message"),
31
+ position: z.number().describe("Position in the queue (1-based)")
32
+ }).strict().describe("Queue message response");
33
+ const RemoveQueuedMessageResponseSchema = z.object({
34
+ removed: z.literal(true).describe("Indicates message was removed"),
35
+ id: z.string().describe("ID of the removed message")
36
+ }).strict().describe("Remove queued message response");
37
+ const ClearQueueResponseSchema = z.object({
38
+ cleared: z.literal(true).describe("Indicates queue was cleared"),
39
+ count: z.number().describe("Number of messages that were removed")
40
+ }).strict().describe("Clear queue response");
41
+ const QueueSessionParamSchema = z.object({
42
+ sessionId: z.string().min(1).describe("Session ID")
43
+ }).describe("Queue session params");
44
+ const QueueMessageParamSchema = z.object({
45
+ sessionId: z.string().min(1).describe("Session ID"),
46
+ messageId: z.string().min(1).describe("ID of the queued message to remove")
47
+ }).describe("Queue message identifier params");
48
+ const getQueueRoute = createRoute({
49
+ method: "get",
50
+ path: "/queue/{sessionId}",
51
+ summary: "Get queued messages",
52
+ description: "Returns all messages waiting in the queue for a session",
53
+ tags: ["queue"],
54
+ request: {
55
+ params: QueueSessionParamSchema
56
+ },
57
+ responses: {
58
+ 200: {
59
+ description: "List of queued messages",
60
+ content: {
61
+ "application/json": {
62
+ schema: GetQueueResponseSchema
53
63
  }
54
- },
55
- 404: { description: "Session not found" }
56
- }
57
- });
58
- const queueMessageRoute = createRoute({
59
- method: "post",
60
- path: "/queue/{sessionId}",
61
- summary: "Queue a message",
62
- description: "Adds a message to the queue for processing when the session is no longer busy",
63
- tags: ["queue"],
64
- request: {
65
- params: z.object({
66
- sessionId: z.string().min(1).describe("Session ID")
67
- }),
68
- body: {
69
- content: { "application/json": { schema: QueueMessageBodySchema } }
70
64
  }
71
65
  },
72
- responses: {
73
- 201: {
74
- description: "Message queued successfully",
75
- content: {
76
- "application/json": {
77
- schema: z.object({
78
- queued: z.literal(true).describe("Indicates message was queued"),
79
- id: z.string().describe("ID of the queued message"),
80
- position: z.number().describe("Position in the queue (1-based)")
81
- }).strict()
82
- }
83
- }
84
- },
85
- 404: { description: "Session not found" }
66
+ 404: {
67
+ description: "Session not found",
68
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
69
+ },
70
+ 400: BadRequestErrorResponse,
71
+ 500: InternalErrorResponse
72
+ }
73
+ });
74
+ const queueMessageRoute = createRoute({
75
+ method: "post",
76
+ path: "/queue/{sessionId}",
77
+ summary: "Queue a message",
78
+ description: "Adds a message to the queue for processing when the session is no longer busy",
79
+ tags: ["queue"],
80
+ request: {
81
+ params: QueueSessionParamSchema,
82
+ body: {
83
+ content: { "application/json": { schema: QueueMessageBodySchema } }
86
84
  }
87
- });
88
- const removeQueuedMessageRoute = createRoute({
89
- method: "delete",
90
- path: "/queue/{sessionId}/{messageId}",
91
- summary: "Remove queued message",
92
- description: "Removes a specific message from the queue",
93
- tags: ["queue"],
94
- request: {
95
- params: z.object({
96
- sessionId: z.string().min(1).describe("Session ID"),
97
- messageId: z.string().min(1).describe("ID of the queued message to remove")
98
- })
85
+ },
86
+ responses: {
87
+ 201: {
88
+ description: "Message queued successfully",
89
+ content: {
90
+ "application/json": {
91
+ schema: QueueMessageResponseSchema
92
+ }
93
+ }
94
+ },
95
+ 404: {
96
+ description: "Session not found",
97
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
99
98
  },
100
- responses: {
101
- 200: {
102
- description: "Message removed successfully",
103
- content: {
104
- "application/json": {
105
- schema: z.object({
106
- removed: z.literal(true).describe("Indicates message was removed"),
107
- id: z.string().describe("ID of the removed message")
108
- }).strict()
109
- }
99
+ 400: BadRequestErrorResponse,
100
+ 500: InternalErrorResponse
101
+ }
102
+ });
103
+ const removeQueuedMessageRoute = createRoute({
104
+ method: "delete",
105
+ path: "/queue/{sessionId}/{messageId}",
106
+ summary: "Remove queued message",
107
+ description: "Removes a specific message from the queue",
108
+ tags: ["queue"],
109
+ request: {
110
+ params: QueueMessageParamSchema
111
+ },
112
+ responses: {
113
+ 200: {
114
+ description: "Message removed successfully",
115
+ content: {
116
+ "application/json": {
117
+ schema: RemoveQueuedMessageResponseSchema
110
118
  }
111
- },
112
- 404: { description: "Session or message not found" }
113
- }
114
- });
115
- const clearQueueRoute = createRoute({
116
- method: "delete",
117
- path: "/queue/{sessionId}",
118
- summary: "Clear message queue",
119
- description: "Removes all messages from the queue for a session",
120
- tags: ["queue"],
121
- request: {
122
- params: z.object({
123
- sessionId: z.string().min(1).describe("Session ID")
124
- })
119
+ }
125
120
  },
126
- responses: {
127
- 200: {
128
- description: "Queue cleared successfully",
129
- content: {
130
- "application/json": {
131
- schema: z.object({
132
- cleared: z.literal(true).describe("Indicates queue was cleared"),
133
- count: z.number().describe("Number of messages that were removed")
134
- }).strict()
135
- }
121
+ 404: {
122
+ description: "Session or message not found",
123
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
124
+ },
125
+ 400: BadRequestErrorResponse,
126
+ 500: InternalErrorResponse
127
+ }
128
+ });
129
+ const clearQueueRoute = createRoute({
130
+ method: "delete",
131
+ path: "/queue/{sessionId}",
132
+ summary: "Clear message queue",
133
+ description: "Removes all messages from the queue for a session",
134
+ tags: ["queue"],
135
+ request: {
136
+ params: QueueSessionParamSchema
137
+ },
138
+ responses: {
139
+ 200: {
140
+ description: "Queue cleared successfully",
141
+ content: {
142
+ "application/json": {
143
+ schema: ClearQueueResponseSchema
136
144
  }
137
- },
138
- 404: { description: "Session not found" }
139
- }
140
- });
145
+ }
146
+ },
147
+ 404: {
148
+ description: "Session not found",
149
+ content: { "application/json": { schema: ApiErrorResponseSchema } }
150
+ },
151
+ 400: BadRequestErrorResponse,
152
+ 500: InternalErrorResponse
153
+ }
154
+ });
155
+ function createQueueRouter(getAgent) {
156
+ const app = new OpenAPIHono();
141
157
  return app.openapi(getQueueRoute, async (ctx) => {
142
158
  const agent = await getAgent(ctx);
143
159
  const { sessionId } = ctx.req.valid("param");
144
160
  const messages = await agent.getQueuedMessages(sessionId);
145
- return ctx.json({
146
- messages,
147
- count: messages.length
148
- });
161
+ const responseMessages = messages.map((message) => ({
162
+ id: message.id,
163
+ content: message.content.map(toApiContentPart),
164
+ queuedAt: message.queuedAt,
165
+ ...message.metadata !== void 0 ? { metadata: message.metadata } : {},
166
+ ...message.kind !== void 0 ? { kind: message.kind } : {}
167
+ }));
168
+ return ctx.json(
169
+ GetQueueResponseSchema.parse({
170
+ messages: responseMessages,
171
+ count: responseMessages.length
172
+ }),
173
+ 200
174
+ );
149
175
  }).openapi(queueMessageRoute, async (ctx) => {
150
176
  const agent = await getAgent(ctx);
151
177
  const { sessionId } = ctx.req.valid("param");
152
178
  const { content: rawContent } = ctx.req.valid("json");
153
- const content = typeof rawContent === "string" ? [{ type: "text", text: rawContent }] : rawContent;
179
+ const content = toContentInput(rawContent);
154
180
  const { kind } = ctx.req.valid("json");
155
181
  const result = await agent.queueMessage(sessionId, {
156
182
  content,
157
183
  ...kind !== void 0 && { kind }
158
184
  });
159
185
  return ctx.json(
160
- {
161
- queued: result.queued,
186
+ QueueMessageResponseSchema.parse({
187
+ queued: true,
162
188
  id: result.id,
163
189
  position: result.position
164
- },
190
+ }),
165
191
  201
166
192
  );
167
193
  }).openapi(removeQueuedMessageRoute, async (ctx) => {
@@ -169,14 +195,23 @@ function createQueueRouter(getAgent) {
169
195
  const { sessionId, messageId } = ctx.req.valid("param");
170
196
  const removed = await agent.removeQueuedMessage(sessionId, messageId);
171
197
  if (!removed) {
172
- return ctx.json({ error: "Message not found in queue" }, 404);
198
+ throw new DextoRuntimeError(
199
+ "queued_message_not_found",
200
+ "queue",
201
+ ErrorType.NOT_FOUND,
202
+ "Message not found in queue",
203
+ { sessionId, messageId }
204
+ );
173
205
  }
174
- return ctx.json({ removed: true, id: messageId });
206
+ return ctx.json(
207
+ RemoveQueuedMessageResponseSchema.parse({ removed: true, id: messageId }),
208
+ 200
209
+ );
175
210
  }).openapi(clearQueueRoute, async (ctx) => {
176
211
  const agent = await getAgent(ctx);
177
212
  const { sessionId } = ctx.req.valid("param");
178
213
  const count = await agent.clearMessageQueue(sessionId);
179
- return ctx.json({ cleared: true, count });
214
+ return ctx.json(ClearQueueResponseSchema.parse({ cleared: true, count }), 200);
180
215
  });
181
216
  }
182
217
  export {
@@ -40,63 +40,82 @@ const ReadResourceResponseSchema = import_zod_openapi.z.object({
40
40
  ok: import_zod_openapi.z.literal(true).describe("Indicates successful response"),
41
41
  content: import_zod_openapi.z.object({
42
42
  contents: import_zod_openapi.z.array(ResourceContentItemSchema).describe("Array of content items (typically one item)"),
43
- _meta: import_zod_openapi.z.record(import_zod_openapi.z.any()).optional().describe("Optional metadata about the resource")
43
+ _meta: import_responses.JsonObjectSchema.optional().describe("Optional metadata about the resource")
44
44
  }).strict().describe("Resource content from MCP ReadResourceResult")
45
45
  }).strict().describe("Resource content response");
46
- function createResourcesRouter(getAgent) {
47
- const app = new import_zod_openapi.OpenAPIHono();
48
- const listRoute = (0, import_zod_openapi.createRoute)({
49
- method: "get",
50
- path: "/resources",
51
- summary: "List All Resources",
52
- description: "Retrieves a list of all available resources from all sources (MCP servers and internal providers)",
53
- tags: ["resources"],
54
- responses: {
55
- 200: {
56
- description: "List all resources",
57
- content: { "application/json": { schema: ListResourcesResponseSchema } }
58
- }
59
- }
60
- });
61
- const getContentRoute = (0, import_zod_openapi.createRoute)({
62
- method: "get",
63
- path: "/resources/{resourceId}/content",
64
- summary: "Read Resource Content",
65
- description: "Reads the content of a specific resource by its URI. The resource ID in the URL must be URI-encoded",
66
- tags: ["resources"],
67
- request: {
68
- params: ResourceIdParamSchema
46
+ const listRoute = (0, import_zod_openapi.createRoute)({
47
+ method: "get",
48
+ path: "/resources",
49
+ summary: "List All Resources",
50
+ description: "Retrieves a list of all available resources from all sources (MCP servers and internal providers)",
51
+ tags: ["resources"],
52
+ responses: {
53
+ 200: {
54
+ description: "List all resources",
55
+ content: { "application/json": { schema: ListResourcesResponseSchema } }
69
56
  },
70
- responses: {
71
- 200: {
72
- description: "Resource content",
73
- content: { "application/json": { schema: ReadResourceResponseSchema } }
74
- }
75
- }
76
- });
77
- const headRoute = (0, import_zod_openapi.createRoute)({
78
- method: "head",
79
- path: "/resources/{resourceId}",
80
- summary: "Check Resource Exists",
81
- description: "Checks if a resource exists by its URI without retrieving its content",
82
- tags: ["resources"],
83
- request: {
84
- params: ResourceIdParamSchema
57
+ 500: import_responses.InternalErrorResponse
58
+ }
59
+ });
60
+ const getContentRoute = (0, import_zod_openapi.createRoute)({
61
+ method: "get",
62
+ path: "/resources/{resourceId}/content",
63
+ summary: "Read Resource Content",
64
+ description: "Reads the content of a specific resource by its URI. The resource ID in the URL must be URI-encoded",
65
+ tags: ["resources"],
66
+ request: {
67
+ params: ResourceIdParamSchema
68
+ },
69
+ responses: {
70
+ 200: {
71
+ description: "Resource content",
72
+ content: { "application/json": { schema: ReadResourceResponseSchema } }
85
73
  },
86
- responses: {
87
- 200: { description: "Resource exists" },
88
- 404: { description: "Resource not found" }
89
- }
90
- });
74
+ 400: import_responses.BadRequestErrorResponse,
75
+ 404: import_responses.NotFoundErrorResponse,
76
+ 500: import_responses.InternalErrorResponse
77
+ }
78
+ });
79
+ const headRoute = (0, import_zod_openapi.createRoute)({
80
+ method: "head",
81
+ path: "/resources/{resourceId}",
82
+ summary: "Check Resource Exists",
83
+ description: "Checks if a resource exists by its URI without retrieving its content",
84
+ tags: ["resources"],
85
+ request: {
86
+ params: ResourceIdParamSchema
87
+ },
88
+ responses: {
89
+ 200: { description: "Resource exists" },
90
+ 404: { description: "Resource not found" }
91
+ }
92
+ });
93
+ function toJsonValue(value) {
94
+ return JSON.parse(JSON.stringify(value));
95
+ }
96
+ function createResourcesRouter(getAgent) {
97
+ const app = new import_zod_openapi.OpenAPIHono();
91
98
  return app.openapi(listRoute, async (ctx) => {
92
99
  const agent = await getAgent(ctx);
93
100
  const resources = await agent.listResources();
94
- return ctx.json({ ok: true, resources: Object.values(resources) });
101
+ return ctx.json(
102
+ ListResourcesResponseSchema.parse({
103
+ ok: true,
104
+ resources: toJsonValue(Object.values(resources))
105
+ }),
106
+ 200
107
+ );
95
108
  }).openapi(getContentRoute, async (ctx) => {
96
109
  const agent = await getAgent(ctx);
97
110
  const { resourceId } = ctx.req.valid("param");
98
111
  const content = await agent.readResource(resourceId);
99
- return ctx.json({ ok: true, content });
112
+ return ctx.json(
113
+ ReadResourceResponseSchema.parse({
114
+ ok: true,
115
+ content: toJsonValue(content)
116
+ }),
117
+ 200
118
+ );
100
119
  }).openapi(headRoute, async (ctx) => {
101
120
  const agent = await getAgent(ctx);
102
121
  const { resourceId } = ctx.req.valid("param");