@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
|
@@ -35,6 +35,27 @@ const CreateScheduleSchema = import_zod_openapi.z.object({
|
|
|
35
35
|
workspacePath: import_zod_openapi.z.string().optional().nullable().describe("Optional workspace path for scheduled runs")
|
|
36
36
|
}).strict().describe("Request body for creating a schedule");
|
|
37
37
|
const UpdateScheduleSchema = CreateScheduleSchema.partial().strict().describe("Request body for updating a schedule");
|
|
38
|
+
const ListSchedulesResponseSchema = import_zod_openapi.z.object({
|
|
39
|
+
schedules: import_zod_openapi.z.array(import_responses.ScheduleSchema).describe("Schedule list")
|
|
40
|
+
}).strict().describe("List schedules response");
|
|
41
|
+
const CreateScheduleResponseSchema = import_zod_openapi.z.object({
|
|
42
|
+
schedule: import_responses.ScheduleSchema
|
|
43
|
+
}).strict().describe("Create schedule response");
|
|
44
|
+
const UpdateScheduleResponseSchema = import_zod_openapi.z.object({
|
|
45
|
+
schedule: import_responses.ScheduleSchema
|
|
46
|
+
}).strict().describe("Update schedule response");
|
|
47
|
+
const DeleteScheduleResponseSchema = import_zod_openapi.z.object({
|
|
48
|
+
deleted: import_zod_openapi.z.boolean().describe("Whether the schedule was deleted")
|
|
49
|
+
}).strict().describe("Delete schedule response");
|
|
50
|
+
const TriggerScheduleResponseSchema = import_zod_openapi.z.object({
|
|
51
|
+
scheduled: import_zod_openapi.z.boolean().describe("Whether the schedule was queued. Execution is omitted when false."),
|
|
52
|
+
execution: import_responses.ExecutionLogSchema.optional().describe(
|
|
53
|
+
"Execution log (present when scheduled is true)"
|
|
54
|
+
)
|
|
55
|
+
}).strict().describe("Trigger schedule response");
|
|
56
|
+
const ScheduleIdParamSchema = import_zod_openapi.z.object({
|
|
57
|
+
scheduleId: import_zod_openapi.z.string().min(1).describe("Schedule ID")
|
|
58
|
+
}).strict().describe("Schedule identifier params");
|
|
38
59
|
const isScheduleNotFoundError = (error) => error instanceof import_core.DextoRuntimeError && error.type === import_core.ErrorType.NOT_FOUND && error.code === import_tools_scheduler.SchedulerErrorCode.SCHEDULE_NOT_FOUND;
|
|
39
60
|
const logSchedulerError = (agent, message, error) => {
|
|
40
61
|
if (!agent?.logger) {
|
|
@@ -53,258 +74,241 @@ const toErrorResponse = (message, code) => ({
|
|
|
53
74
|
...code ? { code } : {}
|
|
54
75
|
}
|
|
55
76
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
method: "get",
|
|
69
|
-
path: "/schedules",
|
|
70
|
-
summary: "List Schedules",
|
|
71
|
-
description: "Retrieves all automation schedules",
|
|
72
|
-
tags: ["schedules"],
|
|
73
|
-
responses: {
|
|
74
|
-
200: {
|
|
75
|
-
description: "List of schedules",
|
|
76
|
-
content: {
|
|
77
|
-
"application/json": {
|
|
78
|
-
schema: import_zod_openapi.z.object({
|
|
79
|
-
schedules: import_zod_openapi.z.array(import_responses.ScheduleSchema).describe("Schedule list")
|
|
80
|
-
}).strict()
|
|
81
|
-
}
|
|
77
|
+
const listRoute = (0, import_zod_openapi.createRoute)({
|
|
78
|
+
method: "get",
|
|
79
|
+
path: "/schedules",
|
|
80
|
+
summary: "List Schedules",
|
|
81
|
+
description: "Retrieves all automation schedules",
|
|
82
|
+
tags: ["schedules"],
|
|
83
|
+
responses: {
|
|
84
|
+
200: {
|
|
85
|
+
description: "List of schedules",
|
|
86
|
+
content: {
|
|
87
|
+
"application/json": {
|
|
88
|
+
schema: ListSchedulesResponseSchema
|
|
82
89
|
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
500: {
|
|
93
|
+
description: "Failed to list schedules",
|
|
94
|
+
content: {
|
|
95
|
+
"application/json": {
|
|
96
|
+
schema: import_responses.ErrorResponseSchema
|
|
90
97
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
503: {
|
|
101
|
+
description: "Scheduler tools are not enabled",
|
|
102
|
+
content: {
|
|
103
|
+
"application/json": {
|
|
104
|
+
schema: import_responses.ErrorResponseSchema
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
const createRouteDef = (0, import_zod_openapi.createRoute)({
|
|
111
|
+
method: "post",
|
|
112
|
+
path: "/schedules",
|
|
113
|
+
summary: "Create Schedule",
|
|
114
|
+
description: "Creates a new automation schedule",
|
|
115
|
+
tags: ["schedules"],
|
|
116
|
+
request: { body: { content: { "application/json": { schema: CreateScheduleSchema } } } },
|
|
117
|
+
responses: {
|
|
118
|
+
201: {
|
|
119
|
+
description: "Created schedule",
|
|
120
|
+
content: {
|
|
121
|
+
"application/json": {
|
|
122
|
+
schema: CreateScheduleResponseSchema
|
|
116
123
|
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
400: {
|
|
127
|
+
description: "Validation error",
|
|
128
|
+
content: {
|
|
129
|
+
"application/json": {
|
|
130
|
+
schema: import_responses.ErrorResponseSchema
|
|
124
131
|
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
429: {
|
|
135
|
+
description: "Schedule limit reached",
|
|
136
|
+
content: {
|
|
137
|
+
"application/json": {
|
|
138
|
+
schema: import_responses.ErrorResponseSchema
|
|
132
139
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
500: {
|
|
143
|
+
description: "Failed to create schedule",
|
|
144
|
+
content: {
|
|
145
|
+
"application/json": {
|
|
146
|
+
schema: import_responses.ErrorResponseSchema
|
|
140
147
|
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
503: {
|
|
151
|
+
description: "Scheduler tools are not enabled",
|
|
152
|
+
content: {
|
|
153
|
+
"application/json": {
|
|
154
|
+
schema: import_responses.ErrorResponseSchema
|
|
148
155
|
}
|
|
149
156
|
}
|
|
150
157
|
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
schema: import_zod_openapi.z.object({ schedule: import_responses.ScheduleSchema }).strict()
|
|
170
|
-
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
const updateRoute = (0, import_zod_openapi.createRoute)({
|
|
161
|
+
method: "patch",
|
|
162
|
+
path: "/schedules/{scheduleId}",
|
|
163
|
+
summary: "Update Schedule",
|
|
164
|
+
description: "Updates an existing schedule",
|
|
165
|
+
tags: ["schedules"],
|
|
166
|
+
request: {
|
|
167
|
+
params: ScheduleIdParamSchema,
|
|
168
|
+
body: { content: { "application/json": { schema: UpdateScheduleSchema } } }
|
|
169
|
+
},
|
|
170
|
+
responses: {
|
|
171
|
+
200: {
|
|
172
|
+
description: "Updated schedule",
|
|
173
|
+
content: {
|
|
174
|
+
"application/json": {
|
|
175
|
+
schema: UpdateScheduleResponseSchema
|
|
171
176
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
400: {
|
|
180
|
+
description: "Validation error",
|
|
181
|
+
content: {
|
|
182
|
+
"application/json": {
|
|
183
|
+
schema: import_responses.ErrorResponseSchema
|
|
179
184
|
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
404: {
|
|
188
|
+
description: "Schedule not found",
|
|
189
|
+
content: {
|
|
190
|
+
"application/json": {
|
|
191
|
+
schema: import_responses.ErrorResponseSchema
|
|
187
192
|
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
500: {
|
|
196
|
+
description: "Failed to update schedule",
|
|
197
|
+
content: {
|
|
198
|
+
"application/json": {
|
|
199
|
+
schema: import_responses.ErrorResponseSchema
|
|
195
200
|
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
503: {
|
|
204
|
+
description: "Scheduler tools are not enabled",
|
|
205
|
+
content: {
|
|
206
|
+
"application/json": {
|
|
207
|
+
schema: import_responses.ErrorResponseSchema
|
|
203
208
|
}
|
|
204
209
|
}
|
|
205
210
|
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
schema: import_zod_openapi.z.object({
|
|
224
|
-
deleted: import_zod_openapi.z.boolean().describe("Whether the schedule was deleted")
|
|
225
|
-
}).strict().describe("Delete schedule response")
|
|
226
|
-
}
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
const deleteRoute = (0, import_zod_openapi.createRoute)({
|
|
214
|
+
method: "delete",
|
|
215
|
+
path: "/schedules/{scheduleId}",
|
|
216
|
+
summary: "Delete Schedule",
|
|
217
|
+
description: "Deletes an automation schedule",
|
|
218
|
+
tags: ["schedules"],
|
|
219
|
+
request: {
|
|
220
|
+
params: ScheduleIdParamSchema
|
|
221
|
+
},
|
|
222
|
+
responses: {
|
|
223
|
+
200: {
|
|
224
|
+
description: "Schedule deleted",
|
|
225
|
+
content: {
|
|
226
|
+
"application/json": {
|
|
227
|
+
schema: DeleteScheduleResponseSchema
|
|
227
228
|
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
404: {
|
|
232
|
+
description: "Schedule not found",
|
|
233
|
+
content: {
|
|
234
|
+
"application/json": {
|
|
235
|
+
schema: import_responses.ErrorResponseSchema
|
|
235
236
|
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
500: {
|
|
240
|
+
description: "Failed to delete schedule",
|
|
241
|
+
content: {
|
|
242
|
+
"application/json": {
|
|
243
|
+
schema: import_responses.ErrorResponseSchema
|
|
243
244
|
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
503: {
|
|
248
|
+
description: "Scheduler tools are not enabled",
|
|
249
|
+
content: {
|
|
250
|
+
"application/json": {
|
|
251
|
+
schema: import_responses.ErrorResponseSchema
|
|
251
252
|
}
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
schema: import_zod_openapi.z.object({
|
|
272
|
-
scheduled: import_zod_openapi.z.boolean().describe(
|
|
273
|
-
"Whether the schedule was queued. Execution is omitted when false."
|
|
274
|
-
),
|
|
275
|
-
execution: import_responses.ExecutionLogSchema.optional().describe(
|
|
276
|
-
"Execution log (present when scheduled is true)"
|
|
277
|
-
)
|
|
278
|
-
}).strict().describe("Trigger schedule response")
|
|
279
|
-
}
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
const triggerRoute = (0, import_zod_openapi.createRoute)({
|
|
258
|
+
method: "post",
|
|
259
|
+
path: "/schedules/{scheduleId}/trigger",
|
|
260
|
+
summary: "Trigger Schedule",
|
|
261
|
+
description: "Runs a schedule immediately and waits for execution to complete (bounded by executionTimeout, default 5 minutes). Clients should set timeouts accordingly.",
|
|
262
|
+
tags: ["schedules"],
|
|
263
|
+
request: {
|
|
264
|
+
params: ScheduleIdParamSchema
|
|
265
|
+
},
|
|
266
|
+
responses: {
|
|
267
|
+
200: {
|
|
268
|
+
description: "Schedule triggered",
|
|
269
|
+
content: {
|
|
270
|
+
"application/json": {
|
|
271
|
+
schema: TriggerScheduleResponseSchema
|
|
280
272
|
}
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
404: {
|
|
276
|
+
description: "Schedule not found",
|
|
277
|
+
content: {
|
|
278
|
+
"application/json": {
|
|
279
|
+
schema: import_responses.ErrorResponseSchema
|
|
288
280
|
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
500: {
|
|
284
|
+
description: "Failed to trigger schedule",
|
|
285
|
+
content: {
|
|
286
|
+
"application/json": {
|
|
287
|
+
schema: import_responses.ErrorResponseSchema
|
|
296
288
|
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
503: {
|
|
292
|
+
description: "Scheduler tools are not enabled",
|
|
293
|
+
content: {
|
|
294
|
+
"application/json": {
|
|
295
|
+
schema: import_responses.ErrorResponseSchema
|
|
304
296
|
}
|
|
305
297
|
}
|
|
306
298
|
}
|
|
307
|
-
}
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
function createSchedulesRouter(getAgent) {
|
|
302
|
+
const app = new import_zod_openapi.OpenAPIHono();
|
|
303
|
+
const resolveScheduler = async (ctx) => {
|
|
304
|
+
const agent = await getAgent(ctx);
|
|
305
|
+
const agentId = agent.config?.agentId ?? "default";
|
|
306
|
+
let scheduler = (0, import_service.getSchedulerManager)(agentId) ?? null;
|
|
307
|
+
if (!scheduler) {
|
|
308
|
+
scheduler = await (0, import_service.ensureSchedulerManagerForAgent)(agent);
|
|
309
|
+
}
|
|
310
|
+
return { scheduler, agent };
|
|
311
|
+
};
|
|
308
312
|
return app.openapi(listRoute, async (ctx) => {
|
|
309
313
|
const { scheduler, agent } = await resolveScheduler(ctx);
|
|
310
314
|
if (!scheduler) {
|
|
@@ -315,7 +319,7 @@ function createSchedulesRouter(getAgent) {
|
|
|
315
319
|
}
|
|
316
320
|
try {
|
|
317
321
|
const schedules = await scheduler.listSchedules();
|
|
318
|
-
return ctx.json({ schedules }, 200);
|
|
322
|
+
return ctx.json(ListSchedulesResponseSchema.parse({ schedules }), 200);
|
|
319
323
|
} catch (error) {
|
|
320
324
|
const message = error instanceof Error ? error.message : String(error ?? "Unknown error");
|
|
321
325
|
logSchedulerError(agent, "Failed to list schedules", error);
|
|
@@ -344,7 +348,7 @@ function createSchedulesRouter(getAgent) {
|
|
|
344
348
|
};
|
|
345
349
|
try {
|
|
346
350
|
const schedule = await scheduler.createSchedule(createPayload);
|
|
347
|
-
return ctx.json({ schedule }, 201);
|
|
351
|
+
return ctx.json(CreateScheduleResponseSchema.parse({ schedule }), 201);
|
|
348
352
|
} catch (error) {
|
|
349
353
|
if (error instanceof import_core.DextoRuntimeError && error.code === import_tools_scheduler.SchedulerErrorCode.SCHEDULE_INVALID_CRON) {
|
|
350
354
|
return ctx.json(toErrorResponse(error.message, String(error.code)), 400);
|
|
@@ -378,7 +382,7 @@ function createSchedulesRouter(getAgent) {
|
|
|
378
382
|
};
|
|
379
383
|
try {
|
|
380
384
|
const schedule = await scheduler.updateSchedule(scheduleId, updatePayload);
|
|
381
|
-
return ctx.json({ schedule }, 200);
|
|
385
|
+
return ctx.json(UpdateScheduleResponseSchema.parse({ schedule }), 200);
|
|
382
386
|
} catch (error) {
|
|
383
387
|
if (isScheduleNotFoundError(error)) {
|
|
384
388
|
return ctx.json(
|
|
@@ -409,7 +413,7 @@ function createSchedulesRouter(getAgent) {
|
|
|
409
413
|
const { scheduleId } = ctx.req.valid("param");
|
|
410
414
|
try {
|
|
411
415
|
await scheduler.deleteSchedule(scheduleId);
|
|
412
|
-
return ctx.json({ deleted: true }, 200);
|
|
416
|
+
return ctx.json(DeleteScheduleResponseSchema.parse({ deleted: true }), 200);
|
|
413
417
|
} catch (error) {
|
|
414
418
|
if (isScheduleNotFoundError(error)) {
|
|
415
419
|
return ctx.json(
|
|
@@ -434,7 +438,10 @@ function createSchedulesRouter(getAgent) {
|
|
|
434
438
|
const { scheduleId } = ctx.req.valid("param");
|
|
435
439
|
try {
|
|
436
440
|
const execution = await scheduler.triggerScheduleNow(scheduleId);
|
|
437
|
-
return ctx.json(
|
|
441
|
+
return ctx.json(
|
|
442
|
+
TriggerScheduleResponseSchema.parse({ scheduled: true, execution }),
|
|
443
|
+
200
|
|
444
|
+
);
|
|
438
445
|
} catch (error) {
|
|
439
446
|
if (isScheduleNotFoundError(error)) {
|
|
440
447
|
return ctx.json(
|