@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.
- package/dist/a2a/jsonrpc/methods.cjs +1 -1
- package/dist/a2a/jsonrpc/methods.d.ts +14 -4
- package/dist/a2a/jsonrpc/methods.d.ts.map +1 -1
- package/dist/a2a/jsonrpc/methods.js +1 -1
- package/dist/approval/wire-approval-events.cjs +44 -0
- package/dist/approval/wire-approval-events.d.ts +4 -0
- package/dist/approval/wire-approval-events.d.ts.map +1 -0
- package/dist/approval/wire-approval-events.js +20 -0
- package/dist/events/session-sse-subscriber.cjs +167 -0
- package/dist/events/session-sse-subscriber.d.ts +13 -0
- package/dist/events/session-sse-subscriber.d.ts.map +1 -0
- package/dist/events/session-sse-subscriber.js +143 -0
- package/dist/hono/__tests__/test-fixtures.cjs +8 -0
- package/dist/hono/__tests__/test-fixtures.d.ts +1 -0
- package/dist/hono/__tests__/test-fixtures.d.ts.map +1 -1
- package/dist/hono/__tests__/test-fixtures.js +8 -0
- package/dist/hono/index.cjs +40 -8
- package/dist/hono/index.d.ts +45 -4531
- package/dist/hono/index.d.ts.map +1 -1
- package/dist/hono/index.js +43 -9
- package/dist/hono/node/index.cjs +51 -6
- package/dist/hono/node/index.d.ts.map +1 -1
- package/dist/hono/node/index.js +51 -6
- package/dist/hono/routes/a2a-jsonrpc.d.ts.map +1 -1
- package/dist/hono/routes/a2a-tasks.cjs +158 -32
- package/dist/hono/routes/a2a-tasks.d.ts +1 -502
- package/dist/hono/routes/a2a-tasks.d.ts.map +1 -1
- package/dist/hono/routes/a2a-tasks.js +162 -32
- package/dist/hono/routes/a2a.d.ts.map +1 -1
- package/dist/hono/routes/agents.cjs +410 -329
- package/dist/hono/routes/agents.d.ts +16043 -68
- package/dist/hono/routes/agents.d.ts.map +1 -1
- package/dist/hono/routes/agents.js +418 -330
- package/dist/hono/routes/approvals.cjs +102 -88
- package/dist/hono/routes/approvals.d.ts +2089 -142
- package/dist/hono/routes/approvals.d.ts.map +1 -1
- package/dist/hono/routes/approvals.js +108 -89
- package/dist/hono/routes/dexto-auth.cjs +40 -33
- package/dist/hono/routes/dexto-auth.d.ts +401 -2
- package/dist/hono/routes/dexto-auth.d.ts.map +1 -1
- package/dist/hono/routes/dexto-auth.js +40 -33
- package/dist/hono/routes/discovery.cjs +16 -14
- package/dist/hono/routes/discovery.d.ts +586 -1
- package/dist/hono/routes/discovery.d.ts.map +1 -1
- package/dist/hono/routes/discovery.js +16 -14
- package/dist/hono/routes/greeting.cjs +26 -22
- package/dist/hono/routes/greeting.d.ts +787 -3
- package/dist/hono/routes/greeting.d.ts.map +1 -1
- package/dist/hono/routes/greeting.js +26 -22
- package/dist/hono/routes/health.d.ts +1 -1
- package/dist/hono/routes/key.cjs +60 -52
- package/dist/hono/routes/key.d.ts +1597 -1
- package/dist/hono/routes/key.d.ts.map +1 -1
- package/dist/hono/routes/key.js +60 -52
- package/dist/hono/routes/llm.cjs +382 -349
- package/dist/hono/routes/llm.d.ts +12148 -98
- package/dist/hono/routes/llm.d.ts.map +1 -1
- package/dist/hono/routes/llm.js +386 -349
- package/dist/hono/routes/mcp.cjs +257 -226
- package/dist/hono/routes/mcp.d.ts +6605 -309
- package/dist/hono/routes/mcp.d.ts.map +1 -1
- package/dist/hono/routes/mcp.js +263 -225
- package/dist/hono/routes/memory.cjs +102 -89
- package/dist/hono/routes/memory.d.ts +5368 -4
- package/dist/hono/routes/memory.d.ts.map +1 -1
- package/dist/hono/routes/memory.js +108 -90
- package/dist/hono/routes/messages.cjs +189 -191
- package/dist/hono/routes/messages.d.ts +3900 -12
- package/dist/hono/routes/messages.d.ts.map +1 -1
- package/dist/hono/routes/messages.js +192 -191
- package/dist/hono/routes/models.cjs +106 -64
- package/dist/hono/routes/models.d.ts +2875 -2
- package/dist/hono/routes/models.d.ts.map +1 -1
- package/dist/hono/routes/models.js +108 -64
- package/dist/hono/routes/openrouter.cjs +79 -65
- package/dist/hono/routes/openrouter.d.ts +854 -1
- package/dist/hono/routes/openrouter.d.ts.map +1 -1
- package/dist/hono/routes/openrouter.js +79 -65
- package/dist/hono/routes/prompts.cjs +136 -109
- package/dist/hono/routes/prompts.d.ts +2818 -10
- package/dist/hono/routes/prompts.d.ts.map +1 -1
- package/dist/hono/routes/prompts.js +138 -109
- package/dist/hono/routes/queue.cjs +133 -120
- package/dist/hono/routes/queue.d.ts +5240 -11
- package/dist/hono/routes/queue.d.ts.map +1 -1
- package/dist/hono/routes/queue.js +136 -120
- package/dist/hono/routes/resources.cjs +65 -46
- package/dist/hono/routes/resources.d.ts +1983 -5
- package/dist/hono/routes/resources.d.ts.map +1 -1
- package/dist/hono/routes/resources.js +72 -47
- package/dist/hono/routes/schedules.cjs +233 -226
- package/dist/hono/routes/schedules.d.ts +4198 -22
- package/dist/hono/routes/schedules.d.ts.map +1 -1
- package/dist/hono/routes/schedules.js +233 -226
- package/dist/hono/routes/search.cjs +34 -30
- package/dist/hono/routes/search.d.ts +3094 -17
- package/dist/hono/routes/search.d.ts.map +1 -1
- package/dist/hono/routes/search.js +40 -31
- package/dist/hono/routes/sessions.cjs +491 -393
- package/dist/hono/routes/sessions.d.ts +18263 -65
- package/dist/hono/routes/sessions.d.ts.map +1 -1
- package/dist/hono/routes/sessions.js +497 -395
- package/dist/hono/routes/static.d.ts.map +1 -1
- package/dist/hono/routes/system-prompt.cjs +57 -61
- package/dist/hono/routes/system-prompt.d.ts +1228 -2
- package/dist/hono/routes/system-prompt.d.ts.map +1 -1
- package/dist/hono/routes/system-prompt.js +58 -62
- package/dist/hono/routes/tools.cjs +29 -34
- package/dist/hono/routes/tools.d.ts +1755 -6
- package/dist/hono/routes/tools.d.ts.map +1 -1
- package/dist/hono/routes/tools.js +33 -33
- package/dist/hono/routes/webhooks.cjs +115 -123
- package/dist/hono/routes/webhooks.d.ts +2501 -11
- package/dist/hono/routes/webhooks.d.ts.map +1 -1
- package/dist/hono/routes/webhooks.js +120 -124
- package/dist/hono/routes/workspaces.cjs +84 -79
- package/dist/hono/routes/workspaces.d.ts +2093 -2
- package/dist/hono/routes/workspaces.d.ts.map +1 -1
- package/dist/hono/routes/workspaces.js +89 -80
- package/dist/hono/schemas/responses.cjs +463 -260
- package/dist/hono/schemas/responses.d.ts +1893 -209
- package/dist/hono/schemas/responses.d.ts.map +1 -1
- package/dist/hono/schemas/responses.js +203 -14
- package/dist/hono/start-server.cjs +9 -0
- package/dist/hono/start-server.d.ts.map +1 -1
- package/dist/hono/start-server.js +9 -0
- package/dist/hono/types.d.ts +11 -0
- package/dist/hono/types.d.ts.map +1 -1
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- 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:
|
|
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:
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
|
|
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
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 = {
|