@dexto/core 1.5.6 → 1.5.8

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 (217) hide show
  1. package/dist/agent/DextoAgent.cjs +189 -30
  2. package/dist/agent/DextoAgent.d.ts +44 -9
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +190 -31
  5. package/dist/agent/schemas.cjs +5 -0
  6. package/dist/agent/schemas.d.ts +456 -66
  7. package/dist/agent/schemas.d.ts.map +1 -1
  8. package/dist/agent/schemas.js +5 -0
  9. package/dist/context/manager.cjs +1 -1
  10. package/dist/context/manager.js +1 -1
  11. package/dist/context/utils.cjs +90 -17
  12. package/dist/context/utils.d.ts.map +1 -1
  13. package/dist/context/utils.js +90 -17
  14. package/dist/errors/types.cjs +2 -1
  15. package/dist/errors/types.d.ts +2 -1
  16. package/dist/errors/types.d.ts.map +1 -1
  17. package/dist/errors/types.js +2 -1
  18. package/dist/events/index.cjs +4 -1
  19. package/dist/events/index.d.ts +37 -2
  20. package/dist/events/index.d.ts.map +1 -1
  21. package/dist/events/index.js +4 -1
  22. package/dist/image/types.d.ts +15 -0
  23. package/dist/image/types.d.ts.map +1 -1
  24. package/dist/index.browser.d.ts +1 -1
  25. package/dist/index.browser.d.ts.map +1 -1
  26. package/dist/llm/curation-config.cjs +82 -0
  27. package/dist/llm/curation-config.d.ts +13 -0
  28. package/dist/llm/curation-config.d.ts.map +1 -0
  29. package/dist/llm/curation-config.js +59 -0
  30. package/dist/llm/curation.cjs +57 -0
  31. package/dist/llm/curation.d.ts +16 -0
  32. package/dist/llm/curation.d.ts.map +1 -0
  33. package/dist/llm/curation.js +34 -0
  34. package/dist/llm/error-codes.cjs +1 -0
  35. package/dist/llm/error-codes.d.ts +1 -0
  36. package/dist/llm/error-codes.d.ts.map +1 -1
  37. package/dist/llm/error-codes.js +1 -0
  38. package/dist/llm/errors.cjs +16 -1
  39. package/dist/llm/errors.d.ts +15 -8
  40. package/dist/llm/errors.d.ts.map +1 -1
  41. package/dist/llm/errors.js +16 -1
  42. package/dist/llm/executor/provider-options.cjs +1 -1
  43. package/dist/llm/executor/provider-options.js +1 -1
  44. package/dist/llm/executor/turn-executor.cjs +35 -2
  45. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  46. package/dist/llm/executor/turn-executor.js +35 -2
  47. package/dist/llm/index.cjs +14 -3
  48. package/dist/llm/index.d.ts +3 -1
  49. package/dist/llm/index.d.ts.map +1 -1
  50. package/dist/llm/index.js +13 -2
  51. package/dist/llm/registry/auto-update.cjs +263 -0
  52. package/dist/llm/registry/auto-update.d.ts +27 -0
  53. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  54. package/dist/llm/registry/auto-update.js +227 -0
  55. package/dist/llm/registry/index.cjs +806 -0
  56. package/dist/llm/{registry.d.ts → registry/index.d.ts} +67 -13
  57. package/dist/llm/registry/index.d.ts.map +1 -0
  58. package/dist/llm/registry/index.js +756 -0
  59. package/dist/llm/registry/models.generated.cjs +4861 -0
  60. package/dist/llm/registry/models.generated.d.ts +431 -0
  61. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  62. package/dist/llm/registry/models.generated.js +4838 -0
  63. package/dist/llm/registry/models.manual.cjs +44 -0
  64. package/dist/llm/registry/models.manual.d.ts +22 -0
  65. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  66. package/dist/llm/registry/models.manual.js +21 -0
  67. package/dist/llm/registry/sync.cjs +354 -0
  68. package/dist/llm/registry/sync.d.ts +41 -0
  69. package/dist/llm/registry/sync.d.ts.map +1 -0
  70. package/dist/llm/registry/sync.js +328 -0
  71. package/dist/llm/resolver.cjs +29 -7
  72. package/dist/llm/resolver.d.ts +1 -1
  73. package/dist/llm/resolver.d.ts.map +1 -1
  74. package/dist/llm/resolver.js +31 -8
  75. package/dist/llm/schemas.cjs +13 -1
  76. package/dist/llm/schemas.d.ts +59 -59
  77. package/dist/llm/schemas.d.ts.map +1 -1
  78. package/dist/llm/schemas.js +14 -1
  79. package/dist/llm/services/factory.cjs +43 -27
  80. package/dist/llm/services/factory.d.ts +20 -1
  81. package/dist/llm/services/factory.d.ts.map +1 -1
  82. package/dist/llm/services/factory.js +44 -28
  83. package/dist/llm/services/test-utils.integration.cjs +5 -1
  84. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  85. package/dist/llm/services/test-utils.integration.js +5 -1
  86. package/dist/llm/services/vercel.cjs +4 -1
  87. package/dist/llm/services/vercel.d.ts +1 -0
  88. package/dist/llm/services/vercel.d.ts.map +1 -1
  89. package/dist/llm/services/vercel.js +4 -1
  90. package/dist/llm/types.cjs +5 -2
  91. package/dist/llm/types.d.ts +1 -1
  92. package/dist/llm/types.d.ts.map +1 -1
  93. package/dist/llm/types.js +5 -2
  94. package/dist/llm/validation.cjs +1 -1
  95. package/dist/llm/validation.js +1 -1
  96. package/dist/logger/v2/dexto-logger.cjs +4 -0
  97. package/dist/logger/v2/dexto-logger.d.ts +3 -0
  98. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  99. package/dist/logger/v2/dexto-logger.js +4 -0
  100. package/dist/logger/v2/types.d.ts +2 -0
  101. package/dist/logger/v2/types.d.ts.map +1 -1
  102. package/dist/mcp/error-codes.cjs +1 -0
  103. package/dist/mcp/error-codes.d.ts +1 -0
  104. package/dist/mcp/error-codes.d.ts.map +1 -1
  105. package/dist/mcp/error-codes.js +1 -0
  106. package/dist/mcp/errors.cjs +13 -0
  107. package/dist/mcp/errors.d.ts +7 -0
  108. package/dist/mcp/errors.d.ts.map +1 -1
  109. package/dist/mcp/errors.js +13 -0
  110. package/dist/mcp/manager.cjs +46 -4
  111. package/dist/mcp/manager.d.ts +10 -2
  112. package/dist/mcp/manager.d.ts.map +1 -1
  113. package/dist/mcp/manager.js +46 -4
  114. package/dist/mcp/mcp-client.cjs +89 -5
  115. package/dist/mcp/mcp-client.d.ts +5 -1
  116. package/dist/mcp/mcp-client.d.ts.map +1 -1
  117. package/dist/mcp/mcp-client.js +89 -5
  118. package/dist/mcp/schemas.cjs +6 -1
  119. package/dist/mcp/schemas.d.ts +1 -1
  120. package/dist/mcp/schemas.d.ts.map +1 -1
  121. package/dist/mcp/schemas.js +6 -1
  122. package/dist/mcp/types.d.ts +5 -0
  123. package/dist/mcp/types.d.ts.map +1 -1
  124. package/dist/prompts/index.d.ts +1 -1
  125. package/dist/prompts/index.d.ts.map +1 -1
  126. package/dist/prompts/prompt-manager.cjs +90 -4
  127. package/dist/prompts/prompt-manager.d.ts +16 -6
  128. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  129. package/dist/prompts/prompt-manager.js +90 -4
  130. package/dist/prompts/providers/config-prompt-provider.cjs +104 -10
  131. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  132. package/dist/prompts/providers/config-prompt-provider.js +105 -11
  133. package/dist/prompts/providers/custom-prompt-provider.cjs +1 -0
  134. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  135. package/dist/prompts/providers/custom-prompt-provider.js +1 -0
  136. package/dist/prompts/providers/mcp-prompt-provider.cjs +1 -0
  137. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  138. package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
  139. package/dist/prompts/schemas.cjs +28 -2
  140. package/dist/prompts/schemas.d.ts +130 -0
  141. package/dist/prompts/schemas.d.ts.map +1 -1
  142. package/dist/prompts/schemas.js +28 -2
  143. package/dist/prompts/types.d.ts +55 -3
  144. package/dist/prompts/types.d.ts.map +1 -1
  145. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  146. package/dist/resources/handlers/filesystem-handler.d.ts +1 -0
  147. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  148. package/dist/resources/handlers/filesystem-handler.js +25 -0
  149. package/dist/session/chat-session.cjs +1 -1
  150. package/dist/session/chat-session.d.ts +1 -1
  151. package/dist/session/chat-session.d.ts.map +1 -1
  152. package/dist/session/chat-session.js +1 -1
  153. package/dist/session/index.d.ts +1 -1
  154. package/dist/session/index.d.ts.map +1 -1
  155. package/dist/session/message-queue.cjs +29 -5
  156. package/dist/session/message-queue.d.ts +3 -1
  157. package/dist/session/message-queue.d.ts.map +1 -1
  158. package/dist/session/message-queue.js +29 -5
  159. package/dist/session/session-manager.cjs +84 -3
  160. package/dist/session/session-manager.d.ts +12 -0
  161. package/dist/session/session-manager.d.ts.map +1 -1
  162. package/dist/session/session-manager.js +74 -3
  163. package/dist/session/types.d.ts +1 -0
  164. package/dist/session/types.d.ts.map +1 -1
  165. package/dist/systemPrompt/contributors.cjs +42 -0
  166. package/dist/systemPrompt/contributors.d.ts +13 -0
  167. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  168. package/dist/systemPrompt/contributors.js +41 -0
  169. package/dist/tools/errors.cjs +7 -3
  170. package/dist/tools/errors.d.ts +5 -1
  171. package/dist/tools/errors.d.ts.map +1 -1
  172. package/dist/tools/errors.js +7 -3
  173. package/dist/tools/internal-tools/constants.cjs +2 -1
  174. package/dist/tools/internal-tools/constants.d.ts +1 -1
  175. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  176. package/dist/tools/internal-tools/constants.js +2 -1
  177. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +140 -0
  178. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +24 -0
  179. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +1 -0
  180. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +117 -0
  181. package/dist/tools/internal-tools/provider.cjs +15 -0
  182. package/dist/tools/internal-tools/provider.d.ts +15 -1
  183. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  184. package/dist/tools/internal-tools/provider.js +15 -0
  185. package/dist/tools/internal-tools/registry.cjs +6 -0
  186. package/dist/tools/internal-tools/registry.d.ts +35 -1
  187. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  188. package/dist/tools/internal-tools/registry.js +6 -0
  189. package/dist/tools/schemas.d.ts +1 -1
  190. package/dist/tools/schemas.d.ts.map +1 -1
  191. package/dist/tools/tool-call-metadata.cjs +75 -0
  192. package/dist/tools/tool-call-metadata.d.ts +16 -0
  193. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  194. package/dist/tools/tool-call-metadata.js +51 -0
  195. package/dist/tools/tool-manager.cjs +481 -103
  196. package/dist/tools/tool-manager.d.ts +131 -9
  197. package/dist/tools/tool-manager.d.ts.map +1 -1
  198. package/dist/tools/tool-manager.js +482 -104
  199. package/dist/utils/api-key-resolver.cjs +5 -2
  200. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  201. package/dist/utils/api-key-resolver.js +5 -2
  202. package/dist/utils/env.cjs +49 -0
  203. package/dist/utils/env.d.ts +4 -0
  204. package/dist/utils/env.d.ts.map +1 -0
  205. package/dist/utils/env.js +24 -0
  206. package/dist/utils/index.cjs +3 -1
  207. package/dist/utils/index.d.ts +1 -0
  208. package/dist/utils/index.d.ts.map +1 -1
  209. package/dist/utils/index.js +1 -0
  210. package/dist/utils/service-initializer.cjs +25 -7
  211. package/dist/utils/service-initializer.d.ts +24 -1
  212. package/dist/utils/service-initializer.d.ts.map +1 -1
  213. package/dist/utils/service-initializer.js +25 -7
  214. package/package.json +6 -2
  215. package/dist/llm/registry.cjs +0 -1631
  216. package/dist/llm/registry.d.ts.map +0 -1
  217. package/dist/llm/registry.js +0 -1586
@@ -6,7 +6,22 @@ import { expandPlaceholders } from "../utils.js";
6
6
  import { assertValidPromptName } from "../name-validation.js";
7
7
  import { readFile, realpath } from "fs/promises";
8
8
  import { existsSync } from "fs";
9
- import { dirname, relative, sep } from "path";
9
+ import { basename, dirname, relative, sep } from "path";
10
+ const CLAUDE_CODE_TOOL_MAP = {
11
+ // Bash/process tools
12
+ bash: "custom--bash_exec",
13
+ // Filesystem tools
14
+ read: "custom--read_file",
15
+ write: "custom--write_file",
16
+ edit: "custom--edit_file",
17
+ glob: "custom--glob_files",
18
+ grep: "custom--grep_content",
19
+ // Internal tools
20
+ task: "internal--delegate_task"
21
+ };
22
+ function normalizeAllowedTools(tools) {
23
+ return tools.map((tool) => CLAUDE_CODE_TOOL_MAP[tool.toLowerCase()] ?? tool);
24
+ }
10
25
  class ConfigPromptProvider {
11
26
  prompts = [];
12
27
  promptsCache = [];
@@ -84,7 +99,20 @@ class ConfigPromptProvider {
84
99
  name: promptInfo.name,
85
100
  ...promptInfo.title && { title: promptInfo.title },
86
101
  ...promptInfo.description && { description: promptInfo.description },
87
- ...promptInfo.arguments && { arguments: promptInfo.arguments }
102
+ ...promptInfo.arguments && { arguments: promptInfo.arguments },
103
+ // Claude Code compatibility fields
104
+ ...promptInfo.disableModelInvocation !== void 0 && {
105
+ disableModelInvocation: promptInfo.disableModelInvocation
106
+ },
107
+ ...promptInfo.userInvocable !== void 0 && {
108
+ userInvocable: promptInfo.userInvocable
109
+ },
110
+ ...promptInfo.allowedTools !== void 0 && {
111
+ allowedTools: promptInfo.allowedTools
112
+ },
113
+ ...promptInfo.model !== void 0 && { model: promptInfo.model },
114
+ ...promptInfo.context !== void 0 && { context: promptInfo.context },
115
+ ...promptInfo.agent !== void 0 && { agent: promptInfo.agent }
88
116
  };
89
117
  }
90
118
  async buildPromptsCache() {
@@ -127,6 +155,13 @@ class ConfigPromptProvider {
127
155
  title: prompt.title,
128
156
  description: prompt.description,
129
157
  source: "config",
158
+ // Claude Code compatibility fields
159
+ disableModelInvocation: prompt["disable-model-invocation"],
160
+ userInvocable: prompt["user-invocable"],
161
+ allowedTools: prompt["allowed-tools"] ? normalizeAllowedTools(prompt["allowed-tools"]) : void 0,
162
+ model: prompt.model,
163
+ context: prompt.context,
164
+ agent: prompt.agent,
130
165
  metadata: {
131
166
  type: "inline",
132
167
  category: prompt.category,
@@ -173,20 +208,37 @@ class ConfigPromptProvider {
173
208
  );
174
209
  return null;
175
210
  }
211
+ const disableModelInvocation = prompt["disable-model-invocation"] ?? parsed.disableModelInvocation;
212
+ const userInvocable = prompt["user-invocable"] ?? parsed.userInvocable;
213
+ const rawAllowedTools = prompt["allowed-tools"] ?? parsed.allowedTools;
214
+ const allowedTools = rawAllowedTools ? normalizeAllowedTools(rawAllowedTools) : void 0;
215
+ const model = prompt.model ?? parsed.model;
216
+ const context = prompt.context ?? parsed.context;
217
+ const agent = prompt.agent ?? parsed.agent;
218
+ const displayName = parsed.id;
219
+ const promptName = prompt.namespace ? `config:${prompt.namespace}:${parsed.id}` : `config:${parsed.id}`;
176
220
  const promptInfo = {
177
- name: `config:${parsed.id}`,
178
- displayName: parsed.id,
221
+ name: promptName,
222
+ displayName,
179
223
  title: parsed.title,
180
224
  description: parsed.description,
181
225
  source: "config",
182
226
  ...parsed.arguments && { arguments: parsed.arguments },
227
+ // Claude Code compatibility fields
228
+ ...disableModelInvocation !== void 0 && { disableModelInvocation },
229
+ ...userInvocable !== void 0 && { userInvocable },
230
+ ...allowedTools !== void 0 && { allowedTools },
231
+ ...model !== void 0 && { model },
232
+ ...context !== void 0 && { context },
233
+ ...agent !== void 0 && { agent },
183
234
  metadata: {
184
235
  type: "file",
185
236
  filePath,
186
237
  category: parsed.category,
187
238
  priority: parsed.priority,
188
239
  showInStarters: prompt.showInStarters,
189
- originalId: parsed.id
240
+ originalId: parsed.id,
241
+ ...prompt.namespace && { namespace: prompt.namespace }
190
242
  }
191
243
  };
192
244
  return { info: promptInfo, content: parsed.content };
@@ -199,13 +251,21 @@ class ConfigPromptProvider {
199
251
  }
200
252
  parseMarkdownPrompt(rawContent, filePath) {
201
253
  const lines = rawContent.trim().split("\n");
202
- const fileName = filePath.split("/").pop()?.replace(/\.md$/, "") ?? "unknown";
203
- let id = fileName;
204
- let title = fileName;
205
- let description = `File prompt: ${fileName}`;
254
+ const fileName = basename(filePath, ".md") || "unknown";
255
+ const parentDir = basename(dirname(filePath)) || "unknown";
256
+ const defaultId = fileName.toUpperCase() === "SKILL" ? parentDir : fileName;
257
+ let id = defaultId;
258
+ let title = defaultId;
259
+ let description = `File prompt: ${defaultId}`;
206
260
  let category;
207
261
  let priority;
208
262
  let argumentHint;
263
+ let disableModelInvocation;
264
+ let userInvocable;
265
+ let allowedTools;
266
+ let model;
267
+ let context;
268
+ let agent;
209
269
  let contentBody;
210
270
  if (lines[0]?.trim() === "---") {
211
271
  let frontmatterEnd = 0;
@@ -224,9 +284,18 @@ class ConfigPromptProvider {
224
284
  const m = line.match(regex);
225
285
  return m ? (m[1] || m[2] || "").trim() : null;
226
286
  };
287
+ const matchBool = (key) => {
288
+ const val = match(key);
289
+ if (val === "true") return true;
290
+ if (val === "false") return false;
291
+ return void 0;
292
+ };
227
293
  if (line.includes("id:")) {
228
294
  const val = match("id");
229
295
  if (val) id = val;
296
+ } else if (line.includes("name:") && !line.includes("display-name:")) {
297
+ const val = match("name");
298
+ if (val && id === defaultId) id = val;
230
299
  } else if (line.includes("title:")) {
231
300
  const val = match("title");
232
301
  if (val) title = val;
@@ -242,15 +311,34 @@ class ConfigPromptProvider {
242
311
  } else if (line.includes("argument-hint:")) {
243
312
  const val = match("argument-hint");
244
313
  if (val) argumentHint = val;
314
+ } else if (line.includes("disable-model-invocation:")) {
315
+ disableModelInvocation = matchBool("disable-model-invocation");
316
+ } else if (line.includes("user-invocable:")) {
317
+ userInvocable = matchBool("user-invocable");
318
+ } else if (line.includes("model:")) {
319
+ const val = match("model");
320
+ if (val) model = val;
321
+ } else if (line.includes("context:")) {
322
+ const val = match("context");
323
+ if (val === "fork" || val === "inline") context = val;
324
+ } else if (line.includes("agent:")) {
325
+ const val = match("agent");
326
+ if (val) agent = val;
245
327
  }
246
328
  }
329
+ const frontmatterText = frontmatterLines.join("\n");
330
+ const allowedToolsMatch = frontmatterText.match(/allowed-tools:\s*\[([^\]]*)\]/);
331
+ if (allowedToolsMatch) {
332
+ const rawContent2 = allowedToolsMatch[1]?.trim() ?? "";
333
+ allowedTools = rawContent2.length === 0 ? [] : rawContent2.split(",").map((s) => s.trim().replace(/^['"]|['"]$/g, "")).filter((s) => s.length > 0);
334
+ }
247
335
  } else {
248
336
  contentBody = rawContent;
249
337
  }
250
338
  } else {
251
339
  contentBody = rawContent;
252
340
  }
253
- if (title === fileName) {
341
+ if (title === defaultId) {
254
342
  for (const line of contentBody.trim().split("\n")) {
255
343
  if (line.trim().startsWith("#")) {
256
344
  title = line.trim().replace(/^#+\s*/, "");
@@ -266,7 +354,13 @@ class ConfigPromptProvider {
266
354
  content: contentBody.trim(),
267
355
  ...category !== void 0 && { category },
268
356
  ...priority !== void 0 && { priority },
269
- ...parsedArguments !== void 0 && { arguments: parsedArguments }
357
+ ...parsedArguments !== void 0 && { arguments: parsedArguments },
358
+ ...disableModelInvocation !== void 0 && { disableModelInvocation },
359
+ ...userInvocable !== void 0 && { userInvocable },
360
+ ...allowedTools !== void 0 && { allowedTools },
361
+ ...model !== void 0 && { model },
362
+ ...context !== void 0 && { context },
363
+ ...agent !== void 0 && { agent }
270
364
  };
271
365
  }
272
366
  parseArgumentHint(hint) {
@@ -220,6 +220,7 @@ class CustomPromptProvider {
220
220
  metadata.updatedAt = record.updatedAt;
221
221
  prompts.push({
222
222
  name: record.name,
223
+ displayName: record.name,
223
224
  title: record.title,
224
225
  description: record.description,
225
226
  source: "custom",
@@ -1 +1 @@
1
- {"version":3,"file":"custom-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/custom-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuB7D,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,qBAAa,oBAAqB,YAAW,cAAc;IAOnD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IAP3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,MAAM,CAAe;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EACxC,MAAM,EAAE,YAAY;IAKxB,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,IAAI;IAMjB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQxD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiEjF,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAcnE,YAAY,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsEjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBjC,UAAU;IAkDxB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,cAAc;CA4CzB"}
1
+ {"version":3,"file":"custom-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/custom-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuB7D,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,qBAAa,oBAAqB,YAAW,cAAc;IAOnD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IAP3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,MAAM,CAAe;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EACxC,MAAM,EAAE,YAAY;IAKxB,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,IAAI;IAMjB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQxD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiEjF,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAcnE,YAAY,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsEjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBjC,UAAU;IAmDxB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,cAAc;CA4CzB"}
@@ -198,6 +198,7 @@ class CustomPromptProvider {
198
198
  metadata.updatedAt = record.updatedAt;
199
199
  prompts.push({
200
200
  name: record.name,
201
+ displayName: record.name,
201
202
  title: record.title,
202
203
  description: record.description,
203
204
  source: "custom",
@@ -49,6 +49,7 @@ class MCPPromptProvider {
49
49
  ({ promptName, serverName, definition }) => {
50
50
  const promptInfo = {
51
51
  name: promptName,
52
+ displayName: promptName,
52
53
  title: definition.title || definition.description || `MCP prompt: ${promptName}`,
53
54
  description: definition.description || `MCP prompt: ${promptName}`,
54
55
  ...definition.arguments && { arguments: definition.arguments },
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/mcp-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAe;gBAEjB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;IAKxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6B9D;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAKvF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAoB5E"}
1
+ {"version":3,"file":"mcp-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/mcp-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAe;gBAEjB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;IAKxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8B9D;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAKvF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAoB5E"}
@@ -27,6 +27,7 @@ class MCPPromptProvider {
27
27
  ({ promptName, serverName, definition }) => {
28
28
  const promptInfo = {
29
29
  name: promptName,
30
+ displayName: promptName,
30
31
  title: definition.title || definition.description || `MCP prompt: ${promptName}`,
31
32
  description: definition.description || `MCP prompt: ${promptName}`,
32
33
  ...definition.arguments && { arguments: definition.arguments },
@@ -33,14 +33,40 @@ const InlinePromptSchema = import_zod.z.object({
33
33
  prompt: import_zod.z.string().describe("The actual prompt text"),
34
34
  category: import_zod.z.string().optional().default("general").describe("Category for organizing prompts (e.g., general, coding, analysis, tools)"),
35
35
  priority: import_zod.z.number().optional().default(0).describe("Higher numbers appear first in the list"),
36
- showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
36
+ showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts"),
37
+ // Claude Code compatibility fields (Phase 1)
38
+ "disable-model-invocation": import_zod.z.boolean().optional().default(false).describe("Exclude from auto-invocation list in system prompt"),
39
+ "user-invocable": import_zod.z.boolean().optional().default(true).describe("Show in slash command menu (false = hidden but auto-invocable by LLM)"),
40
+ // Per-prompt overrides (Phase 2)
41
+ "allowed-tools": import_zod.z.array(import_zod.z.string()).optional().describe("Tools allowed when this prompt is active (overrides global policies)"),
42
+ model: import_zod.z.string().optional().describe("Model to use when this prompt is invoked"),
43
+ // Execution context (Phase 2)
44
+ context: import_zod.z.enum(["inline", "fork"]).optional().default("inline").describe(
45
+ "Execution context: 'inline' runs in current session (default), 'fork' spawns isolated subagent"
46
+ ),
47
+ // Agent for fork execution
48
+ agent: import_zod.z.string().optional().describe('Agent ID from registry to use for fork execution (e.g., "explore-agent")')
37
49
  }).strict().describe("Inline prompt with text defined directly in config");
38
50
  const FilePromptSchema = import_zod.z.object({
39
51
  type: import_zod.z.literal("file").describe("File-based prompt type"),
40
52
  file: import_zod.z.string().describe(
41
53
  "Path to markdown file containing prompt (supports ${{dexto.agent_dir}} template)"
42
54
  ),
43
- showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
55
+ showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts"),
56
+ // Claude Code compatibility fields (Phase 1) - can override frontmatter
57
+ "disable-model-invocation": import_zod.z.boolean().optional().describe("Exclude from auto-invocation list in system prompt"),
58
+ "user-invocable": import_zod.z.boolean().optional().describe("Show in slash command menu (false = hidden but auto-invocable by LLM)"),
59
+ // Per-prompt overrides (Phase 2) - can override frontmatter
60
+ "allowed-tools": import_zod.z.array(import_zod.z.string()).optional().describe("Tools allowed when this prompt is active (overrides global policies)"),
61
+ model: import_zod.z.string().optional().describe("Model to use when this prompt is invoked"),
62
+ // Execution context (Phase 2) - can override frontmatter
63
+ context: import_zod.z.enum(["inline", "fork"]).optional().describe(
64
+ "Execution context: 'inline' runs in current session (default), 'fork' spawns isolated subagent"
65
+ ),
66
+ // Agent for fork execution - can override frontmatter
67
+ agent: import_zod.z.string().optional().describe('Agent ID from registry to use for fork execution (e.g., "explore-agent")'),
68
+ // Plugin namespace (Phase 3) - for prefixing command names
69
+ namespace: import_zod.z.string().optional().describe("Plugin namespace for command prefixing (e.g., plugin-name:command)")
44
70
  }).strict().describe("File-based prompt loaded from a markdown file");
45
71
  const PromptsSchema = import_zod.z.array(import_zod.z.discriminatedUnion("type", [InlinePromptSchema, FilePromptSchema])).superRefine((arr, ctx) => {
46
72
  const seen = /* @__PURE__ */ new Map();
@@ -20,7 +20,14 @@ export declare const InlinePromptSchema: z.ZodObject<{
20
20
  category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
21
21
  priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
22
22
  showInStarters: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
23
+ 'disable-model-invocation': z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
24
+ 'user-invocable': z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
25
+ 'allowed-tools': z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
26
+ model: z.ZodOptional<z.ZodString>;
27
+ context: z.ZodDefault<z.ZodOptional<z.ZodEnum<["inline", "fork"]>>>;
28
+ agent: z.ZodOptional<z.ZodString>;
23
29
  }, "strict", z.ZodTypeAny, {
30
+ context: "inline" | "fork";
24
31
  prompt: string;
25
32
  description: string;
26
33
  type: "inline";
@@ -28,16 +35,27 @@ export declare const InlinePromptSchema: z.ZodObject<{
28
35
  priority: number;
29
36
  category: string;
30
37
  showInStarters: boolean;
38
+ 'disable-model-invocation': boolean;
39
+ 'user-invocable': boolean;
40
+ agent?: string | undefined;
41
+ model?: string | undefined;
31
42
  title?: string | undefined;
43
+ 'allowed-tools'?: string[] | undefined;
32
44
  }, {
33
45
  prompt: string;
34
46
  type: "inline";
35
47
  id: string;
48
+ agent?: string | undefined;
49
+ context?: "inline" | "fork" | undefined;
36
50
  description?: string | undefined;
51
+ model?: string | undefined;
37
52
  title?: string | undefined;
38
53
  priority?: number | undefined;
39
54
  category?: string | undefined;
40
55
  showInStarters?: boolean | undefined;
56
+ 'disable-model-invocation'?: boolean | undefined;
57
+ 'user-invocable'?: boolean | undefined;
58
+ 'allowed-tools'?: string[] | undefined;
41
59
  }>;
42
60
  /**
43
61
  * Schema for file-based prompts - loaded from markdown files
@@ -46,14 +64,35 @@ export declare const FilePromptSchema: z.ZodObject<{
46
64
  type: z.ZodLiteral<"file">;
47
65
  file: z.ZodString;
48
66
  showInStarters: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
67
+ 'disable-model-invocation': z.ZodOptional<z.ZodBoolean>;
68
+ 'user-invocable': z.ZodOptional<z.ZodBoolean>;
69
+ 'allowed-tools': z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
70
+ model: z.ZodOptional<z.ZodString>;
71
+ context: z.ZodOptional<z.ZodEnum<["inline", "fork"]>>;
72
+ agent: z.ZodOptional<z.ZodString>;
73
+ namespace: z.ZodOptional<z.ZodString>;
49
74
  }, "strict", z.ZodTypeAny, {
50
75
  file: string;
51
76
  type: "file";
52
77
  showInStarters: boolean;
78
+ agent?: string | undefined;
79
+ context?: "inline" | "fork" | undefined;
80
+ model?: string | undefined;
81
+ 'disable-model-invocation'?: boolean | undefined;
82
+ 'user-invocable'?: boolean | undefined;
83
+ 'allowed-tools'?: string[] | undefined;
84
+ namespace?: string | undefined;
53
85
  }, {
54
86
  file: string;
55
87
  type: "file";
88
+ agent?: string | undefined;
89
+ context?: "inline" | "fork" | undefined;
90
+ model?: string | undefined;
56
91
  showInStarters?: boolean | undefined;
92
+ 'disable-model-invocation'?: boolean | undefined;
93
+ 'user-invocable'?: boolean | undefined;
94
+ 'allowed-tools'?: string[] | undefined;
95
+ namespace?: string | undefined;
57
96
  }>;
58
97
  /**
59
98
  * Unified prompts schema - array of inline or file-based prompts
@@ -68,7 +107,14 @@ export declare const PromptsSchema: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.Zod
68
107
  category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
69
108
  priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
70
109
  showInStarters: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
110
+ 'disable-model-invocation': z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
111
+ 'user-invocable': z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
112
+ 'allowed-tools': z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
113
+ model: z.ZodOptional<z.ZodString>;
114
+ context: z.ZodDefault<z.ZodOptional<z.ZodEnum<["inline", "fork"]>>>;
115
+ agent: z.ZodOptional<z.ZodString>;
71
116
  }, "strict", z.ZodTypeAny, {
117
+ context: "inline" | "fork";
72
118
  prompt: string;
73
119
  description: string;
74
120
  type: "inline";
@@ -76,29 +122,62 @@ export declare const PromptsSchema: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.Zod
76
122
  priority: number;
77
123
  category: string;
78
124
  showInStarters: boolean;
125
+ 'disable-model-invocation': boolean;
126
+ 'user-invocable': boolean;
127
+ agent?: string | undefined;
128
+ model?: string | undefined;
79
129
  title?: string | undefined;
130
+ 'allowed-tools'?: string[] | undefined;
80
131
  }, {
81
132
  prompt: string;
82
133
  type: "inline";
83
134
  id: string;
135
+ agent?: string | undefined;
136
+ context?: "inline" | "fork" | undefined;
84
137
  description?: string | undefined;
138
+ model?: string | undefined;
85
139
  title?: string | undefined;
86
140
  priority?: number | undefined;
87
141
  category?: string | undefined;
88
142
  showInStarters?: boolean | undefined;
143
+ 'disable-model-invocation'?: boolean | undefined;
144
+ 'user-invocable'?: boolean | undefined;
145
+ 'allowed-tools'?: string[] | undefined;
89
146
  }>, z.ZodObject<{
90
147
  type: z.ZodLiteral<"file">;
91
148
  file: z.ZodString;
92
149
  showInStarters: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
150
+ 'disable-model-invocation': z.ZodOptional<z.ZodBoolean>;
151
+ 'user-invocable': z.ZodOptional<z.ZodBoolean>;
152
+ 'allowed-tools': z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
153
+ model: z.ZodOptional<z.ZodString>;
154
+ context: z.ZodOptional<z.ZodEnum<["inline", "fork"]>>;
155
+ agent: z.ZodOptional<z.ZodString>;
156
+ namespace: z.ZodOptional<z.ZodString>;
93
157
  }, "strict", z.ZodTypeAny, {
94
158
  file: string;
95
159
  type: "file";
96
160
  showInStarters: boolean;
161
+ agent?: string | undefined;
162
+ context?: "inline" | "fork" | undefined;
163
+ model?: string | undefined;
164
+ 'disable-model-invocation'?: boolean | undefined;
165
+ 'user-invocable'?: boolean | undefined;
166
+ 'allowed-tools'?: string[] | undefined;
167
+ namespace?: string | undefined;
97
168
  }, {
98
169
  file: string;
99
170
  type: "file";
171
+ agent?: string | undefined;
172
+ context?: "inline" | "fork" | undefined;
173
+ model?: string | undefined;
100
174
  showInStarters?: boolean | undefined;
175
+ 'disable-model-invocation'?: boolean | undefined;
176
+ 'user-invocable'?: boolean | undefined;
177
+ 'allowed-tools'?: string[] | undefined;
178
+ namespace?: string | undefined;
101
179
  }>]>, "many">, ({
180
+ context: "inline" | "fork";
102
181
  prompt: string;
103
182
  description: string;
104
183
  type: "inline";
@@ -106,30 +185,63 @@ export declare const PromptsSchema: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.Zod
106
185
  priority: number;
107
186
  category: string;
108
187
  showInStarters: boolean;
188
+ 'disable-model-invocation': boolean;
189
+ 'user-invocable': boolean;
190
+ agent?: string | undefined;
191
+ model?: string | undefined;
109
192
  title?: string | undefined;
193
+ 'allowed-tools'?: string[] | undefined;
110
194
  } | {
111
195
  file: string;
112
196
  type: "file";
113
197
  showInStarters: boolean;
198
+ agent?: string | undefined;
199
+ context?: "inline" | "fork" | undefined;
200
+ model?: string | undefined;
201
+ 'disable-model-invocation'?: boolean | undefined;
202
+ 'user-invocable'?: boolean | undefined;
203
+ 'allowed-tools'?: string[] | undefined;
204
+ namespace?: string | undefined;
114
205
  })[], ({
115
206
  prompt: string;
116
207
  type: "inline";
117
208
  id: string;
209
+ agent?: string | undefined;
210
+ context?: "inline" | "fork" | undefined;
118
211
  description?: string | undefined;
212
+ model?: string | undefined;
119
213
  title?: string | undefined;
120
214
  priority?: number | undefined;
121
215
  category?: string | undefined;
122
216
  showInStarters?: boolean | undefined;
217
+ 'disable-model-invocation'?: boolean | undefined;
218
+ 'user-invocable'?: boolean | undefined;
219
+ 'allowed-tools'?: string[] | undefined;
123
220
  } | {
124
221
  file: string;
125
222
  type: "file";
223
+ agent?: string | undefined;
224
+ context?: "inline" | "fork" | undefined;
225
+ model?: string | undefined;
126
226
  showInStarters?: boolean | undefined;
227
+ 'disable-model-invocation'?: boolean | undefined;
228
+ 'user-invocable'?: boolean | undefined;
229
+ 'allowed-tools'?: string[] | undefined;
230
+ namespace?: string | undefined;
127
231
  })[]>, ({
128
232
  file: string;
129
233
  type: "file";
130
234
  showInStarters: boolean;
235
+ agent?: string | undefined;
236
+ context?: "inline" | "fork" | undefined;
237
+ model?: string | undefined;
238
+ 'disable-model-invocation'?: boolean | undefined;
239
+ 'user-invocable'?: boolean | undefined;
240
+ 'allowed-tools'?: string[] | undefined;
241
+ namespace?: string | undefined;
131
242
  } | {
132
243
  title: string;
244
+ context: "inline" | "fork";
133
245
  prompt: string;
134
246
  description: string;
135
247
  type: "inline";
@@ -137,19 +249,37 @@ export declare const PromptsSchema: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.Zod
137
249
  priority: number;
138
250
  category: string;
139
251
  showInStarters: boolean;
252
+ 'disable-model-invocation': boolean;
253
+ 'user-invocable': boolean;
254
+ agent?: string | undefined;
255
+ model?: string | undefined;
256
+ 'allowed-tools'?: string[] | undefined;
140
257
  })[], ({
141
258
  prompt: string;
142
259
  type: "inline";
143
260
  id: string;
261
+ agent?: string | undefined;
262
+ context?: "inline" | "fork" | undefined;
144
263
  description?: string | undefined;
264
+ model?: string | undefined;
145
265
  title?: string | undefined;
146
266
  priority?: number | undefined;
147
267
  category?: string | undefined;
148
268
  showInStarters?: boolean | undefined;
269
+ 'disable-model-invocation'?: boolean | undefined;
270
+ 'user-invocable'?: boolean | undefined;
271
+ 'allowed-tools'?: string[] | undefined;
149
272
  } | {
150
273
  file: string;
151
274
  type: "file";
275
+ agent?: string | undefined;
276
+ context?: "inline" | "fork" | undefined;
277
+ model?: string | undefined;
152
278
  showInStarters?: boolean | undefined;
279
+ 'disable-model-invocation'?: boolean | undefined;
280
+ 'user-invocable'?: boolean | undefined;
281
+ 'allowed-tools'?: string[] | undefined;
282
+ namespace?: string | undefined;
153
283
  })[]>>;
154
284
  /**
155
285
  * Type for a single inline prompt (validated)
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/prompts/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCoC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAeiC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6BgC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/prompts/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DoC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CiC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6BgC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -9,14 +9,40 @@ const InlinePromptSchema = z.object({
9
9
  prompt: z.string().describe("The actual prompt text"),
10
10
  category: z.string().optional().default("general").describe("Category for organizing prompts (e.g., general, coding, analysis, tools)"),
11
11
  priority: z.number().optional().default(0).describe("Higher numbers appear first in the list"),
12
- showInStarters: z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
12
+ showInStarters: z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts"),
13
+ // Claude Code compatibility fields (Phase 1)
14
+ "disable-model-invocation": z.boolean().optional().default(false).describe("Exclude from auto-invocation list in system prompt"),
15
+ "user-invocable": z.boolean().optional().default(true).describe("Show in slash command menu (false = hidden but auto-invocable by LLM)"),
16
+ // Per-prompt overrides (Phase 2)
17
+ "allowed-tools": z.array(z.string()).optional().describe("Tools allowed when this prompt is active (overrides global policies)"),
18
+ model: z.string().optional().describe("Model to use when this prompt is invoked"),
19
+ // Execution context (Phase 2)
20
+ context: z.enum(["inline", "fork"]).optional().default("inline").describe(
21
+ "Execution context: 'inline' runs in current session (default), 'fork' spawns isolated subagent"
22
+ ),
23
+ // Agent for fork execution
24
+ agent: z.string().optional().describe('Agent ID from registry to use for fork execution (e.g., "explore-agent")')
13
25
  }).strict().describe("Inline prompt with text defined directly in config");
14
26
  const FilePromptSchema = z.object({
15
27
  type: z.literal("file").describe("File-based prompt type"),
16
28
  file: z.string().describe(
17
29
  "Path to markdown file containing prompt (supports ${{dexto.agent_dir}} template)"
18
30
  ),
19
- showInStarters: z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
31
+ showInStarters: z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts"),
32
+ // Claude Code compatibility fields (Phase 1) - can override frontmatter
33
+ "disable-model-invocation": z.boolean().optional().describe("Exclude from auto-invocation list in system prompt"),
34
+ "user-invocable": z.boolean().optional().describe("Show in slash command menu (false = hidden but auto-invocable by LLM)"),
35
+ // Per-prompt overrides (Phase 2) - can override frontmatter
36
+ "allowed-tools": z.array(z.string()).optional().describe("Tools allowed when this prompt is active (overrides global policies)"),
37
+ model: z.string().optional().describe("Model to use when this prompt is invoked"),
38
+ // Execution context (Phase 2) - can override frontmatter
39
+ context: z.enum(["inline", "fork"]).optional().describe(
40
+ "Execution context: 'inline' runs in current session (default), 'fork' spawns isolated subagent"
41
+ ),
42
+ // Agent for fork execution - can override frontmatter
43
+ agent: z.string().optional().describe('Agent ID from registry to use for fork execution (e.g., "explore-agent")'),
44
+ // Plugin namespace (Phase 3) - for prefixing command names
45
+ namespace: z.string().optional().describe("Plugin namespace for command prefixing (e.g., plugin-name:command)")
20
46
  }).strict().describe("File-based prompt loaded from a markdown file");
21
47
  const PromptsSchema = z.array(z.discriminatedUnion("type", [InlinePromptSchema, FilePromptSchema])).superRefine((arr, ctx) => {
22
48
  const seen = /* @__PURE__ */ new Map();