@evermore.work/shared 2026.509.0-canary.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 (373) hide show
  1. package/dist/adapter-type.d.ts +4 -0
  2. package/dist/adapter-type.d.ts.map +1 -0
  3. package/dist/adapter-type.js +14 -0
  4. package/dist/adapter-type.js.map +1 -0
  5. package/dist/adapter-types.test.d.ts +2 -0
  6. package/dist/adapter-types.test.d.ts.map +1 -0
  7. package/dist/adapter-types.test.js +46 -0
  8. package/dist/adapter-types.test.js.map +1 -0
  9. package/dist/agent-url-key.d.ts +4 -0
  10. package/dist/agent-url-key.d.ts.map +1 -0
  11. package/dist/agent-url-key.js +22 -0
  12. package/dist/agent-url-key.js.map +1 -0
  13. package/dist/api.d.ts +23 -0
  14. package/dist/api.d.ts.map +1 -0
  15. package/dist/api.js +23 -0
  16. package/dist/api.js.map +1 -0
  17. package/dist/config-schema.d.ts +725 -0
  18. package/dist/config-schema.d.ts.map +1 -0
  19. package/dist/config-schema.js +160 -0
  20. package/dist/config-schema.js.map +1 -0
  21. package/dist/constants.d.ts +323 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +761 -0
  24. package/dist/constants.js.map +1 -0
  25. package/dist/environment-support.d.ts +37 -0
  26. package/dist/environment-support.d.ts.map +1 -0
  27. package/dist/environment-support.js +92 -0
  28. package/dist/environment-support.js.map +1 -0
  29. package/dist/environment-support.test.d.ts +2 -0
  30. package/dist/environment-support.test.d.ts.map +1 -0
  31. package/dist/environment-support.test.js +11 -0
  32. package/dist/environment-support.test.js.map +1 -0
  33. package/dist/execution-workspace-guards.d.ts +6 -0
  34. package/dist/execution-workspace-guards.d.ts.map +1 -0
  35. package/dist/execution-workspace-guards.js +12 -0
  36. package/dist/execution-workspace-guards.js.map +1 -0
  37. package/dist/index.d.ts +23 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +21 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/issue-references.d.ts +16 -0
  42. package/dist/issue-references.d.ts.map +1 -0
  43. package/dist/issue-references.js +160 -0
  44. package/dist/issue-references.js.map +1 -0
  45. package/dist/issue-references.test.d.ts +2 -0
  46. package/dist/issue-references.test.d.ts.map +1 -0
  47. package/dist/issue-references.test.js +56 -0
  48. package/dist/issue-references.test.js.map +1 -0
  49. package/dist/issue-thread-interactions.test.d.ts +2 -0
  50. package/dist/issue-thread-interactions.test.d.ts.map +1 -0
  51. package/dist/issue-thread-interactions.test.js +118 -0
  52. package/dist/issue-thread-interactions.test.js.map +1 -0
  53. package/dist/network-bind.d.ts +27 -0
  54. package/dist/network-bind.d.ts.map +1 -0
  55. package/dist/network-bind.js +75 -0
  56. package/dist/network-bind.js.map +1 -0
  57. package/dist/project-mentions.d.ts +32 -0
  58. package/dist/project-mentions.d.ts.map +1 -0
  59. package/dist/project-mentions.js +210 -0
  60. package/dist/project-mentions.js.map +1 -0
  61. package/dist/project-mentions.test.d.ts +2 -0
  62. package/dist/project-mentions.test.d.ts.map +1 -0
  63. package/dist/project-mentions.test.js +36 -0
  64. package/dist/project-mentions.test.js.map +1 -0
  65. package/dist/project-url-key.d.ts +5 -0
  66. package/dist/project-url-key.d.ts.map +1 -0
  67. package/dist/project-url-key.js +39 -0
  68. package/dist/project-url-key.js.map +1 -0
  69. package/dist/routine-variables.d.ts +21 -0
  70. package/dist/routine-variables.d.ts.map +1 -0
  71. package/dist/routine-variables.js +91 -0
  72. package/dist/routine-variables.js.map +1 -0
  73. package/dist/routine-variables.test.d.ts +2 -0
  74. package/dist/routine-variables.test.d.ts.map +1 -0
  75. package/dist/routine-variables.test.js +58 -0
  76. package/dist/routine-variables.test.js.map +1 -0
  77. package/dist/telemetry/client.d.ts +18 -0
  78. package/dist/telemetry/client.d.ts.map +1 -0
  79. package/dist/telemetry/client.js +105 -0
  80. package/dist/telemetry/client.js.map +1 -0
  81. package/dist/telemetry/config.d.ts +5 -0
  82. package/dist/telemetry/config.d.ts.map +1 -0
  83. package/dist/telemetry/config.js +21 -0
  84. package/dist/telemetry/config.js.map +1 -0
  85. package/dist/telemetry/events.d.ts +41 -0
  86. package/dist/telemetry/events.d.ts.map +1 -0
  87. package/dist/telemetry/events.js +59 -0
  88. package/dist/telemetry/events.js.map +1 -0
  89. package/dist/telemetry/index.d.ts +6 -0
  90. package/dist/telemetry/index.d.ts.map +1 -0
  91. package/dist/telemetry/index.js +5 -0
  92. package/dist/telemetry/index.js.map +1 -0
  93. package/dist/telemetry/state.d.ts +3 -0
  94. package/dist/telemetry/state.d.ts.map +1 -0
  95. package/dist/telemetry/state.js +28 -0
  96. package/dist/telemetry/state.js.map +1 -0
  97. package/dist/telemetry/types.d.ts +28 -0
  98. package/dist/telemetry/types.d.ts.map +1 -0
  99. package/dist/telemetry/types.js +2 -0
  100. package/dist/telemetry/types.js.map +1 -0
  101. package/dist/types/access.d.ts +142 -0
  102. package/dist/types/access.d.ts.map +1 -0
  103. package/dist/types/access.js +2 -0
  104. package/dist/types/access.js.map +1 -0
  105. package/dist/types/activity.d.ts +14 -0
  106. package/dist/types/activity.d.ts.map +1 -0
  107. package/dist/types/activity.js +2 -0
  108. package/dist/types/activity.js.map +1 -0
  109. package/dist/types/adapter-skills.d.ts +31 -0
  110. package/dist/types/adapter-skills.d.ts.map +1 -0
  111. package/dist/types/adapter-skills.js +2 -0
  112. package/dist/types/adapter-skills.js.map +1 -0
  113. package/dist/types/agent.d.ts +117 -0
  114. package/dist/types/agent.d.ts.map +1 -0
  115. package/dist/types/agent.js +2 -0
  116. package/dist/types/agent.js.map +1 -0
  117. package/dist/types/approval.d.ts +26 -0
  118. package/dist/types/approval.d.ts.map +1 -0
  119. package/dist/types/approval.js +2 -0
  120. package/dist/types/approval.js.map +1 -0
  121. package/dist/types/asset.d.ts +16 -0
  122. package/dist/types/asset.d.ts.map +1 -0
  123. package/dist/types/asset.js +2 -0
  124. package/dist/types/asset.js.map +1 -0
  125. package/dist/types/budget.d.ts +86 -0
  126. package/dist/types/budget.d.ts.map +1 -0
  127. package/dist/types/budget.js +2 -0
  128. package/dist/types/budget.js.map +1 -0
  129. package/dist/types/company-portability.d.ts +298 -0
  130. package/dist/types/company-portability.d.ts.map +1 -0
  131. package/dist/types/company-portability.js +2 -0
  132. package/dist/types/company-portability.js.map +1 -0
  133. package/dist/types/company-skill.d.ts +140 -0
  134. package/dist/types/company-skill.d.ts.map +1 -0
  135. package/dist/types/company-skill.js +2 -0
  136. package/dist/types/company-skill.js.map +1 -0
  137. package/dist/types/company.d.ts +25 -0
  138. package/dist/types/company.d.ts.map +1 -0
  139. package/dist/types/company.js +2 -0
  140. package/dist/types/company.js.map +1 -0
  141. package/dist/types/cost.d.ts +120 -0
  142. package/dist/types/cost.d.ts.map +1 -0
  143. package/dist/types/cost.js +2 -0
  144. package/dist/types/cost.js.map +1 -0
  145. package/dist/types/dashboard.d.ts +36 -0
  146. package/dist/types/dashboard.d.ts.map +1 -0
  147. package/dist/types/dashboard.js +2 -0
  148. package/dist/types/dashboard.js.map +1 -0
  149. package/dist/types/environment.d.ts +73 -0
  150. package/dist/types/environment.d.ts.map +1 -0
  151. package/dist/types/environment.js +2 -0
  152. package/dist/types/environment.js.map +1 -0
  153. package/dist/types/feedback.d.ts +95 -0
  154. package/dist/types/feedback.d.ts.map +1 -0
  155. package/dist/types/feedback.js +7 -0
  156. package/dist/types/feedback.js.map +1 -0
  157. package/dist/types/finance.d.ts +57 -0
  158. package/dist/types/finance.d.ts.map +1 -0
  159. package/dist/types/finance.js +2 -0
  160. package/dist/types/finance.js.map +1 -0
  161. package/dist/types/goal.d.ts +14 -0
  162. package/dist/types/goal.d.ts.map +1 -0
  163. package/dist/types/goal.js +2 -0
  164. package/dist/types/goal.js.map +1 -0
  165. package/dist/types/heartbeat.d.ts +158 -0
  166. package/dist/types/heartbeat.d.ts.map +1 -0
  167. package/dist/types/heartbeat.js +2 -0
  168. package/dist/types/heartbeat.js.map +1 -0
  169. package/dist/types/inbox-dismissal.d.ts +10 -0
  170. package/dist/types/inbox-dismissal.d.ts.map +1 -0
  171. package/dist/types/inbox-dismissal.js +2 -0
  172. package/dist/types/inbox-dismissal.js.map +1 -0
  173. package/dist/types/index.d.ts +37 -0
  174. package/dist/types/index.d.ts.map +1 -0
  175. package/dist/types/index.js +3 -0
  176. package/dist/types/index.js.map +1 -0
  177. package/dist/types/instance.d.ts +63 -0
  178. package/dist/types/instance.d.ts.map +1 -0
  179. package/dist/types/instance.js +12 -0
  180. package/dist/types/instance.js.map +1 -0
  181. package/dist/types/issue-tree-control.d.ts +102 -0
  182. package/dist/types/issue-tree-control.d.ts.map +1 -0
  183. package/dist/types/issue-tree-control.js +2 -0
  184. package/dist/types/issue-tree-control.js.map +1 -0
  185. package/dist/types/issue.d.ts +527 -0
  186. package/dist/types/issue.d.ts.map +1 -0
  187. package/dist/types/issue.js +2 -0
  188. package/dist/types/issue.js.map +1 -0
  189. package/dist/types/live.d.ts +9 -0
  190. package/dist/types/live.d.ts.map +1 -0
  191. package/dist/types/live.js +2 -0
  192. package/dist/types/live.js.map +1 -0
  193. package/dist/types/plugin.d.ts +686 -0
  194. package/dist/types/plugin.d.ts.map +1 -0
  195. package/dist/types/plugin.js +2 -0
  196. package/dist/types/plugin.js.map +1 -0
  197. package/dist/types/project.d.ts +82 -0
  198. package/dist/types/project.d.ts.map +1 -0
  199. package/dist/types/project.js +2 -0
  200. package/dist/types/project.js.map +1 -0
  201. package/dist/types/quota.d.ts +26 -0
  202. package/dist/types/quota.d.ts.map +1 -0
  203. package/dist/types/quota.js +2 -0
  204. package/dist/types/quota.js.map +1 -0
  205. package/dist/types/routine.d.ts +185 -0
  206. package/dist/types/routine.d.ts.map +1 -0
  207. package/dist/types/routine.js +2 -0
  208. package/dist/types/routine.js.map +1 -0
  209. package/dist/types/search.d.ts +50 -0
  210. package/dist/types/search.d.ts.map +1 -0
  211. package/dist/types/search.js +2 -0
  212. package/dist/types/search.js.map +1 -0
  213. package/dist/types/secrets.d.ts +32 -0
  214. package/dist/types/secrets.d.ts.map +1 -0
  215. package/dist/types/secrets.js +2 -0
  216. package/dist/types/secrets.js.map +1 -0
  217. package/dist/types/sidebar-badges.d.ts +7 -0
  218. package/dist/types/sidebar-badges.d.ts.map +1 -0
  219. package/dist/types/sidebar-badges.js +2 -0
  220. package/dist/types/sidebar-badges.js.map +1 -0
  221. package/dist/types/sidebar-preferences.d.ts +5 -0
  222. package/dist/types/sidebar-preferences.d.ts.map +1 -0
  223. package/dist/types/sidebar-preferences.js +2 -0
  224. package/dist/types/sidebar-preferences.js.map +1 -0
  225. package/dist/types/user-profile.d.ts +81 -0
  226. package/dist/types/user-profile.d.ts.map +1 -0
  227. package/dist/types/user-profile.js +2 -0
  228. package/dist/types/user-profile.js.map +1 -0
  229. package/dist/types/work-product.d.ts +27 -0
  230. package/dist/types/work-product.d.ts.map +1 -0
  231. package/dist/types/work-product.js +2 -0
  232. package/dist/types/work-product.js.map +1 -0
  233. package/dist/types/workspace-operation.d.ts +26 -0
  234. package/dist/types/workspace-operation.d.ts.map +1 -0
  235. package/dist/types/workspace-operation.js +2 -0
  236. package/dist/types/workspace-operation.js.map +1 -0
  237. package/dist/types/workspace-runtime.d.ts +252 -0
  238. package/dist/types/workspace-runtime.d.ts.map +1 -0
  239. package/dist/types/workspace-runtime.js +2 -0
  240. package/dist/types/workspace-runtime.js.map +1 -0
  241. package/dist/validators/access.d.ts +333 -0
  242. package/dist/validators/access.d.ts.map +1 -0
  243. package/dist/validators/access.js +132 -0
  244. package/dist/validators/access.js.map +1 -0
  245. package/dist/validators/adapter-skills.d.ts +156 -0
  246. package/dist/validators/adapter-skills.d.ts.map +1 -0
  247. package/dist/validators/adapter-skills.js +48 -0
  248. package/dist/validators/adapter-skills.js.map +1 -0
  249. package/dist/validators/agent.d.ts +841 -0
  250. package/dist/validators/agent.d.ts.map +1 -0
  251. package/dist/validators/agent.js +115 -0
  252. package/dist/validators/agent.js.map +1 -0
  253. package/dist/validators/approval.d.ts +51 -0
  254. package/dist/validators/approval.d.ts.map +1 -0
  255. package/dist/validators/approval.js +22 -0
  256. package/dist/validators/approval.js.map +1 -0
  257. package/dist/validators/approval.test.d.ts +2 -0
  258. package/dist/validators/approval.test.d.ts.map +1 -0
  259. package/dist/validators/approval.test.js +25 -0
  260. package/dist/validators/approval.test.js.map +1 -0
  261. package/dist/validators/asset.d.ts +10 -0
  262. package/dist/validators/asset.d.ts.map +1 -0
  263. package/dist/validators/asset.js +11 -0
  264. package/dist/validators/asset.js.map +1 -0
  265. package/dist/validators/budget.d.ts +56 -0
  266. package/dist/validators/budget.d.ts.map +1 -0
  267. package/dist/validators/budget.js +27 -0
  268. package/dist/validators/budget.js.map +1 -0
  269. package/dist/validators/company-portability.d.ts +3453 -0
  270. package/dist/validators/company-portability.d.ts.map +1 -0
  271. package/dist/validators/company-portability.js +231 -0
  272. package/dist/validators/company-portability.js.map +1 -0
  273. package/dist/validators/company-skill.d.ts +797 -0
  274. package/dist/validators/company-skill.d.ts.map +1 -0
  275. package/dist/validators/company-skill.js +116 -0
  276. package/dist/validators/company-skill.js.map +1 -0
  277. package/dist/validators/company.d.ts +91 -0
  278. package/dist/validators/company.d.ts.map +1 -0
  279. package/dist/validators/company.js +43 -0
  280. package/dist/validators/company.js.map +1 -0
  281. package/dist/validators/cost.d.ts +92 -0
  282. package/dist/validators/cost.d.ts.map +1 -0
  283. package/dist/validators/cost.js +26 -0
  284. package/dist/validators/cost.js.map +1 -0
  285. package/dist/validators/environment.d.ts +72 -0
  286. package/dist/validators/environment.d.ts.map +1 -0
  287. package/dist/validators/environment.js +31 -0
  288. package/dist/validators/environment.js.map +1 -0
  289. package/dist/validators/execution-workspace.d.ts +586 -0
  290. package/dist/validators/execution-workspace.d.ts.map +1 -0
  291. package/dist/validators/execution-workspace.js +120 -0
  292. package/dist/validators/execution-workspace.js.map +1 -0
  293. package/dist/validators/feedback.d.ts +26 -0
  294. package/dist/validators/feedback.d.ts.map +1 -0
  295. package/dist/validators/feedback.js +14 -0
  296. package/dist/validators/feedback.js.map +1 -0
  297. package/dist/validators/finance.d.ts +129 -0
  298. package/dist/validators/finance.d.ts.map +1 -0
  299. package/dist/validators/finance.js +32 -0
  300. package/dist/validators/finance.js.map +1 -0
  301. package/dist/validators/goal.d.ts +48 -0
  302. package/dist/validators/goal.d.ts.map +1 -0
  303. package/dist/validators/goal.js +12 -0
  304. package/dist/validators/goal.js.map +1 -0
  305. package/dist/validators/index.d.ts +26 -0
  306. package/dist/validators/index.d.ts.map +1 -0
  307. package/dist/validators/index.js +26 -0
  308. package/dist/validators/index.js.map +1 -0
  309. package/dist/validators/instance.d.ts +137 -0
  310. package/dist/validators/instance.d.ts.map +1 -0
  311. package/dist/validators/instance.js +41 -0
  312. package/dist/validators/instance.js.map +1 -0
  313. package/dist/validators/issue-tree-control.d.ts +100 -0
  314. package/dist/validators/issue-tree-control.d.ts.map +1 -0
  315. package/dist/validators/issue-tree-control.js +31 -0
  316. package/dist/validators/issue-tree-control.js.map +1 -0
  317. package/dist/validators/issue.d.ts +4292 -0
  318. package/dist/validators/issue.d.ts.map +1 -0
  319. package/dist/validators/issue.js +506 -0
  320. package/dist/validators/issue.js.map +1 -0
  321. package/dist/validators/issue.test.d.ts +2 -0
  322. package/dist/validators/issue.test.d.ts.map +1 -0
  323. package/dist/validators/issue.test.js +203 -0
  324. package/dist/validators/issue.test.js.map +1 -0
  325. package/dist/validators/plugin.d.ts +2426 -0
  326. package/dist/validators/plugin.d.ts.map +1 -0
  327. package/dist/validators/plugin.js +837 -0
  328. package/dist/validators/plugin.js.map +1 -0
  329. package/dist/validators/plugin.test.d.ts +2 -0
  330. package/dist/validators/plugin.test.d.ts.map +1 -0
  331. package/dist/validators/plugin.test.js +64 -0
  332. package/dist/validators/plugin.test.js.map +1 -0
  333. package/dist/validators/project.d.ts +784 -0
  334. package/dist/validators/project.d.ts.map +1 -0
  335. package/dist/validators/project.js +102 -0
  336. package/dist/validators/project.js.map +1 -0
  337. package/dist/validators/routine.d.ts +920 -0
  338. package/dist/validators/routine.d.ts.map +1 -0
  339. package/dist/validators/routine.js +125 -0
  340. package/dist/validators/routine.js.map +1 -0
  341. package/dist/validators/routine.test.d.ts +2 -0
  342. package/dist/validators/routine.test.d.ts.map +1 -0
  343. package/dist/validators/routine.test.js +79 -0
  344. package/dist/validators/routine.test.js.map +1 -0
  345. package/dist/validators/search.d.ts +24 -0
  346. package/dist/validators/search.d.ts.map +1 -0
  347. package/dist/validators/search.js +33 -0
  348. package/dist/validators/search.js.map +1 -0
  349. package/dist/validators/secret.d.ts +114 -0
  350. package/dist/validators/secret.d.ts.map +1 -0
  351. package/dist/validators/secret.js +35 -0
  352. package/dist/validators/secret.js.map +1 -0
  353. package/dist/validators/sidebar-preferences.d.ts +20 -0
  354. package/dist/validators/sidebar-preferences.d.ts.map +1 -0
  355. package/dist/validators/sidebar-preferences.js +10 -0
  356. package/dist/validators/sidebar-preferences.js.map +1 -0
  357. package/dist/validators/text.d.ts +4 -0
  358. package/dist/validators/text.d.ts.map +1 -0
  359. package/dist/validators/text.js +9 -0
  360. package/dist/validators/text.js.map +1 -0
  361. package/dist/validators/work-product.d.ts +105 -0
  362. package/dist/validators/work-product.d.ts.map +1 -0
  363. package/dist/validators/work-product.js +46 -0
  364. package/dist/validators/work-product.js.map +1 -0
  365. package/dist/workspace-commands.d.ts +7 -0
  366. package/dist/workspace-commands.d.ts.map +1 -0
  367. package/dist/workspace-commands.js +150 -0
  368. package/dist/workspace-commands.js.map +1 -0
  369. package/dist/workspace-commands.test.d.ts +2 -0
  370. package/dist/workspace-commands.test.d.ts.map +1 -0
  371. package/dist/workspace-commands.test.js +65 -0
  372. package/dist/workspace-commands.test.js.map +1 -0
  373. package/package.json +47 -0
@@ -0,0 +1,2426 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Permissive validator for JSON Schema objects. Accepts any `Record<string, unknown>`
4
+ * that contains at least a `type`, `$ref`, or composition keyword (`oneOf`/`anyOf`/`allOf`).
5
+ * Empty objects are also accepted.
6
+ *
7
+ * Used to validate `instanceConfigSchema` and `parametersSchema` fields in the
8
+ * plugin manifest without fully parsing JSON Schema.
9
+ *
10
+ * @see PLUGIN_SPEC.md §10.1 — Manifest shape
11
+ */
12
+ export declare const jsonSchemaSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
13
+ export declare const pluginJobDeclarationSchema: z.ZodObject<{
14
+ jobKey: z.ZodString;
15
+ displayName: z.ZodString;
16
+ description: z.ZodOptional<z.ZodString>;
17
+ schedule: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ jobKey: string;
20
+ displayName: string;
21
+ description?: string | undefined;
22
+ schedule?: string | undefined;
23
+ }, {
24
+ jobKey: string;
25
+ displayName: string;
26
+ description?: string | undefined;
27
+ schedule?: string | undefined;
28
+ }>;
29
+ export type PluginJobDeclarationInput = z.infer<typeof pluginJobDeclarationSchema>;
30
+ /**
31
+ * Validates a {@link PluginWebhookDeclaration} — a webhook endpoint declared
32
+ * in the plugin manifest. Requires `endpointKey` and `displayName`.
33
+ *
34
+ * @see PLUGIN_SPEC.md §18 — Webhooks
35
+ */
36
+ export declare const pluginWebhookDeclarationSchema: z.ZodObject<{
37
+ endpointKey: z.ZodString;
38
+ displayName: z.ZodString;
39
+ description: z.ZodOptional<z.ZodString>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ displayName: string;
42
+ endpointKey: string;
43
+ description?: string | undefined;
44
+ }, {
45
+ displayName: string;
46
+ endpointKey: string;
47
+ description?: string | undefined;
48
+ }>;
49
+ export type PluginWebhookDeclarationInput = z.infer<typeof pluginWebhookDeclarationSchema>;
50
+ /**
51
+ * Validates a {@link PluginToolDeclaration} — an agent tool contributed by the
52
+ * plugin. Requires `name`, `displayName`, `description`, and a valid
53
+ * `parametersSchema`. Requires the `agent.tools.register` capability.
54
+ *
55
+ * @see PLUGIN_SPEC.md §11 — Agent Tools
56
+ */
57
+ export declare const pluginToolDeclarationSchema: z.ZodObject<{
58
+ name: z.ZodString;
59
+ displayName: z.ZodString;
60
+ description: z.ZodString;
61
+ parametersSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ description: string;
64
+ name: string;
65
+ displayName: string;
66
+ parametersSchema: Record<string, unknown>;
67
+ }, {
68
+ description: string;
69
+ name: string;
70
+ displayName: string;
71
+ parametersSchema: Record<string, unknown>;
72
+ }>;
73
+ export declare const pluginEnvironmentDriverDeclarationSchema: z.ZodObject<{
74
+ driverKey: z.ZodString;
75
+ kind: z.ZodOptional<z.ZodEnum<["environment_driver", "sandbox_provider"]>>;
76
+ displayName: z.ZodString;
77
+ description: z.ZodOptional<z.ZodString>;
78
+ configSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ displayName: string;
81
+ driverKey: string;
82
+ configSchema: Record<string, unknown>;
83
+ description?: string | undefined;
84
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
85
+ }, {
86
+ displayName: string;
87
+ driverKey: string;
88
+ configSchema: Record<string, unknown>;
89
+ description?: string | undefined;
90
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
91
+ }>;
92
+ export type PluginEnvironmentDriverDeclarationInput = z.infer<typeof pluginEnvironmentDriverDeclarationSchema>;
93
+ export type PluginToolDeclarationInput = z.infer<typeof pluginToolDeclarationSchema>;
94
+ export declare const pluginManagedAgentDeclarationSchema: z.ZodObject<{
95
+ agentKey: z.ZodString;
96
+ displayName: z.ZodString;
97
+ role: z.ZodOptional<z.ZodString>;
98
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
99
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
+ capabilities: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
+ adapterType: z.ZodOptional<z.ZodString>;
102
+ adapterPreference: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
103
+ adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
104
+ runtimeConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
+ permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
106
+ status: z.ZodOptional<z.ZodEnum<["idle", "paused"]>>;
107
+ budgetMonthlyCents: z.ZodOptional<z.ZodNumber>;
108
+ instructions: z.ZodOptional<z.ZodObject<{
109
+ entryFile: z.ZodOptional<z.ZodString>;
110
+ content: z.ZodOptional<z.ZodString>;
111
+ assetPath: z.ZodOptional<z.ZodString>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ content?: string | undefined;
114
+ entryFile?: string | undefined;
115
+ assetPath?: string | undefined;
116
+ }, {
117
+ content?: string | undefined;
118
+ entryFile?: string | undefined;
119
+ assetPath?: string | undefined;
120
+ }>>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ displayName: string;
123
+ agentKey: string;
124
+ title?: string | null | undefined;
125
+ status?: "paused" | "idle" | undefined;
126
+ budgetMonthlyCents?: number | undefined;
127
+ adapterType?: string | undefined;
128
+ adapterConfig?: Record<string, unknown> | undefined;
129
+ instructions?: {
130
+ content?: string | undefined;
131
+ entryFile?: string | undefined;
132
+ assetPath?: string | undefined;
133
+ } | undefined;
134
+ role?: string | undefined;
135
+ icon?: string | null | undefined;
136
+ capabilities?: string | null | undefined;
137
+ runtimeConfig?: Record<string, unknown> | undefined;
138
+ permissions?: Record<string, unknown> | undefined;
139
+ adapterPreference?: string[] | undefined;
140
+ }, {
141
+ displayName: string;
142
+ agentKey: string;
143
+ title?: string | null | undefined;
144
+ status?: "paused" | "idle" | undefined;
145
+ budgetMonthlyCents?: number | undefined;
146
+ adapterType?: string | undefined;
147
+ adapterConfig?: Record<string, unknown> | undefined;
148
+ instructions?: {
149
+ content?: string | undefined;
150
+ entryFile?: string | undefined;
151
+ assetPath?: string | undefined;
152
+ } | undefined;
153
+ role?: string | undefined;
154
+ icon?: string | null | undefined;
155
+ capabilities?: string | null | undefined;
156
+ runtimeConfig?: Record<string, unknown> | undefined;
157
+ permissions?: Record<string, unknown> | undefined;
158
+ adapterPreference?: string[] | undefined;
159
+ }>;
160
+ export type PluginManagedAgentDeclarationInput = z.infer<typeof pluginManagedAgentDeclarationSchema>;
161
+ export declare const pluginManagedProjectDeclarationSchema: z.ZodObject<{
162
+ projectKey: z.ZodString;
163
+ displayName: z.ZodString;
164
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ status: z.ZodOptional<z.ZodEnum<["backlog", "planned", "in_progress", "completed", "cancelled"]>>;
166
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
167
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ displayName: string;
170
+ projectKey: string;
171
+ description?: string | null | undefined;
172
+ settings?: Record<string, unknown> | undefined;
173
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
174
+ color?: string | null | undefined;
175
+ }, {
176
+ displayName: string;
177
+ projectKey: string;
178
+ description?: string | null | undefined;
179
+ settings?: Record<string, unknown> | undefined;
180
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
181
+ color?: string | null | undefined;
182
+ }>;
183
+ export type PluginManagedProjectDeclarationInput = z.infer<typeof pluginManagedProjectDeclarationSchema>;
184
+ export declare const pluginManagedRoutineDeclarationSchema: z.ZodObject<{
185
+ routineKey: z.ZodString;
186
+ title: z.ZodString;
187
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
188
+ assigneeRef: z.ZodOptional<z.ZodNullable<z.ZodObject<{
189
+ pluginKey: z.ZodOptional<z.ZodString>;
190
+ resourceKey: z.ZodString;
191
+ } & {
192
+ resourceKind: z.ZodLiteral<"agent">;
193
+ }, "strip", z.ZodTypeAny, {
194
+ resourceKind: "agent";
195
+ resourceKey: string;
196
+ pluginKey?: string | undefined;
197
+ }, {
198
+ resourceKind: "agent";
199
+ resourceKey: string;
200
+ pluginKey?: string | undefined;
201
+ }>>>;
202
+ projectRef: z.ZodOptional<z.ZodNullable<z.ZodObject<{
203
+ pluginKey: z.ZodOptional<z.ZodString>;
204
+ resourceKey: z.ZodString;
205
+ } & {
206
+ resourceKind: z.ZodLiteral<"project">;
207
+ }, "strip", z.ZodTypeAny, {
208
+ resourceKind: "project";
209
+ resourceKey: string;
210
+ pluginKey?: string | undefined;
211
+ }, {
212
+ resourceKind: "project";
213
+ resourceKey: string;
214
+ pluginKey?: string | undefined;
215
+ }>>>;
216
+ goalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
217
+ status: z.ZodOptional<z.ZodEnum<["active", "paused", "archived"]>>;
218
+ priority: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>;
219
+ concurrencyPolicy: z.ZodOptional<z.ZodEnum<["coalesce_if_active", "always_enqueue", "skip_if_active"]>>;
220
+ catchUpPolicy: z.ZodOptional<z.ZodEnum<["skip_missed", "enqueue_missed_with_cap"]>>;
221
+ variables: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
222
+ name: z.ZodString;
223
+ label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
224
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["text", "textarea", "number", "boolean", "select"]>>>;
225
+ defaultValue: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
226
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
227
+ options: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ required: boolean;
230
+ options: string[];
231
+ type: "number" | "boolean" | "text" | "textarea" | "select";
232
+ name: string;
233
+ label?: string | null | undefined;
234
+ defaultValue?: string | number | boolean | null | undefined;
235
+ }, {
236
+ name: string;
237
+ required?: boolean | undefined;
238
+ label?: string | null | undefined;
239
+ options?: string[] | undefined;
240
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
241
+ defaultValue?: string | number | boolean | null | undefined;
242
+ }>, {
243
+ required: boolean;
244
+ options: string[];
245
+ type: "number" | "boolean" | "text" | "textarea" | "select";
246
+ name: string;
247
+ label?: string | null | undefined;
248
+ defaultValue?: string | number | boolean | null | undefined;
249
+ }, {
250
+ name: string;
251
+ required?: boolean | undefined;
252
+ label?: string | null | undefined;
253
+ options?: string[] | undefined;
254
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
255
+ defaultValue?: string | number | boolean | null | undefined;
256
+ }>, "many">>;
257
+ triggers: z.ZodOptional<z.ZodArray<z.ZodObject<{
258
+ kind: z.ZodEnum<["schedule", "webhook", "api"]>;
259
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
260
+ enabled: z.ZodOptional<z.ZodBoolean>;
261
+ cronExpression: z.ZodNullable<z.ZodOptional<z.ZodString>>;
262
+ timezone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
263
+ signingMode: z.ZodNullable<z.ZodOptional<z.ZodEnum<["bearer", "hmac_sha256", "github_hmac", "none"]>>>;
264
+ replayWindowSec: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
265
+ }, "strip", z.ZodTypeAny, {
266
+ kind: "schedule" | "webhook" | "api";
267
+ label?: string | null | undefined;
268
+ enabled?: boolean | undefined;
269
+ cronExpression?: string | null | undefined;
270
+ timezone?: string | null | undefined;
271
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
272
+ replayWindowSec?: number | null | undefined;
273
+ }, {
274
+ kind: "schedule" | "webhook" | "api";
275
+ label?: string | null | undefined;
276
+ enabled?: boolean | undefined;
277
+ cronExpression?: string | null | undefined;
278
+ timezone?: string | null | undefined;
279
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
280
+ replayWindowSec?: number | null | undefined;
281
+ }>, "many">>;
282
+ issueTemplate: z.ZodOptional<z.ZodObject<{
283
+ surfaceVisibility: z.ZodOptional<z.ZodEnum<["default", "plugin_operation"]>>;
284
+ originId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
285
+ billingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
286
+ }, "strip", z.ZodTypeAny, {
287
+ billingCode?: string | null | undefined;
288
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
289
+ originId?: string | null | undefined;
290
+ }, {
291
+ billingCode?: string | null | undefined;
292
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
293
+ originId?: string | null | undefined;
294
+ }>>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ title: string;
297
+ routineKey: string;
298
+ description?: string | null | undefined;
299
+ status?: "active" | "paused" | "archived" | undefined;
300
+ goalId?: string | null | undefined;
301
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
302
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
303
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
304
+ variables?: {
305
+ required: boolean;
306
+ options: string[];
307
+ type: "number" | "boolean" | "text" | "textarea" | "select";
308
+ name: string;
309
+ label?: string | null | undefined;
310
+ defaultValue?: string | number | boolean | null | undefined;
311
+ }[] | undefined;
312
+ triggers?: {
313
+ kind: "schedule" | "webhook" | "api";
314
+ label?: string | null | undefined;
315
+ enabled?: boolean | undefined;
316
+ cronExpression?: string | null | undefined;
317
+ timezone?: string | null | undefined;
318
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
319
+ replayWindowSec?: number | null | undefined;
320
+ }[] | undefined;
321
+ assigneeRef?: {
322
+ resourceKind: "agent";
323
+ resourceKey: string;
324
+ pluginKey?: string | undefined;
325
+ } | null | undefined;
326
+ projectRef?: {
327
+ resourceKind: "project";
328
+ resourceKey: string;
329
+ pluginKey?: string | undefined;
330
+ } | null | undefined;
331
+ issueTemplate?: {
332
+ billingCode?: string | null | undefined;
333
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
334
+ originId?: string | null | undefined;
335
+ } | undefined;
336
+ }, {
337
+ title: string;
338
+ routineKey: string;
339
+ description?: string | null | undefined;
340
+ status?: "active" | "paused" | "archived" | undefined;
341
+ goalId?: string | null | undefined;
342
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
343
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
344
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
345
+ variables?: {
346
+ name: string;
347
+ required?: boolean | undefined;
348
+ label?: string | null | undefined;
349
+ options?: string[] | undefined;
350
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
351
+ defaultValue?: string | number | boolean | null | undefined;
352
+ }[] | undefined;
353
+ triggers?: {
354
+ kind: "schedule" | "webhook" | "api";
355
+ label?: string | null | undefined;
356
+ enabled?: boolean | undefined;
357
+ cronExpression?: string | null | undefined;
358
+ timezone?: string | null | undefined;
359
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
360
+ replayWindowSec?: number | null | undefined;
361
+ }[] | undefined;
362
+ assigneeRef?: {
363
+ resourceKind: "agent";
364
+ resourceKey: string;
365
+ pluginKey?: string | undefined;
366
+ } | null | undefined;
367
+ projectRef?: {
368
+ resourceKind: "project";
369
+ resourceKey: string;
370
+ pluginKey?: string | undefined;
371
+ } | null | undefined;
372
+ issueTemplate?: {
373
+ billingCode?: string | null | undefined;
374
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
375
+ originId?: string | null | undefined;
376
+ } | undefined;
377
+ }>;
378
+ export type PluginManagedRoutineDeclarationInput = z.infer<typeof pluginManagedRoutineDeclarationSchema>;
379
+ export declare const pluginLocalFolderDeclarationSchema: z.ZodObject<{
380
+ folderKey: z.ZodString;
381
+ displayName: z.ZodString;
382
+ description: z.ZodOptional<z.ZodString>;
383
+ access: z.ZodOptional<z.ZodEnum<["read", "readWrite"]>>;
384
+ requiredDirectories: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
385
+ requiredFiles: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
386
+ }, "strip", z.ZodTypeAny, {
387
+ displayName: string;
388
+ folderKey: string;
389
+ description?: string | undefined;
390
+ access?: "read" | "readWrite" | undefined;
391
+ requiredDirectories?: string[] | undefined;
392
+ requiredFiles?: string[] | undefined;
393
+ }, {
394
+ displayName: string;
395
+ folderKey: string;
396
+ description?: string | undefined;
397
+ access?: "read" | "readWrite" | undefined;
398
+ requiredDirectories?: string[] | undefined;
399
+ requiredFiles?: string[] | undefined;
400
+ }>;
401
+ export type PluginLocalFolderDeclarationInput = z.infer<typeof pluginLocalFolderDeclarationSchema>;
402
+ /**
403
+ * Validates a {@link PluginUiSlotDeclaration} — a UI extension slot the plugin
404
+ * fills with a React component. Includes `superRefine` checks for slot-specific
405
+ * requirements such as `entityTypes` for context-sensitive slots.
406
+ *
407
+ * @see PLUGIN_SPEC.md §19 — UI Extension Model
408
+ */
409
+ export declare const pluginUiSlotDeclarationSchema: z.ZodEffects<z.ZodObject<{
410
+ type: z.ZodEnum<["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "routeSidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]>;
411
+ id: z.ZodString;
412
+ displayName: z.ZodString;
413
+ exportName: z.ZodString;
414
+ entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["project", "issue", "agent", "goal", "run", "comment"]>, "many">>;
415
+ routePath: z.ZodOptional<z.ZodString>;
416
+ order: z.ZodOptional<z.ZodNumber>;
417
+ }, "strip", z.ZodTypeAny, {
418
+ id: string;
419
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
420
+ displayName: string;
421
+ exportName: string;
422
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
423
+ routePath?: string | undefined;
424
+ order?: number | undefined;
425
+ }, {
426
+ id: string;
427
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
428
+ displayName: string;
429
+ exportName: string;
430
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
431
+ routePath?: string | undefined;
432
+ order?: number | undefined;
433
+ }>, {
434
+ id: string;
435
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
436
+ displayName: string;
437
+ exportName: string;
438
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
439
+ routePath?: string | undefined;
440
+ order?: number | undefined;
441
+ }, {
442
+ id: string;
443
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
444
+ displayName: string;
445
+ exportName: string;
446
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
447
+ routePath?: string | undefined;
448
+ order?: number | undefined;
449
+ }>;
450
+ export type PluginUiSlotDeclarationInput = z.infer<typeof pluginUiSlotDeclarationSchema>;
451
+ /**
452
+ * Validates the action payload for a declarative plugin launcher.
453
+ */
454
+ export declare const pluginLauncherActionDeclarationSchema: z.ZodEffects<z.ZodObject<{
455
+ type: z.ZodEnum<["navigate", "openModal", "openDrawer", "openPopover", "performAction", "deepLink"]>;
456
+ target: z.ZodString;
457
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
458
+ }, "strip", z.ZodTypeAny, {
459
+ target: string;
460
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
461
+ params?: Record<string, unknown> | undefined;
462
+ }, {
463
+ target: string;
464
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
465
+ params?: Record<string, unknown> | undefined;
466
+ }>, {
467
+ target: string;
468
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
469
+ params?: Record<string, unknown> | undefined;
470
+ }, {
471
+ target: string;
472
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
473
+ params?: Record<string, unknown> | undefined;
474
+ }>;
475
+ export type PluginLauncherActionDeclarationInput = z.infer<typeof pluginLauncherActionDeclarationSchema>;
476
+ /**
477
+ * Validates optional render hints for a plugin launcher destination.
478
+ */
479
+ export declare const pluginLauncherRenderDeclarationSchema: z.ZodEffects<z.ZodObject<{
480
+ environment: z.ZodEnum<["hostInline", "hostOverlay", "hostRoute", "external", "iframe"]>;
481
+ bounds: z.ZodOptional<z.ZodEnum<["inline", "compact", "default", "wide", "full"]>>;
482
+ }, "strip", z.ZodTypeAny, {
483
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
484
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
485
+ }, {
486
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
487
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
488
+ }>, {
489
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
490
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
491
+ }, {
492
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
493
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
494
+ }>;
495
+ export type PluginLauncherRenderDeclarationInput = z.infer<typeof pluginLauncherRenderDeclarationSchema>;
496
+ /**
497
+ * Validates declarative launcher metadata in a plugin manifest.
498
+ */
499
+ export declare const pluginLauncherDeclarationSchema: z.ZodEffects<z.ZodObject<{
500
+ id: z.ZodString;
501
+ displayName: z.ZodString;
502
+ description: z.ZodOptional<z.ZodString>;
503
+ placementZone: z.ZodEnum<["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]>;
504
+ exportName: z.ZodOptional<z.ZodString>;
505
+ entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["project", "issue", "agent", "goal", "run", "comment"]>, "many">>;
506
+ order: z.ZodOptional<z.ZodNumber>;
507
+ action: z.ZodEffects<z.ZodObject<{
508
+ type: z.ZodEnum<["navigate", "openModal", "openDrawer", "openPopover", "performAction", "deepLink"]>;
509
+ target: z.ZodString;
510
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
511
+ }, "strip", z.ZodTypeAny, {
512
+ target: string;
513
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
514
+ params?: Record<string, unknown> | undefined;
515
+ }, {
516
+ target: string;
517
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
518
+ params?: Record<string, unknown> | undefined;
519
+ }>, {
520
+ target: string;
521
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
522
+ params?: Record<string, unknown> | undefined;
523
+ }, {
524
+ target: string;
525
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
526
+ params?: Record<string, unknown> | undefined;
527
+ }>;
528
+ render: z.ZodOptional<z.ZodEffects<z.ZodObject<{
529
+ environment: z.ZodEnum<["hostInline", "hostOverlay", "hostRoute", "external", "iframe"]>;
530
+ bounds: z.ZodOptional<z.ZodEnum<["inline", "compact", "default", "wide", "full"]>>;
531
+ }, "strip", z.ZodTypeAny, {
532
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
533
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
534
+ }, {
535
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
536
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
537
+ }>, {
538
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
539
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
540
+ }, {
541
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
542
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
543
+ }>>;
544
+ }, "strip", z.ZodTypeAny, {
545
+ id: string;
546
+ action: {
547
+ target: string;
548
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
549
+ params?: Record<string, unknown> | undefined;
550
+ };
551
+ displayName: string;
552
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
553
+ description?: string | undefined;
554
+ exportName?: string | undefined;
555
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
556
+ order?: number | undefined;
557
+ render?: {
558
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
559
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
560
+ } | undefined;
561
+ }, {
562
+ id: string;
563
+ action: {
564
+ target: string;
565
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
566
+ params?: Record<string, unknown> | undefined;
567
+ };
568
+ displayName: string;
569
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
570
+ description?: string | undefined;
571
+ exportName?: string | undefined;
572
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
573
+ order?: number | undefined;
574
+ render?: {
575
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
576
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
577
+ } | undefined;
578
+ }>, {
579
+ id: string;
580
+ action: {
581
+ target: string;
582
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
583
+ params?: Record<string, unknown> | undefined;
584
+ };
585
+ displayName: string;
586
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
587
+ description?: string | undefined;
588
+ exportName?: string | undefined;
589
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
590
+ order?: number | undefined;
591
+ render?: {
592
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
593
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
594
+ } | undefined;
595
+ }, {
596
+ id: string;
597
+ action: {
598
+ target: string;
599
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
600
+ params?: Record<string, unknown> | undefined;
601
+ };
602
+ displayName: string;
603
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
604
+ description?: string | undefined;
605
+ exportName?: string | undefined;
606
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
607
+ order?: number | undefined;
608
+ render?: {
609
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
610
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
611
+ } | undefined;
612
+ }>;
613
+ export type PluginLauncherDeclarationInput = z.infer<typeof pluginLauncherDeclarationSchema>;
614
+ export declare const pluginDatabaseDeclarationSchema: z.ZodObject<{
615
+ namespaceSlug: z.ZodOptional<z.ZodString>;
616
+ migrationsDir: z.ZodEffects<z.ZodString, string, string>;
617
+ coreReadTables: z.ZodOptional<z.ZodArray<z.ZodEnum<["companies", "projects", "goals", "agents", "issues", "issue_documents", "issue_relations", "issue_comments", "heartbeat_runs", "cost_events", "approvals", "issue_approvals", "budget_incidents"]>, "many">>;
618
+ }, "strip", z.ZodTypeAny, {
619
+ migrationsDir: string;
620
+ namespaceSlug?: string | undefined;
621
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
622
+ }, {
623
+ migrationsDir: string;
624
+ namespaceSlug?: string | undefined;
625
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
626
+ }>;
627
+ export type PluginDatabaseDeclarationInput = z.infer<typeof pluginDatabaseDeclarationSchema>;
628
+ export declare const pluginApiRouteDeclarationSchema: z.ZodObject<{
629
+ routeKey: z.ZodString;
630
+ method: z.ZodEnum<["GET", "POST", "PATCH", "DELETE"]>;
631
+ path: z.ZodEffects<z.ZodString, string, string>;
632
+ auth: z.ZodEnum<["board", "agent", "board-or-agent", "webhook"]>;
633
+ capability: z.ZodLiteral<"api.routes.register">;
634
+ checkoutPolicy: z.ZodOptional<z.ZodEnum<["none", "required-for-agent-in-progress", "always-for-agent"]>>;
635
+ companyResolution: z.ZodOptional<z.ZodDiscriminatedUnion<"from", [z.ZodObject<{
636
+ from: z.ZodLiteral<"body">;
637
+ key: z.ZodString;
638
+ }, "strip", z.ZodTypeAny, {
639
+ key: string;
640
+ from: "body";
641
+ }, {
642
+ key: string;
643
+ from: "body";
644
+ }>, z.ZodObject<{
645
+ from: z.ZodLiteral<"query">;
646
+ key: z.ZodString;
647
+ }, "strip", z.ZodTypeAny, {
648
+ key: string;
649
+ from: "query";
650
+ }, {
651
+ key: string;
652
+ from: "query";
653
+ }>, z.ZodObject<{
654
+ from: z.ZodLiteral<"issue">;
655
+ param: z.ZodString;
656
+ }, "strip", z.ZodTypeAny, {
657
+ from: "issue";
658
+ param: string;
659
+ }, {
660
+ from: "issue";
661
+ param: string;
662
+ }>]>>;
663
+ }, "strip", z.ZodTypeAny, {
664
+ path: string;
665
+ routeKey: string;
666
+ method: "GET" | "POST" | "PATCH" | "DELETE";
667
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
668
+ capability: "api.routes.register";
669
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
670
+ companyResolution?: {
671
+ key: string;
672
+ from: "body";
673
+ } | {
674
+ key: string;
675
+ from: "query";
676
+ } | {
677
+ from: "issue";
678
+ param: string;
679
+ } | undefined;
680
+ }, {
681
+ path: string;
682
+ routeKey: string;
683
+ method: "GET" | "POST" | "PATCH" | "DELETE";
684
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
685
+ capability: "api.routes.register";
686
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
687
+ companyResolution?: {
688
+ key: string;
689
+ from: "body";
690
+ } | {
691
+ key: string;
692
+ from: "query";
693
+ } | {
694
+ from: "issue";
695
+ param: string;
696
+ } | undefined;
697
+ }>;
698
+ export type PluginApiRouteDeclarationInput = z.infer<typeof pluginApiRouteDeclarationSchema>;
699
+ /**
700
+ * Zod schema for {@link EvermorePluginManifestV1} — the complete runtime
701
+ * validator for plugin manifests read at install time.
702
+ *
703
+ * Field-level constraints (see PLUGIN_SPEC.md §10.1 for the normative rules):
704
+ *
705
+ * | Field | Type | Constraints |
706
+ * |--------------------------|------------|----------------------------------------------|
707
+ * | `id` | string | `^[a-z0-9][a-z0-9._-]*$` |
708
+ * | `apiVersion` | literal 1 | must equal `PLUGIN_API_VERSION` |
709
+ * | `version` | string | semver (`\d+\.\d+\.\d+`) |
710
+ * | `displayName` | string | 1–100 chars |
711
+ * | `description` | string | 1–500 chars |
712
+ * | `author` | string | 1–200 chars |
713
+ * | `categories` | enum[] | at least one; values from PLUGIN_CATEGORIES |
714
+ * | `minimumHostVersion` | string? | semver lower bound if present, no leading `v`|
715
+ * | `minimumEvermoreVersion`| string? | legacy alias of `minimumHostVersion` |
716
+ * | `capabilities` | enum[] | at least one; values from PLUGIN_CAPABILITIES|
717
+ * | `entrypoints.worker` | string | min 1 char |
718
+ * | `entrypoints.ui` | string? | required when `ui.slots` is declared |
719
+ *
720
+ * Cross-field rules enforced via `superRefine`:
721
+ * - `entrypoints.ui` required when `ui.slots` declared
722
+ * - `agent.tools.register` capability required when `tools` declared
723
+ * - `environment.drivers.register` capability required when `environmentDrivers` declared
724
+ * - `jobs.schedule` capability required when `jobs` declared
725
+ * - `webhooks.receive` capability required when `webhooks` declared
726
+ * - duplicate `jobs[].jobKey` values are rejected
727
+ * - duplicate `webhooks[].endpointKey` values are rejected
728
+ * - duplicate `tools[].name` values are rejected
729
+ * - duplicate `environmentDrivers[].driverKey` values are rejected
730
+ * - duplicate `ui.slots[].id` values are rejected
731
+ *
732
+ * @see PLUGIN_SPEC.md §10.1 — Manifest shape
733
+ * @see {@link EvermorePluginManifestV1} — the inferred TypeScript type
734
+ */
735
+ export declare const pluginManifestV1Schema: z.ZodEffects<z.ZodObject<{
736
+ id: z.ZodString;
737
+ apiVersion: z.ZodLiteral<1>;
738
+ version: z.ZodString;
739
+ displayName: z.ZodString;
740
+ description: z.ZodString;
741
+ author: z.ZodString;
742
+ categories: z.ZodArray<z.ZodEnum<["connector", "workspace", "automation", "ui"]>, "many">;
743
+ minimumHostVersion: z.ZodOptional<z.ZodString>;
744
+ minimumEvermoreVersion: z.ZodOptional<z.ZodString>;
745
+ capabilities: z.ZodArray<z.ZodEnum<["companies.read", "projects.read", "project.workspaces.read", "issues.read", "issue.relations.read", "issue.subtree.read", "issue.comments.read", "issue.documents.read", "agents.read", "goals.read", "goals.create", "goals.update", "activity.read", "costs.read", "issues.orchestration.read", "database.namespace.read", "issues.create", "issues.update", "issue.relations.write", "issues.checkout", "issues.wakeup", "issue.comments.create", "issue.interactions.create", "issue.documents.write", "projects.managed", "routines.managed", "agents.pause", "agents.resume", "agents.invoke", "agents.managed", "agent.sessions.create", "agent.sessions.list", "agent.sessions.send", "agent.sessions.close", "activity.log.write", "metrics.write", "telemetry.track", "database.namespace.migrate", "database.namespace.write", "plugin.state.read", "plugin.state.write", "events.subscribe", "events.emit", "jobs.schedule", "webhooks.receive", "api.routes.register", "http.outbound", "secrets.read-ref", "environment.drivers.register", "local.folders", "agent.tools.register", "instance.settings.register", "ui.sidebar.register", "ui.page.register", "ui.detailTab.register", "ui.dashboardWidget.register", "ui.commentAnnotation.register", "ui.action.register"]>, "many">;
746
+ entrypoints: z.ZodObject<{
747
+ worker: z.ZodString;
748
+ ui: z.ZodOptional<z.ZodString>;
749
+ }, "strip", z.ZodTypeAny, {
750
+ worker: string;
751
+ ui?: string | undefined;
752
+ }, {
753
+ worker: string;
754
+ ui?: string | undefined;
755
+ }>;
756
+ instanceConfigSchema: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
757
+ jobs: z.ZodOptional<z.ZodArray<z.ZodObject<{
758
+ jobKey: z.ZodString;
759
+ displayName: z.ZodString;
760
+ description: z.ZodOptional<z.ZodString>;
761
+ schedule: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
762
+ }, "strip", z.ZodTypeAny, {
763
+ jobKey: string;
764
+ displayName: string;
765
+ description?: string | undefined;
766
+ schedule?: string | undefined;
767
+ }, {
768
+ jobKey: string;
769
+ displayName: string;
770
+ description?: string | undefined;
771
+ schedule?: string | undefined;
772
+ }>, "many">>;
773
+ webhooks: z.ZodOptional<z.ZodArray<z.ZodObject<{
774
+ endpointKey: z.ZodString;
775
+ displayName: z.ZodString;
776
+ description: z.ZodOptional<z.ZodString>;
777
+ }, "strip", z.ZodTypeAny, {
778
+ displayName: string;
779
+ endpointKey: string;
780
+ description?: string | undefined;
781
+ }, {
782
+ displayName: string;
783
+ endpointKey: string;
784
+ description?: string | undefined;
785
+ }>, "many">>;
786
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
787
+ name: z.ZodString;
788
+ displayName: z.ZodString;
789
+ description: z.ZodString;
790
+ parametersSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
791
+ }, "strip", z.ZodTypeAny, {
792
+ description: string;
793
+ name: string;
794
+ displayName: string;
795
+ parametersSchema: Record<string, unknown>;
796
+ }, {
797
+ description: string;
798
+ name: string;
799
+ displayName: string;
800
+ parametersSchema: Record<string, unknown>;
801
+ }>, "many">>;
802
+ database: z.ZodOptional<z.ZodObject<{
803
+ namespaceSlug: z.ZodOptional<z.ZodString>;
804
+ migrationsDir: z.ZodEffects<z.ZodString, string, string>;
805
+ coreReadTables: z.ZodOptional<z.ZodArray<z.ZodEnum<["companies", "projects", "goals", "agents", "issues", "issue_documents", "issue_relations", "issue_comments", "heartbeat_runs", "cost_events", "approvals", "issue_approvals", "budget_incidents"]>, "many">>;
806
+ }, "strip", z.ZodTypeAny, {
807
+ migrationsDir: string;
808
+ namespaceSlug?: string | undefined;
809
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
810
+ }, {
811
+ migrationsDir: string;
812
+ namespaceSlug?: string | undefined;
813
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
814
+ }>>;
815
+ apiRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
816
+ routeKey: z.ZodString;
817
+ method: z.ZodEnum<["GET", "POST", "PATCH", "DELETE"]>;
818
+ path: z.ZodEffects<z.ZodString, string, string>;
819
+ auth: z.ZodEnum<["board", "agent", "board-or-agent", "webhook"]>;
820
+ capability: z.ZodLiteral<"api.routes.register">;
821
+ checkoutPolicy: z.ZodOptional<z.ZodEnum<["none", "required-for-agent-in-progress", "always-for-agent"]>>;
822
+ companyResolution: z.ZodOptional<z.ZodDiscriminatedUnion<"from", [z.ZodObject<{
823
+ from: z.ZodLiteral<"body">;
824
+ key: z.ZodString;
825
+ }, "strip", z.ZodTypeAny, {
826
+ key: string;
827
+ from: "body";
828
+ }, {
829
+ key: string;
830
+ from: "body";
831
+ }>, z.ZodObject<{
832
+ from: z.ZodLiteral<"query">;
833
+ key: z.ZodString;
834
+ }, "strip", z.ZodTypeAny, {
835
+ key: string;
836
+ from: "query";
837
+ }, {
838
+ key: string;
839
+ from: "query";
840
+ }>, z.ZodObject<{
841
+ from: z.ZodLiteral<"issue">;
842
+ param: z.ZodString;
843
+ }, "strip", z.ZodTypeAny, {
844
+ from: "issue";
845
+ param: string;
846
+ }, {
847
+ from: "issue";
848
+ param: string;
849
+ }>]>>;
850
+ }, "strip", z.ZodTypeAny, {
851
+ path: string;
852
+ routeKey: string;
853
+ method: "GET" | "POST" | "PATCH" | "DELETE";
854
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
855
+ capability: "api.routes.register";
856
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
857
+ companyResolution?: {
858
+ key: string;
859
+ from: "body";
860
+ } | {
861
+ key: string;
862
+ from: "query";
863
+ } | {
864
+ from: "issue";
865
+ param: string;
866
+ } | undefined;
867
+ }, {
868
+ path: string;
869
+ routeKey: string;
870
+ method: "GET" | "POST" | "PATCH" | "DELETE";
871
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
872
+ capability: "api.routes.register";
873
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
874
+ companyResolution?: {
875
+ key: string;
876
+ from: "body";
877
+ } | {
878
+ key: string;
879
+ from: "query";
880
+ } | {
881
+ from: "issue";
882
+ param: string;
883
+ } | undefined;
884
+ }>, "many">>;
885
+ environmentDrivers: z.ZodOptional<z.ZodArray<z.ZodObject<{
886
+ driverKey: z.ZodString;
887
+ kind: z.ZodOptional<z.ZodEnum<["environment_driver", "sandbox_provider"]>>;
888
+ displayName: z.ZodString;
889
+ description: z.ZodOptional<z.ZodString>;
890
+ configSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
891
+ }, "strip", z.ZodTypeAny, {
892
+ displayName: string;
893
+ driverKey: string;
894
+ configSchema: Record<string, unknown>;
895
+ description?: string | undefined;
896
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
897
+ }, {
898
+ displayName: string;
899
+ driverKey: string;
900
+ configSchema: Record<string, unknown>;
901
+ description?: string | undefined;
902
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
903
+ }>, "many">>;
904
+ agents: z.ZodOptional<z.ZodArray<z.ZodObject<{
905
+ agentKey: z.ZodString;
906
+ displayName: z.ZodString;
907
+ role: z.ZodOptional<z.ZodString>;
908
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
909
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
910
+ capabilities: z.ZodOptional<z.ZodNullable<z.ZodString>>;
911
+ adapterType: z.ZodOptional<z.ZodString>;
912
+ adapterPreference: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
913
+ adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
914
+ runtimeConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
915
+ permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
916
+ status: z.ZodOptional<z.ZodEnum<["idle", "paused"]>>;
917
+ budgetMonthlyCents: z.ZodOptional<z.ZodNumber>;
918
+ instructions: z.ZodOptional<z.ZodObject<{
919
+ entryFile: z.ZodOptional<z.ZodString>;
920
+ content: z.ZodOptional<z.ZodString>;
921
+ assetPath: z.ZodOptional<z.ZodString>;
922
+ }, "strip", z.ZodTypeAny, {
923
+ content?: string | undefined;
924
+ entryFile?: string | undefined;
925
+ assetPath?: string | undefined;
926
+ }, {
927
+ content?: string | undefined;
928
+ entryFile?: string | undefined;
929
+ assetPath?: string | undefined;
930
+ }>>;
931
+ }, "strip", z.ZodTypeAny, {
932
+ displayName: string;
933
+ agentKey: string;
934
+ title?: string | null | undefined;
935
+ status?: "paused" | "idle" | undefined;
936
+ budgetMonthlyCents?: number | undefined;
937
+ adapterType?: string | undefined;
938
+ adapterConfig?: Record<string, unknown> | undefined;
939
+ instructions?: {
940
+ content?: string | undefined;
941
+ entryFile?: string | undefined;
942
+ assetPath?: string | undefined;
943
+ } | undefined;
944
+ role?: string | undefined;
945
+ icon?: string | null | undefined;
946
+ capabilities?: string | null | undefined;
947
+ runtimeConfig?: Record<string, unknown> | undefined;
948
+ permissions?: Record<string, unknown> | undefined;
949
+ adapterPreference?: string[] | undefined;
950
+ }, {
951
+ displayName: string;
952
+ agentKey: string;
953
+ title?: string | null | undefined;
954
+ status?: "paused" | "idle" | undefined;
955
+ budgetMonthlyCents?: number | undefined;
956
+ adapterType?: string | undefined;
957
+ adapterConfig?: Record<string, unknown> | undefined;
958
+ instructions?: {
959
+ content?: string | undefined;
960
+ entryFile?: string | undefined;
961
+ assetPath?: string | undefined;
962
+ } | undefined;
963
+ role?: string | undefined;
964
+ icon?: string | null | undefined;
965
+ capabilities?: string | null | undefined;
966
+ runtimeConfig?: Record<string, unknown> | undefined;
967
+ permissions?: Record<string, unknown> | undefined;
968
+ adapterPreference?: string[] | undefined;
969
+ }>, "many">>;
970
+ projects: z.ZodOptional<z.ZodArray<z.ZodObject<{
971
+ projectKey: z.ZodString;
972
+ displayName: z.ZodString;
973
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
974
+ status: z.ZodOptional<z.ZodEnum<["backlog", "planned", "in_progress", "completed", "cancelled"]>>;
975
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
976
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
977
+ }, "strip", z.ZodTypeAny, {
978
+ displayName: string;
979
+ projectKey: string;
980
+ description?: string | null | undefined;
981
+ settings?: Record<string, unknown> | undefined;
982
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
983
+ color?: string | null | undefined;
984
+ }, {
985
+ displayName: string;
986
+ projectKey: string;
987
+ description?: string | null | undefined;
988
+ settings?: Record<string, unknown> | undefined;
989
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
990
+ color?: string | null | undefined;
991
+ }>, "many">>;
992
+ routines: z.ZodOptional<z.ZodArray<z.ZodObject<{
993
+ routineKey: z.ZodString;
994
+ title: z.ZodString;
995
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
996
+ assigneeRef: z.ZodOptional<z.ZodNullable<z.ZodObject<{
997
+ pluginKey: z.ZodOptional<z.ZodString>;
998
+ resourceKey: z.ZodString;
999
+ } & {
1000
+ resourceKind: z.ZodLiteral<"agent">;
1001
+ }, "strip", z.ZodTypeAny, {
1002
+ resourceKind: "agent";
1003
+ resourceKey: string;
1004
+ pluginKey?: string | undefined;
1005
+ }, {
1006
+ resourceKind: "agent";
1007
+ resourceKey: string;
1008
+ pluginKey?: string | undefined;
1009
+ }>>>;
1010
+ projectRef: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1011
+ pluginKey: z.ZodOptional<z.ZodString>;
1012
+ resourceKey: z.ZodString;
1013
+ } & {
1014
+ resourceKind: z.ZodLiteral<"project">;
1015
+ }, "strip", z.ZodTypeAny, {
1016
+ resourceKind: "project";
1017
+ resourceKey: string;
1018
+ pluginKey?: string | undefined;
1019
+ }, {
1020
+ resourceKind: "project";
1021
+ resourceKey: string;
1022
+ pluginKey?: string | undefined;
1023
+ }>>>;
1024
+ goalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1025
+ status: z.ZodOptional<z.ZodEnum<["active", "paused", "archived"]>>;
1026
+ priority: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>;
1027
+ concurrencyPolicy: z.ZodOptional<z.ZodEnum<["coalesce_if_active", "always_enqueue", "skip_if_active"]>>;
1028
+ catchUpPolicy: z.ZodOptional<z.ZodEnum<["skip_missed", "enqueue_missed_with_cap"]>>;
1029
+ variables: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1030
+ name: z.ZodString;
1031
+ label: z.ZodNullable<z.ZodOptional<z.ZodString>>;
1032
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["text", "textarea", "number", "boolean", "select"]>>>;
1033
+ defaultValue: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1034
+ required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1035
+ options: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1036
+ }, "strip", z.ZodTypeAny, {
1037
+ required: boolean;
1038
+ options: string[];
1039
+ type: "number" | "boolean" | "text" | "textarea" | "select";
1040
+ name: string;
1041
+ label?: string | null | undefined;
1042
+ defaultValue?: string | number | boolean | null | undefined;
1043
+ }, {
1044
+ name: string;
1045
+ required?: boolean | undefined;
1046
+ label?: string | null | undefined;
1047
+ options?: string[] | undefined;
1048
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
1049
+ defaultValue?: string | number | boolean | null | undefined;
1050
+ }>, {
1051
+ required: boolean;
1052
+ options: string[];
1053
+ type: "number" | "boolean" | "text" | "textarea" | "select";
1054
+ name: string;
1055
+ label?: string | null | undefined;
1056
+ defaultValue?: string | number | boolean | null | undefined;
1057
+ }, {
1058
+ name: string;
1059
+ required?: boolean | undefined;
1060
+ label?: string | null | undefined;
1061
+ options?: string[] | undefined;
1062
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
1063
+ defaultValue?: string | number | boolean | null | undefined;
1064
+ }>, "many">>;
1065
+ triggers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1066
+ kind: z.ZodEnum<["schedule", "webhook", "api"]>;
1067
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1068
+ enabled: z.ZodOptional<z.ZodBoolean>;
1069
+ cronExpression: z.ZodNullable<z.ZodOptional<z.ZodString>>;
1070
+ timezone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
1071
+ signingMode: z.ZodNullable<z.ZodOptional<z.ZodEnum<["bearer", "hmac_sha256", "github_hmac", "none"]>>>;
1072
+ replayWindowSec: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
1073
+ }, "strip", z.ZodTypeAny, {
1074
+ kind: "schedule" | "webhook" | "api";
1075
+ label?: string | null | undefined;
1076
+ enabled?: boolean | undefined;
1077
+ cronExpression?: string | null | undefined;
1078
+ timezone?: string | null | undefined;
1079
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1080
+ replayWindowSec?: number | null | undefined;
1081
+ }, {
1082
+ kind: "schedule" | "webhook" | "api";
1083
+ label?: string | null | undefined;
1084
+ enabled?: boolean | undefined;
1085
+ cronExpression?: string | null | undefined;
1086
+ timezone?: string | null | undefined;
1087
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1088
+ replayWindowSec?: number | null | undefined;
1089
+ }>, "many">>;
1090
+ issueTemplate: z.ZodOptional<z.ZodObject<{
1091
+ surfaceVisibility: z.ZodOptional<z.ZodEnum<["default", "plugin_operation"]>>;
1092
+ originId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1093
+ billingCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1094
+ }, "strip", z.ZodTypeAny, {
1095
+ billingCode?: string | null | undefined;
1096
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1097
+ originId?: string | null | undefined;
1098
+ }, {
1099
+ billingCode?: string | null | undefined;
1100
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1101
+ originId?: string | null | undefined;
1102
+ }>>;
1103
+ }, "strip", z.ZodTypeAny, {
1104
+ title: string;
1105
+ routineKey: string;
1106
+ description?: string | null | undefined;
1107
+ status?: "active" | "paused" | "archived" | undefined;
1108
+ goalId?: string | null | undefined;
1109
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
1110
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
1111
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
1112
+ variables?: {
1113
+ required: boolean;
1114
+ options: string[];
1115
+ type: "number" | "boolean" | "text" | "textarea" | "select";
1116
+ name: string;
1117
+ label?: string | null | undefined;
1118
+ defaultValue?: string | number | boolean | null | undefined;
1119
+ }[] | undefined;
1120
+ triggers?: {
1121
+ kind: "schedule" | "webhook" | "api";
1122
+ label?: string | null | undefined;
1123
+ enabled?: boolean | undefined;
1124
+ cronExpression?: string | null | undefined;
1125
+ timezone?: string | null | undefined;
1126
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1127
+ replayWindowSec?: number | null | undefined;
1128
+ }[] | undefined;
1129
+ assigneeRef?: {
1130
+ resourceKind: "agent";
1131
+ resourceKey: string;
1132
+ pluginKey?: string | undefined;
1133
+ } | null | undefined;
1134
+ projectRef?: {
1135
+ resourceKind: "project";
1136
+ resourceKey: string;
1137
+ pluginKey?: string | undefined;
1138
+ } | null | undefined;
1139
+ issueTemplate?: {
1140
+ billingCode?: string | null | undefined;
1141
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1142
+ originId?: string | null | undefined;
1143
+ } | undefined;
1144
+ }, {
1145
+ title: string;
1146
+ routineKey: string;
1147
+ description?: string | null | undefined;
1148
+ status?: "active" | "paused" | "archived" | undefined;
1149
+ goalId?: string | null | undefined;
1150
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
1151
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
1152
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
1153
+ variables?: {
1154
+ name: string;
1155
+ required?: boolean | undefined;
1156
+ label?: string | null | undefined;
1157
+ options?: string[] | undefined;
1158
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
1159
+ defaultValue?: string | number | boolean | null | undefined;
1160
+ }[] | undefined;
1161
+ triggers?: {
1162
+ kind: "schedule" | "webhook" | "api";
1163
+ label?: string | null | undefined;
1164
+ enabled?: boolean | undefined;
1165
+ cronExpression?: string | null | undefined;
1166
+ timezone?: string | null | undefined;
1167
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1168
+ replayWindowSec?: number | null | undefined;
1169
+ }[] | undefined;
1170
+ assigneeRef?: {
1171
+ resourceKind: "agent";
1172
+ resourceKey: string;
1173
+ pluginKey?: string | undefined;
1174
+ } | null | undefined;
1175
+ projectRef?: {
1176
+ resourceKind: "project";
1177
+ resourceKey: string;
1178
+ pluginKey?: string | undefined;
1179
+ } | null | undefined;
1180
+ issueTemplate?: {
1181
+ billingCode?: string | null | undefined;
1182
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1183
+ originId?: string | null | undefined;
1184
+ } | undefined;
1185
+ }>, "many">>;
1186
+ localFolders: z.ZodOptional<z.ZodArray<z.ZodObject<{
1187
+ folderKey: z.ZodString;
1188
+ displayName: z.ZodString;
1189
+ description: z.ZodOptional<z.ZodString>;
1190
+ access: z.ZodOptional<z.ZodEnum<["read", "readWrite"]>>;
1191
+ requiredDirectories: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
1192
+ requiredFiles: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
1193
+ }, "strip", z.ZodTypeAny, {
1194
+ displayName: string;
1195
+ folderKey: string;
1196
+ description?: string | undefined;
1197
+ access?: "read" | "readWrite" | undefined;
1198
+ requiredDirectories?: string[] | undefined;
1199
+ requiredFiles?: string[] | undefined;
1200
+ }, {
1201
+ displayName: string;
1202
+ folderKey: string;
1203
+ description?: string | undefined;
1204
+ access?: "read" | "readWrite" | undefined;
1205
+ requiredDirectories?: string[] | undefined;
1206
+ requiredFiles?: string[] | undefined;
1207
+ }>, "many">>;
1208
+ launchers: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1209
+ id: z.ZodString;
1210
+ displayName: z.ZodString;
1211
+ description: z.ZodOptional<z.ZodString>;
1212
+ placementZone: z.ZodEnum<["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]>;
1213
+ exportName: z.ZodOptional<z.ZodString>;
1214
+ entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["project", "issue", "agent", "goal", "run", "comment"]>, "many">>;
1215
+ order: z.ZodOptional<z.ZodNumber>;
1216
+ action: z.ZodEffects<z.ZodObject<{
1217
+ type: z.ZodEnum<["navigate", "openModal", "openDrawer", "openPopover", "performAction", "deepLink"]>;
1218
+ target: z.ZodString;
1219
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1220
+ }, "strip", z.ZodTypeAny, {
1221
+ target: string;
1222
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1223
+ params?: Record<string, unknown> | undefined;
1224
+ }, {
1225
+ target: string;
1226
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1227
+ params?: Record<string, unknown> | undefined;
1228
+ }>, {
1229
+ target: string;
1230
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1231
+ params?: Record<string, unknown> | undefined;
1232
+ }, {
1233
+ target: string;
1234
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1235
+ params?: Record<string, unknown> | undefined;
1236
+ }>;
1237
+ render: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1238
+ environment: z.ZodEnum<["hostInline", "hostOverlay", "hostRoute", "external", "iframe"]>;
1239
+ bounds: z.ZodOptional<z.ZodEnum<["inline", "compact", "default", "wide", "full"]>>;
1240
+ }, "strip", z.ZodTypeAny, {
1241
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1242
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1243
+ }, {
1244
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1245
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1246
+ }>, {
1247
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1248
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1249
+ }, {
1250
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1251
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1252
+ }>>;
1253
+ }, "strip", z.ZodTypeAny, {
1254
+ id: string;
1255
+ action: {
1256
+ target: string;
1257
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1258
+ params?: Record<string, unknown> | undefined;
1259
+ };
1260
+ displayName: string;
1261
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1262
+ description?: string | undefined;
1263
+ exportName?: string | undefined;
1264
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1265
+ order?: number | undefined;
1266
+ render?: {
1267
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1268
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1269
+ } | undefined;
1270
+ }, {
1271
+ id: string;
1272
+ action: {
1273
+ target: string;
1274
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1275
+ params?: Record<string, unknown> | undefined;
1276
+ };
1277
+ displayName: string;
1278
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1279
+ description?: string | undefined;
1280
+ exportName?: string | undefined;
1281
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1282
+ order?: number | undefined;
1283
+ render?: {
1284
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1285
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1286
+ } | undefined;
1287
+ }>, {
1288
+ id: string;
1289
+ action: {
1290
+ target: string;
1291
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1292
+ params?: Record<string, unknown> | undefined;
1293
+ };
1294
+ displayName: string;
1295
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1296
+ description?: string | undefined;
1297
+ exportName?: string | undefined;
1298
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1299
+ order?: number | undefined;
1300
+ render?: {
1301
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1302
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1303
+ } | undefined;
1304
+ }, {
1305
+ id: string;
1306
+ action: {
1307
+ target: string;
1308
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1309
+ params?: Record<string, unknown> | undefined;
1310
+ };
1311
+ displayName: string;
1312
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1313
+ description?: string | undefined;
1314
+ exportName?: string | undefined;
1315
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1316
+ order?: number | undefined;
1317
+ render?: {
1318
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1319
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1320
+ } | undefined;
1321
+ }>, "many">>;
1322
+ ui: z.ZodOptional<z.ZodObject<{
1323
+ slots: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1324
+ type: z.ZodEnum<["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "routeSidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]>;
1325
+ id: z.ZodString;
1326
+ displayName: z.ZodString;
1327
+ exportName: z.ZodString;
1328
+ entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["project", "issue", "agent", "goal", "run", "comment"]>, "many">>;
1329
+ routePath: z.ZodOptional<z.ZodString>;
1330
+ order: z.ZodOptional<z.ZodNumber>;
1331
+ }, "strip", z.ZodTypeAny, {
1332
+ id: string;
1333
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1334
+ displayName: string;
1335
+ exportName: string;
1336
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1337
+ routePath?: string | undefined;
1338
+ order?: number | undefined;
1339
+ }, {
1340
+ id: string;
1341
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1342
+ displayName: string;
1343
+ exportName: string;
1344
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1345
+ routePath?: string | undefined;
1346
+ order?: number | undefined;
1347
+ }>, {
1348
+ id: string;
1349
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1350
+ displayName: string;
1351
+ exportName: string;
1352
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1353
+ routePath?: string | undefined;
1354
+ order?: number | undefined;
1355
+ }, {
1356
+ id: string;
1357
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1358
+ displayName: string;
1359
+ exportName: string;
1360
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1361
+ routePath?: string | undefined;
1362
+ order?: number | undefined;
1363
+ }>, "many">>;
1364
+ launchers: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
1365
+ id: z.ZodString;
1366
+ displayName: z.ZodString;
1367
+ description: z.ZodOptional<z.ZodString>;
1368
+ placementZone: z.ZodEnum<["page", "detailTab", "taskDetailView", "dashboardWidget", "sidebar", "sidebarPanel", "projectSidebarItem", "globalToolbarButton", "toolbarButton", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "settingsPage"]>;
1369
+ exportName: z.ZodOptional<z.ZodString>;
1370
+ entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["project", "issue", "agent", "goal", "run", "comment"]>, "many">>;
1371
+ order: z.ZodOptional<z.ZodNumber>;
1372
+ action: z.ZodEffects<z.ZodObject<{
1373
+ type: z.ZodEnum<["navigate", "openModal", "openDrawer", "openPopover", "performAction", "deepLink"]>;
1374
+ target: z.ZodString;
1375
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1376
+ }, "strip", z.ZodTypeAny, {
1377
+ target: string;
1378
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1379
+ params?: Record<string, unknown> | undefined;
1380
+ }, {
1381
+ target: string;
1382
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1383
+ params?: Record<string, unknown> | undefined;
1384
+ }>, {
1385
+ target: string;
1386
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1387
+ params?: Record<string, unknown> | undefined;
1388
+ }, {
1389
+ target: string;
1390
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1391
+ params?: Record<string, unknown> | undefined;
1392
+ }>;
1393
+ render: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1394
+ environment: z.ZodEnum<["hostInline", "hostOverlay", "hostRoute", "external", "iframe"]>;
1395
+ bounds: z.ZodOptional<z.ZodEnum<["inline", "compact", "default", "wide", "full"]>>;
1396
+ }, "strip", z.ZodTypeAny, {
1397
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1398
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1399
+ }, {
1400
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1401
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1402
+ }>, {
1403
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1404
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1405
+ }, {
1406
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1407
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1408
+ }>>;
1409
+ }, "strip", z.ZodTypeAny, {
1410
+ id: string;
1411
+ action: {
1412
+ target: string;
1413
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1414
+ params?: Record<string, unknown> | undefined;
1415
+ };
1416
+ displayName: string;
1417
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1418
+ description?: string | undefined;
1419
+ exportName?: string | undefined;
1420
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1421
+ order?: number | undefined;
1422
+ render?: {
1423
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1424
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1425
+ } | undefined;
1426
+ }, {
1427
+ id: string;
1428
+ action: {
1429
+ target: string;
1430
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1431
+ params?: Record<string, unknown> | undefined;
1432
+ };
1433
+ displayName: string;
1434
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1435
+ description?: string | undefined;
1436
+ exportName?: string | undefined;
1437
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1438
+ order?: number | undefined;
1439
+ render?: {
1440
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1441
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1442
+ } | undefined;
1443
+ }>, {
1444
+ id: string;
1445
+ action: {
1446
+ target: string;
1447
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1448
+ params?: Record<string, unknown> | undefined;
1449
+ };
1450
+ displayName: string;
1451
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1452
+ description?: string | undefined;
1453
+ exportName?: string | undefined;
1454
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1455
+ order?: number | undefined;
1456
+ render?: {
1457
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1458
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1459
+ } | undefined;
1460
+ }, {
1461
+ id: string;
1462
+ action: {
1463
+ target: string;
1464
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1465
+ params?: Record<string, unknown> | undefined;
1466
+ };
1467
+ displayName: string;
1468
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1469
+ description?: string | undefined;
1470
+ exportName?: string | undefined;
1471
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1472
+ order?: number | undefined;
1473
+ render?: {
1474
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1475
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1476
+ } | undefined;
1477
+ }>, "many">>;
1478
+ }, "strip", z.ZodTypeAny, {
1479
+ launchers?: {
1480
+ id: string;
1481
+ action: {
1482
+ target: string;
1483
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1484
+ params?: Record<string, unknown> | undefined;
1485
+ };
1486
+ displayName: string;
1487
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1488
+ description?: string | undefined;
1489
+ exportName?: string | undefined;
1490
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1491
+ order?: number | undefined;
1492
+ render?: {
1493
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1494
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1495
+ } | undefined;
1496
+ }[] | undefined;
1497
+ slots?: {
1498
+ id: string;
1499
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1500
+ displayName: string;
1501
+ exportName: string;
1502
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1503
+ routePath?: string | undefined;
1504
+ order?: number | undefined;
1505
+ }[] | undefined;
1506
+ }, {
1507
+ launchers?: {
1508
+ id: string;
1509
+ action: {
1510
+ target: string;
1511
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1512
+ params?: Record<string, unknown> | undefined;
1513
+ };
1514
+ displayName: string;
1515
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1516
+ description?: string | undefined;
1517
+ exportName?: string | undefined;
1518
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1519
+ order?: number | undefined;
1520
+ render?: {
1521
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1522
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1523
+ } | undefined;
1524
+ }[] | undefined;
1525
+ slots?: {
1526
+ id: string;
1527
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1528
+ displayName: string;
1529
+ exportName: string;
1530
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1531
+ routePath?: string | undefined;
1532
+ order?: number | undefined;
1533
+ }[] | undefined;
1534
+ }>>;
1535
+ }, "strip", z.ZodTypeAny, {
1536
+ description: string;
1537
+ id: string;
1538
+ version: string;
1539
+ capabilities: ("companies.read" | "projects.read" | "project.workspaces.read" | "issues.read" | "issue.relations.read" | "issue.subtree.read" | "issue.comments.read" | "issue.documents.read" | "agents.read" | "goals.read" | "goals.create" | "goals.update" | "activity.read" | "costs.read" | "issues.orchestration.read" | "database.namespace.read" | "issues.create" | "issues.update" | "issue.relations.write" | "issues.checkout" | "issues.wakeup" | "issue.comments.create" | "issue.interactions.create" | "issue.documents.write" | "projects.managed" | "routines.managed" | "agents.pause" | "agents.resume" | "agents.invoke" | "agents.managed" | "agent.sessions.create" | "agent.sessions.list" | "agent.sessions.send" | "agent.sessions.close" | "activity.log.write" | "metrics.write" | "telemetry.track" | "database.namespace.migrate" | "database.namespace.write" | "plugin.state.read" | "plugin.state.write" | "events.subscribe" | "events.emit" | "jobs.schedule" | "webhooks.receive" | "api.routes.register" | "http.outbound" | "secrets.read-ref" | "environment.drivers.register" | "local.folders" | "agent.tools.register" | "instance.settings.register" | "ui.sidebar.register" | "ui.page.register" | "ui.detailTab.register" | "ui.dashboardWidget.register" | "ui.commentAnnotation.register" | "ui.action.register")[];
1540
+ displayName: string;
1541
+ apiVersion: 1;
1542
+ author: string;
1543
+ categories: ("automation" | "connector" | "workspace" | "ui")[];
1544
+ entrypoints: {
1545
+ worker: string;
1546
+ ui?: string | undefined;
1547
+ };
1548
+ database?: {
1549
+ migrationsDir: string;
1550
+ namespaceSlug?: string | undefined;
1551
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
1552
+ } | undefined;
1553
+ ui?: {
1554
+ launchers?: {
1555
+ id: string;
1556
+ action: {
1557
+ target: string;
1558
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1559
+ params?: Record<string, unknown> | undefined;
1560
+ };
1561
+ displayName: string;
1562
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1563
+ description?: string | undefined;
1564
+ exportName?: string | undefined;
1565
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1566
+ order?: number | undefined;
1567
+ render?: {
1568
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1569
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1570
+ } | undefined;
1571
+ }[] | undefined;
1572
+ slots?: {
1573
+ id: string;
1574
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1575
+ displayName: string;
1576
+ exportName: string;
1577
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1578
+ routePath?: string | undefined;
1579
+ order?: number | undefined;
1580
+ }[] | undefined;
1581
+ } | undefined;
1582
+ projects?: {
1583
+ displayName: string;
1584
+ projectKey: string;
1585
+ description?: string | null | undefined;
1586
+ settings?: Record<string, unknown> | undefined;
1587
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
1588
+ color?: string | null | undefined;
1589
+ }[] | undefined;
1590
+ agents?: {
1591
+ displayName: string;
1592
+ agentKey: string;
1593
+ title?: string | null | undefined;
1594
+ status?: "paused" | "idle" | undefined;
1595
+ budgetMonthlyCents?: number | undefined;
1596
+ adapterType?: string | undefined;
1597
+ adapterConfig?: Record<string, unknown> | undefined;
1598
+ instructions?: {
1599
+ content?: string | undefined;
1600
+ entryFile?: string | undefined;
1601
+ assetPath?: string | undefined;
1602
+ } | undefined;
1603
+ role?: string | undefined;
1604
+ icon?: string | null | undefined;
1605
+ capabilities?: string | null | undefined;
1606
+ runtimeConfig?: Record<string, unknown> | undefined;
1607
+ permissions?: Record<string, unknown> | undefined;
1608
+ adapterPreference?: string[] | undefined;
1609
+ }[] | undefined;
1610
+ jobs?: {
1611
+ jobKey: string;
1612
+ displayName: string;
1613
+ description?: string | undefined;
1614
+ schedule?: string | undefined;
1615
+ }[] | undefined;
1616
+ minimumHostVersion?: string | undefined;
1617
+ minimumEvermoreVersion?: string | undefined;
1618
+ instanceConfigSchema?: Record<string, unknown> | undefined;
1619
+ webhooks?: {
1620
+ displayName: string;
1621
+ endpointKey: string;
1622
+ description?: string | undefined;
1623
+ }[] | undefined;
1624
+ tools?: {
1625
+ description: string;
1626
+ name: string;
1627
+ displayName: string;
1628
+ parametersSchema: Record<string, unknown>;
1629
+ }[] | undefined;
1630
+ apiRoutes?: {
1631
+ path: string;
1632
+ routeKey: string;
1633
+ method: "GET" | "POST" | "PATCH" | "DELETE";
1634
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
1635
+ capability: "api.routes.register";
1636
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
1637
+ companyResolution?: {
1638
+ key: string;
1639
+ from: "body";
1640
+ } | {
1641
+ key: string;
1642
+ from: "query";
1643
+ } | {
1644
+ from: "issue";
1645
+ param: string;
1646
+ } | undefined;
1647
+ }[] | undefined;
1648
+ environmentDrivers?: {
1649
+ displayName: string;
1650
+ driverKey: string;
1651
+ configSchema: Record<string, unknown>;
1652
+ description?: string | undefined;
1653
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
1654
+ }[] | undefined;
1655
+ routines?: {
1656
+ title: string;
1657
+ routineKey: string;
1658
+ description?: string | null | undefined;
1659
+ status?: "active" | "paused" | "archived" | undefined;
1660
+ goalId?: string | null | undefined;
1661
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
1662
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
1663
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
1664
+ variables?: {
1665
+ required: boolean;
1666
+ options: string[];
1667
+ type: "number" | "boolean" | "text" | "textarea" | "select";
1668
+ name: string;
1669
+ label?: string | null | undefined;
1670
+ defaultValue?: string | number | boolean | null | undefined;
1671
+ }[] | undefined;
1672
+ triggers?: {
1673
+ kind: "schedule" | "webhook" | "api";
1674
+ label?: string | null | undefined;
1675
+ enabled?: boolean | undefined;
1676
+ cronExpression?: string | null | undefined;
1677
+ timezone?: string | null | undefined;
1678
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1679
+ replayWindowSec?: number | null | undefined;
1680
+ }[] | undefined;
1681
+ assigneeRef?: {
1682
+ resourceKind: "agent";
1683
+ resourceKey: string;
1684
+ pluginKey?: string | undefined;
1685
+ } | null | undefined;
1686
+ projectRef?: {
1687
+ resourceKind: "project";
1688
+ resourceKey: string;
1689
+ pluginKey?: string | undefined;
1690
+ } | null | undefined;
1691
+ issueTemplate?: {
1692
+ billingCode?: string | null | undefined;
1693
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1694
+ originId?: string | null | undefined;
1695
+ } | undefined;
1696
+ }[] | undefined;
1697
+ localFolders?: {
1698
+ displayName: string;
1699
+ folderKey: string;
1700
+ description?: string | undefined;
1701
+ access?: "read" | "readWrite" | undefined;
1702
+ requiredDirectories?: string[] | undefined;
1703
+ requiredFiles?: string[] | undefined;
1704
+ }[] | undefined;
1705
+ launchers?: {
1706
+ id: string;
1707
+ action: {
1708
+ target: string;
1709
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1710
+ params?: Record<string, unknown> | undefined;
1711
+ };
1712
+ displayName: string;
1713
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1714
+ description?: string | undefined;
1715
+ exportName?: string | undefined;
1716
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1717
+ order?: number | undefined;
1718
+ render?: {
1719
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1720
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1721
+ } | undefined;
1722
+ }[] | undefined;
1723
+ }, {
1724
+ description: string;
1725
+ id: string;
1726
+ version: string;
1727
+ capabilities: ("companies.read" | "projects.read" | "project.workspaces.read" | "issues.read" | "issue.relations.read" | "issue.subtree.read" | "issue.comments.read" | "issue.documents.read" | "agents.read" | "goals.read" | "goals.create" | "goals.update" | "activity.read" | "costs.read" | "issues.orchestration.read" | "database.namespace.read" | "issues.create" | "issues.update" | "issue.relations.write" | "issues.checkout" | "issues.wakeup" | "issue.comments.create" | "issue.interactions.create" | "issue.documents.write" | "projects.managed" | "routines.managed" | "agents.pause" | "agents.resume" | "agents.invoke" | "agents.managed" | "agent.sessions.create" | "agent.sessions.list" | "agent.sessions.send" | "agent.sessions.close" | "activity.log.write" | "metrics.write" | "telemetry.track" | "database.namespace.migrate" | "database.namespace.write" | "plugin.state.read" | "plugin.state.write" | "events.subscribe" | "events.emit" | "jobs.schedule" | "webhooks.receive" | "api.routes.register" | "http.outbound" | "secrets.read-ref" | "environment.drivers.register" | "local.folders" | "agent.tools.register" | "instance.settings.register" | "ui.sidebar.register" | "ui.page.register" | "ui.detailTab.register" | "ui.dashboardWidget.register" | "ui.commentAnnotation.register" | "ui.action.register")[];
1728
+ displayName: string;
1729
+ apiVersion: 1;
1730
+ author: string;
1731
+ categories: ("automation" | "connector" | "workspace" | "ui")[];
1732
+ entrypoints: {
1733
+ worker: string;
1734
+ ui?: string | undefined;
1735
+ };
1736
+ database?: {
1737
+ migrationsDir: string;
1738
+ namespaceSlug?: string | undefined;
1739
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
1740
+ } | undefined;
1741
+ ui?: {
1742
+ launchers?: {
1743
+ id: string;
1744
+ action: {
1745
+ target: string;
1746
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1747
+ params?: Record<string, unknown> | undefined;
1748
+ };
1749
+ displayName: string;
1750
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1751
+ description?: string | undefined;
1752
+ exportName?: string | undefined;
1753
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1754
+ order?: number | undefined;
1755
+ render?: {
1756
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1757
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1758
+ } | undefined;
1759
+ }[] | undefined;
1760
+ slots?: {
1761
+ id: string;
1762
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1763
+ displayName: string;
1764
+ exportName: string;
1765
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1766
+ routePath?: string | undefined;
1767
+ order?: number | undefined;
1768
+ }[] | undefined;
1769
+ } | undefined;
1770
+ projects?: {
1771
+ displayName: string;
1772
+ projectKey: string;
1773
+ description?: string | null | undefined;
1774
+ settings?: Record<string, unknown> | undefined;
1775
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
1776
+ color?: string | null | undefined;
1777
+ }[] | undefined;
1778
+ agents?: {
1779
+ displayName: string;
1780
+ agentKey: string;
1781
+ title?: string | null | undefined;
1782
+ status?: "paused" | "idle" | undefined;
1783
+ budgetMonthlyCents?: number | undefined;
1784
+ adapterType?: string | undefined;
1785
+ adapterConfig?: Record<string, unknown> | undefined;
1786
+ instructions?: {
1787
+ content?: string | undefined;
1788
+ entryFile?: string | undefined;
1789
+ assetPath?: string | undefined;
1790
+ } | undefined;
1791
+ role?: string | undefined;
1792
+ icon?: string | null | undefined;
1793
+ capabilities?: string | null | undefined;
1794
+ runtimeConfig?: Record<string, unknown> | undefined;
1795
+ permissions?: Record<string, unknown> | undefined;
1796
+ adapterPreference?: string[] | undefined;
1797
+ }[] | undefined;
1798
+ jobs?: {
1799
+ jobKey: string;
1800
+ displayName: string;
1801
+ description?: string | undefined;
1802
+ schedule?: string | undefined;
1803
+ }[] | undefined;
1804
+ minimumHostVersion?: string | undefined;
1805
+ minimumEvermoreVersion?: string | undefined;
1806
+ instanceConfigSchema?: Record<string, unknown> | undefined;
1807
+ webhooks?: {
1808
+ displayName: string;
1809
+ endpointKey: string;
1810
+ description?: string | undefined;
1811
+ }[] | undefined;
1812
+ tools?: {
1813
+ description: string;
1814
+ name: string;
1815
+ displayName: string;
1816
+ parametersSchema: Record<string, unknown>;
1817
+ }[] | undefined;
1818
+ apiRoutes?: {
1819
+ path: string;
1820
+ routeKey: string;
1821
+ method: "GET" | "POST" | "PATCH" | "DELETE";
1822
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
1823
+ capability: "api.routes.register";
1824
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
1825
+ companyResolution?: {
1826
+ key: string;
1827
+ from: "body";
1828
+ } | {
1829
+ key: string;
1830
+ from: "query";
1831
+ } | {
1832
+ from: "issue";
1833
+ param: string;
1834
+ } | undefined;
1835
+ }[] | undefined;
1836
+ environmentDrivers?: {
1837
+ displayName: string;
1838
+ driverKey: string;
1839
+ configSchema: Record<string, unknown>;
1840
+ description?: string | undefined;
1841
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
1842
+ }[] | undefined;
1843
+ routines?: {
1844
+ title: string;
1845
+ routineKey: string;
1846
+ description?: string | null | undefined;
1847
+ status?: "active" | "paused" | "archived" | undefined;
1848
+ goalId?: string | null | undefined;
1849
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
1850
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
1851
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
1852
+ variables?: {
1853
+ name: string;
1854
+ required?: boolean | undefined;
1855
+ label?: string | null | undefined;
1856
+ options?: string[] | undefined;
1857
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
1858
+ defaultValue?: string | number | boolean | null | undefined;
1859
+ }[] | undefined;
1860
+ triggers?: {
1861
+ kind: "schedule" | "webhook" | "api";
1862
+ label?: string | null | undefined;
1863
+ enabled?: boolean | undefined;
1864
+ cronExpression?: string | null | undefined;
1865
+ timezone?: string | null | undefined;
1866
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
1867
+ replayWindowSec?: number | null | undefined;
1868
+ }[] | undefined;
1869
+ assigneeRef?: {
1870
+ resourceKind: "agent";
1871
+ resourceKey: string;
1872
+ pluginKey?: string | undefined;
1873
+ } | null | undefined;
1874
+ projectRef?: {
1875
+ resourceKind: "project";
1876
+ resourceKey: string;
1877
+ pluginKey?: string | undefined;
1878
+ } | null | undefined;
1879
+ issueTemplate?: {
1880
+ billingCode?: string | null | undefined;
1881
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
1882
+ originId?: string | null | undefined;
1883
+ } | undefined;
1884
+ }[] | undefined;
1885
+ localFolders?: {
1886
+ displayName: string;
1887
+ folderKey: string;
1888
+ description?: string | undefined;
1889
+ access?: "read" | "readWrite" | undefined;
1890
+ requiredDirectories?: string[] | undefined;
1891
+ requiredFiles?: string[] | undefined;
1892
+ }[] | undefined;
1893
+ launchers?: {
1894
+ id: string;
1895
+ action: {
1896
+ target: string;
1897
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1898
+ params?: Record<string, unknown> | undefined;
1899
+ };
1900
+ displayName: string;
1901
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1902
+ description?: string | undefined;
1903
+ exportName?: string | undefined;
1904
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1905
+ order?: number | undefined;
1906
+ render?: {
1907
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1908
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1909
+ } | undefined;
1910
+ }[] | undefined;
1911
+ }>, {
1912
+ description: string;
1913
+ id: string;
1914
+ version: string;
1915
+ capabilities: ("companies.read" | "projects.read" | "project.workspaces.read" | "issues.read" | "issue.relations.read" | "issue.subtree.read" | "issue.comments.read" | "issue.documents.read" | "agents.read" | "goals.read" | "goals.create" | "goals.update" | "activity.read" | "costs.read" | "issues.orchestration.read" | "database.namespace.read" | "issues.create" | "issues.update" | "issue.relations.write" | "issues.checkout" | "issues.wakeup" | "issue.comments.create" | "issue.interactions.create" | "issue.documents.write" | "projects.managed" | "routines.managed" | "agents.pause" | "agents.resume" | "agents.invoke" | "agents.managed" | "agent.sessions.create" | "agent.sessions.list" | "agent.sessions.send" | "agent.sessions.close" | "activity.log.write" | "metrics.write" | "telemetry.track" | "database.namespace.migrate" | "database.namespace.write" | "plugin.state.read" | "plugin.state.write" | "events.subscribe" | "events.emit" | "jobs.schedule" | "webhooks.receive" | "api.routes.register" | "http.outbound" | "secrets.read-ref" | "environment.drivers.register" | "local.folders" | "agent.tools.register" | "instance.settings.register" | "ui.sidebar.register" | "ui.page.register" | "ui.detailTab.register" | "ui.dashboardWidget.register" | "ui.commentAnnotation.register" | "ui.action.register")[];
1916
+ displayName: string;
1917
+ apiVersion: 1;
1918
+ author: string;
1919
+ categories: ("automation" | "connector" | "workspace" | "ui")[];
1920
+ entrypoints: {
1921
+ worker: string;
1922
+ ui?: string | undefined;
1923
+ };
1924
+ database?: {
1925
+ migrationsDir: string;
1926
+ namespaceSlug?: string | undefined;
1927
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
1928
+ } | undefined;
1929
+ ui?: {
1930
+ launchers?: {
1931
+ id: string;
1932
+ action: {
1933
+ target: string;
1934
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
1935
+ params?: Record<string, unknown> | undefined;
1936
+ };
1937
+ displayName: string;
1938
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1939
+ description?: string | undefined;
1940
+ exportName?: string | undefined;
1941
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1942
+ order?: number | undefined;
1943
+ render?: {
1944
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
1945
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
1946
+ } | undefined;
1947
+ }[] | undefined;
1948
+ slots?: {
1949
+ id: string;
1950
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
1951
+ displayName: string;
1952
+ exportName: string;
1953
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
1954
+ routePath?: string | undefined;
1955
+ order?: number | undefined;
1956
+ }[] | undefined;
1957
+ } | undefined;
1958
+ projects?: {
1959
+ displayName: string;
1960
+ projectKey: string;
1961
+ description?: string | null | undefined;
1962
+ settings?: Record<string, unknown> | undefined;
1963
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
1964
+ color?: string | null | undefined;
1965
+ }[] | undefined;
1966
+ agents?: {
1967
+ displayName: string;
1968
+ agentKey: string;
1969
+ title?: string | null | undefined;
1970
+ status?: "paused" | "idle" | undefined;
1971
+ budgetMonthlyCents?: number | undefined;
1972
+ adapterType?: string | undefined;
1973
+ adapterConfig?: Record<string, unknown> | undefined;
1974
+ instructions?: {
1975
+ content?: string | undefined;
1976
+ entryFile?: string | undefined;
1977
+ assetPath?: string | undefined;
1978
+ } | undefined;
1979
+ role?: string | undefined;
1980
+ icon?: string | null | undefined;
1981
+ capabilities?: string | null | undefined;
1982
+ runtimeConfig?: Record<string, unknown> | undefined;
1983
+ permissions?: Record<string, unknown> | undefined;
1984
+ adapterPreference?: string[] | undefined;
1985
+ }[] | undefined;
1986
+ jobs?: {
1987
+ jobKey: string;
1988
+ displayName: string;
1989
+ description?: string | undefined;
1990
+ schedule?: string | undefined;
1991
+ }[] | undefined;
1992
+ minimumHostVersion?: string | undefined;
1993
+ minimumEvermoreVersion?: string | undefined;
1994
+ instanceConfigSchema?: Record<string, unknown> | undefined;
1995
+ webhooks?: {
1996
+ displayName: string;
1997
+ endpointKey: string;
1998
+ description?: string | undefined;
1999
+ }[] | undefined;
2000
+ tools?: {
2001
+ description: string;
2002
+ name: string;
2003
+ displayName: string;
2004
+ parametersSchema: Record<string, unknown>;
2005
+ }[] | undefined;
2006
+ apiRoutes?: {
2007
+ path: string;
2008
+ routeKey: string;
2009
+ method: "GET" | "POST" | "PATCH" | "DELETE";
2010
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
2011
+ capability: "api.routes.register";
2012
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
2013
+ companyResolution?: {
2014
+ key: string;
2015
+ from: "body";
2016
+ } | {
2017
+ key: string;
2018
+ from: "query";
2019
+ } | {
2020
+ from: "issue";
2021
+ param: string;
2022
+ } | undefined;
2023
+ }[] | undefined;
2024
+ environmentDrivers?: {
2025
+ displayName: string;
2026
+ driverKey: string;
2027
+ configSchema: Record<string, unknown>;
2028
+ description?: string | undefined;
2029
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
2030
+ }[] | undefined;
2031
+ routines?: {
2032
+ title: string;
2033
+ routineKey: string;
2034
+ description?: string | null | undefined;
2035
+ status?: "active" | "paused" | "archived" | undefined;
2036
+ goalId?: string | null | undefined;
2037
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
2038
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
2039
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
2040
+ variables?: {
2041
+ required: boolean;
2042
+ options: string[];
2043
+ type: "number" | "boolean" | "text" | "textarea" | "select";
2044
+ name: string;
2045
+ label?: string | null | undefined;
2046
+ defaultValue?: string | number | boolean | null | undefined;
2047
+ }[] | undefined;
2048
+ triggers?: {
2049
+ kind: "schedule" | "webhook" | "api";
2050
+ label?: string | null | undefined;
2051
+ enabled?: boolean | undefined;
2052
+ cronExpression?: string | null | undefined;
2053
+ timezone?: string | null | undefined;
2054
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
2055
+ replayWindowSec?: number | null | undefined;
2056
+ }[] | undefined;
2057
+ assigneeRef?: {
2058
+ resourceKind: "agent";
2059
+ resourceKey: string;
2060
+ pluginKey?: string | undefined;
2061
+ } | null | undefined;
2062
+ projectRef?: {
2063
+ resourceKind: "project";
2064
+ resourceKey: string;
2065
+ pluginKey?: string | undefined;
2066
+ } | null | undefined;
2067
+ issueTemplate?: {
2068
+ billingCode?: string | null | undefined;
2069
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
2070
+ originId?: string | null | undefined;
2071
+ } | undefined;
2072
+ }[] | undefined;
2073
+ localFolders?: {
2074
+ displayName: string;
2075
+ folderKey: string;
2076
+ description?: string | undefined;
2077
+ access?: "read" | "readWrite" | undefined;
2078
+ requiredDirectories?: string[] | undefined;
2079
+ requiredFiles?: string[] | undefined;
2080
+ }[] | undefined;
2081
+ launchers?: {
2082
+ id: string;
2083
+ action: {
2084
+ target: string;
2085
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
2086
+ params?: Record<string, unknown> | undefined;
2087
+ };
2088
+ displayName: string;
2089
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
2090
+ description?: string | undefined;
2091
+ exportName?: string | undefined;
2092
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
2093
+ order?: number | undefined;
2094
+ render?: {
2095
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
2096
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
2097
+ } | undefined;
2098
+ }[] | undefined;
2099
+ }, {
2100
+ description: string;
2101
+ id: string;
2102
+ version: string;
2103
+ capabilities: ("companies.read" | "projects.read" | "project.workspaces.read" | "issues.read" | "issue.relations.read" | "issue.subtree.read" | "issue.comments.read" | "issue.documents.read" | "agents.read" | "goals.read" | "goals.create" | "goals.update" | "activity.read" | "costs.read" | "issues.orchestration.read" | "database.namespace.read" | "issues.create" | "issues.update" | "issue.relations.write" | "issues.checkout" | "issues.wakeup" | "issue.comments.create" | "issue.interactions.create" | "issue.documents.write" | "projects.managed" | "routines.managed" | "agents.pause" | "agents.resume" | "agents.invoke" | "agents.managed" | "agent.sessions.create" | "agent.sessions.list" | "agent.sessions.send" | "agent.sessions.close" | "activity.log.write" | "metrics.write" | "telemetry.track" | "database.namespace.migrate" | "database.namespace.write" | "plugin.state.read" | "plugin.state.write" | "events.subscribe" | "events.emit" | "jobs.schedule" | "webhooks.receive" | "api.routes.register" | "http.outbound" | "secrets.read-ref" | "environment.drivers.register" | "local.folders" | "agent.tools.register" | "instance.settings.register" | "ui.sidebar.register" | "ui.page.register" | "ui.detailTab.register" | "ui.dashboardWidget.register" | "ui.commentAnnotation.register" | "ui.action.register")[];
2104
+ displayName: string;
2105
+ apiVersion: 1;
2106
+ author: string;
2107
+ categories: ("automation" | "connector" | "workspace" | "ui")[];
2108
+ entrypoints: {
2109
+ worker: string;
2110
+ ui?: string | undefined;
2111
+ };
2112
+ database?: {
2113
+ migrationsDir: string;
2114
+ namespaceSlug?: string | undefined;
2115
+ coreReadTables?: ("companies" | "projects" | "goals" | "agents" | "issues" | "issue_documents" | "issue_relations" | "issue_comments" | "heartbeat_runs" | "cost_events" | "approvals" | "issue_approvals" | "budget_incidents")[] | undefined;
2116
+ } | undefined;
2117
+ ui?: {
2118
+ launchers?: {
2119
+ id: string;
2120
+ action: {
2121
+ target: string;
2122
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
2123
+ params?: Record<string, unknown> | undefined;
2124
+ };
2125
+ displayName: string;
2126
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
2127
+ description?: string | undefined;
2128
+ exportName?: string | undefined;
2129
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
2130
+ order?: number | undefined;
2131
+ render?: {
2132
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
2133
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
2134
+ } | undefined;
2135
+ }[] | undefined;
2136
+ slots?: {
2137
+ id: string;
2138
+ type: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "routeSidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
2139
+ displayName: string;
2140
+ exportName: string;
2141
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
2142
+ routePath?: string | undefined;
2143
+ order?: number | undefined;
2144
+ }[] | undefined;
2145
+ } | undefined;
2146
+ projects?: {
2147
+ displayName: string;
2148
+ projectKey: string;
2149
+ description?: string | null | undefined;
2150
+ settings?: Record<string, unknown> | undefined;
2151
+ status?: "backlog" | "in_progress" | "cancelled" | "completed" | "planned" | undefined;
2152
+ color?: string | null | undefined;
2153
+ }[] | undefined;
2154
+ agents?: {
2155
+ displayName: string;
2156
+ agentKey: string;
2157
+ title?: string | null | undefined;
2158
+ status?: "paused" | "idle" | undefined;
2159
+ budgetMonthlyCents?: number | undefined;
2160
+ adapterType?: string | undefined;
2161
+ adapterConfig?: Record<string, unknown> | undefined;
2162
+ instructions?: {
2163
+ content?: string | undefined;
2164
+ entryFile?: string | undefined;
2165
+ assetPath?: string | undefined;
2166
+ } | undefined;
2167
+ role?: string | undefined;
2168
+ icon?: string | null | undefined;
2169
+ capabilities?: string | null | undefined;
2170
+ runtimeConfig?: Record<string, unknown> | undefined;
2171
+ permissions?: Record<string, unknown> | undefined;
2172
+ adapterPreference?: string[] | undefined;
2173
+ }[] | undefined;
2174
+ jobs?: {
2175
+ jobKey: string;
2176
+ displayName: string;
2177
+ description?: string | undefined;
2178
+ schedule?: string | undefined;
2179
+ }[] | undefined;
2180
+ minimumHostVersion?: string | undefined;
2181
+ minimumEvermoreVersion?: string | undefined;
2182
+ instanceConfigSchema?: Record<string, unknown> | undefined;
2183
+ webhooks?: {
2184
+ displayName: string;
2185
+ endpointKey: string;
2186
+ description?: string | undefined;
2187
+ }[] | undefined;
2188
+ tools?: {
2189
+ description: string;
2190
+ name: string;
2191
+ displayName: string;
2192
+ parametersSchema: Record<string, unknown>;
2193
+ }[] | undefined;
2194
+ apiRoutes?: {
2195
+ path: string;
2196
+ routeKey: string;
2197
+ method: "GET" | "POST" | "PATCH" | "DELETE";
2198
+ auth: "agent" | "board" | "webhook" | "board-or-agent";
2199
+ capability: "api.routes.register";
2200
+ checkoutPolicy?: "none" | "required-for-agent-in-progress" | "always-for-agent" | undefined;
2201
+ companyResolution?: {
2202
+ key: string;
2203
+ from: "body";
2204
+ } | {
2205
+ key: string;
2206
+ from: "query";
2207
+ } | {
2208
+ from: "issue";
2209
+ param: string;
2210
+ } | undefined;
2211
+ }[] | undefined;
2212
+ environmentDrivers?: {
2213
+ displayName: string;
2214
+ driverKey: string;
2215
+ configSchema: Record<string, unknown>;
2216
+ description?: string | undefined;
2217
+ kind?: "environment_driver" | "sandbox_provider" | undefined;
2218
+ }[] | undefined;
2219
+ routines?: {
2220
+ title: string;
2221
+ routineKey: string;
2222
+ description?: string | null | undefined;
2223
+ status?: "active" | "paused" | "archived" | undefined;
2224
+ goalId?: string | null | undefined;
2225
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
2226
+ concurrencyPolicy?: "coalesce_if_active" | "always_enqueue" | "skip_if_active" | undefined;
2227
+ catchUpPolicy?: "skip_missed" | "enqueue_missed_with_cap" | undefined;
2228
+ variables?: {
2229
+ name: string;
2230
+ required?: boolean | undefined;
2231
+ label?: string | null | undefined;
2232
+ options?: string[] | undefined;
2233
+ type?: "number" | "boolean" | "text" | "textarea" | "select" | undefined;
2234
+ defaultValue?: string | number | boolean | null | undefined;
2235
+ }[] | undefined;
2236
+ triggers?: {
2237
+ kind: "schedule" | "webhook" | "api";
2238
+ label?: string | null | undefined;
2239
+ enabled?: boolean | undefined;
2240
+ cronExpression?: string | null | undefined;
2241
+ timezone?: string | null | undefined;
2242
+ signingMode?: "none" | "bearer" | "hmac_sha256" | "github_hmac" | null | undefined;
2243
+ replayWindowSec?: number | null | undefined;
2244
+ }[] | undefined;
2245
+ assigneeRef?: {
2246
+ resourceKind: "agent";
2247
+ resourceKey: string;
2248
+ pluginKey?: string | undefined;
2249
+ } | null | undefined;
2250
+ projectRef?: {
2251
+ resourceKind: "project";
2252
+ resourceKey: string;
2253
+ pluginKey?: string | undefined;
2254
+ } | null | undefined;
2255
+ issueTemplate?: {
2256
+ billingCode?: string | null | undefined;
2257
+ surfaceVisibility?: "default" | "plugin_operation" | undefined;
2258
+ originId?: string | null | undefined;
2259
+ } | undefined;
2260
+ }[] | undefined;
2261
+ localFolders?: {
2262
+ displayName: string;
2263
+ folderKey: string;
2264
+ description?: string | undefined;
2265
+ access?: "read" | "readWrite" | undefined;
2266
+ requiredDirectories?: string[] | undefined;
2267
+ requiredFiles?: string[] | undefined;
2268
+ }[] | undefined;
2269
+ launchers?: {
2270
+ id: string;
2271
+ action: {
2272
+ target: string;
2273
+ type: "navigate" | "openModal" | "openDrawer" | "openPopover" | "performAction" | "deepLink";
2274
+ params?: Record<string, unknown> | undefined;
2275
+ };
2276
+ displayName: string;
2277
+ placementZone: "page" | "detailTab" | "taskDetailView" | "dashboardWidget" | "sidebar" | "sidebarPanel" | "projectSidebarItem" | "globalToolbarButton" | "toolbarButton" | "contextMenuItem" | "commentAnnotation" | "commentContextMenuItem" | "settingsPage";
2278
+ description?: string | undefined;
2279
+ exportName?: string | undefined;
2280
+ entityTypes?: ("agent" | "comment" | "project" | "issue" | "goal" | "run")[] | undefined;
2281
+ order?: number | undefined;
2282
+ render?: {
2283
+ environment: "hostInline" | "hostOverlay" | "hostRoute" | "external" | "iframe";
2284
+ bounds?: "default" | "inline" | "compact" | "wide" | "full" | undefined;
2285
+ } | undefined;
2286
+ }[] | undefined;
2287
+ }>;
2288
+ export type PluginManifestV1Input = z.infer<typeof pluginManifestV1Schema>;
2289
+ /**
2290
+ * Schema for installing (registering) a plugin.
2291
+ * The server receives the packageName and resolves the manifest from the
2292
+ * installed package.
2293
+ */
2294
+ export declare const installPluginSchema: z.ZodObject<{
2295
+ packageName: z.ZodString;
2296
+ version: z.ZodOptional<z.ZodString>;
2297
+ /** Set by loader for local-path installs so the worker can be resolved. */
2298
+ packagePath: z.ZodOptional<z.ZodString>;
2299
+ }, "strip", z.ZodTypeAny, {
2300
+ packageName: string;
2301
+ version?: string | undefined;
2302
+ packagePath?: string | undefined;
2303
+ }, {
2304
+ packageName: string;
2305
+ version?: string | undefined;
2306
+ packagePath?: string | undefined;
2307
+ }>;
2308
+ export type InstallPlugin = z.infer<typeof installPluginSchema>;
2309
+ /**
2310
+ * Schema for creating or updating a plugin's instance configuration.
2311
+ * configJson is validated permissively here; runtime validation against
2312
+ * the plugin's instanceConfigSchema is done at the service layer.
2313
+ */
2314
+ export declare const upsertPluginConfigSchema: z.ZodObject<{
2315
+ configJson: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2316
+ }, "strip", z.ZodTypeAny, {
2317
+ configJson: Record<string, unknown>;
2318
+ }, {
2319
+ configJson: Record<string, unknown>;
2320
+ }>;
2321
+ export type UpsertPluginConfig = z.infer<typeof upsertPluginConfigSchema>;
2322
+ /**
2323
+ * Schema for partially updating a plugin's instance configuration.
2324
+ * Allows a partial merge of config values.
2325
+ */
2326
+ export declare const patchPluginConfigSchema: z.ZodObject<{
2327
+ configJson: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2328
+ }, "strip", z.ZodTypeAny, {
2329
+ configJson: Record<string, unknown>;
2330
+ }, {
2331
+ configJson: Record<string, unknown>;
2332
+ }>;
2333
+ export type PatchPluginConfig = z.infer<typeof patchPluginConfigSchema>;
2334
+ /**
2335
+ * Schema for updating a plugin's lifecycle status. Used by the lifecycle
2336
+ * manager to persist state transitions.
2337
+ *
2338
+ * @see {@link PLUGIN_STATUSES} for the valid status values
2339
+ */
2340
+ export declare const updatePluginStatusSchema: z.ZodObject<{
2341
+ status: z.ZodEnum<["installed", "ready", "disabled", "error", "upgrade_pending", "uninstalled"]>;
2342
+ lastError: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2343
+ }, "strip", z.ZodTypeAny, {
2344
+ status: "error" | "installed" | "ready" | "disabled" | "upgrade_pending" | "uninstalled";
2345
+ lastError?: string | null | undefined;
2346
+ }, {
2347
+ status: "error" | "installed" | "ready" | "disabled" | "upgrade_pending" | "uninstalled";
2348
+ lastError?: string | null | undefined;
2349
+ }>;
2350
+ export type UpdatePluginStatus = z.infer<typeof updatePluginStatusSchema>;
2351
+ /** Schema for the uninstall request. `removeData` controls hard vs soft delete. */
2352
+ export declare const uninstallPluginSchema: z.ZodObject<{
2353
+ removeData: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2354
+ }, "strip", z.ZodTypeAny, {
2355
+ removeData: boolean;
2356
+ }, {
2357
+ removeData?: boolean | undefined;
2358
+ }>;
2359
+ export type UninstallPlugin = z.infer<typeof uninstallPluginSchema>;
2360
+ /**
2361
+ * Schema for a plugin state scope key — identifies the exact location where
2362
+ * state is stored. Used by the `ctx.state.get()`, `ctx.state.set()`, and
2363
+ * `ctx.state.delete()` SDK methods.
2364
+ *
2365
+ * @see PLUGIN_SPEC.md §21.3 `plugin_state`
2366
+ */
2367
+ export declare const pluginStateScopeKeySchema: z.ZodObject<{
2368
+ scopeKind: z.ZodEnum<["instance", "company", "project", "project_workspace", "agent", "issue", "goal", "run"]>;
2369
+ scopeId: z.ZodOptional<z.ZodString>;
2370
+ namespace: z.ZodOptional<z.ZodString>;
2371
+ stateKey: z.ZodString;
2372
+ }, "strip", z.ZodTypeAny, {
2373
+ scopeKind: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace";
2374
+ stateKey: string;
2375
+ scopeId?: string | undefined;
2376
+ namespace?: string | undefined;
2377
+ }, {
2378
+ scopeKind: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace";
2379
+ stateKey: string;
2380
+ scopeId?: string | undefined;
2381
+ namespace?: string | undefined;
2382
+ }>;
2383
+ export type PluginStateScopeKey = z.infer<typeof pluginStateScopeKeySchema>;
2384
+ /**
2385
+ * Schema for setting a plugin state value.
2386
+ */
2387
+ export declare const setPluginStateSchema: z.ZodObject<{
2388
+ scopeKind: z.ZodEnum<["instance", "company", "project", "project_workspace", "agent", "issue", "goal", "run"]>;
2389
+ scopeId: z.ZodOptional<z.ZodString>;
2390
+ namespace: z.ZodOptional<z.ZodString>;
2391
+ stateKey: z.ZodString;
2392
+ /** JSON-serializable value to store. */
2393
+ value: z.ZodUnknown;
2394
+ }, "strip", z.ZodTypeAny, {
2395
+ scopeKind: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace";
2396
+ stateKey: string;
2397
+ value?: unknown;
2398
+ scopeId?: string | undefined;
2399
+ namespace?: string | undefined;
2400
+ }, {
2401
+ scopeKind: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace";
2402
+ stateKey: string;
2403
+ value?: unknown;
2404
+ scopeId?: string | undefined;
2405
+ namespace?: string | undefined;
2406
+ }>;
2407
+ export type SetPluginState = z.infer<typeof setPluginStateSchema>;
2408
+ /**
2409
+ * Schema for querying plugin state entries. All fields are optional to allow
2410
+ * flexible list queries (e.g. all state for a plugin within a scope).
2411
+ */
2412
+ export declare const listPluginStateSchema: z.ZodObject<{
2413
+ scopeKind: z.ZodOptional<z.ZodEnum<["instance", "company", "project", "project_workspace", "agent", "issue", "goal", "run"]>>;
2414
+ scopeId: z.ZodOptional<z.ZodString>;
2415
+ namespace: z.ZodOptional<z.ZodString>;
2416
+ }, "strip", z.ZodTypeAny, {
2417
+ scopeId?: string | undefined;
2418
+ namespace?: string | undefined;
2419
+ scopeKind?: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace" | undefined;
2420
+ }, {
2421
+ scopeId?: string | undefined;
2422
+ namespace?: string | undefined;
2423
+ scopeKind?: "agent" | "company" | "project" | "issue" | "goal" | "run" | "instance" | "project_workspace" | undefined;
2424
+ }>;
2425
+ export type ListPluginState = z.infer<typeof listPluginStateSchema>;
2426
+ //# sourceMappingURL=plugin.d.ts.map