@qodeca/xezar 0.13.0 → 0.14.0

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 (250) hide show
  1. package/README.md +72 -39
  2. package/dist/agent-config/account-identity.d.ts +2 -8
  3. package/dist/agent-config/account-identity.js +54 -10
  4. package/dist/agent-config/account-identity.js.map +1 -1
  5. package/dist/agent-config/catalog.d.ts +49 -7
  6. package/dist/agent-config/catalog.js +107 -0
  7. package/dist/agent-config/catalog.js.map +1 -1
  8. package/dist/agent-config/model-settings/pi.d.ts +12 -6
  9. package/dist/agent-config/model-settings/pi.js +12 -6
  10. package/dist/agent-config/model-settings/pi.js.map +1 -1
  11. package/dist/agent-config/seed.js +10 -0
  12. package/dist/agent-config/seed.js.map +1 -1
  13. package/dist/contract/github.d.ts +15 -0
  14. package/dist/contract/index.d.ts +9 -0
  15. package/dist/contract/index.js +1527 -895
  16. package/dist/contract/mcp-api-reference.d.ts +174 -0
  17. package/dist/contract/mcp-audit.d.ts +103 -0
  18. package/dist/contract/mcp-discovery.d.ts +257 -0
  19. package/dist/contract/mcp-event-catalog.d.ts +121 -0
  20. package/dist/contract/mcp-event-catalog.test.d.ts +1 -0
  21. package/dist/contract/mcp-idempotency.d.ts +200 -0
  22. package/dist/contract/mcp-journal.d.ts +268 -0
  23. package/dist/contract/mcp-leader.d.ts +88 -0
  24. package/dist/contract/mcp-ownership.d.ts +78 -0
  25. package/dist/contract/mcp-versioning.d.ts +139 -0
  26. package/dist/contract/runs.d.ts +81 -0
  27. package/dist/core/agent-profiles.d.ts +15 -4
  28. package/dist/core/agent-profiles.js +22 -8
  29. package/dist/core/agent-profiles.js.map +1 -1
  30. package/dist/core/opencode-server-runner.js +71 -11
  31. package/dist/core/opencode-server-runner.js.map +1 -1
  32. package/dist/core/secret-redaction.d.ts +7 -1
  33. package/dist/core/secret-redaction.js +44 -10
  34. package/dist/core/secret-redaction.js.map +1 -1
  35. package/dist/index.js +138 -27
  36. package/dist/index.js.map +1 -1
  37. package/dist/machine-identity.d.ts +66 -0
  38. package/dist/machine-identity.js +96 -0
  39. package/dist/machine-identity.js.map +1 -0
  40. package/dist/mcp/adapters/claude-code.d.ts +41 -0
  41. package/dist/mcp/adapters/claude-code.js +40 -0
  42. package/dist/mcp/adapters/claude-code.js.map +1 -0
  43. package/dist/mcp/adapters/codex.d.ts +140 -0
  44. package/dist/mcp/adapters/codex.js +323 -0
  45. package/dist/mcp/adapters/codex.js.map +1 -0
  46. package/dist/mcp/adapters/opencode.d.ts +148 -0
  47. package/dist/mcp/adapters/opencode.js +528 -0
  48. package/dist/mcp/adapters/opencode.js.map +1 -0
  49. package/dist/mcp/adapters/pi-link.d.ts +102 -0
  50. package/dist/mcp/adapters/pi-link.js +235 -0
  51. package/dist/mcp/adapters/pi-link.js.map +1 -0
  52. package/dist/mcp/adapters/pi.d.ts +188 -0
  53. package/dist/mcp/adapters/pi.js +418 -0
  54. package/dist/mcp/adapters/pi.js.map +1 -0
  55. package/dist/mcp/api-reference.d.ts +26 -0
  56. package/dist/mcp/api-reference.js +133 -0
  57. package/dist/mcp/api-reference.js.map +1 -0
  58. package/dist/mcp/audit-trail.d.ts +162 -0
  59. package/dist/mcp/audit-trail.js +306 -0
  60. package/dist/mcp/audit-trail.js.map +1 -0
  61. package/dist/mcp/bridge.d.ts +81 -0
  62. package/dist/mcp/bridge.js +407 -0
  63. package/dist/mcp/bridge.js.map +1 -0
  64. package/dist/mcp/connection-file.d.ts +49 -0
  65. package/dist/mcp/connection-file.js +63 -0
  66. package/dist/mcp/connection-file.js.map +1 -0
  67. package/dist/mcp/echo-guard.d.ts +94 -0
  68. package/dist/mcp/echo-guard.js +160 -0
  69. package/dist/mcp/echo-guard.js.map +1 -0
  70. package/dist/mcp/event-catalog.d.ts +120 -0
  71. package/dist/mcp/event-catalog.js +306 -0
  72. package/dist/mcp/event-catalog.js.map +1 -0
  73. package/dist/mcp/event-controller.d.ts +230 -0
  74. package/dist/mcp/event-controller.js +596 -0
  75. package/dist/mcp/event-controller.js.map +1 -0
  76. package/dist/mcp/event-journal.d.ts +57 -0
  77. package/dist/mcp/event-journal.js +423 -0
  78. package/dist/mcp/event-journal.js.map +1 -0
  79. package/dist/mcp/index.d.ts +63 -0
  80. package/dist/mcp/index.js +386 -0
  81. package/dist/mcp/index.js.map +1 -0
  82. package/dist/mcp/ipc.d.ts +202 -0
  83. package/dist/mcp/ipc.js +206 -0
  84. package/dist/mcp/ipc.js.map +1 -0
  85. package/dist/mcp/leader-delivery.d.ts +119 -0
  86. package/dist/mcp/leader-delivery.js +450 -0
  87. package/dist/mcp/leader-delivery.js.map +1 -0
  88. package/dist/mcp/operation-receipts.d.ts +210 -0
  89. package/dist/mcp/operation-receipts.js +723 -0
  90. package/dist/mcp/operation-receipts.js.map +1 -0
  91. package/dist/mcp/project-catalogs.d.ts +23 -0
  92. package/dist/mcp/project-catalogs.js +25 -0
  93. package/dist/mcp/project-catalogs.js.map +1 -0
  94. package/dist/mcp/project-leaders.d.ts +26 -0
  95. package/dist/mcp/project-leaders.js +17 -0
  96. package/dist/mcp/project-leaders.js.map +1 -0
  97. package/dist/mcp/protocol.d.ts +50 -0
  98. package/dist/mcp/protocol.js +47 -0
  99. package/dist/mcp/protocol.js.map +1 -0
  100. package/dist/mcp/reconnect.d.ts +297 -0
  101. package/dist/mcp/reconnect.js +465 -0
  102. package/dist/mcp/reconnect.js.map +1 -0
  103. package/dist/mcp/resource-ownership.d.ts +228 -0
  104. package/dist/mcp/resource-ownership.js +390 -0
  105. package/dist/mcp/resource-ownership.js.map +1 -0
  106. package/dist/mcp/service-adapter.d.ts +16488 -0
  107. package/dist/mcp/service-adapter.js +148 -0
  108. package/dist/mcp/service-adapter.js.map +1 -0
  109. package/dist/mcp/service.d.ts +83 -0
  110. package/dist/mcp/service.js +233 -0
  111. package/dist/mcp/service.js.map +1 -0
  112. package/dist/mcp/session-binding.d.ts +105 -0
  113. package/dist/mcp/session-binding.js +163 -0
  114. package/dist/mcp/session-binding.js.map +1 -0
  115. package/dist/mcp/stale-write.d.ts +145 -0
  116. package/dist/mcp/stale-write.js +219 -0
  117. package/dist/mcp/stale-write.js.map +1 -0
  118. package/dist/mcp/tool.d.ts +48 -0
  119. package/dist/mcp/tool.js +24 -0
  120. package/dist/mcp/tool.js.map +1 -0
  121. package/dist/mcp/tools/discovery.d.ts +40 -0
  122. package/dist/mcp/tools/discovery.js +232 -0
  123. package/dist/mcp/tools/discovery.js.map +1 -0
  124. package/dist/mcp/tools/execution-control.d.ts +171 -0
  125. package/dist/mcp/tools/execution-control.js +513 -0
  126. package/dist/mcp/tools/execution-control.js.map +1 -0
  127. package/dist/mcp/tools/handoff-git.d.ts +26 -0
  128. package/dist/mcp/tools/handoff-git.js +544 -0
  129. package/dist/mcp/tools/handoff-git.js.map +1 -0
  130. package/dist/mcp/tools/index.d.ts +2 -0
  131. package/dist/mcp/tools/index.js +23 -0
  132. package/dist/mcp/tools/index.js.map +1 -0
  133. package/dist/mcp/tools/leader-events.d.ts +46 -0
  134. package/dist/mcp/tools/leader-events.js +126 -0
  135. package/dist/mcp/tools/leader-events.js.map +1 -0
  136. package/dist/mcp/tools/local-handoff.d.ts +102 -0
  137. package/dist/mcp/tools/local-handoff.js +306 -0
  138. package/dist/mcp/tools/local-handoff.js.map +1 -0
  139. package/dist/mcp/tools/project-config.d.ts +340 -0
  140. package/dist/mcp/tools/project-config.js +1075 -0
  141. package/dist/mcp/tools/project-config.js.map +1 -0
  142. package/dist/mcp/tools/results-evidence.d.ts +112 -0
  143. package/dist/mcp/tools/results-evidence.js +1045 -0
  144. package/dist/mcp/tools/results-evidence.js.map +1 -0
  145. package/dist/mcp/tools/task-create.d.ts +70 -0
  146. package/dist/mcp/tools/task-create.js +473 -0
  147. package/dist/mcp/tools/task-create.js.map +1 -0
  148. package/dist/mcp/tools/task-reads.d.ts +102 -0
  149. package/dist/mcp/tools/task-reads.js +689 -0
  150. package/dist/mcp/tools/task-reads.js.map +1 -0
  151. package/dist/mcp/tools/work-organisation.d.ts +2 -0
  152. package/dist/mcp/tools/work-organisation.js +502 -0
  153. package/dist/mcp/tools/work-organisation.js.map +1 -0
  154. package/dist/paths.d.ts +17 -7
  155. package/dist/paths.js +18 -8
  156. package/dist/paths.js.map +1 -1
  157. package/dist/runs/project-writer.js +76 -11
  158. package/dist/runs/project-writer.js.map +1 -1
  159. package/dist/runs/retention.d.ts +25 -2
  160. package/dist/runs/retention.js +63 -2
  161. package/dist/runs/retention.js.map +1 -1
  162. package/dist/server/forge/github.js +44 -0
  163. package/dist/server/forge/github.js.map +1 -1
  164. package/dist/server/forge/types.d.ts +16 -0
  165. package/dist/server/project-context.d.ts +81 -8
  166. package/dist/server/project-context.js +143 -35
  167. package/dist/server/project-context.js.map +1 -1
  168. package/dist/server/server.d.ts +1050 -53
  169. package/dist/server/server.js +326 -120
  170. package/dist/server/server.js.map +1 -1
  171. package/dist/server/validators.d.ts +26 -6
  172. package/dist/server/validators.js +17 -0
  173. package/dist/server/validators.js.map +1 -1
  174. package/dist/skills-remote.js +64 -6
  175. package/dist/skills-remote.js.map +1 -1
  176. package/dist/workflows/run.d.ts +277 -12
  177. package/dist/workflows/run.js +599 -79
  178. package/dist/workflows/run.js.map +1 -1
  179. package/dist/workspace/agent-profiles.d.ts +30 -3
  180. package/dist/workspace/agent-profiles.js +39 -4
  181. package/dist/workspace/agent-profiles.js.map +1 -1
  182. package/dist/workspace/config.js +25 -4
  183. package/dist/workspace/config.js.map +1 -1
  184. package/dist/workspace/project-owner.d.ts +210 -0
  185. package/dist/workspace/project-owner.js +518 -0
  186. package/dist/workspace/project-owner.js.map +1 -0
  187. package/package.json +5 -3
  188. package/scripts/pi-leader-extension.ts +420 -0
  189. package/scripts/sync-readme.mjs +83 -2
  190. package/web/dist/assets/{alert-dialog-BVsVcbFy.js → alert-dialog-D6rP6d39.js} +1 -1
  191. package/web/dist/assets/arrow-down-DMOfFIzW.js +1 -0
  192. package/web/dist/assets/arrow-left-C4Ec2BUg.js +1 -0
  193. package/web/dist/assets/{centered-state-Djgly6Ni.js → centered-state-B0ZqrPaa.js} +12 -12
  194. package/web/dist/assets/chevron-right-mHJ-crvn.js +1 -0
  195. package/web/dist/assets/{collapsible-DZ4D-DHG.js → collapsible-DchEHgUM.js} +1 -1
  196. package/web/dist/assets/{commit-list-B-z1JL9G.js → commit-list-BpMim1Rv.js} +1 -1
  197. package/web/dist/assets/{compare-variants-CdS8r8E2.js → compare-variants-D5ItQbAq.js} +1 -1
  198. package/web/dist/assets/{diff-BKew9rQX.js → diff-HqqZ_WDR.js} +2 -2
  199. package/web/dist/assets/{diff-stat-D0mc5V6Z.js → diff-stat-NsU-3ecr.js} +1 -1
  200. package/web/dist/assets/{diff-view-xpIcuLIC.js → diff-view-B7c11Xux.js} +1 -1
  201. package/web/dist/assets/{dropdown-menu-CEQziH7X.js → dropdown-menu-CtTpnyod.js} +1 -1
  202. package/web/dist/assets/{editable-title-BCX3T2BY.js → editable-title-BXtuGQry.js} +1 -1
  203. package/web/dist/assets/{ellipsis-vertical-ByVdDc4z.js → ellipsis-vertical-MHtGZSH6.js} +1 -1
  204. package/web/dist/assets/{file-xBSB5hXO.js → file-DKLw5SOb.js} +1 -1
  205. package/web/dist/assets/{folder-CldgbZ5A.js → folder-Drw6-ufH.js} +1 -1
  206. package/web/dist/assets/{git-toolbar-BYlnf4qf.js → git-toolbar-BQH8bORV.js} +1 -1
  207. package/web/dist/assets/github-ynnpKFCJ.js +1 -0
  208. package/web/dist/assets/{image-preview-Cv5mZr0n.js → image-preview-DLhMN_R9.js} +1 -1
  209. package/web/dist/assets/index-BEsrNdXt.js +29 -0
  210. package/web/dist/assets/index-Da8DOBau.css +2 -0
  211. package/web/dist/assets/{markdown-CgEEE2ND.js → markdown-q365eN6Y.js} +1 -1
  212. package/web/dist/assets/{new-task-form-1r2bgsdD.js → new-task-form-CW-hNIWQ.js} +1 -1
  213. package/web/dist/assets/{pill-q-x22_ej.js → pill-B_TFulXa.js} +1 -1
  214. package/web/dist/assets/{project-router-VDN4jQM8.js → project-router-CLPc-ImZ.js} +1 -1
  215. package/web/dist/assets/{prompt-templates-BmZtCe-L.js → prompt-templates-CLc4RxyO.js} +1 -1
  216. package/web/dist/assets/{repo-git-C2On8SlI.js → repo-git-Is7R6-Tj.js} +1 -1
  217. package/web/dist/assets/{run-diff-vguEMJzh.js → run-diff-DHMvDlVo.js} +2 -2
  218. package/web/dist/assets/run-header-DvZJbQ8I.js +1 -0
  219. package/web/dist/assets/{search-x-QmhaAbg5.js → search-x-Ce2MMetu.js} +1 -1
  220. package/web/dist/assets/{skill-empty-hint-BrzUwByZ.js → skill-empty-hint-C_xCSvzB.js} +1 -1
  221. package/web/dist/assets/skills-CivqD4si.js +1 -0
  222. package/web/dist/assets/{sparkles-CP8QDOgX.js → sparkles-BCqPoj5g.js} +1 -1
  223. package/web/dist/assets/{square-terminal-CGypshSD.js → square-terminal-ikj5g-oK.js} +1 -1
  224. package/web/dist/assets/{tab-link-D4lFzzI1.js → tab-link-VsEjFV1Y.js} +1 -1
  225. package/web/dist/assets/{task-changes-6aopqAmV.js → task-changes-CH-E81-_.js} +1 -1
  226. package/web/dist/assets/{task-commits-u-dwaCyw.js → task-commits-DqfkMFxp.js} +1 -1
  227. package/web/dist/assets/{task-files-IMOZnIUK.js → task-files-D_nkHZ_a.js} +2 -2
  228. package/web/dist/assets/task-thread-bxQompxJ.js +9 -0
  229. package/web/dist/assets/{textarea-CyBCyKIk.js → textarea-xajuW1L_.js} +1 -1
  230. package/web/dist/assets/{thread-loading-Cuq2jchC.js → thread-loading-C3JQZbIE.js} +1 -1
  231. package/web/dist/assets/{trash-2-B6Dp3ZNs.js → trash-2-hJrBhpUD.js} +1 -1
  232. package/web/dist/assets/{triangle-alert-xBya8FUp.js → triangle-alert-D1u82y1a.js} +1 -1
  233. package/web/dist/assets/{upload-D6MXEB9p.js → upload-Bn6FBZ59.js} +1 -1
  234. package/web/dist/assets/{use-desktop-fLDKEJoB.js → use-desktop-DOIMfHfY.js} +1 -1
  235. package/web/dist/assets/{use-submit-shortcut-JTpNzU-u.js → use-submit-shortcut-Dj4DHTdE.js} +1 -1
  236. package/web/dist/assets/utils-YwBpOoRN.js +64 -0
  237. package/web/dist/assets/{workflows-BY3KTkFw.js → workflows-CTaAKz2m.js} +3 -3
  238. package/web/dist/assets/{zoomable-image-GTYwLtkS.js → zoomable-image-C1-6P3tg.js} +1 -1
  239. package/web/dist/index.html +23 -23
  240. package/web/dist/assets/arrow-down-CYgAlZtW.js +0 -1
  241. package/web/dist/assets/arrow-left-BOqE0a3k.js +0 -1
  242. package/web/dist/assets/chevron-right-Cc9BWnbN.js +0 -1
  243. package/web/dist/assets/github-CqGK62Lw.js +0 -1
  244. package/web/dist/assets/index-3nxVmdn5.css +0 -2
  245. package/web/dist/assets/index-qX7n11FX.js +0 -9
  246. package/web/dist/assets/refresh-cw-DcNCj2nu.js +0 -1
  247. package/web/dist/assets/run-header-DM7MiKj9.js +0 -1
  248. package/web/dist/assets/skills-Bj-uG_Hz.js +0 -1
  249. package/web/dist/assets/task-thread-CbMPmrWq.js +0 -9
  250. package/web/dist/assets/utils--z9hRtl3.js +0 -64
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results-evidence.js","sourceRoot":"","sources":["../../../src/mcp/tools/results-evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import { type ServiceDispatch } from '../service-adapter.ts';
3
+ import { type McpToolContext } from '../tool.ts';
4
+ export declare const taskCreateInputSchema: z.ZodObject<{
5
+ action: z.ZodDefault<z.ZodEnum<{
6
+ plan: "plan";
7
+ save_plan: "save_plan";
8
+ start: "start";
9
+ start_from_inbox: "start_from_inbox";
10
+ }>>;
11
+ operationId: z.ZodString;
12
+ prompt: z.ZodOptional<z.ZodString>;
13
+ images: z.ZodOptional<z.ZodArray<z.ZodObject<{
14
+ mediaType: z.ZodString;
15
+ data: z.ZodString;
16
+ }, z.core.$strip>>>;
17
+ source: z.ZodOptional<z.ZodNullable<z.ZodObject<{
18
+ source: z.ZodEnum<{
19
+ skill: "skill";
20
+ workflow: "workflow";
21
+ }>;
22
+ ref: z.ZodString;
23
+ }, z.core.$strict>>>;
24
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
25
+ id: z.ZodString;
26
+ name: z.ZodOptional<z.ZodString>;
27
+ prompt: z.ZodOptional<z.ZodString>;
28
+ skill: z.ZodOptional<z.ZodString>;
29
+ model: z.ZodOptional<z.ZodString>;
30
+ runner: z.ZodOptional<z.ZodEnum<{
31
+ claude: "claude";
32
+ codex: "codex";
33
+ opencode: "opencode";
34
+ pi: "pi";
35
+ }>>;
36
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ bashAllowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
+ timeout: z.ZodOptional<z.ZodString>;
39
+ command: z.ZodOptional<z.ZodString>;
40
+ onFail: z.ZodOptional<z.ZodObject<{
41
+ retry: z.ZodString;
42
+ max: z.ZodDefault<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ }, z.core.$strip>>>;
45
+ model: z.ZodOptional<z.ZodString>;
46
+ runner: z.ZodOptional<z.ZodEnum<{
47
+ claude: "claude";
48
+ codex: "codex";
49
+ opencode: "opencode";
50
+ pi: "pi";
51
+ }>>;
52
+ agentProfile: z.ZodOptional<z.ZodString>;
53
+ variants: z.ZodOptional<z.ZodNumber>;
54
+ worktree: z.ZodOptional<z.ZodBoolean>;
55
+ autonomous: z.ZodOptional<z.ZodBoolean>;
56
+ generateFollowups: z.ZodOptional<z.ZodBoolean>;
57
+ todoId: z.ZodOptional<z.ZodString>;
58
+ name: z.ZodOptional<z.ZodString>;
59
+ description: z.ZodOptional<z.ZodString>;
60
+ overwrite: z.ZodOptional<z.ZodBoolean>;
61
+ }, z.core.$strict>;
62
+ /**
63
+ * What this tool needs beyond the base context: the running service's in-process entry, the same
64
+ * `ServiceDispatch` the shared adapter (#89) takes. The socket wiring that passes it in belongs to
65
+ * the session work; until it does, the tool answers that it is not connected rather than guessing.
66
+ */
67
+ export interface TaskCreateContext extends McpToolContext {
68
+ readonly service?: ServiceDispatch;
69
+ }
70
+ export declare const taskCreateTool: import("../tool.ts").McpTool<z.ZodObject<z.core.$ZodLooseShape, z.core.$strip>>;
@@ -0,0 +1,473 @@
1
+ import { createRunInputBaseSchema, operationIdSchema } from '../../contract/index.js';
2
+ import { hc } from 'hono/client';
3
+ import { z } from 'zod';
4
+ import { modelConflictsWithRunner } from '../../core/model-presets.js';
5
+ import { McpServiceAdapter } from '../service-adapter.js';
6
+ import { defineTool, errorResult, textResult } from '../tool.js';
7
+ /**
8
+ * `task_create` — create and plan tasks with the composer form's options, defaults and validation
9
+ * (#92, F-06, A-05, A-06; inventory I-001, I-002, I-003, I-005, I-007, I-008, I-009, I-026, I-085).
10
+ *
11
+ * WHERE THE RULES LIVE. The server's routes own validation and every refusal: the tool sends each
12
+ * action to the route the cockpit calls (`POST /runs`, `POST /plan`, `POST /todos/:id/start`,
13
+ * `POST /workflows`) through the shared service seam, so a bad value gets the cockpit's own 400,
14
+ * 404 or 409. What the server does NOT own is the composer's DEFAULTS: `resolveComposerRunMode`,
15
+ * `resolveRunner`, `resolveModel` and `buildCreateRunBody` run in the browser and decide which
16
+ * keys the body carries at all. An MCP task that omits a field must land where a cockpit task
17
+ * would (N-02), so those rules are mirrored below from `packages/web/src/routes/new-task-form.ts`,
18
+ * `new-task-draft.ts`, `new-task-plan.ts`, `components/engine-pills.tsx` and
19
+ * `lib/provider-status.ts`. The web package cannot ship in the published CLI (it is a private
20
+ * workspace), so a copy is the only runtime option; `task-create.test.ts` runs the cockpit's own
21
+ * functions against the same server state and fails when the two disagree.
22
+ *
23
+ * WHAT IS DELIBERATELY NOT MIRRORED. The composer's per-browser PRESELECTION memory (`lastTask`,
24
+ * `lastWorktree`, `lastAutonomous`, `lastGenerateFollowups`) is excluded by the settings
25
+ * classification: MCP states every option on the call. The workspace `composerDefaults` ARE read,
26
+ * exactly as the composer reads them.
27
+ *
28
+ * WHERE THE COMPOSER IS SILENT, MCP REFUSES. The form cannot express some values a caller can send
29
+ * — an unknown skill, a model that belongs to another runner, `worktree` on a planned start. The
30
+ * composer's resolvers would quietly replace them; a silent substitution is the wrong answer for a
31
+ * caller that cannot see a picker, so the tool refuses them instead and says why.
32
+ *
33
+ * NO FALLBACK, NO RETRY. A git task that asks for isolation and cannot get a worktree is marked
34
+ * `failed` by `RunManager` before any step runs; it never falls back to the checkout. The tool
35
+ * starts ONCE, reports the status it can see, and never re-issues a start on its own.
36
+ */
37
+ const ACTIONS = ['start', 'plan', 'start_from_inbox', 'save_plan'];
38
+ /** The composer's field shapes are the CONTRACT's: the same zod definition, so the same bound and
39
+ * the same message the route answers with. */
40
+ const run = createRunInputBaseSchema.shape;
41
+ export const taskCreateInputSchema = z.strictObject({
42
+ action: z
43
+ .enum(ACTIONS)
44
+ .default('start')
45
+ .describe('`start` (default) creates a task like the New task form. `plan` asks the planner for steps. `start_from_inbox` starts an Inbox entry. `save_plan` saves a step list as a project workflow.'),
46
+ // D-06 § 5.2: the one zod definition of an operation id lives in the contract; every mutating
47
+ // tool takes it, and every one of them describes it in its own terms.
48
+ operationId: operationIdSchema.describe('Client-generated key for this operation (8–128 chars). Reuse it only to repeat the same operation.'),
49
+ prompt: z
50
+ .string()
51
+ .optional()
52
+ .describe('The task text (start, plan; up to 100000 chars), or extra instructions (start_from_inbox; up to 20000 chars).'),
53
+ images: run.images.describe('Attachments (start): up to 4, base64 images, plain text, markdown or PDF.'),
54
+ source: z
55
+ .strictObject({ source: z.enum(['skill', 'workflow']), ref: z.string().min(1) })
56
+ .nullable()
57
+ .optional()
58
+ .describe('What the task runs (start): a skill or a workflow by name. Omit or null for the plain built-in `quick-task`.'),
59
+ steps: run.steps.describe('An inline step list (start from a reviewed plan, or save_plan). Not combined with `source`.'),
60
+ model: run.model.describe("Model id (start, start_from_inbox). Omit for the runner's configured default; '' means auto."),
61
+ runner: run.runner.describe('Agent backend (start, start_from_inbox). Omit for the project default.'),
62
+ agentProfile: run.agentProfile.describe("Agent account id (start only). Omit to follow the project's selection."),
63
+ variants: run.variants.describe('1–3 competing runs (start). Above 1 needs git and always uses worktrees.'),
64
+ worktree: run.worktree.describe('false runs in the repo working tree (start, single runs only). Omit for the workspace default.'),
65
+ autonomous: run.autonomous.describe('true never pauses for the user (start). Omit for the workspace default.'),
66
+ generateFollowups: run.generateFollowups.describe('false stops follow-up inbox entries (start). Omit for on.'),
67
+ todoId: run.todoId.describe('The Inbox entry: the one to start (start_from_inbox), or the one this task came from (start).'),
68
+ name: z.string().optional().describe('Workflow name (save_plan, up to 80 chars).'),
69
+ description: z.string().optional().describe('Workflow description (save_plan).'),
70
+ overwrite: z.boolean().optional().describe('save_plan: replace an existing workflow of that name. Ask the user first.'),
71
+ });
72
+ /** Which options each action takes. The Inbox start is NARROWER than the composer (I-026): runner,
73
+ * model and instructions, and no agent account. */
74
+ const ACTION_FIELDS = {
75
+ start: ['prompt', 'images', 'source', 'steps', 'model', 'runner', 'agentProfile', 'variants', 'worktree', 'autonomous', 'generateFollowups', 'todoId'],
76
+ plan: ['prompt'],
77
+ start_from_inbox: ['todoId', 'prompt', 'runner', 'model'],
78
+ save_plan: ['name', 'description', 'steps', 'overwrite'],
79
+ };
80
+ /** A planned start sends what `buildPlannedRunBody` sends: no source, no account, and the run-mode
81
+ * toggles stay at the server's defaults (plan-first is interactive and isolated). */
82
+ const PLANNED_START_EXCLUDES = ['source', 'agentProfile', 'worktree', 'autonomous'];
83
+ export const taskCreateTool = defineTool({
84
+ name: 'task_create',
85
+ title: 'Create or plan a task',
86
+ description: [
87
+ "Create a task in this project with the New task form's options, defaults and validation, plan one first, start an Inbox entry, or save a planned step list as a workflow.",
88
+ 'Options you omit resolve exactly as the form resolves them for this project. `start` returns promptly with the run id and status `accepted`; it does not wait for the task, so read the task status separately.',
89
+ 'A git task that asks for a worktree and cannot get one is marked failed before any step runs; it never falls back to the checkout.',
90
+ ].join(' '),
91
+ inputSchema: taskCreateInputSchema,
92
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
93
+ async call(args, ctx) {
94
+ const service = ctx.service;
95
+ if (!service) {
96
+ return errorResult('task_create is not connected to the xezar service in this session.');
97
+ }
98
+ const refused = fieldRefusal(args);
99
+ if (refused)
100
+ return errorResult(refused);
101
+ const api = scopedClient(service, ctx.project.id);
102
+ switch (args.action) {
103
+ case 'start':
104
+ return startTask(args, api, new McpServiceAdapter({ projectId: ctx.project.id, service }));
105
+ case 'plan':
106
+ return planTask(args, api);
107
+ case 'start_from_inbox':
108
+ return startFromInbox(args, api);
109
+ case 'save_plan':
110
+ return savePlan(args, api);
111
+ }
112
+ },
113
+ });
114
+ function fieldRefusal(args) {
115
+ const allowed = new Set(ACTION_FIELDS[args.action]);
116
+ const sent = Object.keys(args).filter((key) => key !== 'action' && key !== 'operationId' && args[key] !== undefined);
117
+ const foreign = sent.filter((key) => !allowed.has(key));
118
+ if (foreign.length > 0) {
119
+ return `action "${args.action}" does not take: ${foreign.join(', ')}`;
120
+ }
121
+ if (args.action === 'start' && args.steps !== undefined) {
122
+ const planned = sent.filter((key) => PLANNED_START_EXCLUDES.includes(key));
123
+ if (planned.length > 0) {
124
+ return `a start from a step list takes no ${planned.join(', ')} — a planned start runs interactively in a worktree, as the plan review does`;
125
+ }
126
+ }
127
+ if (args.action === 'start_from_inbox' && args.todoId === undefined) {
128
+ return 'action "start_from_inbox" needs the todoId of the Inbox entry';
129
+ }
130
+ return null;
131
+ }
132
+ // ---- the service seam --------------------------------------------------------------------------
133
+ /** The adapter's in-process transport, for the read and write routes its closed table does not
134
+ * name. Same `host`, same absent `Origin`, same scoped prefix — the request never leaves the
135
+ * process and no argument chooses the project. */
136
+ function client(service) {
137
+ return hc('http://127.0.0.1', {
138
+ fetch: async (input, init) => {
139
+ const headers = new Headers(init?.headers);
140
+ headers.set('host', '127.0.0.1');
141
+ headers.delete('origin');
142
+ const url = input instanceof Request ? input.url : String(input);
143
+ return service.request(url, { ...init, headers });
144
+ },
145
+ });
146
+ }
147
+ function scopedClient(service, projectId) {
148
+ const api = client(service).api.v1;
149
+ return { workspace: api, project: api.p[':projectId'], param: { projectId } };
150
+ }
151
+ async function settle(pending) {
152
+ let res;
153
+ try {
154
+ res = await pending;
155
+ }
156
+ catch {
157
+ return { ok: false, status: 500, error: 'the service did not answer' };
158
+ }
159
+ const body = await res.json().catch(() => undefined);
160
+ if (res.ok && body !== undefined)
161
+ return { ok: true, status: res.status, value: body };
162
+ const error = body && typeof body === 'object' && typeof body.error === 'string'
163
+ ? body.error
164
+ : `service answered ${res.status}`;
165
+ return { ok: false, status: res.status, error };
166
+ }
167
+ /** Everything the composer reads before it enables Start, fetched the way it fetches it. */
168
+ async function composerState(api) {
169
+ const [providers, config, workspace, repo, health] = await Promise.all([
170
+ settle(api.workspace.providers.status.$get({ query: {} })),
171
+ settle(api.project.config.$get({ param: api.param })),
172
+ settle(api.workspace.workspace.config.$get()),
173
+ settle(api.project.repo.$get({ param: api.param })),
174
+ settle(api.workspace.health.$get()),
175
+ ]);
176
+ return { providers, config, workspace, repo, health };
177
+ }
178
+ // ---- the composer's rules, mirrored (see the module comment) -------------------------------------
179
+ const RUNNER_ORDER = ['claude', 'codex', 'opencode', 'pi'];
180
+ /** `usableRunners` (web `lib/provider-status.ts`): enabled AND connected, in catalog order. */
181
+ function usableRunners(rows) {
182
+ const usable = new Set(rows.filter((row) => row.enabled === true && row.status === 'connected').map((row) => row.provider));
183
+ return RUNNER_ORDER.filter((runner) => usable.has(runner));
184
+ }
185
+ /** `resolveRunner` (web `new-task-form.ts`). */
186
+ function resolveRunner(available, preferred) {
187
+ if (available.includes(preferred))
188
+ return preferred;
189
+ return available[0] ?? 'claude';
190
+ }
191
+ /** `runnerOverride` (web `new-task-form.ts`): an explicit pick always rides the request. */
192
+ function runnerOverride(runner, defaultRunner, explicit) {
193
+ return !explicit && runner === defaultRunner ? undefined : runner;
194
+ }
195
+ /** `resolveModel(null, …)` (web `new-task-form.ts`): the configured per-runner default when it is
196
+ * not recognizably another runner's, else auto. */
197
+ function defaultModel(runner, defaults) {
198
+ const preset = defaults?.[runner];
199
+ return preset !== undefined && preset !== '' && !modelConflictsWithRunner(preset, runner) ? preset : '';
200
+ }
201
+ /** `resolveComposerRunMode` (web `new-task-draft.ts`), for a composer that is not in plan-first. */
202
+ function resolveRunMode(input) {
203
+ const autonomousFallback = input.configuredAutonomous === 'source-dependent' ? input.source === 'skill' : input.configuredAutonomous;
204
+ const recommended = input.interactive === true ? false : undefined;
205
+ const autonomous = input.explicitAutonomous ?? recommended ?? autonomousFallback;
206
+ const worktree = !input.hasGit
207
+ ? false
208
+ : input.variants > 1
209
+ ? true
210
+ : (input.explicitWorktree ?? recommended ?? input.configuredWorktree);
211
+ return { autonomous, worktree };
212
+ }
213
+ const QUICK_TASK = 'quick-task';
214
+ /** `buildCreateRunBody` (web `new-task-form.ts`), key for key. */
215
+ function composerRunBody(opts) {
216
+ const images = opts.images ?? [];
217
+ return {
218
+ task: opts.task,
219
+ ...(opts.source?.source === 'skill'
220
+ ? { steps: [{ id: 'task', name: opts.source.ref, skill: opts.source.ref, prompt: '{{task}}' }] }
221
+ : { workflow: opts.source?.ref ?? QUICK_TASK }),
222
+ model: opts.modelsLocked ? undefined : opts.model || undefined,
223
+ runner: runnerOverride(opts.runner, opts.defaultRunner, opts.runnerExplicit),
224
+ agentProfile: opts.agentProfile || undefined,
225
+ variants: opts.variants > 1 ? opts.variants : undefined,
226
+ images: images.length > 0 ? [...images] : undefined,
227
+ worktree: opts.worktree === false && opts.variants <= 1 ? false : undefined,
228
+ autonomous: opts.autonomous === true ? true : undefined,
229
+ generateFollowups: opts.generateFollowups === false ? false : undefined,
230
+ todoId: opts.todoId || undefined,
231
+ };
232
+ }
233
+ /** `buildPlannedRunBody` (web `new-task-plan.ts`), key for key. */
234
+ function plannedRunBody(opts) {
235
+ const images = opts.images ?? [];
236
+ return {
237
+ task: opts.task,
238
+ steps: [...opts.steps],
239
+ model: opts.modelsLocked ? undefined : opts.model || undefined,
240
+ runner: runnerOverride(opts.runner, opts.defaultRunner, opts.runnerExplicit),
241
+ variants: opts.variants > 1 ? opts.variants : undefined,
242
+ images: images.length > 0 ? [...images] : undefined,
243
+ generateFollowups: opts.generateFollowups === false ? false : undefined,
244
+ todoId: opts.todoId || undefined,
245
+ };
246
+ }
247
+ /** JSON drops `undefined`; strip it here too so the body is exactly what goes on the wire. */
248
+ function compact(body) {
249
+ return Object.fromEntries(Object.entries(body).filter(([, value]) => value !== undefined));
250
+ }
251
+ function statusOf(status) {
252
+ switch (status) {
253
+ case 'queued':
254
+ return 'accepted';
255
+ case 'done':
256
+ case 'failed':
257
+ case 'cancelled':
258
+ return status;
259
+ default:
260
+ return 'running';
261
+ }
262
+ }
263
+ function jsonResult(body) {
264
+ return textResult(JSON.stringify(body), body);
265
+ }
266
+ /** A 409 is a business conflict — an ordinary result with `status: "conflict"` (D-05). Anything
267
+ * else the service refused is an argument the caller must change: an error result. */
268
+ function refusal(operationId, status, error) {
269
+ if (status === 409)
270
+ return jsonResult({ accepted: false, operationId, status: 'conflict', error });
271
+ const body = { accepted: false, operationId, error };
272
+ return errorResult(JSON.stringify(body), body);
273
+ }
274
+ // ---- actions -----------------------------------------------------------------------------------
275
+ async function startTask(args, api, adapter) {
276
+ const { operationId } = args;
277
+ const [state, skills, workflows] = await Promise.all([
278
+ composerState(api),
279
+ settle(api.project.skills.$get({ param: api.param, query: {} })),
280
+ settle(api.project.workflows.$get({ param: api.param })),
281
+ ]);
282
+ // The composer's two gates: providers resolved with a usable runner, and the catalogs loaded.
283
+ if (!state.providers.ok)
284
+ return refusal(operationId, 409, 'Provider authentication could not be verified.');
285
+ const runners = usableRunners(state.providers.value.providers);
286
+ if (runners.length === 0)
287
+ return refusal(operationId, 409, 'Connect an agent provider before starting a task.');
288
+ if (!skills.ok || !workflows.ok)
289
+ return errorResult('The workflows and skills could not be read — try again.');
290
+ if (!state.config.ok)
291
+ return errorResult('The project settings could not be read — try again.');
292
+ const source = args.source ?? null;
293
+ const skill = source?.source === 'skill' ? skills.value.find((s) => s.name === source.ref) : undefined;
294
+ if (source?.source === 'skill' && !skill) {
295
+ return errorResult(JSON.stringify({ accepted: false, operationId, error: `unknown skill: ${source.ref}` }));
296
+ }
297
+ if (source?.source === 'workflow' && !workflows.value.workflows.some((w) => w.name === source.ref)) {
298
+ return errorResult(JSON.stringify({ accepted: false, operationId, error: `unknown workflow: ${source.ref}` }));
299
+ }
300
+ const config = state.config.value;
301
+ const defaultRunner = config.defaultRunner;
302
+ // An explicit runner rides as sent: a disconnected one gets the server's own 409 rather than a
303
+ // quiet swap to another backend.
304
+ const runner = args.runner ?? resolveRunner(runners, defaultRunner ?? 'claude');
305
+ const modelsLocked = config.modelsLocked === true;
306
+ if (args.model !== undefined && !modelsLocked && modelConflictsWithRunner(args.model, runner)) {
307
+ return errorResult(JSON.stringify({ accepted: false, operationId, error: `model "${args.model}" belongs to another runner than ${runner}` }));
308
+ }
309
+ // A model sent under the lock goes to the route, which answers its own 409 (I-007).
310
+ const model = args.model ?? (modelsLocked ? '' : defaultModel(runner, config.defaultModels));
311
+ const sendModel = modelsLocked && args.model !== undefined && args.model.trim() !== '';
312
+ // Loading or failing, the composer assumes git and an enabled inbox so its controls do not
313
+ // flicker; the same fallbacks apply here.
314
+ const hasGit = !state.repo.ok || state.repo.value.info !== null;
315
+ const followupsOn = !state.health.ok || state.health.value.capabilities.followups;
316
+ const defaults = state.workspace.ok ? state.workspace.value.composerDefaults : undefined;
317
+ // Variants are sent as asked: without git the route refuses them (I-008), where the composer
318
+ // would have disabled the picker.
319
+ const variants = args.variants ?? 1;
320
+ const mode = resolveRunMode({
321
+ hasGit,
322
+ variants,
323
+ explicitAutonomous: args.autonomous ?? null,
324
+ explicitWorktree: args.worktree ?? null,
325
+ interactive: skill?.interactive,
326
+ configuredAutonomous: defaults?.autonomous ?? defaults?.inheritedAutonomous ?? 'source-dependent',
327
+ configuredWorktree: defaults?.worktree ?? defaults?.inheritedWorktree ?? true,
328
+ source: source?.source ?? 'workflow',
329
+ });
330
+ const generateFollowups = followupsOn ? (args.generateFollowups ?? true) : false;
331
+ const notes = [];
332
+ if (args.worktree === false && variants > 1)
333
+ notes.push('worktree forced on: parallel variants always use isolated worktrees');
334
+ if (args.worktree === true && !hasGit)
335
+ notes.push('no git repository: the task runs in place');
336
+ if (args.generateFollowups === true && !followupsOn)
337
+ notes.push('the follow-up inbox is off on this xezar: the task runs without follow-ups');
338
+ const common = {
339
+ task: args.prompt ?? '',
340
+ model,
341
+ modelsLocked: modelsLocked && !sendModel,
342
+ runner,
343
+ runnerExplicit: args.runner !== undefined,
344
+ defaultRunner,
345
+ variants,
346
+ images: args.images,
347
+ generateFollowups,
348
+ todoId: args.todoId,
349
+ };
350
+ const body = compact(args.steps !== undefined
351
+ ? plannedRunBody({ ...common, steps: args.steps })
352
+ : composerRunBody({ ...common, source, agentProfile: args.agentProfile, worktree: mode.worktree, autonomous: mode.autonomous }));
353
+ const started = await adapter.startRun(body);
354
+ if (!started.ok)
355
+ return refusal(operationId, started.status, started.error);
356
+ const records = runsOf(started.value);
357
+ const first = records[0];
358
+ if (!first)
359
+ return errorResult('The service accepted the task but named no run.');
360
+ // One read back, never a retry: an isolation failure is already recorded when it is this fast.
361
+ const current = await adapter.getRun(first.id);
362
+ const record = current.ok ? current.value : first;
363
+ const status = statusOf(record.status);
364
+ return jsonResult({
365
+ accepted: true,
366
+ operationId,
367
+ status,
368
+ subject: { type: 'run', id: first.id },
369
+ ...(records.length > 1 ? { variants: records.map((r) => r.id) } : {}),
370
+ ...(status === 'failed' && record.error ? { error: record.error } : {}),
371
+ effective: {
372
+ source: args.steps !== undefined ? { steps: args.steps.length } : (source ?? { source: 'workflow', ref: QUICK_TASK }),
373
+ runner,
374
+ // Under the lock no model rides the request: the agent's own settings choose, not "auto".
375
+ model: modelsLocked ? 'native settings' : (body.model ?? 'auto'),
376
+ ...(args.agentProfile ? { agentProfile: args.agentProfile } : {}),
377
+ variants,
378
+ worktree: args.steps !== undefined ? hasGit : mode.worktree,
379
+ autonomous: args.steps !== undefined ? false : mode.autonomous,
380
+ generateFollowups,
381
+ },
382
+ ...(notes.length > 0 ? { notes } : {}),
383
+ });
384
+ }
385
+ function runsOf(value) {
386
+ return ('runs' in value ? value.runs : [value]);
387
+ }
388
+ async function planTask(args, api) {
389
+ const planned = await settle(api.project.plan.$post({ param: api.param, json: { task: args.prompt ?? '' } }));
390
+ if (!planned.ok)
391
+ return refusal(args.operationId, planned.status, planned.error);
392
+ const { name, steps, rationale, fallback } = planned.value;
393
+ return jsonResult({
394
+ operationId: args.operationId,
395
+ status: 'done',
396
+ ...(name ? { name } : {}),
397
+ steps,
398
+ rationale,
399
+ fallback,
400
+ ...(fallback ? { notes: ['the planner was unavailable: this is the one-step quick-task fallback'] } : {}),
401
+ });
402
+ }
403
+ async function startFromInbox(args, api) {
404
+ const { operationId } = args;
405
+ const todoId = args.todoId ?? '';
406
+ // Same rule as the adapter's run ids: a dot segment would resolve to a different route.
407
+ if (todoId === '.' || todoId === '..' || todoId.includes('/')) {
408
+ return errorResult(JSON.stringify({ accepted: false, operationId, error: `not an inbox entry id: ${JSON.stringify(todoId)}` }));
409
+ }
410
+ const state = await composerState(api);
411
+ // The Inbox card's gate (`canRun`) is the composer's provider gate.
412
+ if (!state.providers.ok)
413
+ return refusal(operationId, 409, 'Provider authentication could not be verified.');
414
+ const runners = usableRunners(state.providers.value.providers);
415
+ if (runners.length === 0)
416
+ return refusal(operationId, 409, 'Connect an agent provider before starting a task.');
417
+ if (!state.config.ok)
418
+ return errorResult('The project settings could not be read — try again.');
419
+ const config = state.config.value;
420
+ // `useResolvedEngine` + `engineBody` (web `components/engine-pills.tsx`).
421
+ const runner = args.runner ?? resolveRunner(runners, config.defaultRunner ?? runners[0] ?? 'claude');
422
+ const modelsLocked = config.modelsLocked === true;
423
+ if (args.model !== undefined && !modelsLocked && modelConflictsWithRunner(args.model, runner)) {
424
+ return errorResult(JSON.stringify({ accepted: false, operationId, error: `model "${args.model}" belongs to another runner than ${runner}` }));
425
+ }
426
+ const model = args.model ?? (modelsLocked ? '' : defaultModel(runner, config.defaultModels));
427
+ const sendModel = modelsLocked && args.model !== undefined && args.model.trim() !== '';
428
+ const body = compact({
429
+ runner: runnerOverride(runner, config.defaultRunner, args.runner !== undefined),
430
+ model: modelsLocked && !sendModel ? undefined : model || undefined,
431
+ // The route trims and bounds it (20000); the card sends the trimmed note or nothing.
432
+ prompt: args.prompt?.trim() || undefined,
433
+ });
434
+ const started = await settle(api.project.todos[':id'].start.$post({ param: { ...api.param, id: todoId }, json: body }));
435
+ if (!started.ok)
436
+ return refusal(operationId, started.status, started.error);
437
+ const record = started.value.run;
438
+ return jsonResult({
439
+ accepted: true,
440
+ operationId,
441
+ status: statusOf(record.status),
442
+ subject: { type: 'run', id: record.id },
443
+ effective: { runner, model: body.model ?? 'auto' },
444
+ });
445
+ }
446
+ async function savePlan(args, api) {
447
+ const { operationId } = args;
448
+ const saved = await settle(api.project.workflows.$post({
449
+ param: api.param,
450
+ json: compact({
451
+ name: args.name ?? '',
452
+ description: args.description,
453
+ steps: args.steps,
454
+ overwrite: args.overwrite,
455
+ }),
456
+ }));
457
+ if (!saved.ok) {
458
+ // The route's 409 names the absolute file path; the caller needs the decision, not the path.
459
+ if (saved.status === 409) {
460
+ return jsonResult({
461
+ accepted: false,
462
+ operationId,
463
+ status: 'conflict',
464
+ exists: true,
465
+ error: 'a workflow with this name already exists',
466
+ guidance: 'ask the user, then call again with overwrite: true to replace it',
467
+ });
468
+ }
469
+ return refusal(operationId, saved.status, saved.error);
470
+ }
471
+ return jsonResult({ accepted: true, operationId, status: 'done', subject: { type: 'workflow', id: saved.value.name } });
472
+ }
473
+ //# sourceMappingURL=task-create.js.map