@dexto/server 1.6.20 → 1.6.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/a2a/jsonrpc/methods.cjs +1 -1
  2. package/dist/a2a/jsonrpc/methods.d.ts +14 -4
  3. package/dist/a2a/jsonrpc/methods.d.ts.map +1 -1
  4. package/dist/a2a/jsonrpc/methods.js +1 -1
  5. package/dist/approval/wire-approval-events.cjs +44 -0
  6. package/dist/approval/wire-approval-events.d.ts +4 -0
  7. package/dist/approval/wire-approval-events.d.ts.map +1 -0
  8. package/dist/approval/wire-approval-events.js +20 -0
  9. package/dist/events/session-sse-subscriber.cjs +167 -0
  10. package/dist/events/session-sse-subscriber.d.ts +13 -0
  11. package/dist/events/session-sse-subscriber.d.ts.map +1 -0
  12. package/dist/events/session-sse-subscriber.js +143 -0
  13. package/dist/hono/__tests__/test-fixtures.cjs +8 -0
  14. package/dist/hono/__tests__/test-fixtures.d.ts +1 -0
  15. package/dist/hono/__tests__/test-fixtures.d.ts.map +1 -1
  16. package/dist/hono/__tests__/test-fixtures.js +8 -0
  17. package/dist/hono/index.cjs +40 -8
  18. package/dist/hono/index.d.ts +45 -4531
  19. package/dist/hono/index.d.ts.map +1 -1
  20. package/dist/hono/index.js +43 -9
  21. package/dist/hono/node/index.cjs +51 -6
  22. package/dist/hono/node/index.d.ts.map +1 -1
  23. package/dist/hono/node/index.js +51 -6
  24. package/dist/hono/routes/a2a-jsonrpc.d.ts.map +1 -1
  25. package/dist/hono/routes/a2a-tasks.cjs +158 -32
  26. package/dist/hono/routes/a2a-tasks.d.ts +1 -502
  27. package/dist/hono/routes/a2a-tasks.d.ts.map +1 -1
  28. package/dist/hono/routes/a2a-tasks.js +162 -32
  29. package/dist/hono/routes/a2a.d.ts.map +1 -1
  30. package/dist/hono/routes/agents.cjs +410 -329
  31. package/dist/hono/routes/agents.d.ts +16043 -68
  32. package/dist/hono/routes/agents.d.ts.map +1 -1
  33. package/dist/hono/routes/agents.js +418 -330
  34. package/dist/hono/routes/approvals.cjs +102 -88
  35. package/dist/hono/routes/approvals.d.ts +2089 -142
  36. package/dist/hono/routes/approvals.d.ts.map +1 -1
  37. package/dist/hono/routes/approvals.js +108 -89
  38. package/dist/hono/routes/dexto-auth.cjs +40 -33
  39. package/dist/hono/routes/dexto-auth.d.ts +401 -2
  40. package/dist/hono/routes/dexto-auth.d.ts.map +1 -1
  41. package/dist/hono/routes/dexto-auth.js +40 -33
  42. package/dist/hono/routes/discovery.cjs +16 -14
  43. package/dist/hono/routes/discovery.d.ts +586 -1
  44. package/dist/hono/routes/discovery.d.ts.map +1 -1
  45. package/dist/hono/routes/discovery.js +16 -14
  46. package/dist/hono/routes/greeting.cjs +26 -22
  47. package/dist/hono/routes/greeting.d.ts +787 -3
  48. package/dist/hono/routes/greeting.d.ts.map +1 -1
  49. package/dist/hono/routes/greeting.js +26 -22
  50. package/dist/hono/routes/health.d.ts +1 -1
  51. package/dist/hono/routes/key.cjs +60 -52
  52. package/dist/hono/routes/key.d.ts +1597 -1
  53. package/dist/hono/routes/key.d.ts.map +1 -1
  54. package/dist/hono/routes/key.js +60 -52
  55. package/dist/hono/routes/llm.cjs +382 -349
  56. package/dist/hono/routes/llm.d.ts +12148 -98
  57. package/dist/hono/routes/llm.d.ts.map +1 -1
  58. package/dist/hono/routes/llm.js +386 -349
  59. package/dist/hono/routes/mcp.cjs +257 -226
  60. package/dist/hono/routes/mcp.d.ts +6605 -309
  61. package/dist/hono/routes/mcp.d.ts.map +1 -1
  62. package/dist/hono/routes/mcp.js +263 -225
  63. package/dist/hono/routes/memory.cjs +102 -89
  64. package/dist/hono/routes/memory.d.ts +5368 -4
  65. package/dist/hono/routes/memory.d.ts.map +1 -1
  66. package/dist/hono/routes/memory.js +108 -90
  67. package/dist/hono/routes/messages.cjs +189 -191
  68. package/dist/hono/routes/messages.d.ts +3900 -12
  69. package/dist/hono/routes/messages.d.ts.map +1 -1
  70. package/dist/hono/routes/messages.js +192 -191
  71. package/dist/hono/routes/models.cjs +106 -64
  72. package/dist/hono/routes/models.d.ts +2875 -2
  73. package/dist/hono/routes/models.d.ts.map +1 -1
  74. package/dist/hono/routes/models.js +108 -64
  75. package/dist/hono/routes/openrouter.cjs +79 -65
  76. package/dist/hono/routes/openrouter.d.ts +854 -1
  77. package/dist/hono/routes/openrouter.d.ts.map +1 -1
  78. package/dist/hono/routes/openrouter.js +79 -65
  79. package/dist/hono/routes/prompts.cjs +136 -109
  80. package/dist/hono/routes/prompts.d.ts +2818 -10
  81. package/dist/hono/routes/prompts.d.ts.map +1 -1
  82. package/dist/hono/routes/prompts.js +138 -109
  83. package/dist/hono/routes/queue.cjs +133 -120
  84. package/dist/hono/routes/queue.d.ts +5240 -11
  85. package/dist/hono/routes/queue.d.ts.map +1 -1
  86. package/dist/hono/routes/queue.js +136 -120
  87. package/dist/hono/routes/resources.cjs +65 -46
  88. package/dist/hono/routes/resources.d.ts +1983 -5
  89. package/dist/hono/routes/resources.d.ts.map +1 -1
  90. package/dist/hono/routes/resources.js +72 -47
  91. package/dist/hono/routes/schedules.cjs +233 -226
  92. package/dist/hono/routes/schedules.d.ts +4198 -22
  93. package/dist/hono/routes/schedules.d.ts.map +1 -1
  94. package/dist/hono/routes/schedules.js +233 -226
  95. package/dist/hono/routes/search.cjs +34 -30
  96. package/dist/hono/routes/search.d.ts +3094 -17
  97. package/dist/hono/routes/search.d.ts.map +1 -1
  98. package/dist/hono/routes/search.js +40 -31
  99. package/dist/hono/routes/sessions.cjs +491 -393
  100. package/dist/hono/routes/sessions.d.ts +18263 -65
  101. package/dist/hono/routes/sessions.d.ts.map +1 -1
  102. package/dist/hono/routes/sessions.js +497 -395
  103. package/dist/hono/routes/static.d.ts.map +1 -1
  104. package/dist/hono/routes/system-prompt.cjs +57 -61
  105. package/dist/hono/routes/system-prompt.d.ts +1228 -2
  106. package/dist/hono/routes/system-prompt.d.ts.map +1 -1
  107. package/dist/hono/routes/system-prompt.js +58 -62
  108. package/dist/hono/routes/tools.cjs +29 -34
  109. package/dist/hono/routes/tools.d.ts +1755 -6
  110. package/dist/hono/routes/tools.d.ts.map +1 -1
  111. package/dist/hono/routes/tools.js +33 -33
  112. package/dist/hono/routes/webhooks.cjs +115 -123
  113. package/dist/hono/routes/webhooks.d.ts +2501 -11
  114. package/dist/hono/routes/webhooks.d.ts.map +1 -1
  115. package/dist/hono/routes/webhooks.js +120 -124
  116. package/dist/hono/routes/workspaces.cjs +84 -79
  117. package/dist/hono/routes/workspaces.d.ts +2093 -2
  118. package/dist/hono/routes/workspaces.d.ts.map +1 -1
  119. package/dist/hono/routes/workspaces.js +89 -80
  120. package/dist/hono/schemas/responses.cjs +463 -260
  121. package/dist/hono/schemas/responses.d.ts +1893 -209
  122. package/dist/hono/schemas/responses.d.ts.map +1 -1
  123. package/dist/hono/schemas/responses.js +203 -14
  124. package/dist/hono/start-server.cjs +9 -0
  125. package/dist/hono/start-server.d.ts.map +1 -1
  126. package/dist/hono/start-server.js +9 -0
  127. package/dist/hono/types.d.ts +11 -0
  128. package/dist/hono/types.d.ts.map +1 -1
  129. package/dist/index.cjs +5 -1
  130. package/dist/index.d.ts +2 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +2 -0
  133. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/hono/routes/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAkChE;;;GAGG;AACH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8HrC"}
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
- function createOpenRouterRouter() {
21
- const app = new OpenAPIHono();
22
- const validateRoute = createRoute({
23
- method: "get",
24
- path: "/openrouter/validate/{modelId}",
25
- summary: "Validate OpenRouter Model",
26
- description: "Validates an OpenRouter model ID against the cached model registry. Refreshes cache if stale.",
27
- tags: ["openrouter"],
28
- request: {
29
- params: ValidateModelParamsSchema
30
- },
31
- responses: {
32
- 200: {
33
- description: "Validation result",
34
- content: {
35
- "application/json": {
36
- schema: ValidateModelResponseSchema
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
- const refreshRoute = createRoute({
43
- method: "post",
44
- path: "/openrouter/refresh-cache",
45
- summary: "Refresh OpenRouter Model Cache",
46
- description: "Forces a refresh of the OpenRouter model registry cache from the API.",
47
- tags: ["openrouter"],
48
- responses: {
49
- 200: {
50
- description: "Cache refreshed successfully",
51
- content: {
52
- "application/json": {
53
- schema: z.object({
54
- ok: z.literal(true).describe("Success indicator"),
55
- message: z.string().describe("Status message")
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
- 500: {
61
- description: "Cache refresh failed",
62
- content: {
63
- "application/json": {
64
- schema: z.object({
65
- ok: z.literal(false).describe("Failure indicator"),
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
- valid: false,
87
- modelId,
88
- status: "unknown",
89
- error: "Could not validate model - cache refresh failed"
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
- valid: false,
96
- modelId,
97
- status: "invalid",
98
- error: `Model '${modelId}' not found in OpenRouter. Check the model ID at https://openrouter.ai/models`
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
- valid: true,
104
- modelId,
105
- status: "valid",
106
- ...info && { info: { contextLength: info.contextLength } }
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
- function createPromptsRouter(getAgent) {
53
- const app = new import_zod_openapi.OpenAPIHono();
54
- const listRoute = (0, import_zod_openapi.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: import_zod_openapi.z.object({
66
- prompts: import_zod_openapi.z.array(import_responses.PromptInfoSchema).describe("Array of available prompts")
67
- }).strict().describe("Prompts list response")
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
- const createCustomRoute = (0, import_zod_openapi.createRoute)({
74
- method: "post",
75
- path: "/prompts/custom",
76
- summary: "Create Custom Prompt",
77
- description: "Creates a new custom prompt with optional resource attachment. Maximum request size: 10MB",
78
- tags: ["prompts"],
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
- responses: {
89
- 201: {
90
- description: "Custom prompt created",
91
- content: {
92
- "application/json": {
93
- schema: import_zod_openapi.z.object({
94
- prompt: import_responses.PromptInfoSchema.describe("Created prompt information")
95
- }).strict().describe("Create prompt response")
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
- responses: {
113
- 204: { description: "Prompt deleted" }
150
+ 404: {
151
+ description: "Prompt not found",
152
+ content: { "application/json": { schema: import_responses.ApiErrorResponseSchema } }
114
153
  }
115
- });
116
- const getPromptRoute = (0, import_zod_openapi.createRoute)({
117
- method: "get",
118
- path: "/prompts/{name}",
119
- summary: "Get Prompt Definition",
120
- description: "Fetches the definition for a specific prompt",
121
- tags: ["prompts"],
122
- request: {
123
- params: PromptNameParamSchema
124
- },
125
- responses: {
126
- 200: {
127
- description: "Prompt definition",
128
- content: {
129
- "application/json": {
130
- schema: import_zod_openapi.z.object({
131
- definition: import_responses.PromptDefinitionSchema.describe("Prompt definition")
132
- }).strict().describe("Get prompt definition response")
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
- responses: {
153
- 200: {
154
- description: "Resolved prompt content",
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({ prompt }, 201);
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({ definition }, 200);
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({ text: result.text, resources: result.resources }, 200);
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: