@dexto/server 1.6.20 → 1.6.22

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 (133) 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/approval/wire-approval-events.cjs +44 -0
  6. package/dist/approval/wire-approval-events.d.ts +4 -0
  7. package/dist/approval/wire-approval-events.d.ts.map +1 -0
  8. package/dist/approval/wire-approval-events.js +20 -0
  9. package/dist/events/session-sse-subscriber.cjs +167 -0
  10. package/dist/events/session-sse-subscriber.d.ts +13 -0
  11. package/dist/events/session-sse-subscriber.d.ts.map +1 -0
  12. package/dist/events/session-sse-subscriber.js +143 -0
  13. package/dist/hono/__tests__/test-fixtures.cjs +8 -0
  14. package/dist/hono/__tests__/test-fixtures.d.ts +1 -0
  15. package/dist/hono/__tests__/test-fixtures.d.ts.map +1 -1
  16. package/dist/hono/__tests__/test-fixtures.js +8 -0
  17. package/dist/hono/index.cjs +40 -8
  18. package/dist/hono/index.d.ts +45 -4531
  19. package/dist/hono/index.d.ts.map +1 -1
  20. package/dist/hono/index.js +43 -9
  21. package/dist/hono/node/index.cjs +51 -6
  22. package/dist/hono/node/index.d.ts.map +1 -1
  23. package/dist/hono/node/index.js +51 -6
  24. package/dist/hono/routes/a2a-jsonrpc.d.ts.map +1 -1
  25. package/dist/hono/routes/a2a-tasks.cjs +158 -32
  26. package/dist/hono/routes/a2a-tasks.d.ts +1 -502
  27. package/dist/hono/routes/a2a-tasks.d.ts.map +1 -1
  28. package/dist/hono/routes/a2a-tasks.js +162 -32
  29. package/dist/hono/routes/a2a.d.ts.map +1 -1
  30. package/dist/hono/routes/agents.cjs +410 -329
  31. package/dist/hono/routes/agents.d.ts +16043 -68
  32. package/dist/hono/routes/agents.d.ts.map +1 -1
  33. package/dist/hono/routes/agents.js +418 -330
  34. package/dist/hono/routes/approvals.cjs +102 -88
  35. package/dist/hono/routes/approvals.d.ts +2089 -142
  36. package/dist/hono/routes/approvals.d.ts.map +1 -1
  37. package/dist/hono/routes/approvals.js +108 -89
  38. package/dist/hono/routes/dexto-auth.cjs +40 -33
  39. package/dist/hono/routes/dexto-auth.d.ts +401 -2
  40. package/dist/hono/routes/dexto-auth.d.ts.map +1 -1
  41. package/dist/hono/routes/dexto-auth.js +40 -33
  42. package/dist/hono/routes/discovery.cjs +16 -14
  43. package/dist/hono/routes/discovery.d.ts +586 -1
  44. package/dist/hono/routes/discovery.d.ts.map +1 -1
  45. package/dist/hono/routes/discovery.js +16 -14
  46. package/dist/hono/routes/greeting.cjs +26 -22
  47. package/dist/hono/routes/greeting.d.ts +787 -3
  48. package/dist/hono/routes/greeting.d.ts.map +1 -1
  49. package/dist/hono/routes/greeting.js +26 -22
  50. package/dist/hono/routes/health.d.ts +1 -1
  51. package/dist/hono/routes/key.cjs +60 -52
  52. package/dist/hono/routes/key.d.ts +1597 -1
  53. package/dist/hono/routes/key.d.ts.map +1 -1
  54. package/dist/hono/routes/key.js +60 -52
  55. package/dist/hono/routes/llm.cjs +382 -349
  56. package/dist/hono/routes/llm.d.ts +12148 -98
  57. package/dist/hono/routes/llm.d.ts.map +1 -1
  58. package/dist/hono/routes/llm.js +386 -349
  59. package/dist/hono/routes/mcp.cjs +257 -226
  60. package/dist/hono/routes/mcp.d.ts +6605 -309
  61. package/dist/hono/routes/mcp.d.ts.map +1 -1
  62. package/dist/hono/routes/mcp.js +263 -225
  63. package/dist/hono/routes/memory.cjs +102 -89
  64. package/dist/hono/routes/memory.d.ts +5368 -4
  65. package/dist/hono/routes/memory.d.ts.map +1 -1
  66. package/dist/hono/routes/memory.js +108 -90
  67. package/dist/hono/routes/messages.cjs +189 -191
  68. package/dist/hono/routes/messages.d.ts +3900 -12
  69. package/dist/hono/routes/messages.d.ts.map +1 -1
  70. package/dist/hono/routes/messages.js +192 -191
  71. package/dist/hono/routes/models.cjs +106 -64
  72. package/dist/hono/routes/models.d.ts +2875 -2
  73. package/dist/hono/routes/models.d.ts.map +1 -1
  74. package/dist/hono/routes/models.js +108 -64
  75. package/dist/hono/routes/openrouter.cjs +79 -65
  76. package/dist/hono/routes/openrouter.d.ts +854 -1
  77. package/dist/hono/routes/openrouter.d.ts.map +1 -1
  78. package/dist/hono/routes/openrouter.js +79 -65
  79. package/dist/hono/routes/prompts.cjs +136 -109
  80. package/dist/hono/routes/prompts.d.ts +2818 -10
  81. package/dist/hono/routes/prompts.d.ts.map +1 -1
  82. package/dist/hono/routes/prompts.js +138 -109
  83. package/dist/hono/routes/queue.cjs +133 -120
  84. package/dist/hono/routes/queue.d.ts +5240 -11
  85. package/dist/hono/routes/queue.d.ts.map +1 -1
  86. package/dist/hono/routes/queue.js +136 -120
  87. package/dist/hono/routes/resources.cjs +65 -46
  88. package/dist/hono/routes/resources.d.ts +1983 -5
  89. package/dist/hono/routes/resources.d.ts.map +1 -1
  90. package/dist/hono/routes/resources.js +72 -47
  91. package/dist/hono/routes/schedules.cjs +233 -226
  92. package/dist/hono/routes/schedules.d.ts +4198 -22
  93. package/dist/hono/routes/schedules.d.ts.map +1 -1
  94. package/dist/hono/routes/schedules.js +233 -226
  95. package/dist/hono/routes/search.cjs +34 -30
  96. package/dist/hono/routes/search.d.ts +3094 -17
  97. package/dist/hono/routes/search.d.ts.map +1 -1
  98. package/dist/hono/routes/search.js +40 -31
  99. package/dist/hono/routes/sessions.cjs +491 -393
  100. package/dist/hono/routes/sessions.d.ts +18263 -65
  101. package/dist/hono/routes/sessions.d.ts.map +1 -1
  102. package/dist/hono/routes/sessions.js +497 -395
  103. package/dist/hono/routes/static.d.ts.map +1 -1
  104. package/dist/hono/routes/system-prompt.cjs +57 -61
  105. package/dist/hono/routes/system-prompt.d.ts +1228 -2
  106. package/dist/hono/routes/system-prompt.d.ts.map +1 -1
  107. package/dist/hono/routes/system-prompt.js +58 -62
  108. package/dist/hono/routes/tools.cjs +29 -34
  109. package/dist/hono/routes/tools.d.ts +1755 -6
  110. package/dist/hono/routes/tools.d.ts.map +1 -1
  111. package/dist/hono/routes/tools.js +33 -33
  112. package/dist/hono/routes/webhooks.cjs +115 -123
  113. package/dist/hono/routes/webhooks.d.ts +2501 -11
  114. package/dist/hono/routes/webhooks.d.ts.map +1 -1
  115. package/dist/hono/routes/webhooks.js +120 -124
  116. package/dist/hono/routes/workspaces.cjs +84 -79
  117. package/dist/hono/routes/workspaces.d.ts +2093 -2
  118. package/dist/hono/routes/workspaces.d.ts.map +1 -1
  119. package/dist/hono/routes/workspaces.js +89 -80
  120. package/dist/hono/schemas/responses.cjs +463 -260
  121. package/dist/hono/schemas/responses.d.ts +1893 -209
  122. package/dist/hono/schemas/responses.d.ts.map +1 -1
  123. package/dist/hono/schemas/responses.js +203 -14
  124. package/dist/hono/start-server.cjs +9 -0
  125. package/dist/hono/start-server.d.ts.map +1 -1
  126. package/dist/hono/start-server.js +9 -0
  127. package/dist/hono/types.d.ts +11 -0
  128. package/dist/hono/types.d.ts.map +1 -1
  129. package/dist/index.cjs +5 -1
  130. package/dist/index.d.ts +2 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +2 -0
  133. package/package.json +7 -7
@@ -26,7 +26,9 @@ var import_core = require("@dexto/core");
26
26
  var import_responses = require("../schemas/responses.js");
27
27
  const ApprovalBodySchema = import_zod_openapi.z.object({
28
28
  status: import_zod_openapi.z.enum([import_core.ApprovalStatus.APPROVED, import_core.ApprovalStatus.DENIED, import_core.ApprovalStatus.CANCELLED]).describe("The user decision"),
29
- formData: import_zod_openapi.z.record(import_zod_openapi.z.unknown()).optional().describe("Optional form data provided by the user (for elicitation)"),
29
+ formData: import_responses.JsonObjectSchema.optional().describe(
30
+ "Optional form data provided by the user (for elicitation)"
31
+ ),
30
32
  rememberChoice: import_zod_openapi.z.boolean().optional().describe("Whether to remember this choice for future requests"),
31
33
  rememberPattern: import_zod_openapi.z.string().optional().describe("Optional approval pattern to remember for future requests"),
32
34
  rememberDirectory: import_zod_openapi.z.boolean().optional().describe("Whether to remember the approved directory for future requests"),
@@ -111,98 +113,111 @@ const PendingApprovalSchema = import_zod_openapi.z.object({
111
113
  sessionId: import_zod_openapi.z.string().optional().describe("The session ID if applicable"),
112
114
  timeout: import_zod_openapi.z.number().optional().describe("Timeout in milliseconds"),
113
115
  timestamp: import_zod_openapi.z.string().describe("ISO timestamp when the request was created"),
114
- metadata: import_zod_openapi.z.record(import_zod_openapi.z.unknown()).describe("Type-specific metadata")
116
+ metadata: import_responses.JsonObjectSchema.describe("Type-specific metadata for the pending approval")
115
117
  }).describe("A pending approval request");
116
118
  const PendingApprovalsResponseSchema = import_zod_openapi.z.object({
117
119
  ok: import_zod_openapi.z.literal(true).describe("Success indicator"),
118
120
  approvals: import_zod_openapi.z.array(PendingApprovalSchema).describe("List of pending approval requests")
119
121
  }).describe("Response containing pending approval requests");
120
- function createApprovalsRouter(getAgent, approvalCoordinator) {
121
- const app = new import_zod_openapi.OpenAPIHono();
122
- const getPendingApprovalsRoute = (0, import_zod_openapi.createRoute)({
123
- method: "get",
124
- path: "/approvals",
125
- summary: "Get Pending Approvals",
126
- description: "Fetch all pending approval requests for a session. Use this to restore UI state after page refresh.",
127
- tags: ["approvals"],
128
- request: {
129
- query: import_zod_openapi.z.object({
130
- sessionId: import_zod_openapi.z.string().describe("The session ID to fetch pending approvals for")
131
- })
132
- },
133
- responses: {
134
- 200: {
135
- description: "List of pending approval requests",
136
- content: {
137
- "application/json": {
138
- schema: PendingApprovalsResponseSchema
139
- }
122
+ const GetPendingApprovalsQuerySchema = import_zod_openapi.z.object({
123
+ sessionId: import_zod_openapi.z.string().describe("The session ID to fetch pending approvals for")
124
+ }).describe("Query parameters for fetching pending approvals");
125
+ const ApprovalIdParamSchema = import_zod_openapi.z.object({
126
+ approvalId: import_zod_openapi.z.string().describe("The ID of the approval request")
127
+ }).describe("Approval identifier params");
128
+ const ApprovalHeadersSchema = import_zod_openapi.z.object({
129
+ "Idempotency-Key": import_zod_openapi.z.string().optional().describe("Optional key to ensure idempotent processing")
130
+ }).describe("Approval request headers");
131
+ const getPendingApprovalsRoute = (0, import_zod_openapi.createRoute)({
132
+ method: "get",
133
+ path: "/approvals",
134
+ summary: "Get Pending Approvals",
135
+ description: "Fetch all pending approval requests for a session. Use this to restore UI state after page refresh.",
136
+ tags: ["approvals"],
137
+ request: {
138
+ query: GetPendingApprovalsQuerySchema
139
+ },
140
+ responses: {
141
+ 200: {
142
+ description: "List of pending approval requests",
143
+ content: {
144
+ "application/json": {
145
+ schema: PendingApprovalsResponseSchema
140
146
  }
141
147
  }
142
- }
143
- });
144
- const submitApprovalRoute = (0, import_zod_openapi.createRoute)({
145
- method: "post",
146
- path: "/approvals/{approvalId}",
147
- summary: "Submit Approval Decision",
148
- description: "Submit a user decision for a pending approval request",
149
- tags: ["approvals"],
150
- request: {
151
- params: import_zod_openapi.z.object({
152
- approvalId: import_zod_openapi.z.string().describe("The ID of the approval request")
153
- }),
154
- body: {
155
- content: { "application/json": { schema: ApprovalBodySchema } }
156
- },
157
- headers: import_zod_openapi.z.object({
158
- "Idempotency-Key": import_zod_openapi.z.string().optional().describe("Optional key to ensure idempotent processing")
159
- })
160
148
  },
161
- responses: {
162
- 200: {
163
- description: "Approval processed successfully",
164
- content: {
165
- "application/json": {
166
- schema: ApprovalResponseSchema
167
- }
149
+ 400: import_responses.BadRequestErrorResponse,
150
+ 500: import_responses.InternalErrorResponse
151
+ }
152
+ });
153
+ const submitApprovalRoute = (0, import_zod_openapi.createRoute)({
154
+ method: "post",
155
+ path: "/approvals/{approvalId}",
156
+ summary: "Submit Approval Decision",
157
+ description: "Submit a user decision for a pending approval request",
158
+ tags: ["approvals"],
159
+ request: {
160
+ params: ApprovalIdParamSchema,
161
+ body: {
162
+ content: { "application/json": { schema: ApprovalBodySchema } }
163
+ },
164
+ headers: ApprovalHeadersSchema
165
+ },
166
+ responses: {
167
+ 200: {
168
+ description: "Approval processed successfully",
169
+ content: {
170
+ "application/json": {
171
+ schema: ApprovalResponseSchema
168
172
  }
169
- },
170
- 404: {
171
- description: "Approval request not found or expired",
172
- content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
173
- },
174
- 400: {
175
- description: "Validation error",
176
- content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
177
- },
178
- 503: {
179
- description: "Approval coordinator unavailable (server not initialized for approvals)",
180
- content: { "application/json": { schema: ApprovalResponseSchema } }
181
- },
182
- 500: {
183
- description: "Approval processing failed",
184
- content: { "application/json": { schema: ApprovalResponseSchema } }
185
173
  }
174
+ },
175
+ 404: {
176
+ description: "Approval request not found or expired",
177
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
178
+ },
179
+ 400: {
180
+ description: "Validation error",
181
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
182
+ },
183
+ 503: {
184
+ description: "Approval coordinator unavailable (server not initialized for approvals)",
185
+ content: { "application/json": { schema: ApprovalResponseSchema } }
186
+ },
187
+ 500: {
188
+ description: "Approval processing failed",
189
+ content: { "application/json": { schema: ApprovalResponseSchema } }
186
190
  }
187
- });
188
- return app.openapi(getPendingApprovalsRoute, async (ctx) => {
191
+ }
192
+ });
193
+ function mountApprovalsSubrouter(app, router) {
194
+ app.route("/", router);
195
+ }
196
+ function createApprovalsRouter(getAgent, approvalCoordinator) {
197
+ const app = new import_zod_openapi.OpenAPIHono();
198
+ const getPendingApprovalsRouter = new import_zod_openapi.OpenAPIHono();
199
+ getPendingApprovalsRouter.openapi(getPendingApprovalsRoute, async (ctx) => {
189
200
  const agent = await getAgent(ctx);
190
201
  const { sessionId } = ctx.req.valid("query");
191
202
  agent.logger.debug(`Fetching pending approvals for session ${sessionId}`);
192
- const pendingIds = agent.services.approvalManager.getPendingApprovals();
193
- const approvals = pendingIds.map((approvalId) => ({
194
- approvalId,
195
- type: "tool_confirmation",
196
- // Default type
197
- sessionId,
198
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
199
- metadata: {}
203
+ const approvals = agent.services.approvalManager.getPendingApprovalRequests().filter((approvalRequest) => approvalRequest.sessionId === sessionId).map((approvalRequest) => ({
204
+ approvalId: approvalRequest.approvalId,
205
+ type: approvalRequest.type,
206
+ sessionId: approvalRequest.sessionId,
207
+ timeout: approvalRequest.timeout,
208
+ timestamp: approvalRequest.timestamp.toISOString(),
209
+ metadata: import_responses.JsonObjectSchema.parse(approvalRequest.metadata)
200
210
  }));
201
- return ctx.json({
202
- ok: true,
203
- approvals
204
- });
205
- }).openapi(submitApprovalRoute, async (ctx) => {
211
+ return ctx.json(
212
+ {
213
+ ok: true,
214
+ approvals
215
+ },
216
+ 200
217
+ );
218
+ });
219
+ const submitApprovalRouter = new import_zod_openapi.OpenAPIHono();
220
+ submitApprovalRouter.openapi(submitApprovalRoute, async (ctx) => {
206
221
  const agent = await getAgent(ctx);
207
222
  const { approvalId } = ctx.req.valid("param");
208
223
  const {
@@ -217,7 +232,8 @@ function createApprovalsRouter(getAgent, approvalCoordinator) {
217
232
  agent.logger.info(`Received approval decision for ${approvalId}: ${status}`);
218
233
  if (!approvalCoordinator) {
219
234
  agent.logger.error("ApprovalCoordinator not available");
220
- return ctx.json({ ok: false, approvalId, status }, 503);
235
+ const response = { ok: false, approvalId, status };
236
+ return ctx.json(response, 503);
221
237
  }
222
238
  const pendingApprovals = agent.services.approvalManager.getPendingApprovals();
223
239
  if (!pendingApprovals.includes(approvalId)) {
@@ -255,19 +271,17 @@ function createApprovalsRouter(getAgent, approvalCoordinator) {
255
271
  ...Object.keys(data).length > 0 ? { data } : {}
256
272
  };
257
273
  approvalCoordinator.emitResponse(responsePayload);
258
- return ctx.json(
259
- {
260
- ok: true,
261
- approvalId,
262
- status
263
- },
264
- 200
265
- );
274
+ const response = { ok: true, approvalId, status };
275
+ return ctx.json(response, 200);
266
276
  } catch (error) {
267
277
  agent.logger.error("Error processing approval", { approvalId, error });
268
- return ctx.json({ ok: false, approvalId, status }, 500);
278
+ const response = { ok: false, approvalId, status };
279
+ return ctx.json(response, 500);
269
280
  }
270
281
  });
282
+ mountApprovalsSubrouter(app, getPendingApprovalsRouter);
283
+ mountApprovalsSubrouter(app, submitApprovalRouter);
284
+ return app;
271
285
  }
272
286
  // Annotate the CommonJS export names for ESM import in node:
273
287
  0 && (module.exports = {