@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.
- 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/hono/index.cjs +39 -8
- package/dist/hono/index.d.ts +43 -4503
- package/dist/hono/index.d.ts.map +1 -1
- package/dist/hono/index.js +42 -9
- package/dist/hono/routes/a2a-jsonrpc.d.ts.map +1 -1
- package/dist/hono/routes/a2a-tasks.cjs +173 -34
- package/dist/hono/routes/a2a-tasks.d.ts +1 -498
- package/dist/hono/routes/a2a-tasks.d.ts.map +1 -1
- package/dist/hono/routes/a2a-tasks.js +177 -34
- 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 +16048 -73
- package/dist/hono/routes/agents.d.ts.map +1 -1
- package/dist/hono/routes/agents.js +418 -330
- package/dist/hono/routes/approvals.cjs +103 -78
- package/dist/hono/routes/approvals.d.ts +2090 -112
- package/dist/hono/routes/approvals.d.ts.map +1 -1
- package/dist/hono/routes/approvals.js +108 -78
- 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 +381 -348
- package/dist/hono/routes/llm.d.ts +12137 -87
- package/dist/hono/routes/llm.d.ts.map +1 -1
- package/dist/hono/routes/llm.js +385 -348
- package/dist/hono/routes/mcp.cjs +273 -212
- package/dist/hono/routes/mcp.d.ts +6605 -316
- package/dist/hono/routes/mcp.d.ts.map +1 -1
- package/dist/hono/routes/mcp.js +287 -213
- 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 +171 -164
- package/dist/hono/routes/messages.d.ts +3899 -10
- package/dist/hono/routes/messages.d.ts.map +1 -1
- package/dist/hono/routes/messages.js +181 -165
- package/dist/hono/routes/models.cjs +106 -64
- package/dist/hono/routes/models.d.ts +2874 -1
- 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 +137 -104
- package/dist/hono/routes/prompts.d.ts +2820 -12
- package/dist/hono/routes/prompts.d.ts.map +1 -1
- package/dist/hono/routes/prompts.js +144 -105
- package/dist/hono/routes/queue.cjs +158 -132
- package/dist/hono/routes/queue.d.ts +5148 -13
- package/dist/hono/routes/queue.d.ts.map +1 -1
- package/dist/hono/routes/queue.js +168 -133
- 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 +4202 -26
- 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 +2837 -14
- package/dist/hono/routes/search.d.ts.map +1 -1
- package/dist/hono/routes/search.js +40 -31
- package/dist/hono/routes/sessions.cjs +404 -392
- package/dist/hono/routes/sessions.d.ts +16585 -30
- package/dist/hono/routes/sessions.d.ts.map +1 -1
- package/dist/hono/routes/sessions.js +408 -393
- 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 +1756 -7
- package/dist/hono/routes/tools.d.ts.map +1 -1
- package/dist/hono/routes/tools.js +33 -33
- package/dist/hono/routes/webhooks.cjs +159 -132
- package/dist/hono/routes/webhooks.d.ts +2504 -14
- package/dist/hono/routes/webhooks.d.ts.map +1 -1
- package/dist/hono/routes/webhooks.js +163 -132
- 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 +492 -235
- package/dist/hono/schemas/responses.d.ts +1461 -146
- package/dist/hono/schemas/responses.d.ts.map +1 -1
- package/dist/hono/schemas/responses.js +247 -9
- package/dist/hono/types.d.ts +11 -0
- package/dist/hono/types.d.ts.map +1 -1
- 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,
|
|
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 {
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
90
|
-
|
|
133
|
+
404: {
|
|
134
|
+
description: "Prompt not found",
|
|
135
|
+
content: { "application/json": { schema: ApiErrorResponseSchema } }
|
|
91
136
|
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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:
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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 =
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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:
|