@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAQhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,QAAA,MAAM,yBAAyB;;;;;;EAOsB,CAAC;AAiCtD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBhB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiFrC;AAED,KAAK,mBAAmB,GAAG,kBAAkB,CACzC,OAAO,aAAa,EACpB;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;CAAE,CACvD,CAAC;AACF,KAAK,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC,CAAC;AAEtE,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC"}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
refreshOpenRouterModelCache,
|
|
6
6
|
getOpenRouterModelInfo
|
|
7
7
|
} from "@dexto/core";
|
|
8
|
+
import { BadRequestErrorResponse, InternalErrorResponse } from "../schemas/responses.js";
|
|
8
9
|
const ValidateModelParamsSchema = z.object({
|
|
9
10
|
modelId: z.string().min(1).describe("OpenRouter model ID to validate (e.g., anthropic/claude-3.5-sonnet)")
|
|
10
11
|
}).describe("Path parameters for model validation");
|
|
@@ -17,59 +18,63 @@ const ValidateModelResponseSchema = z.object({
|
|
|
17
18
|
contextLength: z.number().describe("Model context length in tokens")
|
|
18
19
|
}).optional().describe("Model information if valid")
|
|
19
20
|
}).describe("Model validation response");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
21
|
+
const RefreshSuccessResponseSchema = z.object({
|
|
22
|
+
ok: z.literal(true).describe("Success indicator"),
|
|
23
|
+
message: z.string().describe("Status message")
|
|
24
|
+
}).describe("OpenRouter cache refresh success response");
|
|
25
|
+
const RefreshFailureResponseSchema = z.object({
|
|
26
|
+
ok: z.literal(false).describe("Failure indicator"),
|
|
27
|
+
message: z.string().describe("Error message")
|
|
28
|
+
}).describe("OpenRouter cache refresh failure response");
|
|
29
|
+
const validateRoute = createRoute({
|
|
30
|
+
method: "get",
|
|
31
|
+
path: "/openrouter/validate/{modelId}",
|
|
32
|
+
summary: "Validate OpenRouter Model",
|
|
33
|
+
description: "Validates an OpenRouter model ID against the cached model registry. Refreshes cache if stale.",
|
|
34
|
+
tags: ["openrouter"],
|
|
35
|
+
request: {
|
|
36
|
+
params: ValidateModelParamsSchema
|
|
37
|
+
},
|
|
38
|
+
responses: {
|
|
39
|
+
200: {
|
|
40
|
+
description: "Validation result",
|
|
41
|
+
content: {
|
|
42
|
+
"application/json": {
|
|
43
|
+
schema: ValidateModelResponseSchema
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
46
|
+
},
|
|
47
|
+
400: BadRequestErrorResponse,
|
|
48
|
+
500: InternalErrorResponse
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const refreshRoute = createRoute({
|
|
52
|
+
method: "post",
|
|
53
|
+
path: "/openrouter/refresh-cache",
|
|
54
|
+
summary: "Refresh OpenRouter Model Cache",
|
|
55
|
+
description: "Forces a refresh of the OpenRouter model registry cache from the API.",
|
|
56
|
+
tags: ["openrouter"],
|
|
57
|
+
responses: {
|
|
58
|
+
200: {
|
|
59
|
+
description: "Cache refreshed successfully",
|
|
60
|
+
content: {
|
|
61
|
+
"application/json": {
|
|
62
|
+
schema: RefreshSuccessResponseSchema
|
|
58
63
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
message: z.string().describe("Error message")
|
|
67
|
-
})
|
|
68
|
-
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
500: {
|
|
67
|
+
description: "Cache refresh failed",
|
|
68
|
+
content: {
|
|
69
|
+
"application/json": {
|
|
70
|
+
schema: RefreshFailureResponseSchema
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
|
-
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
function createOpenRouterRouter() {
|
|
77
|
+
const app = new OpenAPIHono();
|
|
73
78
|
return app.openapi(validateRoute, async (ctx) => {
|
|
74
79
|
const { modelId: encodedModelId } = ctx.req.valid("param");
|
|
75
80
|
const modelId = decodeURIComponent(encodedModelId);
|
|
@@ -82,29 +87,38 @@ function createOpenRouterRouter() {
|
|
|
82
87
|
logger.warn(
|
|
83
88
|
`OpenRouter cache refresh failed during validation: ${error instanceof Error ? error.message : String(error)}`
|
|
84
89
|
);
|
|
85
|
-
return ctx.json(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
return ctx.json(
|
|
91
|
+
{
|
|
92
|
+
valid: false,
|
|
93
|
+
modelId,
|
|
94
|
+
status: "unknown",
|
|
95
|
+
error: "Could not validate model - cache refresh failed"
|
|
96
|
+
},
|
|
97
|
+
200
|
|
98
|
+
);
|
|
91
99
|
}
|
|
92
100
|
}
|
|
93
101
|
if (status === "invalid") {
|
|
94
|
-
return ctx.json(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
return ctx.json(
|
|
103
|
+
{
|
|
104
|
+
valid: false,
|
|
105
|
+
modelId,
|
|
106
|
+
status: "invalid",
|
|
107
|
+
error: `Model '${modelId}' not found in OpenRouter. Check the model ID at https://openrouter.ai/models`
|
|
108
|
+
},
|
|
109
|
+
200
|
|
110
|
+
);
|
|
100
111
|
}
|
|
101
112
|
const info = getOpenRouterModelInfo(modelId);
|
|
102
|
-
return ctx.json(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
113
|
+
return ctx.json(
|
|
114
|
+
{
|
|
115
|
+
valid: true,
|
|
116
|
+
modelId,
|
|
117
|
+
status: "valid",
|
|
118
|
+
...info && { info: { contextLength: info.contextLength } }
|
|
119
|
+
},
|
|
120
|
+
200
|
|
121
|
+
);
|
|
108
122
|
}).openapi(refreshRoute, async (ctx) => {
|
|
109
123
|
try {
|
|
110
124
|
await refreshOpenRouterModelCache();
|
|
@@ -49,129 +49,142 @@ const ResolvePromptQuerySchema = import_zod_openapi.z.object({
|
|
|
49
49
|
context: import_zod_openapi.z.string().optional().describe("Additional context for prompt resolution"),
|
|
50
50
|
args: import_zod_openapi.z.string().optional().describe("Arguments to substitute in the prompt template (pass as a JSON string)")
|
|
51
51
|
}).describe("Query parameters for resolving prompt templates");
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
52
|
+
const ListPromptsResponseSchema = import_zod_openapi.z.object({
|
|
53
|
+
prompts: import_zod_openapi.z.array(import_responses.PromptInfoSchema).describe("Array of available prompts")
|
|
54
|
+
}).strict().describe("Prompts list response");
|
|
55
|
+
const CreatePromptResponseSchema = import_zod_openapi.z.object({
|
|
56
|
+
prompt: import_responses.PromptInfoSchema.describe("Created prompt information")
|
|
57
|
+
}).strict().describe("Create prompt response");
|
|
58
|
+
const GetPromptDefinitionResponseSchema = import_zod_openapi.z.object({
|
|
59
|
+
definition: import_responses.PromptDefinitionSchema.describe("Prompt definition")
|
|
60
|
+
}).strict().describe("Get prompt definition response");
|
|
61
|
+
const ResolvePromptResponseSchema = import_zod_openapi.z.object({
|
|
62
|
+
text: import_zod_openapi.z.string().describe("Resolved prompt text"),
|
|
63
|
+
resources: import_zod_openapi.z.array(import_zod_openapi.z.string()).describe("Array of resource identifiers")
|
|
64
|
+
}).strict().describe("Resolve prompt response");
|
|
65
|
+
function serializePromptInfo(prompt) {
|
|
66
|
+
return import_responses.PromptInfoSchema.parse(JSON.parse(JSON.stringify(prompt)));
|
|
67
|
+
}
|
|
68
|
+
function serializePromptDefinition(definition) {
|
|
69
|
+
return import_responses.PromptDefinitionSchema.parse(JSON.parse(JSON.stringify(definition)));
|
|
70
|
+
}
|
|
71
|
+
const listRoute = (0, import_zod_openapi.createRoute)({
|
|
72
|
+
method: "get",
|
|
73
|
+
path: "/prompts",
|
|
74
|
+
summary: "List Prompts",
|
|
75
|
+
description: "Retrieves all available prompts, including both built-in and custom prompts",
|
|
76
|
+
tags: ["prompts"],
|
|
77
|
+
responses: {
|
|
78
|
+
200: {
|
|
79
|
+
description: "List all prompts",
|
|
80
|
+
content: {
|
|
81
|
+
"application/json": {
|
|
82
|
+
schema: ListPromptsResponseSchema
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
500: import_responses.InternalErrorResponse
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
const createCustomRoute = (0, import_zod_openapi.createRoute)({
|
|
90
|
+
method: "post",
|
|
91
|
+
path: "/prompts/custom",
|
|
92
|
+
summary: "Create Custom Prompt",
|
|
93
|
+
description: "Creates a new custom prompt with optional resource attachment. Maximum request size: 10MB",
|
|
94
|
+
tags: ["prompts"],
|
|
95
|
+
request: {
|
|
96
|
+
body: {
|
|
97
|
+
content: {
|
|
98
|
+
"application/json": {
|
|
99
|
+
schema: CustomPromptRequestSchema
|
|
69
100
|
}
|
|
70
101
|
}
|
|
71
102
|
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
request: {
|
|
80
|
-
body: {
|
|
81
|
-
content: {
|
|
82
|
-
"application/json": {
|
|
83
|
-
schema: CustomPromptRequestSchema
|
|
84
|
-
}
|
|
103
|
+
},
|
|
104
|
+
responses: {
|
|
105
|
+
201: {
|
|
106
|
+
description: "Custom prompt created",
|
|
107
|
+
content: {
|
|
108
|
+
"application/json": {
|
|
109
|
+
schema: CreatePromptResponseSchema
|
|
85
110
|
}
|
|
86
111
|
}
|
|
87
112
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
113
|
+
400: import_responses.BadRequestErrorResponse,
|
|
114
|
+
500: import_responses.InternalErrorResponse
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const deleteCustomRoute = (0, import_zod_openapi.createRoute)({
|
|
118
|
+
method: "delete",
|
|
119
|
+
path: "/prompts/custom/{name}",
|
|
120
|
+
summary: "Delete Custom Prompt",
|
|
121
|
+
description: "Permanently deletes a custom prompt. Built-in prompts cannot be deleted",
|
|
122
|
+
tags: ["prompts"],
|
|
123
|
+
request: {
|
|
124
|
+
params: import_zod_openapi.z.object({
|
|
125
|
+
name: import_zod_openapi.z.string().min(1, "Prompt name is required").describe("The prompt name")
|
|
126
|
+
})
|
|
127
|
+
},
|
|
128
|
+
responses: {
|
|
129
|
+
204: { description: "Prompt deleted" }
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const getPromptRoute = (0, import_zod_openapi.createRoute)({
|
|
133
|
+
method: "get",
|
|
134
|
+
path: "/prompts/{name}",
|
|
135
|
+
summary: "Get Prompt Definition",
|
|
136
|
+
description: "Fetches the definition for a specific prompt",
|
|
137
|
+
tags: ["prompts"],
|
|
138
|
+
request: {
|
|
139
|
+
params: PromptNameParamSchema
|
|
140
|
+
},
|
|
141
|
+
responses: {
|
|
142
|
+
200: {
|
|
143
|
+
description: "Prompt definition",
|
|
144
|
+
content: {
|
|
145
|
+
"application/json": {
|
|
146
|
+
schema: GetPromptDefinitionResponseSchema
|
|
97
147
|
}
|
|
98
148
|
}
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
const deleteCustomRoute = (0, import_zod_openapi.createRoute)({
|
|
102
|
-
method: "delete",
|
|
103
|
-
path: "/prompts/custom/{name}",
|
|
104
|
-
summary: "Delete Custom Prompt",
|
|
105
|
-
description: "Permanently deletes a custom prompt. Built-in prompts cannot be deleted",
|
|
106
|
-
tags: ["prompts"],
|
|
107
|
-
request: {
|
|
108
|
-
params: import_zod_openapi.z.object({
|
|
109
|
-
name: import_zod_openapi.z.string().min(1, "Prompt name is required").describe("The prompt name")
|
|
110
|
-
})
|
|
111
149
|
},
|
|
112
|
-
|
|
113
|
-
|
|
150
|
+
404: {
|
|
151
|
+
description: "Prompt not found",
|
|
152
|
+
content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
|
|
114
153
|
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
const resolvePromptRoute = (0, import_zod_openapi.createRoute)({
|
|
157
|
+
method: "get",
|
|
158
|
+
path: "/prompts/{name}/resolve",
|
|
159
|
+
summary: "Resolve Prompt",
|
|
160
|
+
description: "Resolves a prompt template with provided arguments and returns the final text with resources",
|
|
161
|
+
tags: ["prompts"],
|
|
162
|
+
request: {
|
|
163
|
+
params: PromptNameParamSchema,
|
|
164
|
+
query: ResolvePromptQuerySchema
|
|
165
|
+
},
|
|
166
|
+
responses: {
|
|
167
|
+
200: {
|
|
168
|
+
description: "Resolved prompt content",
|
|
169
|
+
content: {
|
|
170
|
+
"application/json": {
|
|
171
|
+
schema: ResolvePromptResponseSchema
|
|
134
172
|
}
|
|
135
|
-
},
|
|
136
|
-
404: {
|
|
137
|
-
description: "Prompt not found",
|
|
138
|
-
content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
|
|
139
173
|
}
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const resolvePromptRoute = (0, import_zod_openapi.createRoute)({
|
|
143
|
-
method: "get",
|
|
144
|
-
path: "/prompts/{name}/resolve",
|
|
145
|
-
summary: "Resolve Prompt",
|
|
146
|
-
description: "Resolves a prompt template with provided arguments and returns the final text with resources",
|
|
147
|
-
tags: ["prompts"],
|
|
148
|
-
request: {
|
|
149
|
-
params: PromptNameParamSchema,
|
|
150
|
-
query: ResolvePromptQuerySchema
|
|
151
174
|
},
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
content: {
|
|
156
|
-
"application/json": {
|
|
157
|
-
schema: import_zod_openapi.z.object({
|
|
158
|
-
text: import_zod_openapi.z.string().describe("Resolved prompt text"),
|
|
159
|
-
resources: import_zod_openapi.z.array(import_zod_openapi.z.string()).describe("Array of resource identifiers")
|
|
160
|
-
}).strict().describe("Resolve prompt response")
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
404: {
|
|
165
|
-
description: "Prompt not found",
|
|
166
|
-
content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
|
|
167
|
-
}
|
|
175
|
+
404: {
|
|
176
|
+
description: "Prompt not found",
|
|
177
|
+
content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
|
|
168
178
|
}
|
|
169
|
-
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
function createPromptsRouter(getAgent) {
|
|
182
|
+
const app = new import_zod_openapi.OpenAPIHono();
|
|
170
183
|
return app.openapi(listRoute, async (ctx) => {
|
|
171
184
|
const agent = await getAgent(ctx);
|
|
172
185
|
const prompts = await agent.listPrompts();
|
|
173
|
-
const list = Object.values(prompts);
|
|
174
|
-
return ctx.json({ prompts: list });
|
|
186
|
+
const list = Object.values(prompts).map(serializePromptInfo);
|
|
187
|
+
return ctx.json(ListPromptsResponseSchema.parse({ prompts: list }), 200);
|
|
175
188
|
}).openapi(createCustomRoute, async (ctx) => {
|
|
176
189
|
const agent = await getAgent(ctx);
|
|
177
190
|
const payload = ctx.req.valid("json");
|
|
@@ -195,7 +208,10 @@ function createPromptsRouter(getAgent) {
|
|
|
195
208
|
} : {}
|
|
196
209
|
};
|
|
197
210
|
const prompt = await agent.createCustomPrompt(createPayload);
|
|
198
|
-
return ctx.json(
|
|
211
|
+
return ctx.json(
|
|
212
|
+
CreatePromptResponseSchema.parse({ prompt: serializePromptInfo(prompt) }),
|
|
213
|
+
201
|
|
214
|
+
);
|
|
199
215
|
}).openapi(deleteCustomRoute, async (ctx) => {
|
|
200
216
|
const agent = await getAgent(ctx);
|
|
201
217
|
const { name } = ctx.req.valid("param");
|
|
@@ -206,7 +222,12 @@ function createPromptsRouter(getAgent) {
|
|
|
206
222
|
const { name } = ctx.req.valid("param");
|
|
207
223
|
const definition = await agent.getPromptDefinition(name);
|
|
208
224
|
if (!definition) throw import_core.PromptError.notFound(name);
|
|
209
|
-
return ctx.json(
|
|
225
|
+
return ctx.json(
|
|
226
|
+
GetPromptDefinitionResponseSchema.parse({
|
|
227
|
+
definition: serializePromptDefinition(definition)
|
|
228
|
+
}),
|
|
229
|
+
200
|
|
230
|
+
);
|
|
210
231
|
}).openapi(resolvePromptRoute, async (ctx) => {
|
|
211
232
|
const agent = await getAgent(ctx);
|
|
212
233
|
const { name } = ctx.req.valid("param");
|
|
@@ -225,7 +246,13 @@ function createPromptsRouter(getAgent) {
|
|
|
225
246
|
if (context !== void 0) options.context = context;
|
|
226
247
|
if (parsedArgs !== void 0) options.args = parsedArgs;
|
|
227
248
|
const result = await agent.resolvePrompt(name, options);
|
|
228
|
-
return ctx.json(
|
|
249
|
+
return ctx.json(
|
|
250
|
+
ResolvePromptResponseSchema.parse({
|
|
251
|
+
text: result.text,
|
|
252
|
+
resources: result.resources
|
|
253
|
+
}),
|
|
254
|
+
200
|
|
255
|
+
);
|
|
229
256
|
});
|
|
230
257
|
}
|
|
231
258
|
// Annotate the CommonJS export names for ESM import in node:
|