@agiflowai/cli 0.1.0 → 0.2.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 (440) hide show
  1. package/README.md +37 -0
  2. package/dist/automation.cjs +1 -0
  3. package/dist/cli.cjs +1 -1
  4. package/dist/container-BfRwR9Fn.cjs +7 -0
  5. package/dist/container-DkY6I08X.cjs +3 -0
  6. package/dist/index.cjs +1 -1
  7. package/dist/src/__generated__/backend-agiflow-api/client.d.ts +16 -0
  8. package/dist/src/__generated__/backend-agiflow-api/client.d.ts.map +1 -0
  9. package/dist/src/__generated__/backend-agiflow-api/hooks/activities.d.ts +95 -0
  10. package/dist/src/__generated__/backend-agiflow-api/hooks/activities.d.ts.map +1 -0
  11. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-environment-variables.d.ts +88 -0
  12. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-environment-variables.d.ts.map +1 -0
  13. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-profile-credentials.d.ts +54 -0
  14. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-profile-credentials.d.ts.map +1 -0
  15. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-profiles.d.ts +94 -0
  16. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-profiles.d.ts.map +1 -0
  17. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-types.d.ts +64 -0
  18. package/dist/src/__generated__/backend-agiflow-api/hooks/agent-types.d.ts.map +1 -0
  19. package/dist/src/__generated__/backend-agiflow-api/hooks/apikeys.d.ts +43 -0
  20. package/dist/src/__generated__/backend-agiflow-api/hooks/apikeys.d.ts.map +1 -0
  21. package/dist/src/__generated__/backend-agiflow-api/hooks/auth.d.ts +21 -0
  22. package/dist/src/__generated__/backend-agiflow-api/hooks/auth.d.ts.map +1 -0
  23. package/dist/src/__generated__/backend-agiflow-api/hooks/automation.d.ts +116 -0
  24. package/dist/src/__generated__/backend-agiflow-api/hooks/automation.d.ts.map +1 -0
  25. package/dist/src/__generated__/backend-agiflow-api/hooks/cli.d.ts +31 -0
  26. package/dist/src/__generated__/backend-agiflow-api/hooks/cli.d.ts.map +1 -0
  27. package/dist/src/__generated__/backend-agiflow-api/hooks/contact.d.ts +22 -0
  28. package/dist/src/__generated__/backend-agiflow-api/hooks/contact.d.ts.map +1 -0
  29. package/dist/src/__generated__/backend-agiflow-api/hooks/credits.d.ts +62 -0
  30. package/dist/src/__generated__/backend-agiflow-api/hooks/credits.d.ts.map +1 -0
  31. package/dist/src/__generated__/backend-agiflow-api/hooks/dependencies.d.ts +32 -0
  32. package/dist/src/__generated__/backend-agiflow-api/hooks/dependencies.d.ts.map +1 -0
  33. package/dist/src/__generated__/backend-agiflow-api/hooks/device-agent-types.d.ts +203 -0
  34. package/dist/src/__generated__/backend-agiflow-api/hooks/device-agent-types.d.ts.map +1 -0
  35. package/dist/src/__generated__/backend-agiflow-api/hooks/devices.d.ts +74 -0
  36. package/dist/src/__generated__/backend-agiflow-api/hooks/devices.d.ts.map +1 -0
  37. package/dist/src/__generated__/backend-agiflow-api/hooks/git-hub.d.ts +29 -0
  38. package/dist/src/__generated__/backend-agiflow-api/hooks/git-hub.d.ts.map +1 -0
  39. package/dist/src/__generated__/backend-agiflow-api/hooks/identity-media.d.ts +18 -0
  40. package/dist/src/__generated__/backend-agiflow-api/hooks/identity-media.d.ts.map +1 -0
  41. package/dist/src/__generated__/backend-agiflow-api/hooks/index.d.ts +49 -0
  42. package/dist/src/__generated__/backend-agiflow-api/hooks/index.d.ts.map +1 -0
  43. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-app-spec.d.ts +81 -0
  44. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-app-spec.d.ts.map +1 -0
  45. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-oauth.d.ts +32 -0
  46. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-oauth.d.ts.map +1 -0
  47. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-proxy-config.d.ts +68 -0
  48. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-proxy-config.d.ts.map +1 -0
  49. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-servers.d.ts +89 -0
  50. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-servers.d.ts.map +1 -0
  51. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-sessions.d.ts +21 -0
  52. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp-sessions.d.ts.map +1 -0
  53. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp.d.ts +151 -0
  54. package/dist/src/__generated__/backend-agiflow-api/hooks/mcp.d.ts.map +1 -0
  55. package/dist/src/__generated__/backend-agiflow-api/hooks/members.d.ts +55 -0
  56. package/dist/src/__generated__/backend-agiflow-api/hooks/members.d.ts.map +1 -0
  57. package/dist/src/__generated__/backend-agiflow-api/hooks/oauth-credentials.d.ts +75 -0
  58. package/dist/src/__generated__/backend-agiflow-api/hooks/oauth-credentials.d.ts.map +1 -0
  59. package/dist/src/__generated__/backend-agiflow-api/hooks/oauth-resource-context.d.ts +31 -0
  60. package/dist/src/__generated__/backend-agiflow-api/hooks/oauth-resource-context.d.ts.map +1 -0
  61. package/dist/src/__generated__/backend-agiflow-api/hooks/organization-logo.d.ts +30 -0
  62. package/dist/src/__generated__/backend-agiflow-api/hooks/organization-logo.d.ts.map +1 -0
  63. package/dist/src/__generated__/backend-agiflow-api/hooks/organization-mcp-configs.d.ts +74 -0
  64. package/dist/src/__generated__/backend-agiflow-api/hooks/organization-mcp-configs.d.ts.map +1 -0
  65. package/dist/src/__generated__/backend-agiflow-api/hooks/organizations.d.ts +33 -0
  66. package/dist/src/__generated__/backend-agiflow-api/hooks/organizations.d.ts.map +1 -0
  67. package/dist/src/__generated__/backend-agiflow-api/hooks/payments.d.ts +70 -0
  68. package/dist/src/__generated__/backend-agiflow-api/hooks/payments.d.ts.map +1 -0
  69. package/dist/src/__generated__/backend-agiflow-api/hooks/project-environments.d.ts +75 -0
  70. package/dist/src/__generated__/backend-agiflow-api/hooks/project-environments.d.ts.map +1 -0
  71. package/dist/src/__generated__/backend-agiflow-api/hooks/project-mcp-configs.d.ts +65 -0
  72. package/dist/src/__generated__/backend-agiflow-api/hooks/project-mcp-configs.d.ts.map +1 -0
  73. package/dist/src/__generated__/backend-agiflow-api/hooks/projects.d.ts +159 -0
  74. package/dist/src/__generated__/backend-agiflow-api/hooks/projects.d.ts.map +1 -0
  75. package/dist/src/__generated__/backend-agiflow-api/hooks/sandboxes.d.ts +89 -0
  76. package/dist/src/__generated__/backend-agiflow-api/hooks/sandboxes.d.ts.map +1 -0
  77. package/dist/src/__generated__/backend-agiflow-api/hooks/subscription.d.ts +84 -0
  78. package/dist/src/__generated__/backend-agiflow-api/hooks/subscription.d.ts.map +1 -0
  79. package/dist/src/__generated__/backend-agiflow-api/hooks/support-reports.d.ts +24 -0
  80. package/dist/src/__generated__/backend-agiflow-api/hooks/support-reports.d.ts.map +1 -0
  81. package/dist/src/__generated__/backend-agiflow-api/hooks/task-comments.d.ts +64 -0
  82. package/dist/src/__generated__/backend-agiflow-api/hooks/task-comments.d.ts.map +1 -0
  83. package/dist/src/__generated__/backend-agiflow-api/hooks/task-mcp-configs.d.ts +78 -0
  84. package/dist/src/__generated__/backend-agiflow-api/hooks/task-mcp-configs.d.ts.map +1 -0
  85. package/dist/src/__generated__/backend-agiflow-api/hooks/task-status.d.ts +87 -0
  86. package/dist/src/__generated__/backend-agiflow-api/hooks/task-status.d.ts.map +1 -0
  87. package/dist/src/__generated__/backend-agiflow-api/hooks/tasks.d.ts +174 -0
  88. package/dist/src/__generated__/backend-agiflow-api/hooks/tasks.d.ts.map +1 -0
  89. package/dist/src/__generated__/backend-agiflow-api/hooks/team-members.d.ts +43 -0
  90. package/dist/src/__generated__/backend-agiflow-api/hooks/team-members.d.ts.map +1 -0
  91. package/dist/src/__generated__/backend-agiflow-api/hooks/team-projects.d.ts +43 -0
  92. package/dist/src/__generated__/backend-agiflow-api/hooks/team-projects.d.ts.map +1 -0
  93. package/dist/src/__generated__/backend-agiflow-api/hooks/usage.d.ts +20 -0
  94. package/dist/src/__generated__/backend-agiflow-api/hooks/usage.d.ts.map +1 -0
  95. package/dist/src/__generated__/backend-agiflow-api/hooks/user-avatar.d.ts +27 -0
  96. package/dist/src/__generated__/backend-agiflow-api/hooks/user-avatar.d.ts.map +1 -0
  97. package/dist/src/__generated__/backend-agiflow-api/hooks/user.d.ts +45 -0
  98. package/dist/src/__generated__/backend-agiflow-api/hooks/user.d.ts.map +1 -0
  99. package/dist/src/__generated__/backend-agiflow-api/hooks/vault-entries.d.ts +78 -0
  100. package/dist/src/__generated__/backend-agiflow-api/hooks/vault-entries.d.ts.map +1 -0
  101. package/dist/src/__generated__/backend-agiflow-api/hooks/work-unit-mcp-configs.d.ts +34 -0
  102. package/dist/src/__generated__/backend-agiflow-api/hooks/work-unit-mcp-configs.d.ts.map +1 -0
  103. package/dist/src/__generated__/backend-agiflow-api/hooks/work-units.d.ts +116 -0
  104. package/dist/src/__generated__/backend-agiflow-api/hooks/work-units.d.ts.map +1 -0
  105. package/dist/src/__generated__/backend-agiflow-api/hooks/workflows.d.ts +87 -0
  106. package/dist/src/__generated__/backend-agiflow-api/hooks/workflows.d.ts.map +1 -0
  107. package/dist/src/__generated__/backend-agiflow-api/index.d.ts +8 -0
  108. package/dist/src/__generated__/backend-agiflow-api/index.d.ts.map +1 -0
  109. package/dist/src/__generated__/backend-agiflow-api/repos/activities.d.ts +10 -0
  110. package/dist/src/__generated__/backend-agiflow-api/repos/activities.d.ts.map +1 -0
  111. package/dist/src/__generated__/backend-agiflow-api/repos/agent-environment-variables.d.ts +9 -0
  112. package/dist/src/__generated__/backend-agiflow-api/repos/agent-environment-variables.d.ts.map +1 -0
  113. package/dist/src/__generated__/backend-agiflow-api/repos/agent-profile-credentials.d.ts +6 -0
  114. package/dist/src/__generated__/backend-agiflow-api/repos/agent-profile-credentials.d.ts.map +1 -0
  115. package/dist/src/__generated__/backend-agiflow-api/repos/agent-profiles.d.ts +10 -0
  116. package/dist/src/__generated__/backend-agiflow-api/repos/agent-profiles.d.ts.map +1 -0
  117. package/dist/src/__generated__/backend-agiflow-api/repos/agent-types.d.ts +7 -0
  118. package/dist/src/__generated__/backend-agiflow-api/repos/agent-types.d.ts.map +1 -0
  119. package/dist/src/__generated__/backend-agiflow-api/repos/apikeys.d.ts +5 -0
  120. package/dist/src/__generated__/backend-agiflow-api/repos/apikeys.d.ts.map +1 -0
  121. package/dist/src/__generated__/backend-agiflow-api/repos/auth.d.ts +3 -0
  122. package/dist/src/__generated__/backend-agiflow-api/repos/auth.d.ts.map +1 -0
  123. package/dist/src/__generated__/backend-agiflow-api/repos/automation.d.ts +11 -0
  124. package/dist/src/__generated__/backend-agiflow-api/repos/automation.d.ts.map +1 -0
  125. package/dist/src/__generated__/backend-agiflow-api/repos/cli.d.ts +4 -0
  126. package/dist/src/__generated__/backend-agiflow-api/repos/cli.d.ts.map +1 -0
  127. package/dist/src/__generated__/backend-agiflow-api/repos/contact.d.ts +3 -0
  128. package/dist/src/__generated__/backend-agiflow-api/repos/contact.d.ts.map +1 -0
  129. package/dist/src/__generated__/backend-agiflow-api/repos/credits.d.ts +7 -0
  130. package/dist/src/__generated__/backend-agiflow-api/repos/credits.d.ts.map +1 -0
  131. package/dist/src/__generated__/backend-agiflow-api/repos/dependencies.d.ts +4 -0
  132. package/dist/src/__generated__/backend-agiflow-api/repos/dependencies.d.ts.map +1 -0
  133. package/dist/src/__generated__/backend-agiflow-api/repos/device-agent-types.d.ts +20 -0
  134. package/dist/src/__generated__/backend-agiflow-api/repos/device-agent-types.d.ts.map +1 -0
  135. package/dist/src/__generated__/backend-agiflow-api/repos/devices.d.ts +8 -0
  136. package/dist/src/__generated__/backend-agiflow-api/repos/devices.d.ts.map +1 -0
  137. package/dist/src/__generated__/backend-agiflow-api/repos/git-hub.d.ts +4 -0
  138. package/dist/src/__generated__/backend-agiflow-api/repos/git-hub.d.ts.map +1 -0
  139. package/dist/src/__generated__/backend-agiflow-api/repos/identity-media.d.ts +3 -0
  140. package/dist/src/__generated__/backend-agiflow-api/repos/identity-media.d.ts.map +1 -0
  141. package/dist/src/__generated__/backend-agiflow-api/repos/index.d.ts +49 -0
  142. package/dist/src/__generated__/backend-agiflow-api/repos/index.d.ts.map +1 -0
  143. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-app-spec.d.ts +8 -0
  144. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-app-spec.d.ts.map +1 -0
  145. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-oauth.d.ts +4 -0
  146. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-oauth.d.ts.map +1 -0
  147. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-proxy-config.d.ts +6 -0
  148. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-proxy-config.d.ts.map +1 -0
  149. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-servers.d.ts +9 -0
  150. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-servers.d.ts.map +1 -0
  151. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-sessions.d.ts +3 -0
  152. package/dist/src/__generated__/backend-agiflow-api/repos/mcp-sessions.d.ts.map +1 -0
  153. package/dist/src/__generated__/backend-agiflow-api/repos/mcp.d.ts +14 -0
  154. package/dist/src/__generated__/backend-agiflow-api/repos/mcp.d.ts.map +1 -0
  155. package/dist/src/__generated__/backend-agiflow-api/repos/members.d.ts +6 -0
  156. package/dist/src/__generated__/backend-agiflow-api/repos/members.d.ts.map +1 -0
  157. package/dist/src/__generated__/backend-agiflow-api/repos/oauth-credentials.d.ts +8 -0
  158. package/dist/src/__generated__/backend-agiflow-api/repos/oauth-credentials.d.ts.map +1 -0
  159. package/dist/src/__generated__/backend-agiflow-api/repos/oauth-resource-context.d.ts +4 -0
  160. package/dist/src/__generated__/backend-agiflow-api/repos/oauth-resource-context.d.ts.map +1 -0
  161. package/dist/src/__generated__/backend-agiflow-api/repos/organization-logo.d.ts +4 -0
  162. package/dist/src/__generated__/backend-agiflow-api/repos/organization-logo.d.ts.map +1 -0
  163. package/dist/src/__generated__/backend-agiflow-api/repos/organization-mcp-configs.d.ts +8 -0
  164. package/dist/src/__generated__/backend-agiflow-api/repos/organization-mcp-configs.d.ts.map +1 -0
  165. package/dist/src/__generated__/backend-agiflow-api/repos/organizations.d.ts +4 -0
  166. package/dist/src/__generated__/backend-agiflow-api/repos/organizations.d.ts.map +1 -0
  167. package/dist/src/__generated__/backend-agiflow-api/repos/payments.d.ts +8 -0
  168. package/dist/src/__generated__/backend-agiflow-api/repos/payments.d.ts.map +1 -0
  169. package/dist/src/__generated__/backend-agiflow-api/repos/project-environments.d.ts +8 -0
  170. package/dist/src/__generated__/backend-agiflow-api/repos/project-environments.d.ts.map +1 -0
  171. package/dist/src/__generated__/backend-agiflow-api/repos/project-mcp-configs.d.ts +7 -0
  172. package/dist/src/__generated__/backend-agiflow-api/repos/project-mcp-configs.d.ts.map +1 -0
  173. package/dist/src/__generated__/backend-agiflow-api/repos/projects.d.ts +16 -0
  174. package/dist/src/__generated__/backend-agiflow-api/repos/projects.d.ts.map +1 -0
  175. package/dist/src/__generated__/backend-agiflow-api/repos/sandboxes.d.ts +10 -0
  176. package/dist/src/__generated__/backend-agiflow-api/repos/sandboxes.d.ts.map +1 -0
  177. package/dist/src/__generated__/backend-agiflow-api/repos/subscription.d.ts +9 -0
  178. package/dist/src/__generated__/backend-agiflow-api/repos/subscription.d.ts.map +1 -0
  179. package/dist/src/__generated__/backend-agiflow-api/repos/support-reports.d.ts +3 -0
  180. package/dist/src/__generated__/backend-agiflow-api/repos/support-reports.d.ts.map +1 -0
  181. package/dist/src/__generated__/backend-agiflow-api/repos/task-comments.d.ts +7 -0
  182. package/dist/src/__generated__/backend-agiflow-api/repos/task-comments.d.ts.map +1 -0
  183. package/dist/src/__generated__/backend-agiflow-api/repos/task-mcp-configs.d.ts +8 -0
  184. package/dist/src/__generated__/backend-agiflow-api/repos/task-mcp-configs.d.ts.map +1 -0
  185. package/dist/src/__generated__/backend-agiflow-api/repos/task-status.d.ts +9 -0
  186. package/dist/src/__generated__/backend-agiflow-api/repos/task-status.d.ts.map +1 -0
  187. package/dist/src/__generated__/backend-agiflow-api/repos/tasks.d.ts +17 -0
  188. package/dist/src/__generated__/backend-agiflow-api/repos/tasks.d.ts.map +1 -0
  189. package/dist/src/__generated__/backend-agiflow-api/repos/team-members.d.ts +5 -0
  190. package/dist/src/__generated__/backend-agiflow-api/repos/team-members.d.ts.map +1 -0
  191. package/dist/src/__generated__/backend-agiflow-api/repos/team-projects.d.ts +5 -0
  192. package/dist/src/__generated__/backend-agiflow-api/repos/team-projects.d.ts.map +1 -0
  193. package/dist/src/__generated__/backend-agiflow-api/repos/usage.d.ts +3 -0
  194. package/dist/src/__generated__/backend-agiflow-api/repos/usage.d.ts.map +1 -0
  195. package/dist/src/__generated__/backend-agiflow-api/repos/user-avatar.d.ts +4 -0
  196. package/dist/src/__generated__/backend-agiflow-api/repos/user-avatar.d.ts.map +1 -0
  197. package/dist/src/__generated__/backend-agiflow-api/repos/user.d.ts +5 -0
  198. package/dist/src/__generated__/backend-agiflow-api/repos/user.d.ts.map +1 -0
  199. package/dist/src/__generated__/backend-agiflow-api/repos/vault-entries.d.ts +8 -0
  200. package/dist/src/__generated__/backend-agiflow-api/repos/vault-entries.d.ts.map +1 -0
  201. package/dist/src/__generated__/backend-agiflow-api/repos/work-unit-mcp-configs.d.ts +4 -0
  202. package/dist/src/__generated__/backend-agiflow-api/repos/work-unit-mcp-configs.d.ts.map +1 -0
  203. package/dist/src/__generated__/backend-agiflow-api/repos/work-units.d.ts +11 -0
  204. package/dist/src/__generated__/backend-agiflow-api/repos/work-units.d.ts.map +1 -0
  205. package/dist/src/__generated__/backend-agiflow-api/repos/workflows.d.ts +9 -0
  206. package/dist/src/__generated__/backend-agiflow-api/repos/workflows.d.ts.map +1 -0
  207. package/dist/src/__generated__/backend-agiflow-api/types/activities.d.ts +1914 -0
  208. package/dist/src/__generated__/backend-agiflow-api/types/activities.d.ts.map +1 -0
  209. package/dist/src/__generated__/backend-agiflow-api/types/agentEnvironmentVariables.d.ts +555 -0
  210. package/dist/src/__generated__/backend-agiflow-api/types/agentEnvironmentVariables.d.ts.map +1 -0
  211. package/dist/src/__generated__/backend-agiflow-api/types/agentProfileCredentials.d.ts +407 -0
  212. package/dist/src/__generated__/backend-agiflow-api/types/agentProfileCredentials.d.ts.map +1 -0
  213. package/dist/src/__generated__/backend-agiflow-api/types/agentProfiles.d.ts +776 -0
  214. package/dist/src/__generated__/backend-agiflow-api/types/agentProfiles.d.ts.map +1 -0
  215. package/dist/src/__generated__/backend-agiflow-api/types/agentTypes.d.ts +538 -0
  216. package/dist/src/__generated__/backend-agiflow-api/types/agentTypes.d.ts.map +1 -0
  217. package/dist/src/__generated__/backend-agiflow-api/types/apikeys.d.ts +333 -0
  218. package/dist/src/__generated__/backend-agiflow-api/types/apikeys.d.ts.map +1 -0
  219. package/dist/src/__generated__/backend-agiflow-api/types/auth.d.ts +73 -0
  220. package/dist/src/__generated__/backend-agiflow-api/types/auth.d.ts.map +1 -0
  221. package/dist/src/__generated__/backend-agiflow-api/types/automation.d.ts +1254 -0
  222. package/dist/src/__generated__/backend-agiflow-api/types/automation.d.ts.map +1 -0
  223. package/dist/src/__generated__/backend-agiflow-api/types/baseTypes.d.ts +59 -0
  224. package/dist/src/__generated__/backend-agiflow-api/types/baseTypes.d.ts.map +1 -0
  225. package/dist/src/__generated__/backend-agiflow-api/types/cli.d.ts +153 -0
  226. package/dist/src/__generated__/backend-agiflow-api/types/cli.d.ts.map +1 -0
  227. package/dist/src/__generated__/backend-agiflow-api/types/componentSchemas.d.ts +6160 -0
  228. package/dist/src/__generated__/backend-agiflow-api/types/componentSchemas.d.ts.map +1 -0
  229. package/dist/src/__generated__/backend-agiflow-api/types/contact.d.ts +78 -0
  230. package/dist/src/__generated__/backend-agiflow-api/types/contact.d.ts.map +1 -0
  231. package/dist/src/__generated__/backend-agiflow-api/types/credits.d.ts +505 -0
  232. package/dist/src/__generated__/backend-agiflow-api/types/credits.d.ts.map +1 -0
  233. package/dist/src/__generated__/backend-agiflow-api/types/dependencies.d.ts +341 -0
  234. package/dist/src/__generated__/backend-agiflow-api/types/dependencies.d.ts.map +1 -0
  235. package/dist/src/__generated__/backend-agiflow-api/types/deviceAgentTypes.d.ts +1708 -0
  236. package/dist/src/__generated__/backend-agiflow-api/types/deviceAgentTypes.d.ts.map +1 -0
  237. package/dist/src/__generated__/backend-agiflow-api/types/devices.d.ts +856 -0
  238. package/dist/src/__generated__/backend-agiflow-api/types/devices.d.ts.map +1 -0
  239. package/dist/src/__generated__/backend-agiflow-api/types/gitHub.d.ts +259 -0
  240. package/dist/src/__generated__/backend-agiflow-api/types/gitHub.d.ts.map +1 -0
  241. package/dist/src/__generated__/backend-agiflow-api/types/identityMedia.d.ts +68 -0
  242. package/dist/src/__generated__/backend-agiflow-api/types/identityMedia.d.ts.map +1 -0
  243. package/dist/src/__generated__/backend-agiflow-api/types/index.d.ts +55 -0
  244. package/dist/src/__generated__/backend-agiflow-api/types/index.d.ts.map +1 -0
  245. package/dist/src/__generated__/backend-agiflow-api/types/mcp.d.ts +774 -0
  246. package/dist/src/__generated__/backend-agiflow-api/types/mcp.d.ts.map +1 -0
  247. package/dist/src/__generated__/backend-agiflow-api/types/mcpAppSpec.d.ts +390 -0
  248. package/dist/src/__generated__/backend-agiflow-api/types/mcpAppSpec.d.ts.map +1 -0
  249. package/dist/src/__generated__/backend-agiflow-api/types/mcpProxyConfig.d.ts +439 -0
  250. package/dist/src/__generated__/backend-agiflow-api/types/mcpProxyConfig.d.ts.map +1 -0
  251. package/dist/src/__generated__/backend-agiflow-api/types/mcpServers.d.ts +725 -0
  252. package/dist/src/__generated__/backend-agiflow-api/types/mcpServers.d.ts.map +1 -0
  253. package/dist/src/__generated__/backend-agiflow-api/types/mcpSessions.d.ts +89 -0
  254. package/dist/src/__generated__/backend-agiflow-api/types/mcpSessions.d.ts.map +1 -0
  255. package/dist/src/__generated__/backend-agiflow-api/types/mcpoAuth.d.ts +119 -0
  256. package/dist/src/__generated__/backend-agiflow-api/types/mcpoAuth.d.ts.map +1 -0
  257. package/dist/src/__generated__/backend-agiflow-api/types/members.d.ts +567 -0
  258. package/dist/src/__generated__/backend-agiflow-api/types/members.d.ts.map +1 -0
  259. package/dist/src/__generated__/backend-agiflow-api/types/oAuthCredentials.d.ts +475 -0
  260. package/dist/src/__generated__/backend-agiflow-api/types/oAuthCredentials.d.ts.map +1 -0
  261. package/dist/src/__generated__/backend-agiflow-api/types/oAuthResourceContext.d.ts +214 -0
  262. package/dist/src/__generated__/backend-agiflow-api/types/oAuthResourceContext.d.ts.map +1 -0
  263. package/dist/src/__generated__/backend-agiflow-api/types/organizationLogo.d.ts +184 -0
  264. package/dist/src/__generated__/backend-agiflow-api/types/organizationLogo.d.ts.map +1 -0
  265. package/dist/src/__generated__/backend-agiflow-api/types/organizationMCPConfigs.d.ts +606 -0
  266. package/dist/src/__generated__/backend-agiflow-api/types/organizationMCPConfigs.d.ts.map +1 -0
  267. package/dist/src/__generated__/backend-agiflow-api/types/organizations.d.ts +128 -0
  268. package/dist/src/__generated__/backend-agiflow-api/types/organizations.d.ts.map +1 -0
  269. package/dist/src/__generated__/backend-agiflow-api/types/payments.d.ts +485 -0
  270. package/dist/src/__generated__/backend-agiflow-api/types/payments.d.ts.map +1 -0
  271. package/dist/src/__generated__/backend-agiflow-api/types/projectEnvironments.d.ts +586 -0
  272. package/dist/src/__generated__/backend-agiflow-api/types/projectEnvironments.d.ts.map +1 -0
  273. package/dist/src/__generated__/backend-agiflow-api/types/projectMCPConfigs.d.ts +516 -0
  274. package/dist/src/__generated__/backend-agiflow-api/types/projectMCPConfigs.d.ts.map +1 -0
  275. package/dist/src/__generated__/backend-agiflow-api/types/projects.d.ts +1640 -0
  276. package/dist/src/__generated__/backend-agiflow-api/types/projects.d.ts.map +1 -0
  277. package/dist/src/__generated__/backend-agiflow-api/types/sandboxes.d.ts +855 -0
  278. package/dist/src/__generated__/backend-agiflow-api/types/sandboxes.d.ts.map +1 -0
  279. package/dist/src/__generated__/backend-agiflow-api/types/subscription.d.ts +540 -0
  280. package/dist/src/__generated__/backend-agiflow-api/types/subscription.d.ts.map +1 -0
  281. package/dist/src/__generated__/backend-agiflow-api/types/supportReports.d.ts +120 -0
  282. package/dist/src/__generated__/backend-agiflow-api/types/supportReports.d.ts.map +1 -0
  283. package/dist/src/__generated__/backend-agiflow-api/types/taskComments.d.ts +618 -0
  284. package/dist/src/__generated__/backend-agiflow-api/types/taskComments.d.ts.map +1 -0
  285. package/dist/src/__generated__/backend-agiflow-api/types/taskMCPConfigs.d.ts +632 -0
  286. package/dist/src/__generated__/backend-agiflow-api/types/taskMCPConfigs.d.ts.map +1 -0
  287. package/dist/src/__generated__/backend-agiflow-api/types/taskStatus.d.ts +830 -0
  288. package/dist/src/__generated__/backend-agiflow-api/types/taskStatus.d.ts.map +1 -0
  289. package/dist/src/__generated__/backend-agiflow-api/types/tasks.d.ts +2657 -0
  290. package/dist/src/__generated__/backend-agiflow-api/types/tasks.d.ts.map +1 -0
  291. package/dist/src/__generated__/backend-agiflow-api/types/teamMembers.d.ts +325 -0
  292. package/dist/src/__generated__/backend-agiflow-api/types/teamMembers.d.ts.map +1 -0
  293. package/dist/src/__generated__/backend-agiflow-api/types/teamProjects.d.ts +318 -0
  294. package/dist/src/__generated__/backend-agiflow-api/types/teamProjects.d.ts.map +1 -0
  295. package/dist/src/__generated__/backend-agiflow-api/types/usage.d.ts +95 -0
  296. package/dist/src/__generated__/backend-agiflow-api/types/usage.d.ts.map +1 -0
  297. package/dist/src/__generated__/backend-agiflow-api/types/user.d.ts +224 -0
  298. package/dist/src/__generated__/backend-agiflow-api/types/user.d.ts.map +1 -0
  299. package/dist/src/__generated__/backend-agiflow-api/types/userAvatar.d.ts +138 -0
  300. package/dist/src/__generated__/backend-agiflow-api/types/userAvatar.d.ts.map +1 -0
  301. package/dist/src/__generated__/backend-agiflow-api/types/vaultEntries.d.ts +512 -0
  302. package/dist/src/__generated__/backend-agiflow-api/types/vaultEntries.d.ts.map +1 -0
  303. package/dist/src/__generated__/backend-agiflow-api/types/workUnitMCPConfigs.d.ts +224 -0
  304. package/dist/src/__generated__/backend-agiflow-api/types/workUnitMCPConfigs.d.ts.map +1 -0
  305. package/dist/src/__generated__/backend-agiflow-api/types/workUnits.d.ts +1338 -0
  306. package/dist/src/__generated__/backend-agiflow-api/types/workUnits.d.ts.map +1 -0
  307. package/dist/src/__generated__/backend-agiflow-api/types/workflows.d.ts +878 -0
  308. package/dist/src/__generated__/backend-agiflow-api/types/workflows.d.ts.map +1 -0
  309. package/dist/src/__generated__/backend-agiflow-api-admin/client.d.ts +16 -0
  310. package/dist/src/__generated__/backend-agiflow-api-admin/client.d.ts.map +1 -0
  311. package/dist/src/__generated__/backend-agiflow-api-admin/index.d.ts +7 -0
  312. package/dist/src/__generated__/backend-agiflow-api-admin/index.d.ts.map +1 -0
  313. package/dist/src/__generated__/backend-agiflow-api-admin/repos/admin---seed.d.ts +9 -0
  314. package/dist/src/__generated__/backend-agiflow-api-admin/repos/admin---seed.d.ts.map +1 -0
  315. package/dist/src/__generated__/backend-agiflow-api-admin/repos/admin---subscriptions.d.ts +3 -0
  316. package/dist/src/__generated__/backend-agiflow-api-admin/repos/admin---subscriptions.d.ts.map +1 -0
  317. package/dist/src/__generated__/backend-agiflow-api-admin/repos/index.d.ts +3 -0
  318. package/dist/src/__generated__/backend-agiflow-api-admin/repos/index.d.ts.map +1 -0
  319. package/dist/src/__generated__/backend-agiflow-api-admin/types/adminSeed.d.ts +663 -0
  320. package/dist/src/__generated__/backend-agiflow-api-admin/types/adminSeed.d.ts.map +1 -0
  321. package/dist/src/__generated__/backend-agiflow-api-admin/types/adminSubscriptions.d.ts +115 -0
  322. package/dist/src/__generated__/backend-agiflow-api-admin/types/adminSubscriptions.d.ts.map +1 -0
  323. package/dist/src/__generated__/backend-agiflow-api-admin/types/baseTypes.d.ts +59 -0
  324. package/dist/src/__generated__/backend-agiflow-api-admin/types/baseTypes.d.ts.map +1 -0
  325. package/dist/src/__generated__/backend-agiflow-api-admin/types/componentSchemas.d.ts +280 -0
  326. package/dist/src/__generated__/backend-agiflow-api-admin/types/componentSchemas.d.ts.map +1 -0
  327. package/dist/src/__generated__/backend-agiflow-api-admin/types/index.d.ts +9 -0
  328. package/dist/src/__generated__/backend-agiflow-api-admin/types/index.d.ts.map +1 -0
  329. package/dist/src/__generated__/index.d.ts +3 -0
  330. package/dist/src/__generated__/index.d.ts.map +1 -0
  331. package/dist/src/config/ConfigManager.d.ts +15 -0
  332. package/dist/src/config/ConfigManager.d.ts.map +1 -0
  333. package/dist/src/config/agiflowRc.d.ts +10 -0
  334. package/dist/src/config/agiflowRc.d.ts.map +1 -0
  335. package/dist/src/config/index.d.ts +3 -0
  336. package/dist/src/config/index.d.ts.map +1 -0
  337. package/dist/src/container/index.d.ts +4 -0
  338. package/dist/src/container/index.d.ts.map +1 -0
  339. package/dist/src/envSchema.d.ts +8 -0
  340. package/dist/src/envSchema.d.ts.map +1 -0
  341. package/dist/src/services/CredentialsService/CredentialsService.d.ts +38 -0
  342. package/dist/src/services/CredentialsService/CredentialsService.d.ts.map +1 -0
  343. package/dist/src/services/CredentialsService/index.d.ts +3 -0
  344. package/dist/src/services/CredentialsService/index.d.ts.map +1 -0
  345. package/dist/src/services/CredentialsService/types.d.ts +34 -0
  346. package/dist/src/services/CredentialsService/types.d.ts.map +1 -0
  347. package/dist/src/services/DeviceCodeAuthService/DeviceCodeAuthService.d.ts +43 -0
  348. package/dist/src/services/DeviceCodeAuthService/DeviceCodeAuthService.d.ts.map +1 -0
  349. package/dist/src/services/DeviceCodeAuthService/index.d.ts +3 -0
  350. package/dist/src/services/DeviceCodeAuthService/index.d.ts.map +1 -0
  351. package/dist/src/services/DeviceCodeAuthService/types.d.ts +61 -0
  352. package/dist/src/services/DeviceCodeAuthService/types.d.ts.map +1 -0
  353. package/dist/src/services/Logger/PinoLogger.d.ts +11 -0
  354. package/dist/src/services/Logger/PinoLogger.d.ts.map +1 -0
  355. package/dist/src/services/Logger/index.d.ts +3 -0
  356. package/dist/src/services/Logger/index.d.ts.map +1 -0
  357. package/dist/src/services/Logger/types.d.ts +7 -0
  358. package/dist/src/services/Logger/types.d.ts.map +1 -0
  359. package/dist/src/systems/cli/commands/analyticsCommand.d.ts +19 -0
  360. package/dist/src/systems/cli/commands/analyticsCommand.d.ts.map +1 -0
  361. package/dist/src/systems/cli/commands/artifactCommand.d.ts +27 -0
  362. package/dist/src/systems/cli/commands/artifactCommand.d.ts.map +1 -0
  363. package/dist/src/systems/cli/commands/authCommand.d.ts +25 -0
  364. package/dist/src/systems/cli/commands/authCommand.d.ts.map +1 -0
  365. package/dist/src/systems/cli/commands/automationCommand.d.ts +90 -0
  366. package/dist/src/systems/cli/commands/automationCommand.d.ts.map +1 -0
  367. package/dist/src/systems/cli/commands/baseCommand.d.ts +32 -0
  368. package/dist/src/systems/cli/commands/baseCommand.d.ts.map +1 -0
  369. package/dist/src/systems/cli/commands/dependencyCommand.d.ts +18 -0
  370. package/dist/src/systems/cli/commands/dependencyCommand.d.ts.map +1 -0
  371. package/dist/src/systems/cli/commands/index.d.ts +10 -0
  372. package/dist/src/systems/cli/commands/index.d.ts.map +1 -0
  373. package/dist/src/systems/cli/commands/jsonCommandBuilder.d.ts +26 -0
  374. package/dist/src/systems/cli/commands/jsonCommandBuilder.d.ts.map +1 -0
  375. package/dist/src/systems/cli/commands/projectMcpClient.d.ts +10 -0
  376. package/dist/src/systems/cli/commands/projectMcpClient.d.ts.map +1 -0
  377. package/dist/src/systems/cli/commands/resourceCommands.d.ts +107 -0
  378. package/dist/src/systems/cli/commands/resourceCommands.d.ts.map +1 -0
  379. package/dist/src/systems/cli/commands/vaultCommand.d.ts +20 -0
  380. package/dist/src/systems/cli/commands/vaultCommand.d.ts.map +1 -0
  381. package/dist/src/systems/cli/commands/workflowCommand.d.ts +14 -0
  382. package/dist/src/systems/cli/commands/workflowCommand.d.ts.map +1 -0
  383. package/dist/src/systems/cli/container/index.d.ts +4 -0
  384. package/dist/src/systems/cli/container/index.d.ts.map +1 -0
  385. package/dist/src/systems/cli/entry/automation.d.ts +68 -0
  386. package/dist/src/systems/cli/entry/automation.d.ts.map +1 -0
  387. package/dist/src/systems/cli/entry/cli.d.ts +3 -0
  388. package/dist/src/systems/cli/entry/cli.d.ts.map +1 -0
  389. package/dist/src/systems/cli/entry/index.d.ts +4 -0
  390. package/dist/src/systems/cli/entry/index.d.ts.map +1 -0
  391. package/dist/src/systems/cli/types.d.ts +15 -0
  392. package/dist/src/systems/cli/types.d.ts.map +1 -0
  393. package/dist/src/types.d.ts +12 -0
  394. package/dist/src/types.d.ts.map +1 -0
  395. package/dist/src/utils/index.d.ts +2 -0
  396. package/dist/src/utils/index.d.ts.map +1 -0
  397. package/dist/tests/config/agiflowRc.test.d.ts +2 -0
  398. package/dist/tests/config/agiflowRc.test.d.ts.map +1 -0
  399. package/dist/tests/envSchema.test.d.ts +2 -0
  400. package/dist/tests/envSchema.test.d.ts.map +1 -0
  401. package/dist/tests/integrations/authCommand.integration.test.d.ts +2 -0
  402. package/dist/tests/integrations/authCommand.integration.test.d.ts.map +1 -0
  403. package/dist/tests/integrations/automationCommand.integration.test.d.ts +2 -0
  404. package/dist/tests/integrations/automationCommand.integration.test.d.ts.map +1 -0
  405. package/dist/tests/integrations/dependencyCommand.integration.test.d.ts +2 -0
  406. package/dist/tests/integrations/dependencyCommand.integration.test.d.ts.map +1 -0
  407. package/dist/tests/integrations/projectMcpParity.integration.test.d.ts +2 -0
  408. package/dist/tests/integrations/projectMcpParity.integration.test.d.ts.map +1 -0
  409. package/dist/tests/mocks/services/MockDeviceCodeAuthService.d.ts +25 -0
  410. package/dist/tests/mocks/services/MockDeviceCodeAuthService.d.ts.map +1 -0
  411. package/dist/tests/services/CredentialsService/CredentialsService.test.d.ts +2 -0
  412. package/dist/tests/services/CredentialsService/CredentialsService.test.d.ts.map +1 -0
  413. package/dist/tests/services/DeviceCodeAuthService/DeviceCodeAuthService.test.d.ts +2 -0
  414. package/dist/tests/services/DeviceCodeAuthService/DeviceCodeAuthService.test.d.ts.map +1 -0
  415. package/dist/tests/setup.d.ts +2 -0
  416. package/dist/tests/setup.d.ts.map +1 -0
  417. package/dist/tests/systems/cli/commands/analyticsCommand.test.d.ts +2 -0
  418. package/dist/tests/systems/cli/commands/analyticsCommand.test.d.ts.map +1 -0
  419. package/dist/tests/systems/cli/commands/artifactCommand.test.d.ts +2 -0
  420. package/dist/tests/systems/cli/commands/artifactCommand.test.d.ts.map +1 -0
  421. package/dist/tests/systems/cli/commands/authCommand.test.d.ts +2 -0
  422. package/dist/tests/systems/cli/commands/authCommand.test.d.ts.map +1 -0
  423. package/dist/tests/systems/cli/commands/automationCommand.test.d.ts +2 -0
  424. package/dist/tests/systems/cli/commands/automationCommand.test.d.ts.map +1 -0
  425. package/dist/tests/systems/cli/commands/baseCommand.test.d.ts +2 -0
  426. package/dist/tests/systems/cli/commands/baseCommand.test.d.ts.map +1 -0
  427. package/dist/tests/systems/cli/commands/dependencyCommand.test.d.ts +2 -0
  428. package/dist/tests/systems/cli/commands/dependencyCommand.test.d.ts.map +1 -0
  429. package/dist/tests/systems/cli/commands/jsonCommandBuilder.test.d.ts +2 -0
  430. package/dist/tests/systems/cli/commands/jsonCommandBuilder.test.d.ts.map +1 -0
  431. package/dist/tests/systems/cli/commands/taskCommand.test.d.ts +2 -0
  432. package/dist/tests/systems/cli/commands/taskCommand.test.d.ts.map +1 -0
  433. package/dist/tests/systems/cli/commands/vaultCommand.test.d.ts +2 -0
  434. package/dist/tests/systems/cli/commands/vaultCommand.test.d.ts.map +1 -0
  435. package/dist/tests/systems/cli/commands/workUnitCommand.test.d.ts +2 -0
  436. package/dist/tests/systems/cli/commands/workUnitCommand.test.d.ts.map +1 -0
  437. package/dist/tests/systems/cli/commands/workflowCommand.test.d.ts +2 -0
  438. package/dist/tests/systems/cli/commands/workflowCommand.test.d.ts.map +1 -0
  439. package/package.json +15 -4
  440. package/dist/container-DDrQBLdJ.cjs +0 -8
package/README.md CHANGED
@@ -158,6 +158,40 @@ agiflow-cli task batch-create \
158
158
  --format json
159
159
  ```
160
160
 
161
+ Discover connected tools, allow the relevant tools on a task, and execute an allowed tool:
162
+
163
+ ```bash
164
+ agiflow-cli task tools find \
165
+ --org "$AGIFLOW_ORGANIZATION_ID" \
166
+ --project "$AGIFLOW_PROJECT_ID" \
167
+ --intent "Send the customer a follow-up email" \
168
+ --format json
169
+
170
+ agiflow-cli task tools set \
171
+ --org "$AGIFLOW_ORGANIZATION_ID" \
172
+ --project "$AGIFLOW_PROJECT_ID" \
173
+ --task "$AGIFLOW_TASK_ID" \
174
+ --mcp-tools-json '[{"mcpServerId":"email-server","tools":["send_email"]}]' \
175
+ --format json
176
+
177
+ agiflow-cli task get \
178
+ --org "$AGIFLOW_ORGANIZATION_ID" \
179
+ --project "$AGIFLOW_PROJECT_ID" \
180
+ --task "$AGIFLOW_TASK_ID" \
181
+ --format json
182
+
183
+ agiflow-cli task exec \
184
+ --org "$AGIFLOW_ORGANIZATION_ID" \
185
+ --project "$AGIFLOW_PROJECT_ID" \
186
+ --task "$AGIFLOW_TASK_ID" \
187
+ --server email-server \
188
+ --tool send_email \
189
+ --args-json '{"to":"customer@example.com","subject":"Following up"}' \
190
+ --format json
191
+ ```
192
+
193
+ `task get` includes the allowed tool input schemas. `task exec` rejects tools that are not attached to the task.
194
+
161
195
  Available task commands:
162
196
 
163
197
  ```bash
@@ -165,6 +199,9 @@ agiflow-cli task create
165
199
  agiflow-cli task batch-create
166
200
  agiflow-cli task list
167
201
  agiflow-cli task get
202
+ agiflow-cli task tools find
203
+ agiflow-cli task tools set
204
+ agiflow-cli task exec
168
205
  agiflow-cli task active
169
206
  agiflow-cli task update
170
207
  agiflow-cli task delete
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./container-DkY6I08X.cjs");var t=`agent-cli`,n=`0.0.1`,r=50;function i(e,t){if(!e)throw Error(t);return e}async function a(a){let s=e.t.get(e.r.ConfigManager),c=e.t.get(e.r.CredentialsService),l=i(await c.getApiKey(),`No API key found. Set AGIFLOW_API_KEY, map AGIFLOW_API_KEY_ENV in .agiflowrc, or run authentication.`),u=a.org??i(await c.getOrganizationId(),`Missing organization ID.`),d=s.getServerUrl().replace(/\/$/,``),f=a.project?`${d}/api/v1/organizations/${u}/projects/${a.project}/automation/jobs`:`${d}/api/v1/organizations/${u}/automation/jobs`,p=new URL(f),m={status:a.status,limit:a.limit??r,format:`json`,...a.project?{claimed:`false`}:{template:a.template,projects:a.projects}};for(let[e,t]of Object.entries(m))t!==void 0&&p.searchParams.set(e,String(t));let h=await fetch(p,{headers:{"x-api-key":l,"x-client-type":t,"x-client-version":n,"Content-Type":`application/json`,Accept:`application/json`}}),g=await h.json().catch(()=>({}));if(!h.ok){let e=g&&typeof g==`object`&&`message`in g?String(g.message):h.statusText;throw Error(e)}return o(g)}function o(e){return e&&typeof e==`object`&&Array.isArray(e.items)?e.items:[]}exports.extractJobs=o,exports.listAutomationJobs=a;
package/dist/cli.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const e=require("./container-DDrQBLdJ.cjs");require("reflect-metadata/lite");let t=require("commander"),n=require("dotenv");n=e.r(n,1);var r=process.stdout.write.bind(process.stdout);process.stdout.write=()=>!0;try{n.default.config({debug:!1})}finally{process.stdout.write=r}async function i(){let n=new t.Command,r=new Set([`automation`,`project`,`task`,`work-unit`,`member`,`task-comment`,`vault`,`analytics`]),i=process.argv.slice(2).some(e=>r.has(e)),a=process.stderr.write.bind(process.stderr);n.name(`agiflow-cli`).description(`Command-line interface for Agiflow workflow and artifact management`).option(`-v, --verbose`,`enable verbose logging`).option(`--debug`,`enable debug mode`),n.exitOverride(),n.configureOutput({writeErr:e=>{i||a(e)}});let o=e.t.get(e.n.AuthCommand),s=e.t.get(e.n.WorkflowCommand),c=e.t.get(e.n.ArtifactCommand),l=e.t.get(e.n.AutomationCommand),u=e.t.get(e.n.ProjectCommand),d=e.t.get(e.n.TaskCommand),f=e.t.get(e.n.WorkUnitCommand),p=e.t.get(e.n.MemberCommand),m=e.t.get(e.n.TaskCommentCommand),h=e.t.get(e.n.VaultCommand),g=e.t.get(e.n.AnalyticsCommand);o.register(n),s.register(n),c.register(n),l.register(n),u.register(n),d.register(n),f.register(n),p.register(n),m.register(n),h.register(n),g.register(n);try{await n.parseAsync(process.argv)}catch(e){if(e instanceof t.CommanderError&&e.code===`commander.helpDisplayed`&&process.exit(e.exitCode),i){let t=e instanceof Error?e.message:String(e);console.log(JSON.stringify({error:t},null,2)),process.exit(1)}console.error(`[cli] error`,e.message),n.opts().debug&&e instanceof Error&&console.error(e.stack),process.exit(1)}}i();
2
+ const e=require("./container-DkY6I08X.cjs"),t=require("./container-BfRwR9Fn.cjs");require("reflect-metadata/lite");let n=require("commander"),r=require("dotenv");r=e.s(r,1);var i=process.stdout.write.bind(process.stdout);process.stdout.write=()=>!0;try{r.default.config({debug:!1})}finally{process.stdout.write=i}async function a(){let e=new n.Command,r=new Set([`automation`,`project`,`task`,`work-unit`,`member`,`task-comment`,`vault`,`analytics`,`dependency`]),i=process.argv.slice(2).some(e=>r.has(e)),a=process.stderr.write.bind(process.stderr);e.name(`agiflow-cli`).description(`Command-line interface for Agiflow workflow and artifact management`).option(`-v, --verbose`,`enable verbose logging`).option(`--debug`,`enable debug mode`),e.exitOverride(),e.configureOutput({writeErr:e=>{i||a(e)}});let o=t.t.get(t.n.AuthCommand),s=t.t.get(t.n.WorkflowCommand),c=t.t.get(t.n.ArtifactCommand),l=t.t.get(t.n.AutomationCommand),u=t.t.get(t.n.ProjectCommand),d=t.t.get(t.n.TaskCommand),f=t.t.get(t.n.WorkUnitCommand),p=t.t.get(t.n.MemberCommand),m=t.t.get(t.n.TaskCommentCommand),h=t.t.get(t.n.VaultCommand),g=t.t.get(t.n.AnalyticsCommand),_=t.t.get(t.n.DependencyCommand);o.register(e),s.register(e),c.register(e),l.register(e),u.register(e),d.register(e),f.register(e),p.register(e),m.register(e),h.register(e),g.register(e),_.register(e);try{await e.parseAsync(process.argv)}catch(t){if(t instanceof n.CommanderError&&t.code===`commander.helpDisplayed`&&process.exit(t.exitCode),i){let e=t instanceof Error?t.message:String(t);console.log(JSON.stringify({error:e},null,2)),process.exit(1)}console.error(`[cli] error`,t.message),e.opts().debug&&t instanceof Error&&console.error(t.stack),process.exit(1)}}a();
@@ -0,0 +1,7 @@
1
+ const e=require("./container-DkY6I08X.cjs");require("reflect-metadata/lite");let t=require("commander"),n=require("inversify"),r=require("zod"),i=require("fs");i=e.s(i,1);let a=require("path");a=e.s(a,1);let o=require("os");o=e.s(o,1);let s=require("crypto"),c=require("child_process");var l=10,u=(e=0)=>t=>`\u001B[${t+e}m`,d=(e=0)=>t=>`\u001B[${38+e};5;${t}m`,f=(e=0)=>(t,n,r)=>`\u001B[${38+e};2;${t};${n};${r}m`,p={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(p.modifier);var m=Object.keys(p.color),h=Object.keys(p.bgColor);[...m,...h];function g(){let e=new Map;for(let[t,n]of Object.entries(p)){for(let[t,r]of Object.entries(n))p[t]={open:`\u001B[${r[0]}m`,close:`\u001B[${r[1]}m`},n[t]=p[t],e.set(r[0],r[1]);Object.defineProperty(p,t,{value:n,enumerable:!1})}return Object.defineProperty(p,"codes",{value:e,enumerable:!1}),p.color.close=`\x1B[39m`,p.bgColor.close=`\x1B[49m`,p.color.ansi=u(),p.color.ansi256=d(),p.color.ansi16m=f(),p.bgColor.ansi=u(l),p.bgColor.ansi256=d(l),p.bgColor.ansi16m=f(l),Object.defineProperties(p,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>p.rgbToAnsi256(...p.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>p.ansi256ToAnsi(p.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>p.ansi256ToAnsi(p.hexToAnsi256(e)),enumerable:!1}}),p}var _=g(),v=(()=>{if(!(`navigator`in globalThis))return 0;if(globalThis.navigator.userAgentData){let e=navigator.userAgentData.brands.find(({brand:e})=>e===`Chromium`);if(e&&e.version>93)return 3}return+!!/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)})(),ee=v!==0&&{level:v,hasBasic:!0,has256:v>=2,has16m:v>=3},te={stdout:ee,stderr:ee};function ne(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}function re(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
2
+ `:`
3
+ `)+n,i=r+1,r=e.indexOf(`
4
+ `,i)}while(r!==-1);return a+=e.slice(i),a}var{stdout:ie,stderr:ae}=te,oe=Symbol(`GENERATOR`),y=Symbol(`STYLER`),b=Symbol(`IS_EMPTY`),se=[`ansi`,`ansi`,`ansi256`,`ansi16m`],x=Object.create(null),ce=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=ie?ie.level:0;e.level=t.level===void 0?n:t.level},le=e=>{let t=(...e)=>e.join(` `);return ce(t,e),Object.setPrototypeOf(t,S.prototype),t};function S(e){return le(e)}Object.setPrototypeOf(S.prototype,Function.prototype);for(let[e,t]of Object.entries(_))x[e]={get(){let n=C(this,fe(t.open,t.close,this[y]),this[b]);return Object.defineProperty(this,e,{value:n}),n}};x.visible={get(){let e=C(this,this[y],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var ue=(e,t,n,...r)=>e===`rgb`?t===`ansi16m`?_[n].ansi16m(...r):t===`ansi256`?_[n].ansi256(_.rgbToAnsi256(...r)):_[n].ansi(_.rgbToAnsi(...r)):e===`hex`?ue(`rgb`,t,n,..._.hexToRgb(...r)):_[n][e](...r);for(let e of[`rgb`,`hex`,`ansi256`]){x[e]={get(){let{level:t}=this;return function(...n){let r=fe(ue(e,se[t],`color`,...n),_.color.close,this[y]);return C(this,r,this[b])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);x[t]={get(){let{level:t}=this;return function(...n){let r=fe(ue(e,se[t],`bgColor`,...n),_.bgColor.close,this[y]);return C(this,r,this[b])}}}}var de=Object.defineProperties(()=>{},{...x,level:{enumerable:!0,get(){return this[oe].level},set(e){this[oe].level=e}}}),fe=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},C=(e,t,n)=>{let r=(...e)=>pe(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,de),r[oe]=e,r[y]=t,r[b]=n,r},pe=(e,t)=>{if(e.level<=0||!t)return e[b]?``:t;let n=e[y];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=ne(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
5
+ `);return a!==-1&&(t=re(t,i,r,a)),r+t+i};Object.defineProperties(S.prototype,x);var w=S();S({level:ae?ae.level:0});var me=`0.0.1`,he=class{credentialsService;authService;configManager;constructor(e,t,n){this.credentialsService=e,this.authService=t,this.configManager=n}register(e){e.command(`login`).description(`Authenticate agiflow-cli`).addOption(this.envOption(`--api-key <apiKey>`,`Use an existing Agiflow API key`,`AGIFLOW_API_KEY`)).addOption(this.envOption(`--org <organizationId>`,`Organization ID to store with credentials`,`AGIFLOW_ORGANIZATION_ID`)).option(`--global`,`Store credentials globally instead of scoping them to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{let t=e.apiKey?await this.loginWithApiKey(e):await this.loginWithDeviceCode(e);this.printLoginResult(t,e.format)})}),e.command(`logout`).description(`Remove stored agiflow-cli credentials`).option(`--global`,`Remove global credentials instead of credentials scoped to the current repository`).option(`--format <format>`,`Output format (text|json)`,`text`).action(async e=>{await this.run(e.format,async()=>{if(await this.credentialsService.clear(this.getCredentialsScope(e)),e.format===`json`){this.printJson({loggedOut:!0});return}console.log(w.green(`Logged out`))})})}async loginWithApiKey(e){if(!e.apiKey)throw Error(`API key is required.`);let t=await this.authService.listOrganizationsWithApiKey(e.apiKey),n=await this.resolveOrganization(t,e.org,e.format);return await this.credentialsService.setApiKey({apiKey:e.apiKey,organizationId:n.id},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(e.apiKey,n.id,this.getCredentialsScope(e)),{authenticated:!0,source:`api-key`,organizationId:n.id,organizationName:n.name}}async loginWithDeviceCode(e){let t=await this.authService.requestDeviceCode(),n=t.verification_uri_complete||`${t.verification_uri}?user_code=${t.user_code}`;this.printProgress(e.format,`Open ${n}`),this.printProgress(e.format,`Enter code ${t.user_code}`);let r=await this.authService.pollForToken(t.device_code,t.interval??5),i=await this.authService.listOrganizationsWithAccessToken(r.access_token),a=await this.resolveOrganization(i,e.org,e.format),o=await this.authService.exchangeForAgentApiKey(r.access_token,a.id);return await this.credentialsService.setApiKey({apiKey:o.apiKey,keyId:o.keyId,organizationId:o.organizationId,expiresAt:o.expiresAt},this.getCredentialsScope(e)),await this.ensureDeviceIdentity(o.apiKey,o.organizationId,this.getCredentialsScope(e)),{authenticated:!0,source:`device-code`,organizationId:o.organizationId,organizationName:o.organizationName,expiresAt:o.expiresAt}}async resolveOrganization(e,t,n){if(e.length===0)throw Error(`No organizations are available for these credentials.`);if(t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Organization ${t} is not available for these credentials.`);return n}if(e.length===1)return e[0];if(!process.stdin.isTTY||!process.stdout.isTTY)throw Error(`Multiple organizations are available. Pass --org <organizationId> in non-interactive mode.`);let{select:r}=await import(`@inquirer/prompts`),i=await r({message:`Select an organization`,choices:e.map(e=>({name:`${e.name}${e.slug?` (${e.slug})`:``}`,value:e.id}))});return this.printProgress(n,`Selected organization ${i}`),e.find(e=>e.id===i)??e[0]}async run(e,t){try{this.validateFormat(e),await t()}catch(t){let n=t instanceof Error?t.message:String(t);e===`json`?this.printJson({error:n}):console.error(w.red(`Error:`),n),process.exit(1)}}async ensureDeviceIdentity(e,t,n){let r=await this.credentialsService.getDeviceGuid(n)||`cli-${(0,s.randomUUID)()}`,i=this.configManager.getServerUrl().replace(/\/$/,``),a=await fetch(`${i}/api/v1/organizations/${t}/devices`,{method:`POST`,headers:{"x-api-key":e,"x-client-type":`agent-cli`,"x-client-version":me,"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({name:o.default.hostname(),deviceGuid:r,type:`cli`,platform:process.platform,version:me})}),c=await a.json().catch(()=>({}));if(!a.ok){let e=typeof c==`object`&&c&&`message`in c?String(c.message):a.statusText;throw Error(e)}if(!c||typeof c!=`object`||!(`id`in c)||typeof c.id!=`string`)throw Error(`Device registration response did not include a device ID.`);await this.credentialsService.setDeviceIdentity(c.id,r,n)}getCredentialsScope(e){return e.global?{scope:`global`}:{scope:`repository`}}envOption(n,r,i){let a=new t.Option(n,r);return e.o(i)&&a.hideHelp(),a}validateFormat(e){if(e&&e!==`text`&&e!==`json`)throw Error(`Only text and json formats are supported.`)}printLoginResult(e,t){if(t===`json`){this.printJson(e);return}console.log(w.green(`Authenticated`)),console.log(`Organization: ${e.organizationName} (${e.organizationId})`)}printProgress(e,t){if(e===`json`){console.error(t);return}console.log(t)}printJson(e){console.log(JSON.stringify(e,null,2))}};he=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.CredentialsService)),e.n(1,(0,n.inject)(e.r.DeviceCodeAuthService)),e.n(2,(0,n.inject)(e.r.ConfigManager)),e.i(`design:paramtypes`,[Object,Object,Object])],he);var ge=class e{static instance;authProviders=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setAuthProvider(e,t=this.defaultNamespace){this.authProviders.set(t,e)}getAuthProvider(e=this.defaultNamespace){return this.authProviders.get(e)||null}removeAuthProvider(e=this.defaultNamespace){this.authProviders.delete(e)}async getSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.getSession():null}async refreshSession(e=this.defaultNamespace){let t=this.authProviders.get(e);return t?t.refreshSession():null}hasAuthProvider(e=this.defaultNamespace){return this.authProviders.has(e)}getNamespaces(){return Array.from(this.authProviders.keys())}}.getInstance(),_e=class e{static instance;configs=new Map;defaultNamespace=`default`;constructor(){}static getInstance(){return e.instance||=new e,e.instance}setConfig(e,t=this.defaultNamespace){this.configs.set(t,e)}getConfig(e=this.defaultNamespace){return this.configs.get(e)||null}updateConfig(e,t=this.defaultNamespace){let n=this.configs.get(t);n?this.configs.set(t,{...n,...e,headers:{...n.headers,...e.headers}}):this.configs.set(t,e)}removeConfig(e=this.defaultNamespace){this.configs.delete(e)}getBaseUrl(e=this.defaultNamespace){return this.configs.get(e)?.baseUrl||null}getHeaders(e=this.defaultNamespace){return this.configs.get(e)?.headers||null}getApiKey(e=this.defaultNamespace){return this.configs.get(e)?.apiKey||null}hasConfig(e=this.defaultNamespace){return this.configs.has(e)}getNamespaces(){return Array.from(this.configs.keys())}}.getInstance(),ve=`default`,ye=1,be=300,T=`Content-Type`,xe=`content-length`,Se=`application/json`,Ce=`X-API-KEY`,we=`Authorization`,Te=`Bearer`,Ee=204,De=205,Oe=401,ke=429,Ae=503,je=500,Me=400,Ne=500,Pe=`text/`,Fe=.5,Ie=.5,Le=class extends Error{status;statusText;data;constructor(e,t,n,r){super(e),this.status=t,this.statusText=n,this.data=r,this.name=`OpenapiRequestError`}},Re=class{baseUrl;apiKey;headers;authProvider;authNamespace;configNamespace;useGlobalAuthProvider;useGlobalConfig;retryConfig;requestInterceptor;constructor(e={}){this.authProvider=e.authProvider,this.authNamespace=e.authNamespace??ve,this.configNamespace=e.configNamespace??ve,this.useGlobalAuthProvider=e.useGlobalAuthProvider??!0,this.useGlobalConfig=e.useGlobalConfig??!0,this.retryConfig={maxRetries:e.retryConfig?.maxRetries??ye,baseDelay:e.retryConfig?.baseDelay??be},this.requestInterceptor=e.requestInterceptor??null;let t=this.getEffectiveConfig(e);if(!t.baseUrl&&!this.useGlobalConfig)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);this.baseUrl=t.baseUrl,this.apiKey=t.apiKey,this.headers=t.headers}getEffectiveConfig(e){let t=this.useGlobalConfig?_e.getConfig(this.configNamespace):null;return{baseUrl:e.baseUrl||t?.baseUrl||``,headers:{...t?.headers,...e.headers},apiKey:e.apiKey??t?.apiKey}}getRuntimeConfig(){return this.getEffectiveConfig({baseUrl:this.baseUrl,headers:this.headers,apiKey:this.apiKey})}getEffectiveAuthProvider(){return this.authProvider?this.authProvider:this.useGlobalAuthProvider?ge.getAuthProvider(this.authNamespace):null}async setAuthHeader(e){let t=this.getEffectiveAuthProvider();if(!t)return;let n=await t.getSession();n?.data?.session?.access_token&&(e[we]=`${Te} ${n.data.session.access_token}`)}buildUrl(e,t,n,r){let i=t;if(n)for(let[e,t]of Object.entries(n))i=i.replace(`{${e}}`,encodeURIComponent(String(t)));if(r){let e=new URLSearchParams;for(let[t,n]of Object.entries(r))n!=null&&e.append(t,String(n));let t=e.toString();t&&(i+=(i.includes(`?`)?`&`:`?`)+t)}return new URL(i,e).toString()}createCustomFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`,`Content-Type`in n.headers||(n.headers[T]=Se),n.headers[T]===void 0&&delete n.headers[T];let r=this.getRuntimeConfig();r.apiKey&&(n.headers[Ce]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();if(i.status===Oe&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session)if(await this.setAuthHeader(n.headers),t?.skipRetry)i=await fetch(e,n);else{let{maxRetries:t,baseDelay:r}=this.retryConfig,a=null;for(let o=0;o<t;o++)try{if(i=await fetch(e,n),i.status>=Me&&i.status<Ne&&i.status!==ke)return i;if(i.status===ke||i.status===Ae||i.status>=je){a=Error(`HTTP status ${i.status}`);let e=r*2**o*(Fe+Math.random()*Ie);await new Promise(t=>setTimeout(t,e));continue}return i}catch(e){if(a=e instanceof Error?e:Error(String(e)),o<t-1){let e=r*2**o*(Fe+Math.random()*Ie);await new Promise(t=>setTimeout(t,e))}}throw a||Error(`Request failed after retries`)}return i}}createFormFetch(){return async(e,t)=>{let n=t||{};n.headers||={},n.credentials=`include`;let r=this.getRuntimeConfig();r.apiKey&&(n.headers[Ce]=r.apiKey),t?.skipAuth||await this.setAuthHeader(n.headers);let i=await fetch(e,n),a=this.getEffectiveAuthProvider();return i.status===Oe&&a&&!t?.skipAuth&&(await a.refreshSession())?.data?.session&&(await this.setAuthHeader(n.headers),i=await fetch(e,n)),i}}async request(e,t){let{method:n,signal:r,params:i,query:a,body:o,headers:s,skipAuth:c,skipRetry:l}=t;if(this.requestInterceptor){let n=await this.requestInterceptor(e,{path:e,...t});if(n)return n}let u=this.getRuntimeConfig();if(!u.baseUrl)throw Error(`baseUrl is required for OpenapiClient (either in options or global config)`);let d=this.buildUrl(u.baseUrl,e,i,a),f={...u.headers,...s},p={method:n,signal:r,headers:f,skipAuth:c,skipRetry:l};o&&n!==`GET`&&n!==`HEAD`&&(o instanceof FormData||typeof o==`object`&&o&&typeof o.append==`function`&&typeof o.entries==`function`&&o.constructor?.name===`FormData`?(p.body=o,f[T]=void 0):(p.body=JSON.stringify(o),f[T]=Se));let m=await this.createCustomFetch()(d,p),h,g=m.headers.get(`content-type`),_=m.headers.get(xe);if(h=m.status===Ee||m.status===De||n===`HEAD`||_===`0`?void 0:g?.includes(Se)?await m.json():g?.includes(Pe)?await m.text():await m.blob(),!m.ok)throw new Le(`HTTP ${m.status}: ${m.statusText}`,m.status,m.statusText,h);return{data:h,status:m.status,statusText:m.statusText,headers:m.headers}}},ze=`backend-agiflow-api`,Be=e=>{_e.setConfig(e,ze)},E=((e={})=>new Re({...e,authNamespace:ze,configNamespace:ze}))(),Ve=`0.0.1`,D=class{configManager;credentialsService;constructor(e,t){this.configManager=e,this.credentialsService=t}addEnvIdOption(e,t,n,r){return e.addOption(this.buildEnvIdOption(t,n,r)),e}buildEnvIdOption(n,r,i){let a=new t.Option(n,r);return e.o(i)&&a.hideHelp(),a}async setupClient(){let{serverUrl:e,apiKey:t}=await this.resolveApiClientContext();Be({baseUrl:e,apiKey:t,headers:{"x-client-type":`agent-cli`,"x-client-version":Ve}})}async resolveApiClientContext(){let e=this.configManager.getServerUrl(),t=await this.credentialsService.getApiKey();if(!t)throw Error(`No API key found. Set AGIFLOW_API_KEY, map AGIFLOW_API_KEY_ENV in .agiflowrc, or run authentication.`);return{serverUrl:e,apiKey:t}}handleError(e,t){let n=t instanceof Error?t.message:String(t);console.error(w.red(`✗`),e,n),process.exit(1)}async runJsonOnly(e){try{await e()}catch(e){let t=e instanceof Error?e.message:String(e),n=e&&typeof e==`object`&&`data`in e?e.data:void 0;this.printJson(n===void 0?{error:t}:{error:t,details:n}),process.exit(1)}}requireJsonFormat(e,t=`this command`){if((e??`json`)!==`json`)throw Error(`Only --format json is supported for ${t}.`)}printJson(e){console.log(JSON.stringify(e,null,2))}async resolveOrganizationId(e){return this.resolveRequiredId(e,()=>this.credentialsService.getOrganizationId(),`organization ID`,`--org`)}async resolveProjectIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getProjectId(),`project ID`,`--project`)}async resolveTaskIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getTaskId(),`task ID`,`--task`)}async resolveWorkUnitIdOption(e){return this.resolveRequiredId(e,()=>this.credentialsService.getWorkUnitId(),`work unit ID`,`--work-unit`)}async resolveRequiredId(e,t,n,r){if(e)return e;let i=await t();if(i)return i;throw Error(`Missing ${n}. Pass ${r}, set the matching AGIFLOW_* environment variable, or add .agiflowrc defaults.`)}parseJsonFlag(e,t){if(e)try{return JSON.parse(e)}catch{throw Error(`${t} must be valid JSON.`)}}parseCsv(e){if(!e)return;let t=(Array.isArray(e)?e:e.split(`,`)).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}parseNumber(e,t){if(e===void 0)return t;let n=Number(e);if(!Number.isFinite(n))throw Error(`Expected a numeric value, received "${e}".`);return n}},He=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`GET`,params:e,query:t})).data,Ue=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows`,{method:`POST`,params:e,body:t})).data,We=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/check`,{method:`GET`,params:e,query:t})).data,Ge=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`GET`,params:e})).data,Ke=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`PATCH`,params:e,body:t})).data,qe=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}`,{method:`DELETE`,params:e})).data,Je=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/workflows/{id}/release`,{method:`POST`,params:e,body:t})).data,Ye=`AGIFLOW_ORGANIZATION_ID`,Xe=`AGIFLOW_PROJECT_ID`,Ze=`AGIFLOW_TASK_ID`,Qe=`AGIFLOW_WORK_UNIT_ID`,$e=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`workflow`).description(`Manage workflow locks`);this.addWorkflowScopeOptions(t.command(`create`).description(`Acquire a workflow lock`)).requiredOption(`--name <name>`,`Workflow name`).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,Qe)).addOption(this.envOption(`--task <taskId>`,`Task ID`,Ze)).option(`--context <json>`,`Context data as JSON string`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await Ue({organizationId:t,projectId:n},{name:e.name,workUnitId:r.workUnitId,taskId:r.taskId,contextData:e.context});console.log(w.green(`✓`),`Workflow lock acquired`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to acquire workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`get <id>`).description(`Get workflow details`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await Ge({organizationId:n,projectId:r,id:e});console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`list`).description(`List workflows`)).option(`--status <status>`,`Filter by status (running|completed|failed)`).option(`--limit <limit>`,`Max results`,`20`).option(`--offset <offset>`,`Offset for pagination`,`0`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await He({organizationId:t,projectId:n},{status:e.status,limit:Number(e.limit),offset:Number(e.offset)});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list workflows`,e)}}),this.addWorkflowScopeOptions(t.command(`update <id>`).description(`Update workflow metadata`)).option(`--name <name>`,`New workflow name`).option(`--context <json>`,`Updated context data as JSON string`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i={};t.name&&(i.name=t.name),t.context&&(i.contextData=t.context);let a=await Ke({organizationId:n,projectId:r,id:e},i);console.log(w.green(`✓`),`Workflow updated`),console.log(JSON.stringify(a,null,2))}catch(e){this.handleError(`Failed to update workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`delete <id>`).description(`Delete workflow metadata`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t);await qe({organizationId:n,projectId:r,id:e}),console.log(JSON.stringify({deleted:!0,workflow:{id:e}},null,2))}catch(e){this.handleError(`Failed to delete workflow`,e)}}),this.addWorkflowScopeOptions(t.command(`release <id>`).description(`Release a workflow lock`)).requiredOption(`--status <status>`,`Release status (completed|failed)`).option(`--error <error>`,`Error message (when status is failed)`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveWorkflowScope(t),i=await Je({organizationId:n,projectId:r,id:e},{status:t.status,error:t.error});console.log(w.green(`✓`),`Workflow lock released`),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to release workflow lock`,e)}}),this.addWorkflowScopeOptions(t.command(`check`).description(`Check if a workflow lock exists`)).addOption(this.envOption(`--work-unit <workUnitId>`,`Work unit ID`,Qe)).addOption(this.envOption(`--task <taskId>`,`Task ID`,Ze)).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveWorkflowScope(e),r=await this.resolveWorkflowTarget(e),i=await We({organizationId:t,projectId:n},{workUnitId:r.workUnitId,taskId:r.taskId});console.log(w.green(`✓`),`Lock found`),console.log(JSON.stringify(i,null,2))}catch(e){if(e instanceof Error&&e.message.includes(`404`)){console.log(JSON.stringify({}));return}this.handleError(`Failed to check workflow lock`,e)}})}addWorkflowScopeOptions(e){return e.addOption(this.envOption(`--org <organizationId>`,`Organization ID`,Ye)).addOption(this.envOption(`--project <projectId>`,`Project ID`,Xe))}envOption(e,t,n){return this.buildEnvIdOption(e,t,n)}async resolveWorkflowScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}async resolveWorkflowTarget(e){if(e.workUnit)return{workUnitId:e.workUnit};if(e.task)return{taskId:e.task};let t=await this.credentialsService.getWorkUnitId();if(t)return{workUnitId:t};let n=await this.credentialsService.getTaskId();return n?{taskId:n}:{}}};$e=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],$e);var et=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects`,{method:`GET`,params:e,query:t})).data,tt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects`,{method:`POST`,params:e,body:t})).data,nt=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/statuses`,{method:`GET`,params:e})).data,O=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`GET`,params:e})).data,rt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`PATCH`,params:e,body:t})).data,it=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}`,{method:`DELETE`,params:e})).data,at=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`GET`,params:e})).data,ot=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts`,{method:`DELETE`,params:e,query:t})).data,st=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/download`,{method:`GET`,params:e,query:t})).data,ct=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/upload-url`,{method:`GET`,params:e,query:t})).data,lt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/complete`,{method:`POST`,params:e,body:t})).data,ut=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{id}/artifacts/seed`,{method:`POST`,params:e,body:t})).data,dt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks`,{method:`GET`,params:e,query:t})).data,ft=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/artifacts`,{method:`GET`,params:e,query:t})).data,pt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/artifacts/download`,{method:`GET`,params:e,query:t})).data,mt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/statuses/{statusId}/tasks/reorder`,{method:`POST`,params:e,body:t})).data,ht=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`GET`,params:e,query:t})).data,gt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks`,{method:`POST`,params:e,body:t})).data,_t=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`GET`,params:e})).data,vt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`PATCH`,params:e,body:t})).data,yt=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}`,{method:`DELETE`,params:e})).data,bt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/tasks/{taskId}/move`,{method:`POST`,params:e,body:t})).data,xt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`GET`,params:e,query:t})).data,St=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units`,{method:`POST`,params:e,body:t})).data,Ct=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`GET`,params:e})).data,wt=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`PATCH`,params:e,body:t})).data,Tt=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}`,{method:`DELETE`,params:e})).data,Et=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/work-units/{workUnitId}/progress`,{method:`GET`,params:e})).data,Dt=`2024-11-05`;async function Ot(e){let t=new kt(e);try{await t.initialize();let n=await t.listToolNames();return Mt(n.includes(e.toolName)?await t.callTool(e.toolName,e.toolArgs):await t.callCapability(e.toolName,e.toolArgs,n))}finally{await t.terminate()}}var kt=class{options;endpoint;sessionId;nextId=1;constructor(e){this.options=e;let t=e.serverUrl.replace(/\/+$/,``),n=encodeURIComponent(e.organizationId),r=encodeURIComponent(e.projectId);this.endpoint=`${t}/api/v1/organizations/${n}/projects/${r}/mcp`}async initialize(){let e=await this.request(`initialize`,{protocolVersion:Dt,capabilities:{},clientInfo:{name:`agiflow-cli`,version:`0.0.1`}});if(e.error)throw Error(e.error.message??`Project MCP initialize failed.`)}async listToolNames(){let e=await this.request(`tools/list`);if(e.error)throw Error(e.error.message??`Project MCP tools/list failed.`);return e.result?.tools?.map(e=>e.name)??[]}async callTool(e,t){let n=await this.request(`tools/call`,{name:e,arguments:t});if(n.error)throw Error(n.error.message??`Project MCP tool failed: ${e}`);return n.result??{}}async callCapability(e,t,n){if(!n.includes(`use_capability`))throw Error(`Project MCP tool is not available: ${e}`);return this.callTool(`use_capability`,{toolName:e,toolArgs:t})}async terminate(){if(this.sessionId)try{await fetch(this.endpoint,{method:`DELETE`,headers:this.headers()})}catch{}}async request(e,t){let n=await fetch(this.endpoint,{method:`POST`,headers:this.headers(),body:JSON.stringify({jsonrpc:`2.0`,id:this.nextId++,method:e,...t===void 0?{}:{params:t}})}),r=n.headers.get(`Mcp-Session-Id`);return r&&(this.sessionId=r),At(n)}headers(){return{Accept:`application/json, text/event-stream`,"Content-Type":`application/json`,"x-api-key":this.options.apiKey,...this.sessionId?{"Mcp-Session-Id":this.sessionId}:{}}}};async function At(e){let t=await e.text();if(!e.ok)throw Error(`Project MCP request failed with status ${e.status}: ${Nt(t)}`);let n=e.headers.get(`content-type`)?.includes(`text/event-stream`)?jt(t):t;if(!n.trim())return{};try{return JSON.parse(n)}catch{throw Error(`Project MCP returned invalid JSON: ${Nt(n)}`)}}function jt(e){let t=e.split(/\n\n+/).map(e=>e.split(/\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim()).join(`
6
+ `)).filter(e=>e&&e!==`[DONE]`);return t[t.length-1]??``}function Mt(e){let t=e.content?.find(e=>e.type===`text`&&e.text)?.text;if(e.isError)throw Error(t??`Project MCP tool returned an error.`);if(e.structuredContent!==void 0)return e.structuredContent;if(t)try{return JSON.parse(t)}catch{return{text:t}}return e}function Nt(e){let t=e.replace(/\s+/g,` `).trim();return t.length>500?`${t.slice(0,500)}...`:t}var Pt=`AGIFLOW_ORGANIZATION_ID`,Ft=`AGIFLOW_PROJECT_ID`,It=`AGIFLOW_TASK_ID`,Lt=`AGIFLOW_WORK_UNIT_ID`,Rt=100,zt=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`artifact`).description(`Manage project artifacts`);this.addArtifactScopeOptions(t.command(`upload <file>`).description(`Upload an artifact (3-step: get presigned URL, PUT to storage, mark complete)`)).option(`--name <name>`,`Artifact name (defaults to filename)`).option(`--type <type>`,`Content type`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),o=a.default.resolve(e);i.default.existsSync(o)||(console.error(w.red(`✗`),`File not found: ${o}`),process.exit(1));let s=t.name??a.default.basename(o),c=i.default.readFileSync(o),l=i.default.statSync(o).size;console.log(w.blue(`↑`),`Uploading ${s} (${l} bytes)...`);let{url:u,key:d}=await ct({organizationId:n,id:r},{filename:s,contentType:t.type}),f=await fetch(u,{method:`PUT`,body:c,headers:{"Content-Type":t.type??`application/octet-stream`}});if(!f.ok)throw Error(`Upload failed with status ${f.status}`);await lt({organizationId:n,id:r},{key:d}),console.log(w.green(`✓`),`Artifact uploaded: ${d}`)}catch(e){this.handleError(`Failed to upload artifact`,e)}}),this.addArtifactScopeOptions(t.command(`download [key]`).description(`Download artifacts by key, task, or work unit`)).option(`-o, --output <path>`,`Output file path`).option(`--target <folder>`,`Target folder for task or work unit artifact downloads`).addOption(this.buildEnvIdOption(`--task <taskId>`,`Task ID to download artifacts from`,It)).addOption(this.buildEnvIdOption(`--work-unit <workUnitId>`,`Work unit ID to download task artifacts from`,Lt)).option(`--overwrite`,`Overwrite existing files`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t);if(e){await this.downloadProjectArtifactByKey(n,r,e,t);return}await this.downloadScopedArtifacts(n,r,t)}catch(e){this.handleError(`Failed to download artifact`,e)}}),this.addArtifactScopeOptions(t.command(`list`).description(`List project artifacts`)).option(`--max-keys <maxKeys>`,`Maximum number of artifacts to return`).option(`--continuation-token <token>`,`Pagination continuation token`).option(`--search <search>`,`Search artifacts by name`).option(`--labels <labels>`,`Comma-separated labels to match`).option(`--content-type <contentType>`,`Content type prefix`).option(`--status <status>`,`Artifact status (pending|uploaded)`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=this.hasListFilters(e)?await this.callProjectTool(t,n,`list_artifacts`,{maxKeys:this.parseOptionalNumber(e.maxKeys,`--max-keys`),continuationToken:e.continuationToken,search:e.search,labels:this.parseCsv(e.labels),contentType:e.contentType,status:e.status}):await at({organizationId:t,id:n});console.log(JSON.stringify(r,null,2))}catch(e){this.handleError(`Failed to list artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`get <key>`).description(`Get artifact details by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=(await at({organizationId:n,id:r})).items.find(t=>t.key===e||t.id===e);i||(console.error(w.red(`✗`),`Artifact not found: ${e}`),process.exit(1)),console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to get artifact`,e)}}),this.addArtifactScopeOptions(t.command(`delete <key>`).description(`Delete an artifact by key`)).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t);await ot({organizationId:n,id:r},{key:e}),console.log(w.green(`✓`),`Artifact deleted: ${e}`)}catch(e){this.handleError(`Failed to delete artifact`,e)}}),this.addArtifactScopeOptions(t.command(`link <key>`).description(`Link or unlink artifact targets`)).option(`--action <action>`,`Action to perform (link|unlink)`,`link`).addOption(this.buildEnvIdOption(`--work-unit <workUnitId>`,`Work unit ID to link`,Lt)).addOption(this.buildEnvIdOption(`--task <taskId>`,`Task ID to link`,It)).option(`--clip-json <json>`,`Clip region JSON with x, y, width, height`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=t.task?await this.resolveTaskIdOption(t.task):void 0,a=t.workUnit?await this.resolveWorkUnitIdOption(t.workUnit):void 0;if(!i&&!a)throw Error(`Specify --task, --work-unit, or both.`);if(t.action!==`link`&&t.action!==`unlink`)throw Error(`--action must be link or unlink.`);let o=await this.callProjectTool(n,r,`link_artifact`,{key:e,action:t.action,taskId:i,workUnitId:a,clip:this.parseClip(t.clipJson)});console.log(JSON.stringify(o,null,2))}catch(e){this.handleError(`Failed to link artifact`,e)}}),this.addArtifactScopeOptions(t.command(`signed-url`).description(`Get a signed upload or download URL for an artifact`)).requiredOption(`--action <action>`,`Signed URL action (upload|download)`).option(`--key <key>`,`Artifact key (required for download)`).option(`--filename <filename>`,`Filename (required for upload)`).option(`--type <type>`,`Content type for upload`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e);if(e.action===`download`){if(!e.key)throw Error(`--key is required for download signed URLs`);let r=await st({organizationId:t,id:n},{key:e.key});console.log(JSON.stringify({...r,key:e.key,action:`download`},null,2));return}if(e.action!==`upload`)throw Error(`--action must be upload or download`);if(!e.filename)throw Error(`--filename is required for upload signed URLs`);let r=await ct({organizationId:t,id:n},{filename:e.filename,contentType:e.type});console.log(JSON.stringify({...r,action:`upload`},null,2))}catch(e){this.handleError(`Failed to get signed artifact URL`,e)}}),this.addArtifactScopeOptions(t.command(`seed`).description(`Seed artifacts from a JSON file`)).requiredOption(`--file <path>`,`Path to JSON file containing seed data`).action(async e=>{try{await this.setupClient();let{org:t,project:n}=await this.resolveArtifactScope(e),r=a.default.resolve(e.file);if(!i.default.existsSync(r)){console.error(w.red(`✗`),`File not found: ${r}`),process.exit(1);return}let o=i.default.readFileSync(r,`utf-8`),s;try{s=JSON.parse(o)}catch{console.error(w.red(`✗`),`Invalid JSON in ${r}`),process.exit(1);return}let c=await ut({organizationId:t,id:n},s);console.log(JSON.stringify(c,null,2))}catch(e){this.handleError(`Failed to seed artifacts`,e)}}),this.addArtifactScopeOptions(t.command(`update <key>`).description(`Update artifact metadata`)).option(`--status <status>`,`Artifact status (pending|uploaded)`).option(`--labels <labels>`,`Comma-separated labels to set`).action(async(e,t)=>{try{await this.setupClient();let{org:n,project:r}=await this.resolveArtifactScope(t),i=await this.callProjectTool(n,r,`update_artifact`,{key:e,status:t.status,labels:this.parseCsv(t.labels)});console.log(JSON.stringify(i,null,2))}catch(e){this.handleError(`Failed to update artifact`,e)}})}addArtifactScopeOptions(e){return e.addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,Pt)).addOption(this.buildEnvIdOption(`--project <projectIdOrSlug>`,`Project ID or slug`,Ft)).option(`--format <format>`,`Output format (json)`,`json`)}async resolveArtifactScope(e){this.requireJsonFormat(e.format,`artifact commands`);let t=await this.resolveOrganizationId(e.org);return{org:t,project:(await O({organizationId:t,id:await this.resolveProjectIdOption(e.project)})).id}}async callProjectTool(e,t,n,r){let{serverUrl:i,apiKey:a}=await this.resolveApiClientContext();return Ot({serverUrl:i,apiKey:a,organizationId:e,projectId:t,toolName:n,toolArgs:this.compact(r)})}async downloadProjectArtifactByKey(e,t,n,r){if(r.task||r.workUnit||r.target)throw Error(`Single artifact downloads only support <key> and --output. Do not pass --task, --work-unit, or --target.`);let a=await st({organizationId:e,id:t},{key:n}),o=await this.fetchArtifactBuffer(a.url),s=r.output??n;i.default.writeFileSync(s,o),console.log(w.green(`✓`),`Downloaded to ${s}`)}async downloadScopedArtifacts(e,t,n){if(n.output)throw Error(`Scoped downloads write to folders. Use --target instead of --output.`);if(!!n.task==!!n.workUnit)throw Error(`Pass exactly one of --task or --work-unit.`);let r=a.default.resolve(n.target??process.cwd()),o=n.task?[await this.resolveTaskForScopedDownload(n.task)]:await this.resolveWorkUnitTasks(e,t,n.workUnit),s=await this.buildScopedDownloadPlan(e,o,r,!!n.workUnit);this.assertWritablePlan(s,!!n.overwrite),i.default.mkdirSync(r,{recursive:!0});for(let t of s){let n=await pt({organizationId:e,taskId:t.task.id},{key:t.artifact.key}),r=await this.fetchArtifactBuffer(n.url);i.default.mkdirSync(a.default.dirname(t.outputPath),{recursive:!0}),i.default.writeFileSync(t.outputPath,r),console.log(w.green(`✓`),`Downloaded ${t.artifact.key} to ${t.outputPath}`)}this.printJson({scope:n.task?{type:`task`,id:n.task}:{type:`work-unit`,id:n.workUnit},outputDir:r,downloaded:s.length,totalArtifacts:s.length,totalTasks:o.length})}async resolveTaskForScopedDownload(e){let t=await this.resolveTaskIdOption(e);return{id:t,slug:t}}async resolveWorkUnitTasks(e,t,n){let r=await Ct({organizationId:e,projectId:t,workUnitId:await this.resolveWorkUnitIdOption(n)}),i=[],a=0;for(;;){let n={limit:Rt,offset:a,sort:`position`,order:`asc`,statusFilter:`all`,workUnitId:r.id},o=await ht({organizationId:e,projectId:t},n);if(i.push(...o.items.map(e=>this.toArtifactTask(e))),a+=o.items.length,o.items.length===0||a>=o.total)return i}}async buildScopedDownloadPlan(e,t,n,r){let i=[];for(let o of t){let t=await this.listAllTaskArtifacts(e,o.id),s=r?a.default.join(n,this.sanitizePathSegment(o.slug||o.id)):n;for(let e of t)i.push({artifact:e,task:o,outputPath:a.default.join(s,this.sanitizePathSegment(e.name||a.default.basename(e.key)))})}return i}toArtifactTask(e){return{id:e.id,slug:e.slug||e.id}}async listAllTaskArtifacts(e,t){let n=[],r=0;for(;;){let i=await ft({organizationId:e,taskId:t},{limit:Rt,offset:r});if(n.push(...i.items),r+=i.items.length,i.items.length===0||r>=i.total)return n}}assertWritablePlan(e,t){let n=new Set;for(let r of e){if(n.has(r.outputPath))throw Error(`Duplicate artifact output path: ${r.outputPath}`);if(n.add(r.outputPath),!t&&i.default.existsSync(r.outputPath))throw Error(`Output file already exists: ${r.outputPath}. Pass --overwrite to replace it.`)}}async fetchArtifactBuffer(e){let t=await fetch(e);if(!t.ok)throw Error(`Download failed with status ${t.status}`);return Buffer.from(await t.arrayBuffer())}sanitizePathSegment(e){return e.replace(/[<>:"/\\|?*]/g,`_`).split(``).map(e=>e.charCodeAt(0)<32?`_`:e).join(``).trim()||`artifact`}hasListFilters(e){return!!(e.maxKeys||e.continuationToken||e.search||e.labels||e.contentType||e.status)}parseOptionalNumber(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isFinite(n))throw Error(`${t} must be numeric.`);return n}parseClip(e){let t=this.parseJsonFlag(e,`--clip-json`);if(t!==void 0){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`--clip-json must be an object.`);return t}}compact(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}};zt=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],zt);var Bt=class n{command;constructor(e){this.command=e}static for(e){return new n(e)}fromSchemaGroups(e){for(let t of e)this.addGroup(t);return this.command}addGroup(n){let i=r.z.toJSONSchema(n.schema),a=new Set(i.required??[]);for(let r of n.options){let n=r.source??r.name,o=i.properties?.[n],s=o?.cli,c=r.parse??s?.parse??Vt(o),l=o?.description??Gt(n),u=r.defaultValue??Ht(o),d=r.valueName??s?.valueName??n,f=r.flag??s?.flag??`--${Wt(r.name)}`,p=r.envVars??(r.envVar?[r.envVar]:[]),m=p.length>0?!1:r.required??(u===void 0&&a.has(n)),h=c===`boolean`?f:`${f} <${d}>`,g=Ut(c),_=new t.Option(h,l);if(p.some(t=>e.o(t))&&_.hideHelp(),m){g&&_.argParser(g),this.command.addOption(_.makeOptionMandatory());continue}g?(_.argParser(g),u!==void 0&&_.default(u),this.command.addOption(_)):(u===void 0||_.default(u),this.command.addOption(_))}}},Vt=e=>e&&(Array.isArray(e.type)?e.type.find(e=>e!==`null`):e.type)===`boolean`?`boolean`:`string`,Ht=e=>{if(typeof e?.default==`string`||typeof e?.default==`boolean`)return e.default;if(typeof e?.default==`number`)return String(e.default)},Ut=e=>{if(e===`csv`)return e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);if(e===`json`)return e=>JSON.parse(e)},Wt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),Gt=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),Kt=`0.0.1`,k=`AGIFLOW_ORGANIZATION_ID`,A=`AGIFLOW_PROJECT_ID`,qt=`AGIFLOW_TASK_ID`,Jt=`AGIFLOW_WORK_UNIT_ID`,Yt=`AGIFLOW_WORKFLOW_ID`,Xt=`AGIFLOW_DEVICE_ID`,Zt=`BACKEND_AGIFLOW_API_ENDPOINT`,Qt=`AGIFLOW_DISPATCH_SECRET_FILE`,$t=`JOB_ALREADY_CLAIMED`,en={marketing:`marketing_workflow_template`,sales:`sale_workflow_template`,software:`product_template`},tn=`default_template`,j=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),nn=e=>e?en[e]??tn:tn,rn=(e,t)=>{let n=new Map;for(let t of e){let e=nn(t.templateId),r=t.projectSlug??t.projectId??`unknown`,i=n.get(e)??new Map;i.set(r,[...i.get(r)??[],t]),n.set(e,i)}let r=[`<dispatch_context claims_available="${t.available}">`];for(let[e,t]of n){r.push(` <${e}>`);for(let[e,n]of t){let t=n.find(e=>e.projectId)?.projectId??``;r.push(` <project_slug name="${j(e)}" project="${j(t)}">`);for(let e of n){let t=e.kind===`work-unit`?`work_unit`:`task`,n=[`id="${j(e.id)}"`,`kind="${e.kind}"`,`slug="${j(e.slug??``)}"`,`status="${j(e.status??``)}"`,`priority="${j(e.priority??``)}"`,`title="${j(e.title??``)}"`].join(` `);if(!e.dependencies?.length){r.push(` <${t} ${n}/>`);continue}r.push(` <${t} ${n}>`),r.push(` <dependencies>`);for(let t of e.dependencies){let e=t.kind===`work-unit`?`work_unit`:`task`,n=[`id="${j(t.id??``)}"`,`key="${j(t.key??(t.id?``:t.reference))}"`,`status="${j(t.status??``)}"`,`project="${j(t.projectSlug??t.projectId??``)}"`,`reference="${j(t.reference)}"`,`resolution="${t.id?`resolved`:`unresolved`}"`].join(` `);r.push(` <${e} ${n}/>`)}r.push(` </dependencies>`),r.push(` </${t}>`)}r.push(` </project_slug>`)}r.push(` </${e}>`)}return r.push(`</dispatch_context>`),r.join(`
7
+ `)},an=(e,t)=>{let n={AGIFLOW_ORGANIZATION_ID:t.org,AGIFLOW_PROJECT_ID:t.project,AGIFLOW_JOB_KIND:e.kind,AGIFLOW_JOB_ID:e.id,AGIFLOW_JOB_SLUG:e.slug??``,AGIFLOW_JOB_TITLE:e.title??``,AGIFLOW_WORKFLOW_ID:t.workflowId,AGIFLOW_JOB_CONTEXT_FILE:t.contextFile,AGIFLOW_JOB_PRIORITY:e.priority??``,AGIFLOW_PROJECT_SLUG:e.projectSlug??``,AGIFLOW_PROJECT_TEMPLATE_ID:e.templateId??``};return e.kind===`work-unit`?n[Jt]=e.id:n[qt]=e.id,t.deviceId&&(n[Xt]=t.deviceId),t.apiEndpoint&&(n[Zt]=t.apiEndpoint),t.dispatchSecretFile&&(n[Qt]=t.dispatchSecretFile),n},M=r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID`)}),on=r.z.object({jobKind:r.z.enum([`work-unit`,`task`]).describe(`Job kind (work-unit|task)`),jobId:r.z.string().min(1).describe(`Job ID`)}),sn=r.z.object({format:r.z.enum([`json`,`table`]).default(`json`).describe(`Output format`)}),N=(e,t)=>Bt.for(e).fromSchemaGroups([...t,{schema:sn,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),cn=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`automation`).description(`Automation JSON commands`);t.command(`list-jobs`).description(`List runnable or claimed automation jobs`).option(`--status <statuses>`,`Comma-separated job statuses`,`planning,todo`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,envVar:A}]},{schema:r.z.object({limit:r.z.string().default(`50`).describe(`Max results`),claimed:r.z.boolean().optional().describe(`List claimed running jobs`),deviceId:r.z.string().optional().describe(`Filter claimed jobs by device ID`)}),options:[{name:`limit`,required:!1,defaultValue:`50`},{name:`claimed`,required:!1},{name:`deviceId`,flag:`--device-id`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs`,query:{status:e.status,limit:Number(e.limit),claimed:!!e.claimed,deviceId:e.deviceId,format:`json`}});this.printJson(r)})}),t.command(`get-job`).description(`Get a normalized automation job`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,envVar:A}]},{schema:on,options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[Jt,qt]}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=await this.requestJson({org:t,project:n,path:`/jobs/get`,query:{jobKind:r,jobId:i,format:`json`}});this.printJson(a)})}),t.command(`claim-job`).description(`Claim an automation job`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,envVar:A}]},{schema:on.extend({name:r.z.string().min(1).describe(`Run name`),deviceId:r.z.string().optional().describe(`Device ID running the job`),maxConcurrent:r.z.string().optional().describe(`This machine's concurrent run limit, to report spare claims`),dryRun:r.z.boolean().optional().describe(`Preview dependency and lock facts without claiming the job`)}),options:[{name:`jobKind`,flag:`--job-kind`},{name:`jobId`,flag:`--job-id`,envVars:[Jt,qt]},{name:`name`},{name:`deviceId`,flag:`--device-id`,required:!1},{name:`maxConcurrent`,flag:`--max-concurrent`,required:!1},{name:`dryRun`,flag:`--dryRun`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{if(e.format===`table`&&!e.dryRun)throw Error(`Only dry-run claims support --format table.`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=this.resolveJobKind(e.jobKind),i=await this.resolveJobId(e.jobId,r),a=await this.requestJson({org:t,project:n,path:`/jobs/claim`,method:`POST`,body:{jobKind:r,jobId:i,name:e.name,deviceId:e.deviceId,maxConcurrent:e.maxConcurrent?Number(e.maxConcurrent):void 0,dryRun:e.dryRun||void 0}});e.format===`table`?this.printClaimTable(a):this.printJson(a)})}),t.command(`release-job`).description(`Release a claimed automation job`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,envVar:A}]},{schema:r.z.object({workflowId:r.z.string().min(1).describe(`Workflow lock ID`),status:r.z.enum([`completed`,`failed`]).describe(`Release status (completed|failed)`),error:r.z.string().optional().describe(`Error message for failed runs`)}),options:[{name:`workflowId`,flag:`--workflow-id`},{name:`status`},{name:`error`,required:!1}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs/release`,method:`POST`,body:{workflowId:e.workflowId,status:e.status,error:e.error}});this.printJson(r)})}),t.command(`heartbeat`).description(`Refresh a claimed job lock so it is not reclaimed as stale`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,envVar:A}]},{schema:r.z.object({workflowId:r.z.string().min(1).describe(`Workflow lock ID`)}),options:[{name:`workflowId`,flag:`--workflow-id`,envVars:[Yt]}]}]).action(async e=>{await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`automation commands`);let{org:t,project:n}=await this.resolveAutomationRoute(e),r=await this.requestJson({org:t,project:n,path:`/jobs/heartbeat`,method:`POST`,body:{workflowId:e.workflowId??process.env[Yt]}});this.printJson(r)})}),t.command(`dispatch`).description(`Poll ready jobs and hand each off to a consumer command (long-lived)`),N(t.commands.at(-1),[{schema:M,options:[{name:`org`,source:`organizationId`,envVar:k},{name:`project`,source:`projectId`,required:!1,envVar:A}]},{schema:r.z.object({template:r.z.string().optional().describe(`Only poll projects with this templateId`),projects:r.z.string().optional().describe(`Comma-separated project IDs or slugs to poll`),detach:r.z.boolean().optional().describe(`Handler only launches the run; the workflow releases its own lock`),handler:r.z.string().optional().describe(`Consumer command run per claimed job (per-job mode)`),agent:r.z.string().optional().describe(`Agent command run once per pass with the context tree; the agent decides and claims`),status:r.z.string().default(`planning,todo`).describe(`Comma-separated job statuses to poll`),maxConcurrent:r.z.string().default(`2`).describe(`Max concurrent in-flight handlers`),interval:r.z.string().default(`1200`).describe(`Seconds between polls`),limit:r.z.string().default(`50`).describe(`Jobs fetched per poll`),once:r.z.boolean().optional().describe(`Run a single poll pass then drain and exit`),deviceId:r.z.string().optional().describe(`Device ID for claim attribution`)}),options:[{name:`handler`,required:!1},{name:`agent`,required:!1},{name:`template`,required:!1},{name:`projects`,required:!1},{name:`detach`,required:!1},{name:`status`,required:!1,defaultValue:`planning,todo`},{name:`maxConcurrent`,flag:`--max-concurrent`,required:!1,defaultValue:`2`},{name:`interval`,required:!1,defaultValue:`1200`},{name:`limit`,required:!1,defaultValue:`50`},{name:`once`,required:!1},{name:`deviceId`,flag:`--device-id`,required:!1}]}]).action(async e=>{try{await this.runDispatch(e)}catch(e){this.logDispatch(`fatal: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}})}printClaimTable(e){let t=e;if(console.log(`field value`),console.log(`dryRun\t${String(!!t.dryRun)}`),console.log(`claimed\t${String(!!t.claimed)}`),console.log(`claimsAvailable\t${t.claimsAvailable??``}`),console.log(`lock.state\t${t.lock?.state??``}`),console.log(`lock.workflow\t${t.lock?.workflow?.id??t.workflowId??``}`),t.job?.dependencies?.length){console.log(`kind id key status project reference resolution`);for(let e of t.job.dependencies)console.log([e.kind,e.id??``,e.key??(e.id?``:e.reference),e.status??``,e.projectSlug??e.projectId??``,e.reference,e.id?`resolved`:`unresolved`].join(` `))}}async runDispatch(e){let t=await this.resolveOrganizationId(e.org),n=e.project?await this.resolveProjectIdOption(e.project):void 0;if(!e.handler&&!e.agent)throw Error(`Missing --agent or --handler. Pass --agent to let an agent decide, or --handler for per-job dispatch.`);let r=e.deviceId??process.env[Xt]??await this.credentialsService.getDeviceId()??void 0,i={org:t,project:n,handler:e.handler??``,agent:e.agent,statuses:e.status??`planning,todo`,limit:Number(e.limit??`50`),maxConcurrent:Math.max(1,Number(e.maxConcurrent??`2`)),deviceId:r,apiEndpoint:this.configManager.getServerUrl(),dispatchSecretFile:process.env[Qt],template:e.template,projects:e.projects,detach:!!e.detach,inFlight:new Map},a=Math.max(0,Number(e.interval??`1200`))*1e3,o={requested:!1},s=()=>{o.requested=!0,this.logDispatch(`shutdown requested; draining in-flight handlers`)};process.once(`SIGINT`,s),process.once(`SIGTERM`,s),this.logDispatch(`started org=${t} project=${n} status=${i.statuses} maxConcurrent=${i.maxConcurrent} interval=${a/1e3}s${e.once?` (once)`:``}`);try{do{try{await this.dispatchPass(i)}catch(e){this.logDispatch(`poll error: ${e instanceof Error?e.message:String(e)}`)}if(e.once||o.requested)break;await this.sleep(a,o)}while(!o.requested)}finally{process.off(`SIGINT`,s),process.off(`SIGTERM`,s),await Promise.allSettled(i.inFlight.values())}}async dispatchPass(e){let t=e.maxConcurrent-e.inFlight.size;if(t<=0){this.logDispatch(`at capacity (${e.inFlight.size}/${e.maxConcurrent}); skipping poll`);return}let n=e.project?await this.requestJson({org:e.org,project:e.project,path:`/jobs`,query:{status:e.statuses,limit:e.limit,claimed:!1,format:`json`}}):await this.requestOrgJson({org:e.org,path:`/jobs`,query:{status:e.statuses,limit:e.limit,template:e.template,projects:e.projects,format:`json`}}),r=this.extractJobs(n);if(e.agent){await this.runAgentPass(e,r,t);return}let i=0;for(let n of r){if(i>=t)break;if(e.inFlight.has(n.id))continue;let r=await this.claimJobForDispatch(e,n);if(!r)continue;i+=1;let a=this.handleClaimedJob(e,n,r).finally(()=>{e.inFlight.delete(n.id)});e.inFlight.set(n.id,a)}}resolveJobProject(e,t){let n=e.project??t.projectId;if(!n)throw Error(`Job ${t.slug||t.id} has no project. Expected projectId on org-wide listings.`);return n}async claimJobForDispatch(e,t){let n=this.resolveJobProject(e,t),r={jobKind:t.kind,jobId:t.id,name:t.slug,deviceId:e.deviceId,maxConcurrent:e.maxConcurrent},i;try{i=e.project?await this.requestJson({org:e.org,project:n,path:`/jobs/claim`,method:`POST`,body:r}):await this.requestOrgJson({org:e.org,path:`/jobs/claim`,method:`POST`,body:{...r,projectId:n}})}catch(e){if(e instanceof Error&&e.message===$t)return this.logDispatch(`skip ${t.kind} ${t.slug}: claimed by another runner`),null;throw e}if(i&&typeof i==`object`&&i.claimed===!0&&i.workflowId){let e=i.claimsAvailable;return typeof e==`number`&&this.logDispatch(`claims remaining after ${t.slug}: ${e}`),String(i.workflowId)}return this.logDispatch(`skip ${t.kind} ${t.slug}: claim returned no workflow id`),null}async handleClaimedJob(e,t,n){let r=this.resolveJobProject(e,t);this.logDispatch(`claimed ${t.kind} ${t.slug} (workflow ${n}); running handler`);let i=this.writeJobContext(t.projectSlug??r,t),a=an(t,{apiEndpoint:e.apiEndpoint,contextFile:i,deviceId:e.deviceId,dispatchSecretFile:e.dispatchSecretFile,org:e.org,project:r,workflowId:n}),o=0,s;try{o=await this.spawnHandler(e.handler,a)}catch(e){o=1,s=e instanceof Error?e.message:String(e)}finally{this.removeJobContext(i)}if(!s&&o!==0&&(s=`handler exited with code ${o}`),e.detach&&o===0){this.logDispatch(`launched ${t.kind} ${t.slug}; workflow ${n} releases its own lock`);return}let c=o===0?`completed`:`failed`;await this.releaseDispatch(e,r,n,c,s),this.logDispatch(`released ${t.kind} ${t.slug} as ${c}${s?`: ${s}`:``}`)}async releaseDispatch(e,t,n,r,i){let a={workflowId:n,status:r,error:i,deviceId:e.deviceId};try{e.project?await this.requestJson({org:e.org,project:t,path:`/jobs/release`,method:`POST`,body:a}):await this.requestOrgJson({org:e.org,path:`/jobs/release`,method:`POST`,body:{...a,projectId:t}})}catch(e){this.logDispatch(`release failed for workflow ${n}: ${e instanceof Error?e.message:String(e)}`)}}async runAgentPass(e,t,n){let r=this.writeDispatchContext(e.org,rn(t,{available:n}));this.logDispatch(`handing ${t.length} candidate(s) to agent, ${n} claim(s) available`);try{let t=await this.spawnHandler(e.agent,{AGIFLOW_ORGANIZATION_ID:e.org,AGIFLOW_DISPATCH_CONTEXT_FILE:r,AGIFLOW_DISPATCH_CLAIMS_AVAILABLE:String(n),BACKEND_AGIFLOW_API_ENDPOINT:e.apiEndpoint,...e.project?{AGIFLOW_PROJECT_ID:e.project}:{},...e.deviceId?{AGIFLOW_DEVICE_ID:e.deviceId}:{},...e.dispatchSecretFile?{AGIFLOW_DISPATCH_SECRET_FILE:e.dispatchSecretFile}:{}});this.logDispatch(t===0?`agent pass finished`:`agent pass exited with code ${t}`)}finally{this.removeJobContext(r)}}writeDispatchContext(e,t){let n=a.default.join(o.default.homedir(),`.agiflow`,`dispatch`,this.slugifyName(e));(0,i.mkdirSync)(n,{recursive:!0});let r=a.default.join(n,`context-${Date.now()}.xml`);return(0,i.writeFileSync)(r,t,`utf8`),r}spawnHandler(e,t){return new Promise((n,r)=>{let i=(0,c.spawn)(e,{shell:!0,stdio:[`ignore`,`inherit`,`inherit`],env:{...process.env,...t}});i.on(`error`,r),i.on(`close`,e=>n(e??0))})}writeJobContext(e,t){let n=a.default.join(o.default.homedir(),`.agiflow`,`dispatch`,this.slugifyName(e));(0,i.mkdirSync)(n,{recursive:!0});let r=a.default.join(n,`${t.slug||t.id}.json`);return(0,i.writeFileSync)(r,JSON.stringify(t,null,2),`utf8`),r}removeJobContext(e){try{(0,i.rmSync)(e,{force:!0})}catch{}}extractJobs(e){return e&&typeof e==`object`&&Array.isArray(e.items)?e.items:[]}logDispatch(e){console.error(`[dispatch] ${e}`)}async sleep(e,t){let n=0;for(;n<e&&!t.requested;){let t=Math.min(1e3,e-n);await new Promise(e=>setTimeout(e,t)),n+=t}}async resolveAutomationRoute(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project)}}resolveJobKind(e){if(e===`work-unit`||e===`task`)return e;throw Error(`Missing job kind. Pass --job-kind work-unit|task.`)}async resolveJobId(e,t){return e||(t===`work-unit`?this.resolveWorkUnitIdOption(void 0):this.resolveTaskIdOption(void 0))}slugifyName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);if(!t)throw Error(`Name must contain at least one letter or number.`);return t}async requestOrgJson(e){return this.requestUrlJson(`${this.configManager.getServerUrl().replace(/\/$/,``)}/api/v1/organizations/${e.org}/automation${e.path}`,e)}async requestJson(e){return this.requestUrlJson(`${this.configManager.getServerUrl().replace(/\/$/,``)}/api/v1/organizations/${e.org}/projects/${e.project}/automation${e.path}`,e)}async requestUrlJson(e,t){let n=await this.credentialsService.getApiKey();if(!n)throw Error(`No API key found. Set AGIFLOW_API_KEY, map AGIFLOW_API_KEY_ENV in .agiflowrc, or run authentication.`);let r=new URL(e);for(let[e,n]of Object.entries(t.query??{}))n!==void 0&&r.searchParams.set(e,String(n));let i=await fetch(r,{method:t.method??`GET`,headers:{"x-api-key":n,"x-client-type":`agent-cli`,"x-client-version":Kt,"Content-Type":`application/json`,Accept:`application/json`},body:t.body?JSON.stringify(t.body):void 0}),a=await i.json().catch(()=>({}));if(!i.ok){let e=typeof a==`object`&&a&&`message`in a?String(a.message):i.statusText;throw Error(e)}return a}};cn=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],cn);var ln=`AGIFLOW_ORGANIZATION_ID`,un=`AGIFLOW_PROJECT_ID`,dn=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`analytics`).description(`Project analytics JSON commands`);this.addCommonOptions(t.command(`tag-distribution`).description(`Get task tag distribution`)).option(`--prefix <prefix>`,`Filter tags by prefix`).option(`--tags <tags>`,`Comma-separated exact tag values`).option(`--targets-json <json>`,`Target ratios by tag, for gap analysis`).action(e=>this.tagDistribution(e)),this.addCommonOptions(t.command(`assignee-distribution`).description(`Get task assignee distribution`)).option(`--group-by-tag <prefix>`,`Tag prefix to cross-tabulate per assignee`).action(e=>this.assigneeDistribution(e)),this.addCommonOptions(t.command(`timeline-distribution`).description(`Get task timeline distribution`)).option(`--granularity <granularity>`,`Bucket size (day|week|month)`,`week`).option(`--group-by-tag <prefix>`,`Tag prefix to cross-tabulate per time bucket`).action(e=>this.timelineDistribution(e))}async tagDistribution(e){await this.runJsonOnly(async()=>{let t=await this.callAnalyticsTool(`get_tag_distribution`,{...this.commonToolArgs(e),prefix:e.prefix,tags:this.parseCsv(e.tags),targets:this.parseTargets(e.targetsJson)},e);this.printJson(t)})}async assigneeDistribution(e){await this.runJsonOnly(async()=>{let t=await this.callAnalyticsTool(`get_assignee_distribution`,{...this.commonToolArgs(e),groupByTag:e.groupByTag},e);this.printJson(t)})}async timelineDistribution(e){await this.runJsonOnly(async()=>{let t=await this.callAnalyticsTool(`get_timeline_distribution`,{...this.commonToolArgs(e),granularity:e.granularity,groupByTag:e.groupByTag},e);this.printJson(t)})}async callAnalyticsTool(e,t,n){this.requireJsonFormat(n.format,`analytics commands`),await this.setupClient();let{serverUrl:r,apiKey:i}=await this.resolveApiClientContext(),{org:a,projectId:o}=await this.resolveProjectScope(n);return Ot({serverUrl:r,apiKey:i,organizationId:a,projectId:o,toolName:e,toolArgs:this.compact(t)})}addCommonOptions(e){return e.addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,ln)).addOption(this.buildEnvIdOption(`--project <projectIdOrSlug>`,`Project ID or slug`,un)).requiredOption(`--start-date <date>`,`Start of date range (ISO 8601)`).requiredOption(`--end-date <date>`,`End of date range (ISO 8601)`).option(`--date-field <field>`,`Date field (createdAt|dueDate|completedAt)`).option(`--status-filter <filter>`,`Status filter (active|all)`).option(`--format <format>`,`Output format (json)`,`json`)}async resolveProjectScope(e){let t=await this.resolveOrganizationId(e.org);return{org:t,projectId:(await O({organizationId:t,id:await this.resolveProjectIdOption(e.project)})).id}}commonToolArgs(e){return this.requireJsonFormat(e.format,`analytics commands`),this.compact({org:e.org,project:e.project,startDate:e.startDate,endDate:e.endDate,dateField:e.dateField,statusFilter:e.statusFilter,format:e.format})}parseTargets(e){let t=this.parseJsonFlag(e,`--targets-json`);if(t!==void 0){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`--targets-json must be an object.`);return t}}compact(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&![`org`,`project`,`format`].includes(n)&&(t[n]=r);return t}};dn=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],dn);var fn=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/vault`,{method:`GET`,params:e})).data,pn=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/vault/{key}`,{method:`GET`,params:e})).data,mn=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/vault/{key}`,{method:`PUT`,params:e,body:t})).data,hn=async e=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/vault/{key}`,{method:`DELETE`,params:e})).data,gn=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/vault/bulk`,{method:`POST`,params:e,body:t})).data,_n=`AGIFLOW_ORGANIZATION_ID`,vn=`AGIFLOW_PROJECT_ID`,yn=`AGIFLOW_ENVIRONMENT_ID`,bn=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`vault`).description(`Vault JSON commands`);this.addJsonFormatOption(this.addVaultScopeOptions(t.command(`list`).description(`List vault entries`))).action(e=>this.list(e)),this.addJsonFormatOption(this.addVaultScopeOptions(t.command(`get <key>`).description(`Get a vault entry`))).action((e,t)=>this.get(e,t)),this.addJsonFormatOption(this.addVaultScopeOptions(t.command(`set <key>`).description(`Set a vault entry`))).requiredOption(`--value <value>`,`Vault entry value`).option(`--description <description>`,`Vault entry description`).option(`--secret`,`Mask this entry in list/get responses`).action((e,t)=>this.set(e,t)),this.addJsonFormatOption(this.addVaultScopeOptions(t.command(`delete <key>`).description(`Delete a vault entry`))).action((e,t)=>this.delete(e,t)),this.addJsonFormatOption(this.addVaultScopeOptions(t.command(`bulk-upsert`).description(`Bulk upsert vault entries`))).requiredOption(`--entries-json <json>`,`Array of entries or { "entries": [...] }`).action(e=>this.bulkUpsert(e))}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`vault commands`),await this.setupClient();let t=await this.resolveVaultScope(e),n=await fn({organizationId:t.org,projectId:t.project,environmentId:t.environment});this.printJson({entries:n,total:Array.isArray(n)?n.length:0})})}async get(e,t){await this.runJsonOnly(async()=>{this.requireJsonFormat(t.format,`vault commands`),await this.setupClient();let n=await this.resolveVaultScope(t),r=await pn({organizationId:n.org,projectId:n.project,environmentId:n.environment,key:e});this.printJson({entry:r})})}async set(e,t){await this.runJsonOnly(async()=>{this.requireJsonFormat(t.format,`vault commands`),await this.setupClient();let n=await this.resolveVaultScope(t),r=await mn({organizationId:n.org,projectId:n.project,environmentId:n.environment,key:e},{value:t.value,description:t.description,isSecret:t.secret===!0});this.printJson({entry:r})})}async delete(e,t){await this.runJsonOnly(async()=>{this.requireJsonFormat(t.format,`vault commands`),await this.setupClient();let n=await this.resolveVaultScope(t);await hn({organizationId:n.org,projectId:n.project,environmentId:n.environment,key:e}),this.printJson({deleted:!0,key:e})})}async bulkUpsert(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`vault commands`),await this.setupClient();let t=await this.resolveVaultScope(e),n=this.parseEntries(e.entriesJson),r=await gn({organizationId:t.org,projectId:t.project,environmentId:t.environment},{entries:n});this.printJson({entries:r,total:Array.isArray(r)?r.length:0})})}addVaultScopeOptions(e){return e.addOption(this.buildEnvIdOption(`--org <organizationId>`,`Organization ID`,_n)).addOption(this.buildEnvIdOption(`--project <projectId>`,`Project ID`,vn)).addOption(this.buildEnvIdOption(`--environment <environmentId>`,`Environment ID`,yn))}addJsonFormatOption(e){return e.option(`--format <format>`,`Output format (json)`,`json`)}async resolveVaultScope(e){return{org:await this.resolveOrganizationId(e.org),project:await this.resolveProjectIdOption(e.project),environment:await this.resolveEnvironmentId(e.environment)}}async resolveEnvironmentId(e){let t=e??process.env.AGIFLOW_ENVIRONMENT_ID;if(!t)throw Error(`Missing environment ID. Pass --environment or set AGIFLOW_ENVIRONMENT_ID.`);return t}parseEntries(e){let t=this.parseJsonFlag(e,`--entries-json`),n=t&&typeof t==`object`&&!Array.isArray(t)&&`entries`in t?t.entries:t;if(!Array.isArray(n))throw Error(`--entries-json must be an array or an object containing entries.`);return n.map((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`entries[${t}] must be an object.`);let n=e;if(typeof n.key!=`string`||!n.key)throw Error(`entries[${t}].key is required.`);if(typeof n.value!=`string`||!n.value)throw Error(`entries[${t}].value is required.`);return{key:n.key,value:n.value,description:typeof n.description==`string`?n.description:void 0,isSecret:typeof n.isSecret==`boolean`&&n.isSecret}})}};bn=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],bn);var xn=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/dependencies`,{method:`GET`,params:e,query:t})).data,Sn=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/projects/{projectId}/dependencies`,{method:`PUT`,params:e,body:t})).data,Cn=`AGIFLOW_ORGANIZATION_ID`,wn=`AGIFLOW_PROJECT_ID`,Tn=r.z.array(r.z.object({kind:r.z.enum([`task`,`work-unit`]),reference:r.z.string().min(1)})),En=class extends D{constructor(e,t){super(e,t)}register(e){let t=e.command(`dependency`).description(`Inspect and replace work-item dependencies`);this.addCommonOptions(t.command(`list`).description(`List dependencies`)).action(e=>this.list(e)),this.addCommonOptions(t.command(`set`).description(`Replace dependencies`)).requiredOption(`--dependencies-json <json>`,`JSON dependency array`).action(e=>this.set(e))}addCommonOptions(e){return this.addEnvIdOption(e,`--org <organizationId>`,`Organization ID`,Cn),this.addEnvIdOption(e,`--project <projectIdOrSlug>`,`Project ID or slug`,wn),e.requiredOption(`--source-kind <kind>`,`Source kind (task|work-unit)`).requiredOption(`--source <idOrSlug>`,`Source ID or slug`).option(`--format <format>`,`Output format (json|table)`,`json`)}async list(e){await this.runJsonOnly(async()=>{let t=this.parseKind(e.sourceKind),n=await this.resolveRoute(e),r=await xn(n,{sourceKind:t,sourceId:await this.resolveSourceId(n,t,e.source)});this.print(r,e.format)})}async set(e){await this.runJsonOnly(async()=>{let t=this.parseJsonFlag(e.dependenciesJson,`--dependencies-json`),n=Tn.parse(t),r=this.parseKind(e.sourceKind),i=await this.resolveRoute(e),a=await Sn(i,{sourceKind:r,sourceId:await this.resolveSourceId(i,r,e.source),dependencies:n});this.print(a,e.format)})}async resolveRoute(e){await this.setupClient();let t=await this.resolveOrganizationId(e.org);return{organizationId:t,projectId:(await O({organizationId:t,id:await this.resolveProjectIdOption(e.project)})).id}}async resolveSourceId(e,t,n){return t===`task`?(await _t({...e,taskId:n})).id:(await Ct({...e,workUnitId:n})).id}parseKind(e){return r.z.enum([`task`,`work-unit`]).parse(e)}print(e,t){if((t??`json`)===`json`){this.printJson(e);return}if(t!==`table`)throw Error(`--format must be json or table.`);console.log([`kind`,`id`,`key`,`status`,`project`,`reference`].join(` `));for(let t of e.dependencies)console.log(this.toRow(t).join(` `))}toRow(e){return[e.kind,e.id??``,e.key??``,e.status??``,e.projectSlug??e.projectId??``,e.reference]}};En=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],En),r.z.enum([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`]);var Dn=r.z.union([r.z.literal(200),r.z.literal(201),r.z.literal(204),r.z.literal(400),r.z.literal(401),r.z.literal(403),r.z.literal(404),r.z.literal(409),r.z.literal(422),r.z.literal(500),r.z.literal(502),r.z.literal(503)]);r.z.enum([`application/json`,`application/xml`,`text/plain`,`multipart/form-data`]),r.z.object({error:r.z.string(),message:r.z.string().optional(),statusCode:Dn,details:r.z.record(r.z.string(),r.z.unknown()).optional()}),r.z.object({total:r.z.number(),limit:r.z.number(),offset:r.z.number(),hasNext:r.z.boolean().optional(),hasPrev:r.z.boolean().optional()});var On=r.z.object({state:r.z.string().optional(),code:r.z.string().optional()}).strict();r.z.object({authorizationUrl:r.z.string().url()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1)}).strict();var kn=r.z.object({id:r.z.enum([`apple`,`google`,`github`]),displayName:r.z.string(),flow:r.z.enum([`native-id-token`,`oauth-browser`])}).strict();r.z.object({emailPassword:r.z.boolean(),providers:r.z.array(kn)}).strict(),r.z.object({ok:r.z.boolean()}).strict(),r.z.object({name:r.z.string().min(2).max(80),email:r.z.string().max(160).email(),subject:r.z.string().min(2).max(120),message:r.z.string().min(10).max(4e3)}).strict(),r.z.object({assetName:r.z.string()}).strict();var An=r.z.object({id:r.z.string(),name:r.z.string(),slug:r.z.string().nullable(),role:r.z.string()}).strict();r.z.object({organizations:r.z.array(An)}).strict(),r.z.object({api_key:r.z.string().describe(`The API key for the agent`),key_id:r.z.string().describe(`ID of the API key`),organization_id:r.z.string().describe(`Organization ID`),organization_name:r.z.string().describe(`Organization name`),agent_user_id:r.z.string().describe(`User ID of the agent`),expires_at:r.z.number().describe(`Expiration timestamp in milliseconds`)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID to exchange token for`)}).strict(),r.z.object({success:r.z.boolean(),message:r.z.string()}).strict(),r.z.object({installationId:r.z.string().min(1)}).strict(),r.z.union([r.z.object({platform:r.z.string(),token:r.z.string().min(1),apnsEnvironment:r.z.enum([`sandbox`,`production`])}).strict(),r.z.object({platform:r.z.string(),token:r.z.string().min(1)}).strict()]),r.z.object({image:r.z.string().url()}).strict();var jn=r.z.object({organizationId:r.z.string(),projectId:r.z.string().nullable(),workUnitId:r.z.string().nullable(),taskId:r.z.string().nullable(),resourcePath:r.z.string(),scopes:r.z.string().nullable(),clientId:r.z.string(),expiresAt:r.z.string()}).strict(),Mn=r.z.object({id:r.z.string(),name:r.z.string(),slug:r.z.string(),role:r.z.string()}).strict();r.z.object({resourceContext:jn.nullable(),organizations:r.z.array(Mn)}).strict();var Nn=r.z.object({code_challenge:r.z.string().min(1)}).strict();r.z.object({success:r.z.boolean(),resourcePath:r.z.string(),organizationId:r.z.string(),projectId:r.z.string().nullable(),workUnitId:r.z.string().nullable(),taskId:r.z.string().nullable()}).strict(),r.z.object({codeChallenge:r.z.string().min(1),organizationId:r.z.string().optional(),clientId:r.z.string().optional(),projectId:r.z.string().optional(),workUnitId:r.z.string().optional(),taskId:r.z.string().optional()}).strict(),r.z.object({id:r.z.string(),name:r.z.string(),slug:r.z.string()}).catchall(r.z.unknown()),r.z.object({name:r.z.string().min(2).max(80).describe(`Organization display name`)}).strict(),r.z.object({version:r.z.string()}).strict();var P=r.z.object({}).strict();r.z.object({version:r.z.string()}).strict();var F=r.z.object({}).strict();r.z.object({mcpServers:r.z.record(r.z.string(),r.z.object({type:r.z.enum([`stdio`,`http`,`sse`]),command:r.z.string().optional(),args:r.z.array(r.z.string()).optional(),url:r.z.string().optional(),env:r.z.record(r.z.string(),r.z.string()).optional(),disabled:r.z.boolean().optional()}).strict())}).strict();var Pn=r.z.object({id:r.z.string(),mcpServerId:r.z.string(),serverName:r.z.string(),description:r.z.string().nullable(),isInternal:r.z.boolean(),scope:r.z.enum([`global`,`organization`,`project`,`task`]),isEnabled:r.z.boolean(),allowedTools:r.z.array(r.z.string()).nullable(),tools:r.z.array(r.z.any()),hasProgressiveDisclosure:r.z.boolean(),progressiveDisclosure:r.z.boolean(),disabledTools:r.z.array(r.z.string()).nullable(),disabledResources:r.z.array(r.z.string()).nullable(),serverConfig:r.z.record(r.z.string(),r.z.unknown()).nullable(),priority:r.z.number()}).strict();r.z.object({servers:r.z.array(Pn),projectId:r.z.string().optional()}).strict();var Fn=r.z.object({projectId:r.z.string().optional(),taskId:r.z.string().optional(),workUnitId:r.z.string().optional()}).strict();r.z.object({id:r.z.string(),organizationId:r.z.string(),mcpServerId:r.z.string(),serverConfig:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledResources:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),isEnabled:r.z.boolean(),priority:r.z.number().min(-9007199254740991).max(9007199254740991).int(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),mcpServerId:r.z.string().min(1),serverConfig:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResources:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().optional(),priority:r.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({serverName:r.z.string(),isEnabled:r.z.boolean(),disabledTools:r.z.array(r.z.string()).nullable(),disabledResources:r.z.array(r.z.string()).nullable(),serverConfig:r.z.record(r.z.string(),r.z.unknown()),priority:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),serverName:r.z.string().min(1)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1)}).strict(),r.z.object({serverConfig:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResources:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().optional(),priority:r.z.number().min(-9007199254740991).max(9007199254740991).int().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({logo:r.z.string().url()}).strict(),r.z.object({id:r.z.string(),organizationId:r.z.string(),projectId:r.z.string().nullable(),taskId:r.z.string().nullable(),workUnitId:r.z.string().nullable(),progressiveDisclosure:r.z.boolean(),proxyEnabled:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}).strict();var I=r.z.object({projectId:r.z.string().optional(),taskId:r.z.string().optional(),workUnitId:r.z.string().optional()}).strict();r.z.object({progressiveDisclosure:r.z.boolean(),proxyEnabled:r.z.boolean().optional()}).strict(),r.z.object({progressiveDisclosure:r.z.boolean(),proxyEnabled:r.z.boolean().optional()}).strict();var In=r.z.object({id:r.z.string(),organizationId:r.z.string().nullable(),serverName:r.z.string(),displayName:r.z.string(),description:r.z.string().nullable(),isInternal:r.z.boolean(),serverConfig:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),availableTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),availableResources:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({items:r.z.array(In)}).strict();var Ln=r.z.union([r.z.object({type:r.z.string()}).strict(),r.z.object({type:r.z.string(),header:r.z.string().min(1)}).strict(),r.z.object({type:r.z.string(),scopes:r.z.array(r.z.string()).optional(),authorizationServer:r.z.string().url().optional(),clientId:r.z.string().optional()}).strict()]),Rn=r.z.object({type:r.z.string(),url:r.z.string().url(),headers:r.z.record(r.z.string(),r.z.string()).optional(),auth:Ln}).strict();r.z.object({serverName:r.z.string().min(1),displayName:r.z.string().min(1),description:r.z.string().optional(),serverConfig:Rn}).strict(),r.z.object({mcpServerId:r.z.string(),serverName:r.z.string(),tools:r.z.array(r.z.object({name:r.z.string(),title:r.z.string().optional(),description:r.z.string().optional(),inputSchema:r.z.record(r.z.string(),r.z.unknown()).optional(),outputSchema:r.z.record(r.z.string(),r.z.unknown()).optional(),annotations:r.z.record(r.z.string(),r.z.unknown()).optional()}).strict()),catalogFetchedAt:r.z.string().optional(),catalogUnavailable:r.z.boolean().optional(),catalogError:r.z.string().optional(),authorizationRequired:r.z.boolean().optional(),authorizationUrl:r.z.string().optional()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1)}).strict(),r.z.object({apiKey:r.z.string().min(1)}).strict(),r.z.object({serverName:r.z.string().min(1).optional(),displayName:r.z.string().min(1).optional(),description:r.z.string().optional(),serverConfig:Rn.optional()}).strict(),r.z.object({mcpServers:r.z.record(r.z.string(),r.z.object({type:r.z.enum([`stdio`,`http`,`sse`]),command:r.z.string().optional(),args:r.z.array(r.z.string()).optional(),url:r.z.string().optional(),env:r.z.record(r.z.string(),r.z.string()).optional(),disabled:r.z.boolean().optional()}).strict())}).strict(),r.z.object({taskId:r.z.string().min(1)}).strict(),r.z.object({id:r.z.string(),taskId:r.z.string(),projectId:r.z.string(),organizationId:r.z.string(),mcpServerId:r.z.string(),serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),allowedTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),isEnabled:r.z.boolean().nullable(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({mcpServerId:r.z.string().min(1),serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),allowedTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().nullable().optional(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({servers:r.z.array(r.z.object({mcpServerId:r.z.string(),serverName:r.z.string(),tools:r.z.array(r.z.object({name:r.z.string(),title:r.z.string().optional(),description:r.z.string().optional(),inputSchema:r.z.record(r.z.string(),r.z.unknown()).optional(),outputSchema:r.z.record(r.z.string(),r.z.unknown()).optional(),annotations:r.z.record(r.z.string(),r.z.unknown()).optional()}).strict()),catalogFetchedAt:r.z.string().optional(),catalogUnavailable:r.z.boolean().optional(),catalogError:r.z.string().optional(),authorizationRequired:r.z.boolean().optional(),authorizationUrl:r.z.string().optional()}).strict())}).strict(),r.z.object({mcpServerId:r.z.string(),serverName:r.z.string(),isEnabled:r.z.boolean(),disabledTools:r.z.array(r.z.string()).nullable(),disabledResources:r.z.array(r.z.string()).nullable(),allowedTools:r.z.array(r.z.string()).nullable(),serverConfig:r.z.record(r.z.string(),r.z.unknown()),priority:r.z.number()}).strict(),r.z.object({taskId:r.z.string().min(1),id:r.z.string().min(1)}).strict(),r.z.object({serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),allowedTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().nullable().optional(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({mcpServers:r.z.record(r.z.string(),r.z.object({type:r.z.enum([`stdio`,`http`,`sse`]),command:r.z.string().optional(),args:r.z.array(r.z.string()).optional(),url:r.z.string().optional(),headers:r.z.record(r.z.string(),r.z.string()).optional(),env:r.z.record(r.z.string(),r.z.string()).optional(),disabled:r.z.boolean().optional()}).strict())}).strict(),r.z.object({workUnitId:r.z.string().min(1)}).strict(),r.z.object({id:r.z.string(),workUnitId:r.z.string(),projectId:r.z.string(),organizationId:r.z.string(),mcpServerId:r.z.string(),serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),isEnabled:r.z.boolean().nullable(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({workUnitId:r.z.string().min(1),id:r.z.string().min(1)}).strict(),r.z.object({serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().nullable().optional(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),workUnitId:r.z.string().min(1)}).strict();var zn=r.z.object({id:r.z.string(),title:r.z.string(),slug:r.z.string(),description:r.z.string().nullable(),projectId:r.z.string(),parentWorkUnitId:r.z.string().nullable(),type:r.z.enum([`epic`,`feature`,`initiative`]).nullable(),priority:r.z.enum([`low`,`medium`,`high`]).nullable(),statusId:r.z.string().nullable(),status:r.z.string().describe(`Resolved project status key`),ownerId:r.z.string(),estimatedEffort:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),startDate:r.z.string().nullable(),targetDate:r.z.string().nullable(),completedAt:r.z.string().nullable(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),taskCount:r.z.number().optional().describe(`Number of tasks in this work unit`)}).strict(),Bn=r.z.object({title:r.z.string().min(1).max(255).optional().describe(`Work unit title`),slug:r.z.string().optional().describe(`Work unit slug`),description:r.z.string().nullable().optional(),parentWorkUnitId:r.z.string().nullable().optional(),type:r.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:r.z.enum([`low`,`medium`,`high`]).nullable().optional(),status:r.z.string().min(1).nullable().optional(),ownerId:r.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:r.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:r.z.string().nullable().optional(),targetDate:r.z.string().nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict();r.z.object({action:r.z.union([r.z.string(),r.z.string(),r.z.string()]),artifactId:r.z.string().min(1)}).strict();var Vn=r.z.object({id:r.z.string(),organizationId:r.z.string().nullable(),projectId:r.z.string().nullable(),isStartedState:r.z.boolean(),isCompletionState:r.z.boolean(),isTerminalState:r.z.boolean(),isBlockedState:r.z.boolean(),isAgentPickable:r.z.boolean(),key:r.z.string(),name:r.z.string(),description:r.z.string().nullable(),position:r.z.number().min(-9007199254740991).max(9007199254740991).int(),color:r.z.string().nullable(),isActive:r.z.boolean(),isDefault:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({items:r.z.array(Vn),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1).optional()}).strict(),r.z.object({statusIds:r.z.array(r.z.string().min(1))}).strict(),r.z.object({organizationId:r.z.string().min(1).nullable().optional(),projectId:r.z.string().nullable().optional(),isStartedState:r.z.boolean().optional(),isCompletionState:r.z.boolean().optional(),isTerminalState:r.z.boolean().optional(),isBlockedState:r.z.boolean().optional(),isAgentPickable:r.z.boolean().optional(),key:r.z.string().min(1).max(50),name:r.z.string().min(1).max(100),description:r.z.string().max(500).nullable().optional(),position:r.z.number().min(0).max(9007199254740991).int().optional(),color:r.z.string().nullable().optional(),isActive:r.z.boolean().optional(),isDefault:r.z.boolean().optional()}).strict();var Hn=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),search:r.z.string().optional(),sort:r.z.enum([`createdAt`,`updatedAt`,`name`,`position`,`key`]),order:r.z.enum([`asc`,`desc`])}).strict();r.z.object({projectId:r.z.string().nullable().optional(),isStartedState:r.z.boolean().optional(),isCompletionState:r.z.boolean().optional(),isTerminalState:r.z.boolean().optional(),isBlockedState:r.z.boolean().optional(),isAgentPickable:r.z.boolean().optional(),key:r.z.string().min(1).max(50).optional(),name:r.z.string().min(1).max(100).optional(),description:r.z.string().max(500).nullable().optional(),position:r.z.number().min(0).max(9007199254740991).int().optional(),color:r.z.string().nullable().optional(),isActive:r.z.boolean().optional(),isDefault:r.z.boolean().optional()}).strict();var Un=r.z.object({id:r.z.string(),organizationId:r.z.string().nullable(),name:r.z.string(),displayName:r.z.string(),description:r.z.string().nullable(),executable:r.z.string(),defaultArgs:r.z.string().nullable(),isEnabled:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`)}).strict(),r.z.object({name:r.z.string().min(1).max(255),displayName:r.z.string().min(1).max(255),description:r.z.string().optional(),executable:r.z.string().min(1).max(255),defaultArgs:r.z.string().optional(),isEnabled:r.z.boolean()}).strict(),r.z.object({items:r.z.array(Un),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Wn=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),search:r.z.string().optional(),sort:r.z.enum([`createdAt`,`updatedAt`,`name`,`displayName`]),order:r.z.enum([`asc`,`desc`]),isEnabled:r.z.boolean()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1)}).strict(),r.z.object({name:r.z.string().min(1).max(255).optional(),displayName:r.z.string().min(1).max(255).optional(),description:r.z.string().optional(),executable:r.z.string().min(1).max(255).optional(),defaultArgs:r.z.string().optional(),isEnabled:r.z.boolean().optional()}).strict();var Gn=r.z.object({id:r.z.string(),organizationId:r.z.string(),agentTypeId:r.z.string(),name:r.z.string(),description:r.z.string().nullable(),isActive:r.z.boolean(),isDefault:r.z.boolean(),metadata:r.z.record(r.z.string(),r.z.unknown()).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`)}).strict(),r.z.object({agentTypeId:r.z.string().min(1),name:r.z.string().min(1).max(255),description:r.z.string().max(1e3).nullable().optional(),isDefault:r.z.boolean()}).strict(),r.z.object({items:r.z.array(Gn),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Kn=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),search:r.z.string().optional(),sort:r.z.enum([`createdAt`,`updatedAt`,`name`]),order:r.z.enum([`asc`,`desc`])}).strict(),qn=r.z.object({agentTypeId:r.z.string().min(1)}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string()}).strict(),r.z.record(r.z.string(),r.z.string()),r.z.object({name:r.z.string().min(1).max(255).optional(),description:r.z.string().max(1e3).nullable().optional(),isDefault:r.z.boolean().optional()}).strict(),r.z.object({}).strict();var Jn=r.z.object({id:r.z.string(),profileId:r.z.string(),credentialType:r.z.string(),customName:r.z.string().nullable(),r2Key:r.z.string(),size:r.z.number().max(9007199254740991).int(),checksum:r.z.string(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string(),type:r.z.enum([`gemini`,`codex`,`custom`]).optional()}).strict();var Yn=r.z.object({originalSize:r.z.number().max(9007199254740991).int(),fileCount:r.z.number().min(0).max(9007199254740991).int(),checksum:r.z.string().min(64).max(64)}).strict();r.z.object({credentialType:r.z.enum([`gemini`,`codex`,`custom`]),customName:r.z.string().min(1).max(255).optional(),data:r.z.string().min(1),metadata:Yn}).strict(),r.z.object({items:r.z.array(Jn),total:r.z.number().min(0).max(9007199254740991).int()}).strict();var Xn=r.z.object({download:r.z.boolean()}).strict(),Zn=r.z.object({id:r.z.string(),agentProfileId:r.z.string(),key:r.z.string(),value:r.z.string(),description:r.z.string().nullable(),isRequired:r.z.boolean(),isSecret:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.array(Zn),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),profileId:r.z.string()}).strict(),r.z.record(r.z.string(),r.z.string()),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),profileId:r.z.string(),key:r.z.string()}).strict(),r.z.object({key:r.z.string().min(1).max(255),value:r.z.string().min(1),description:r.z.string().max(1e3).optional(),isRequired:r.z.boolean(),isSecret:r.z.boolean()}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({variables:r.z.array(r.z.object({key:r.z.string().min(1).max(255),value:r.z.string().min(1),description:r.z.string().max(1e3).optional(),isRequired:r.z.boolean(),isSecret:r.z.boolean()}).strict())}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string()}).strict(),r.z.object({url:r.z.string().url(),state:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),provider:r.z.enum([`github`,`gitlab`])}).strict(),r.z.object({redirectUri:r.z.string().url()}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({code:r.z.string().min(1),state:r.z.string().min(1)}).strict();var Qn=r.z.object({id:r.z.string(),organizationId:r.z.string(),provider:r.z.enum([`github`,`gitlab`]),scopes:r.z.array(r.z.string()),metadata:r.z.record(r.z.string(),r.z.unknown()).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.array(Qn),r.z.record(r.z.string(),r.z.string());var $n=r.z.object({id:r.z.number(),name:r.z.string(),fullName:r.z.string(),cloneUrl:r.z.string(),sshUrl:r.z.string(),defaultBranch:r.z.string(),private:r.z.boolean(),owner:r.z.object({login:r.z.string(),avatarUrl:r.z.string().nullable()}).strict(),description:r.z.string().nullable(),updatedAt:r.z.string()}).strict();r.z.object({items:r.z.array($n),total:r.z.number()}).strict();var er=r.z.object({type:r.z.enum([`all`,`owner`,`public`,`private`,`member`]),sort:r.z.enum([`created`,`updated`,`pushed`,`full_name`]),direction:r.z.enum([`asc`,`desc`]),per_page:r.z.number().min(1).max(100),page:r.z.number().min(1)}).strict(),tr=r.z.object({name:r.z.string(),protected:r.z.boolean()}).strict();r.z.object({items:r.z.array(tr),total:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),owner:r.z.string().min(1),repo:r.z.string().min(1)}).strict();var nr=r.z.object({per_page:r.z.number().min(1).max(100),page:r.z.number().min(1)}).strict(),L=r.z.enum([`work-unit`,`task`]),rr=r.z.object({id:r.z.string(),kind:L,slug:r.z.string(),title:r.z.string(),description:r.z.string().nullable(),status:r.z.string(),priority:r.z.string().nullable(),createdAt:r.z.string(),payload:r.z.record(r.z.string(),r.z.unknown()),dependencies:r.z.array(r.z.object({kind:L,id:r.z.string().nullable(),key:r.z.string().nullable(),status:r.z.string().nullable(),projectId:r.z.string().nullable(),projectSlug:r.z.string().nullable(),reference:r.z.string()}).strict()),projectId:r.z.string(),projectSlug:r.z.string(),templateId:r.z.string().nullable()}).strict();r.z.object({items:r.z.array(rr)}).strict();var ir=r.z.object({id:r.z.string(),kind:L,slug:r.z.string(),title:r.z.string(),description:r.z.string().nullable(),status:r.z.string(),priority:r.z.string().nullable(),createdAt:r.z.string(),payload:r.z.record(r.z.string(),r.z.unknown()),dependencies:r.z.array(r.z.object({kind:L,id:r.z.string().nullable(),key:r.z.string().nullable(),status:r.z.string().nullable(),projectId:r.z.string().nullable(),projectSlug:r.z.string().nullable(),reference:r.z.string()}).strict())}).strict();r.z.object({claimed:r.z.boolean(),workflowId:r.z.string().optional(),job:ir.nullable().optional(),claimsAvailable:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),dryRun:r.z.boolean().optional(),lock:r.z.object({state:r.z.enum([`available`,`held`,`stale`]),workflow:r.z.record(r.z.string(),r.z.unknown()).nullable()}).strict().optional()}).strict(),r.z.object({projectId:r.z.string().min(1),jobKind:r.z.enum([`work-unit`,`task`]),jobId:r.z.string().min(1),name:r.z.string().min(1),deviceId:r.z.string().optional(),maxConcurrent:r.z.number().max(9007199254740991).int().optional(),dryRun:r.z.boolean().optional()}).strict(),r.z.object({released:r.z.boolean(),workflowId:r.z.string(),status:r.z.enum([`completed`,`failed`]),job:ir.nullable()}).strict(),r.z.object({projectId:r.z.string().min(1),workflowId:r.z.string().min(1),status:r.z.enum([`completed`,`failed`]),error:r.z.string().optional(),deviceId:r.z.string().optional()}).strict(),r.z.object({workflowId:r.z.string(),lastHeartbeatAt:r.z.string().nullable()}).strict(),r.z.object({projectId:r.z.string().min(1),workflowId:r.z.string().min(1)}).strict();var ar=r.z.object({agentTypeId:r.z.string(),name:r.z.string(),displayName:r.z.string(),description:r.z.string().nullable(),executable:r.z.string(),defaultArgs:r.z.string().nullable(),isEnabled:r.z.boolean(),hostEnabled:r.z.boolean(),dockerEnabled:r.z.boolean(),hostAuthed:r.z.boolean(),dockerAuthed:r.z.boolean()}).strict(),or=r.z.object({id:r.z.string(),status:r.z.string(),lastHeartbeat:r.z.string().datetime(),isActive:r.z.boolean()}).strict(),sr=r.z.object({id:r.z.string(),name:r.z.string(),type:r.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:r.z.string().optional(),version:r.z.string().optional(),metadata:r.z.record(r.z.string(),r.z.string()).optional(),is_active:r.z.boolean(),last_seen_at:r.z.string().datetime().optional(),created_at:r.z.string().datetime(),updated_at:r.z.string().datetime(),agentTypes:r.z.array(ar).optional(),activeDaemon:or.nullable().optional()}).strict();r.z.object({devices:r.z.array(sr),total:r.z.number()}).strict();var cr=r.z.object({agentType:r.z.string().min(1),hostEnabled:r.z.boolean(),dockerEnabled:r.z.boolean(),hostAuthed:r.z.boolean(),dockerAuthed:r.z.boolean()}).strict();r.z.object({name:r.z.string().min(1),deviceGuid:r.z.string().min(1).optional(),type:r.z.enum([`cli`,`desktop`,`mobile`,`web`]),platform:r.z.string().optional(),version:r.z.string().optional(),metadata:r.z.record(r.z.string(),r.z.string()).optional(),agentTypes:r.z.array(cr).optional()}).strict();var lr=r.z.object({id:r.z.string(),name:r.z.string(),projectId:r.z.string(),status:r.z.enum([`running`,`completed`,`failed`]),startedAt:r.z.string(),completedAt:r.z.string().nullable()}).strict();r.z.object({devices:r.z.array(r.z.object({deviceId:r.z.string(),name:r.z.string(),platform:r.z.string().optional(),architecture:r.z.string().optional(),version:r.z.string().optional(),daemonStatus:r.z.enum([`starting`,`idle`,`busy`,`offline`]).nullable(),lastHeartbeat:r.z.string().nullable(),isOnline:r.z.boolean(),runningCount:r.z.number().min(0).max(9007199254740991).int(),failedTodayCount:r.z.number().min(0).max(9007199254740991).int(),workflows:r.z.array(lr)}).strict()),unassigned:r.z.object({runningCount:r.z.number().min(0).max(9007199254740991).int(),failedTodayCount:r.z.number().min(0).max(9007199254740991).int(),workflows:r.z.array(lr)}).strict().nullable(),total:r.z.number().min(0).max(9007199254740991).int()}).strict();var ur=r.z.object({limit:r.z.number().min(1).max(50).int()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),deviceId:r.z.string().min(1)}).strict(),r.z.object({name:r.z.string().min(1).optional(),metadata:r.z.record(r.z.string(),r.z.string()).optional(),is_active:r.z.boolean().optional()}).strict();var dr=r.z.object({id:r.z.string(),deviceId:r.z.string(),agentTypeId:r.z.string(),hostEnabled:r.z.boolean(),dockerEnabled:r.z.boolean(),hostAuthed:r.z.boolean(),dockerAuthed:r.z.boolean(),createdAt:r.z.string().datetime(),updatedAt:r.z.string().datetime()}).strict();r.z.object({items:r.z.array(dr),total:r.z.number()}).strict();var fr=r.z.object({deviceId:r.z.string().optional(),agentTypeId:r.z.string().optional(),hostEnabled:r.z.boolean().optional(),dockerEnabled:r.z.boolean().optional(),hostAuthed:r.z.boolean().optional(),dockerAuthed:r.z.boolean().optional(),limit:r.z.number().min(1).max(100),offset:r.z.number().min(0)}).strict();r.z.object({deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1),hostEnabled:r.z.boolean(),dockerEnabled:r.z.boolean(),hostAuthed:r.z.boolean(),dockerAuthed:r.z.boolean()}).strict(),r.z.object({hostEnabled:r.z.boolean().optional(),dockerEnabled:r.z.boolean().optional(),hostAuthed:r.z.boolean().optional(),dockerAuthed:r.z.boolean().optional()}).strict(),r.z.object({hostEnabled:r.z.boolean().optional(),dockerEnabled:r.z.boolean().optional(),hostAuthed:r.z.boolean().optional(),dockerAuthed:r.z.boolean().optional()}).strict();var pr=r.z.object({id:r.z.string(),name:r.z.string(),email:r.z.string(),emailVerified:r.z.boolean(),image:r.z.string().nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),twoFactorEnabled:r.z.boolean().nullable(),lastLoginMethod:r.z.string().nullable(),lastMcpClient:r.z.string().nullable(),lastMcpClientAt:r.z.string().nullable()}).strict(),mr=r.z.object({id:r.z.string(),organizationId:r.z.string(),userId:r.z.string(),role:r.z.string(),createdAt:r.z.string(),description:r.z.string().nullable(),prompt:r.z.string().nullable()}).strict(),hr=r.z.object({user:pr,member:mr}).strict();r.z.object({members:r.z.array(hr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var gr=r.z.object({limit:r.z.number().min(1).max(100).int().describe(`Max results`),offset:r.z.number().min(0).max(9007199254740991).int().describe(`Result offset`),sortBy:r.z.enum([`createdAt`,`name`,`email`]),sortDirection:r.z.enum([`asc`,`desc`]),filterField:r.z.enum([`role`,`createdAt`]).optional(),filterOperator:r.z.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`,`contains`]).optional(),filterValue:r.z.string().optional()}).strict();r.z.object({created:r.z.array(hr),errors:r.z.array(r.z.object({name:r.z.string(),error:r.z.string()}).strict()).optional()}).strict();var _r=r.z.object({email:r.z.string().email().optional().describe(`Existing user email`),name:r.z.string().min(1).max(255).describe(`Agent member name`),description:r.z.string().optional().describe(`Agent description`),prompt:r.z.string().optional().describe(`Agent prompt`)}).strict();r.z.object({agents:r.z.array(_r)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1)}).strict(),r.z.object({name:r.z.string().min(1).max(255).optional(),description:r.z.string().optional(),prompt:r.z.string().optional()}).strict(),r.z.object({success:r.z.boolean(),message:r.z.string()}).strict();var vr=r.z.object({id:r.z.string(),teamId:r.z.string(),userId:r.z.string(),createdAt:r.z.string(),user:r.z.object({id:r.z.string(),name:r.z.string(),email:r.z.string(),image:r.z.string().nullable().optional()}).strict().optional()}).strict();r.z.object({members:r.z.array(vr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),teamId:r.z.string().min(1)}).strict();var yr=r.z.object({limit:r.z.number().min(1).max(100).int(),offset:r.z.number().min(0).max(9007199254740991).int()}).strict();r.z.object({userId:r.z.string().min(1)}).strict(),r.z.object({success:r.z.boolean(),message:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),teamId:r.z.string().min(1),userId:r.z.string().min(1)}).strict();var br=r.z.object({id:r.z.string(),teamId:r.z.string(),projectId:r.z.string(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({projects:r.z.array(br),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),teamId:r.z.string().min(1)}).strict();var xr=r.z.object({limit:r.z.number().min(1).max(100).int(),offset:r.z.number().min(0).max(9007199254740991).int()}).strict();r.z.object({projectId:r.z.string().min(1)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),teamId:r.z.string().min(1),projectId:r.z.string().min(1)}).strict();var Sr=r.z.object({id:r.z.string(),key:r.z.string().optional().describe(`Only returned on creation`),name:r.z.string().optional(),prefix:r.z.string().optional(),start:r.z.string().optional().describe(`First characters of the key`),referenceId:r.z.string(),expiresAt:r.z.string().optional(),createdAt:r.z.string(),lastRequest:r.z.string().optional(),remaining:r.z.number().optional(),rateLimitEnabled:r.z.boolean(),permissions:r.z.record(r.z.string(),r.z.array(r.z.string())).optional(),metadata:r.z.record(r.z.string(),r.z.unknown()).optional()}).strict();r.z.object({name:r.z.string().min(1).max(32).optional().describe(`Optional name for the API key`),expiresIn:r.z.number().optional().describe(`Expiration time in seconds`),userId:r.z.string().optional().describe(`Optional user ID - defaults to authenticated user if not provided`),prefix:r.z.string().optional().describe(`Prefix for the API key`),remaining:r.z.number().optional().describe(`Number of requests remaining`),metadata:r.z.record(r.z.string(),r.z.unknown()).optional().describe(`Additional metadata for the API key`),refillAmount:r.z.number().optional().describe(`Amount to refill on interval`),refillInterval:r.z.number().optional().describe(`Refill interval in milliseconds`),rateLimitTimeWindow:r.z.number().optional().describe(`Rate limit time window in ms`),rateLimitMax:r.z.number().optional().describe(`Maximum requests in time window`),rateLimitEnabled:r.z.boolean().optional().describe(`Enable rate limiting`),permissions:r.z.record(r.z.string(),r.z.array(r.z.string())).optional().describe(`Permissions for the API key`)}).strict(),r.z.object({items:r.z.array(Sr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Cr=r.z.object({userId:r.z.string().optional().describe(`Filter by user ID`),includeExpired:r.z.boolean().optional().describe(`Include expired keys`),limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),search:r.z.string().optional(),sort:r.z.enum([`createdAt`,`updatedAt`,`name`,`lastRequest`]),order:r.z.enum([`asc`,`desc`])}).strict();r.z.object({id:r.z.string()}).strict();var wr=r.z.object({id:r.z.string(),activityType:r.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:r.z.string(),description:r.z.string().nullable(),organizationId:r.z.string(),projectId:r.z.string().nullable(),taskId:r.z.string().nullable(),memberId:r.z.string().nullable(),agentSessionId:r.z.string().nullable(),deviceId:r.z.string().nullable(),daemonId:r.z.string().nullable(),metadata:r.z.object({duration:r.z.string().optional(),success:r.z.boolean().optional(),errorMessage:r.z.string().optional(),priority:r.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:r.z.number().nullable().optional(),previousStatus:r.z.string().optional(),newStatus:r.z.string().optional(),assignedFrom:r.z.string().optional(),assignedTo:r.z.string().optional(),branch:r.z.string().optional(),commits:r.z.number().nullable().optional(),repository:r.z.string().optional(),participants:r.z.number().nullable().optional(),messages:r.z.number().nullable().optional(),discussionTopic:r.z.string().optional(),agentType:r.z.string().optional(),executionTime:r.z.number().nullable().optional(),resourcesUsed:r.z.object({cpu:r.z.number().nullable().optional(),memory:r.z.number().nullable().optional()}).strict().optional(),oldValue:r.z.any().optional(),newValue:r.z.any().optional(),changes:r.z.record(r.z.string(),r.z.unknown()).optional(),tags:r.z.array(r.z.string()).optional(),relatedEntityId:r.z.string().optional(),relatedEntityType:r.z.string().optional()}).strict().nullable(),ipAddress:r.z.string().nullable(),userAgent:r.z.string().nullable(),createdAt:r.z.string()}).strict();r.z.object({items:r.z.array(wr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`)}).strict();var Tr=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),activityType:r.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]).optional(),projectId:r.z.string().optional(),taskId:r.z.string().optional(),memberId:r.z.string().optional(),agentSessionId:r.z.string().optional(),deviceId:r.z.string().optional(),daemonId:r.z.string().optional(),sort:r.z.enum([`createdAt`,`activityType`,`title`]),order:r.z.enum([`asc`,`desc`]),search:r.z.string().optional()}).strict(),Er=r.z.object({activityType:r.z.enum([`ai_completion`,`task_created`,`task_updated`,`task_completed`,`task_assigned`,`task_deleted`,`work_unit_created`,`work_unit_updated`,`work_unit_deleted`,`branch_created`,`collaboration`,`project_created`,`project_updated`,`agent_started`,`agent_stopped`,`agent_error`,`comment_added`,`device_connected`,`device_disconnected`,`member_joined`,`member_left`]),title:r.z.string().min(1),description:r.z.string().optional(),projectId:r.z.string().optional(),taskId:r.z.string().optional(),memberId:r.z.string().optional(),agentSessionId:r.z.string().optional(),deviceId:r.z.string().optional(),daemonId:r.z.string().optional(),metadata:r.z.object({duration:r.z.string().optional(),success:r.z.boolean().optional(),errorMessage:r.z.string().optional(),priority:r.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:r.z.number().nullable().optional(),previousStatus:r.z.string().optional(),newStatus:r.z.string().optional(),assignedFrom:r.z.string().optional(),assignedTo:r.z.string().optional(),branch:r.z.string().optional(),commits:r.z.number().nullable().optional(),repository:r.z.string().optional(),participants:r.z.number().nullable().optional(),messages:r.z.number().nullable().optional(),discussionTopic:r.z.string().optional(),agentType:r.z.string().optional(),executionTime:r.z.number().nullable().optional(),resourcesUsed:r.z.object({cpu:r.z.number().nullable().optional(),memory:r.z.number().nullable().optional()}).strict().optional(),oldValue:r.z.any().optional(),newValue:r.z.any().optional(),changes:r.z.record(r.z.string(),r.z.unknown()).optional(),tags:r.z.array(r.z.string()).optional(),relatedEntityId:r.z.string().optional(),relatedEntityType:r.z.string().optional()}).strict().optional(),ipAddress:r.z.string().optional(),userAgent:r.z.string().optional()}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),activityId:r.z.string().min(1)}).strict(),r.z.object({title:r.z.string().min(1).optional(),description:r.z.string().optional(),metadata:r.z.object({duration:r.z.string().optional(),success:r.z.boolean().optional(),errorMessage:r.z.string().optional(),priority:r.z.enum([`low`,`medium`,`high`]).optional(),estimatedHours:r.z.number().nullable().optional(),previousStatus:r.z.string().optional(),newStatus:r.z.string().optional(),assignedFrom:r.z.string().optional(),assignedTo:r.z.string().optional(),branch:r.z.string().optional(),commits:r.z.number().nullable().optional(),repository:r.z.string().optional(),participants:r.z.number().nullable().optional(),messages:r.z.number().nullable().optional(),discussionTopic:r.z.string().optional(),agentType:r.z.string().optional(),executionTime:r.z.number().nullable().optional(),resourcesUsed:r.z.object({cpu:r.z.number().nullable().optional(),memory:r.z.number().nullable().optional()}).strict().optional(),oldValue:r.z.any().optional(),newValue:r.z.any().optional(),changes:r.z.record(r.z.string(),r.z.unknown()).optional(),tags:r.z.array(r.z.string()).optional(),relatedEntityId:r.z.string().optional(),relatedEntityType:r.z.string().optional()}).strict().optional()}).strict(),r.z.object({ok:r.z.boolean()}).strict(),r.z.object({kind:r.z.enum([`feedback`,`content_report`,`user_report`]),subject:r.z.string().min(2).max(120),message:r.z.string().min(10).max(4e3),targetType:r.z.enum([`task`,`comment`,`artifact`,`member`,`project`,`organization`]).optional(),targetId:r.z.string().min(1).max(160).optional(),reportedMemberId:r.z.string().min(1).max(160).optional(),muteRequested:r.z.boolean().optional()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),taskId:r.z.string().min(1).describe(`Task ID or slug`)}).strict();var Dr=r.z.object({id:r.z.string(),title:r.z.string(),slug:r.z.string(),description:r.z.string().nullable(),projectId:r.z.string(),workUnitId:r.z.string().nullable(),statusId:r.z.string(),assigneeId:r.z.string().nullable(),creatorId:r.z.string(),position:r.z.number().min(-9007199254740991).max(9007199254740991).int(),priority:r.z.enum([`low`,`medium`,`high`]),dueDate:r.z.string().nullable(),startedAt:r.z.string().nullable(),completedAt:r.z.string().nullable(),acceptanceCriteria:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),tags:r.z.array(r.z.string()).nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),status:r.z.object({id:r.z.string(),key:r.z.string(),name:r.z.string(),description:r.z.string().nullable(),position:r.z.number(),color:r.z.string().nullable(),isActive:r.z.boolean(),isDefault:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict().nullable().optional(),project:r.z.object({id:r.z.string(),name:r.z.string(),description:r.z.string().nullable()}).strict().nullable().optional(),assignee:r.z.object({id:r.z.string(),name:r.z.string(),email:r.z.string(),role:r.z.string()}).strict().nullable().optional(),workUnit:r.z.object({id:r.z.string(),title:r.z.string(),slug:r.z.string(),type:r.z.string().nullable(),priority:r.z.string().nullable(),status:r.z.string().nullable()}).strict().nullable().optional()}).strict();r.z.object({items:r.z.array(Dr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Or=r.z.object({limit:r.z.number().min(1).max(100).describe(`Max results`),offset:r.z.number().min(0).describe(`Result offset`),search:r.z.string().max(200).optional().describe(`Search tasks`),sort:r.z.enum([`createdAt`,`updatedAt`,`title`,`position`,`priority`,`dueDate`]).describe(`Sort field`),order:r.z.enum([`asc`,`desc`]).describe(`Sort order`),columnId:r.z.string().optional(),statusId:r.z.string().optional(),statusIds:r.z.array(r.z.string()).optional().describe(`Comma-separated status IDs`),workUnitId:r.z.string().optional().describe(`Work unit ID`),assigneeId:r.z.string().optional().describe(`Assignee member ID`),priority:r.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),projectId:r.z.string().optional().describe(`Project ID`),tags:r.z.array(r.z.string()).optional().describe(`Comma-separated tags`),statusFilter:r.z.enum([`active`,`all`]).describe(`Status filter`)}).strict(),kr=r.z.object({id:r.z.string(),name:r.z.string(),role:r.z.string(),prompt:r.z.string().nullable()}).strict().nullable();r.z.object({id:r.z.string(),title:r.z.string(),slug:r.z.string(),description:r.z.string().nullable(),projectId:r.z.string(),workUnitId:r.z.string().nullable(),statusId:r.z.string(),assigneeId:r.z.string().nullable(),creatorId:r.z.string(),position:r.z.number().min(-9007199254740991).max(9007199254740991).int(),priority:r.z.enum([`low`,`medium`,`high`]),dueDate:r.z.string().nullable(),startedAt:r.z.string().nullable(),completedAt:r.z.string().nullable(),acceptanceCriteria:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),tags:r.z.array(r.z.string()).nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),status:r.z.object({id:r.z.string(),key:r.z.string(),name:r.z.string(),description:r.z.string().nullable(),position:r.z.number(),color:r.z.string().nullable(),isActive:r.z.boolean(),isDefault:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict().nullable().optional(),project:r.z.object({id:r.z.string(),name:r.z.string(),description:r.z.string().nullable()}).strict().nullable().optional(),assignee:kr,workUnit:r.z.object({id:r.z.string(),title:r.z.string(),slug:r.z.string(),type:r.z.string().nullable(),priority:r.z.string().nullable(),status:r.z.string().nullable()}).strict().nullable().optional(),availableMcpTools:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict();var Ar=r.z.object({title:r.z.string().min(1).max(255).optional().describe(`Task title`),slug:r.z.string().optional().describe(`Task slug`),description:r.z.string().nullable().optional(),workUnitId:r.z.string().nullable().optional(),statusId:r.z.string().min(1).optional(),assigneeId:r.z.string().nullable().optional(),position:r.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:r.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:r.z.string().nullable().nullable().optional(),acceptanceCriteria:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),tags:r.z.array(r.z.string()).nullable().nullable().optional()}).strict(),jr=r.z.object({id:r.z.string(),key:r.z.string(),name:r.z.string(),size:r.z.number(),contentType:r.z.string().optional(),isPreviewable:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({items:r.z.array(jr),total:r.z.number()}).strict();var Mr=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0)}).strict();r.z.object({url:r.z.string(),expiresIn:r.z.number()}).strict();var Nr=r.z.object({key:r.z.string().min(1)}).strict(),Pr=r.z.object({x:r.z.number().min(0).max(1).describe(`Left edge as fraction 0-1`),y:r.z.number().min(0).max(1).describe(`Top edge as fraction 0-1`),width:r.z.number().min(0).max(1).describe(`Width as fraction 0-1`),height:r.z.number().min(0).max(1).describe(`Height as fraction 0-1`)}).strict();r.z.object({action:r.z.union([r.z.string(),r.z.string()]),artifactId:r.z.string().min(1),clip:Pr.optional()}).strict(),r.z.object({action:r.z.union([r.z.string(),r.z.string(),r.z.string()]),artifactId:r.z.string().min(1)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),statusId:r.z.string().min(1)}).strict();var Fr=r.z.object({taskIds:r.z.array(r.z.string().min(1))}).strict(),Ir=r.z.object({id:r.z.string(),taskId:r.z.string(),memberId:r.z.string(),assigneeId:r.z.string().nullable(),content:r.z.string(),info:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),member:r.z.object({id:r.z.string(),name:r.z.string().nullable(),email:r.z.string()}).strict().nullable(),assignee:r.z.object({id:r.z.string(),name:r.z.string().nullable(),email:r.z.string()}).strict().nullable()}).strict(),Lr=r.z.object({assigneeId:r.z.string().nullable().nullable().optional(),content:r.z.string().min(1).max(1e4).describe(`Comment content`),info:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict();r.z.object({items:r.z.array(Ir),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Rr=r.z.object({limit:r.z.number().min(1).max(100).describe(`Max results`),offset:r.z.number().min(0).describe(`Result offset`),sort:r.z.enum([`createdAt`,`updatedAt`]).describe(`Sort field`),order:r.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict();r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),taskId:r.z.string().min(1).describe(`Task ID or slug`),commentId:r.z.string().min(1).describe(`Comment ID`)}).strict();var zr=r.z.object({assigneeId:r.z.string().nullable().nullable().optional(),content:r.z.string().min(1).max(1e4).optional().describe(`Comment content`),info:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict();r.z.object({mcpServers:r.z.record(r.z.string(),r.z.object({type:r.z.enum([`stdio`,`http`,`sse`]),command:r.z.string().optional(),args:r.z.array(r.z.string()).optional(),url:r.z.string().optional(),env:r.z.record(r.z.string(),r.z.string()).optional(),disabled:r.z.boolean().optional()}).strict())}).strict(),r.z.object({projectId:r.z.string().min(1)}).strict(),r.z.object({id:r.z.string(),projectId:r.z.string(),organizationId:r.z.string(),mcpServerId:r.z.string(),serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),isEnabled:r.z.boolean().nullable(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({projectId:r.z.string(),organizationId:r.z.string(),mcpServerId:r.z.string().min(1),serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().nullable().optional(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({serverName:r.z.string(),isEnabled:r.z.boolean(),disabledTools:r.z.array(r.z.string()).nullable(),disabledResources:r.z.array(r.z.string()).nullable(),serverConfig:r.z.record(r.z.string(),r.z.unknown()),priority:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1),id:r.z.string().min(1)}).strict(),r.z.object({serverConfigOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledToolsOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),disabledResourcesOverride:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),isEnabled:r.z.boolean().nullable().optional(),priorityOverride:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable().optional(),metadata:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`),workUnitId:r.z.string().min(1).describe(`Work unit ID or slug`)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`)}).strict(),r.z.object({title:r.z.string().min(1).max(255).describe(`Work unit title`),slug:r.z.string().optional().describe(`Work unit slug`),description:r.z.string().nullable().optional(),projectId:r.z.string().min(1).optional(),parentWorkUnitId:r.z.string().nullable().optional(),type:r.z.enum([`epic`,`feature`,`initiative`]).nullable().optional(),priority:r.z.enum([`low`,`medium`,`high`]).nullable().optional(),status:r.z.string().min(1).nullable().optional(),ownerId:r.z.string().min(1).optional().describe(`Owner member ID`),estimatedEffort:r.z.number().min(0).max(9007199254740991).int().nullable().optional(),startDate:r.z.string().nullable().optional(),targetDate:r.z.string().nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional()}).strict(),r.z.object({items:r.z.array(zn),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Br=r.z.object({limit:r.z.number().min(1).max(100).describe(`Max results`),offset:r.z.number().min(0).describe(`Result offset`),search:r.z.string().optional().describe(`Search work units`),sort:r.z.enum([`createdAt`,`updatedAt`,`title`,`priority`,`targetDate`]).describe(`Sort field`),order:r.z.enum([`asc`,`desc`]).describe(`Sort order`),type:r.z.enum([`epic`,`feature`,`initiative`]).optional().describe(`Work unit type`),priority:r.z.enum([`low`,`medium`,`high`]).optional().describe(`Work unit priority`),statuses:r.z.array(r.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`])).optional().describe(`Comma-separated work unit statuses`),statusId:r.z.string().optional().describe(`Kanban status ID`),excludeStatus:r.z.enum([`planning`,`in_progress`,`blocked`,`completed`,`cancelled`]).optional().describe(`Exclude status`),ownerId:r.z.string().optional().describe(`Owner member ID`),parentWorkUnitId:r.z.string().optional().describe(`Parent work unit ID`)}).strict();r.z.object({progress:r.z.number().describe(`Overall progress percentage (0-100)`),completedTasks:r.z.number().describe(`Number of completed direct tasks`),totalTasks:r.z.number().describe(`Total number of direct tasks`),completedChildWorkUnits:r.z.number().describe(`Number of completed child work units`),totalChildWorkUnits:r.z.number().describe(`Total number of child work units`)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`),taskId:r.z.string().min(1)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`)}).strict();var Vr=r.z.object({title:r.z.string().min(1).max(255).describe(`Task title`),slug:r.z.string().optional().describe(`Task slug`),description:r.z.string().nullable().optional(),projectId:r.z.string().min(1).optional(),workUnitId:r.z.string().nullable().optional(),statusId:r.z.string().min(1).optional(),assigneeId:r.z.string().nullable().optional(),position:r.z.number().min(0).max(9007199254740991).int().optional().describe(`Task position`),priority:r.z.enum([`low`,`medium`,`high`]).optional().describe(`Task priority`),dueDate:r.z.string().nullable().nullable().optional(),acceptanceCriteria:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),testCases:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),tags:r.z.array(r.z.string()).nullable().nullable().optional()}).strict(),Hr=r.z.object({columnId:r.z.string().min(1),position:r.z.number().min(0).max(9007199254740991).int()}).strict(),R=r.z.enum([`task`,`work-unit`]),Ur=r.z.object({kind:R,id:r.z.string().nullable(),key:r.z.string().nullable(),status:r.z.string().nullable(),projectId:r.z.string().nullable(),projectSlug:r.z.string().nullable(),reference:r.z.string()}).strict();r.z.object({sourceKind:R,sourceId:r.z.string(),dependencies:r.z.array(Ur)}).strict();var Wr=r.z.object({sourceKind:R,sourceId:r.z.string().min(1)}).strict();r.z.object({message:r.z.string(),code:r.z.string()}).strict(),r.z.object({sourceKind:R,sourceId:r.z.string().min(1),dependencies:r.z.array(r.z.object({kind:R,reference:r.z.string().min(1)}).strict())}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1)}).strict();var Gr=r.z.object({sessionId:r.z.string().optional(),transportType:r.z.string().optional()}).strict(),Kr=r.z.object({id:r.z.string(),environmentId:r.z.string(),key:r.z.string(),value:r.z.string(),description:r.z.string().nullable(),isSecret:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.array(Kr),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`),environmentId:r.z.string().min(1)}).strict(),r.z.record(r.z.string(),r.z.string()),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`),environmentId:r.z.string().min(1),key:r.z.string().min(1)}).strict(),r.z.object({value:r.z.string().min(1),description:r.z.string().optional(),isSecret:r.z.boolean()}).strict(),r.z.object({entries:r.z.array(r.z.object({key:r.z.string().min(1).max(255),value:r.z.string().min(1),description:r.z.string().optional(),isSecret:r.z.boolean()}).strict())}).strict();var qr=r.z.object({id:r.z.string(),projectId:r.z.string(),name:r.z.string(),key:r.z.string(),type:r.z.string(),description:r.z.string().nullable(),isDefault:r.z.boolean(),permissions:r.z.string(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.array(qr);var Jr=r.z.object({read:r.z.array(r.z.string()),write:r.z.array(r.z.string())}).strict();r.z.object({name:r.z.string().min(1).max(255),key:r.z.string().min(1).max(255),type:r.z.enum([`development`,`staging`,`production`,`custom`]),description:r.z.string().nullable().optional(),isDefault:r.z.boolean(),permissions:Jr.optional()}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),projectId:r.z.string().min(1).describe(`Project ID or slug`),environmentId:r.z.string().min(1)}).strict(),r.z.object({name:r.z.string().min(1).max(255).optional(),key:r.z.string().min(1).max(255).optional(),type:r.z.enum([`development`,`staging`,`production`,`custom`]).optional(),description:r.z.string().nullable().optional(),isDefault:r.z.boolean().optional(),permissions:Jr.optional()}).strict(),r.z.object({message:r.z.string()}).strict();var Yr=r.z.object({id:r.z.string(),organizationId:r.z.string(),projectId:r.z.string(),workUnitId:r.z.string().nullable(),taskId:r.z.string().nullable(),deviceId:r.z.string().nullable(),daemonId:r.z.string().nullable(),name:r.z.string(),status:r.z.enum([`running`,`completed`,`failed`]),contextData:r.z.string().nullable(),error:r.z.string().nullable(),startedAt:r.z.string(),completedAt:r.z.string().nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),Xr=r.z.object({id:r.z.string(),name:r.z.string(),startedAt:r.z.string()}).strict();r.z.object({error:r.z.string(),holder:Xr}).strict(),r.z.object({name:r.z.string().min(1),workUnitId:r.z.string().optional(),taskId:r.z.string().optional(),deviceId:r.z.string().optional(),daemonId:r.z.string().optional(),contextData:r.z.string().optional()}).strict(),r.z.object({items:r.z.array(Yr),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var Zr=r.z.object({status:r.z.enum([`running`,`completed`,`failed`]).optional(),deviceId:r.z.string().optional(),daemonId:r.z.string().optional(),limit:r.z.number().min(1).max(100).optional(),offset:r.z.number().min(0).optional()}).strict(),Qr=r.z.object({workUnitId:r.z.string().optional(),taskId:r.z.string().optional()}).strict();r.z.object({id:r.z.string().min(1)}).strict(),r.z.object({name:r.z.string().min(1).optional(),contextData:r.z.string().nullable().optional()}).strict(),r.z.object({status:r.z.enum([`completed`,`failed`]),error:r.z.string().optional()}).strict(),r.z.object({items:r.z.array(ir)}).strict();var $r=r.z.object({jobKind:L,jobId:r.z.string().min(1),format:r.z.string()}).strict();r.z.object({jobKind:L,jobId:r.z.string().min(1),name:r.z.string().min(1),deviceId:r.z.string().optional(),maxConcurrent:r.z.number().max(9007199254740991).int().optional(),dryRun:r.z.boolean().optional()}).strict(),r.z.object({workflowId:r.z.string().min(1),status:r.z.enum([`completed`,`failed`]),error:r.z.string().optional(),deviceId:r.z.string().optional()}).strict(),r.z.object({workflowId:r.z.string().min(1)}).strict();var ei=r.z.object({key:r.z.string(),name:r.z.string(),color:r.z.string(),position:r.z.number()}).strict(),ti=r.z.object({id:r.z.string(),name:r.z.string(),description:r.z.string(),icon:r.z.string(),color:r.z.string(),isBuiltIn:r.z.boolean(),statusCount:r.z.number(),starterTaskCount:r.z.number(),statuses:r.z.array(ei)}).strict();r.z.object({templates:r.z.array(ti)}).strict(),r.z.object({organizationId:r.z.string().min(1).describe(`Organization ID`),id:r.z.string().min(1).describe(`Project ID or slug`)}).strict(),r.z.object({id:r.z.string(),name:r.z.string(),slug:r.z.string(),key:r.z.string(),description:r.z.string().nullable(),organizationId:r.z.string(),ownerId:r.z.string(),path:r.z.string().nullable(),templateId:r.z.string().nullable(),hooks:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),color:r.z.string().nullable(),icon:r.z.string().nullable(),isArchived:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({error:r.z.string(),message:r.z.string(),feature:r.z.enum([`seats`,`projects`,`apiKeys`,`mcpServers`]),plan:r.z.string(),limit:r.z.number(),used:r.z.number(),upgradeRequired:r.z.boolean()}).strict();var ni=r.z.object({name:r.z.string().min(1).max(255).describe(`Project name`),slug:r.z.string().optional().describe(`Project slug`),description:r.z.string().nullable().optional(),organizationId:r.z.string().optional(),path:r.z.string().nullable().optional(),templateId:r.z.string().nullable().optional(),hooks:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),color:r.z.string().nullable().optional(),icon:r.z.string().nullable().optional()}).strict(),ri=r.z.object({id:r.z.string(),title:r.z.string(),value:r.z.number(),change:r.z.string(),trend:r.z.enum([`up`,`down`,`neutral`]),period:r.z.string()}).strict();r.z.object({activeProjects:r.z.number(),tasksInProgress:r.z.number(),completedTasks:r.z.number(),blockedTasks:r.z.number(),stats:r.z.array(ri)}).strict();var ii=r.z.object({period:r.z.enum([`7`,`30`,`90`])}).strict();r.z.object({items:r.z.array(Vn),total:r.z.number(),limit:r.z.number().optional(),offset:r.z.number().optional()}).strict();var ai=r.z.object({id:r.z.string(),name:r.z.string(),email:r.z.string(),role:r.z.string()}).strict().nullable(),oi=r.z.object({id:r.z.string(),name:r.z.string(),slug:r.z.string(),key:r.z.string(),description:r.z.string().nullable(),organizationId:r.z.string(),path:r.z.string().nullable(),templateId:r.z.string().nullable(),hooks:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable(),color:r.z.string().nullable(),icon:r.z.string().nullable(),isArchived:r.z.boolean(),createdAt:r.z.string(),updatedAt:r.z.string(),owner:ai}).strict();r.z.object({items:r.z.array(oi),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var si=r.z.object({limit:r.z.number().min(1).max(100).describe(`Max results`),offset:r.z.number().min(0).describe(`Result offset`),search:r.z.string().optional().describe(`Search projects`),sort:r.z.enum([`createdAt`,`updatedAt`,`name`]).describe(`Sort field`),order:r.z.enum([`asc`,`desc`]).describe(`Sort order`)}).strict(),ci=r.z.object({name:r.z.string().min(1).max(255).optional().describe(`Project name`),slug:r.z.string().optional().describe(`Project slug`),description:r.z.string().nullable().optional(),organizationId:r.z.string().optional(),path:r.z.string().nullable().optional(),templateId:r.z.string().nullable().optional(),hooks:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),devInfo:r.z.union([r.z.union([r.z.string(),r.z.number(),r.z.boolean(),r.z.any()]),r.z.record(r.z.string(),r.z.unknown()),r.z.array(r.z.any())]).nullable().optional(),color:r.z.string().nullable().optional(),icon:r.z.string().nullable().optional(),isArchived:r.z.boolean().optional().describe(`Whether project is archived`)}).strict(),z=r.z.object({id:r.z.string(),key:r.z.string(),name:r.z.string(),status:r.z.enum([`pending`,`uploaded`]),size:r.z.number().nullable(),contentType:r.z.string().optional(),isPreviewable:r.z.boolean(),labels:r.z.array(r.z.string()).nullable().optional(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict();r.z.object({items:r.z.array(z),total:r.z.number()}).strict(),r.z.object({url:r.z.string(),expiresIn:r.z.number()}).strict();var li=r.z.object({key:r.z.string().min(1)}).strict();r.z.object({url:r.z.string(),key:r.z.string(),artifact:z}).strict();var ui=r.z.object({filename:r.z.string().min(1),contentType:r.z.string().optional()}).strict();r.z.object({artifact:z}).strict(),r.z.object({key:r.z.string().min(1)}).strict(),r.z.object({items:r.z.array(z)}).strict();var di=r.z.object({key:r.z.string().min(1),name:r.z.string().min(1),status:r.z.enum([`pending`,`uploaded`]),size:r.z.number().nullable().optional(),contentType:r.z.string().optional(),isPreviewable:r.z.boolean(),labels:r.z.array(r.z.string()).nullable().optional()}).strict();r.z.object({items:r.z.array(di)}).strict();var fi=r.z.object({key:r.z.string().min(1)}).strict();r.z.object({balanceCents:r.z.number(),monthlyIncludedMinutes:r.z.number(),usedIncludedMinutes:r.z.number(),includedMinutesRemaining:r.z.number(),autoRechargeEnabled:r.z.boolean(),autoRechargeThresholdCents:r.z.number(),autoRechargeAmountCents:r.z.number(),overdraftLimitCents:r.z.number(),includedMinutesResetAt:r.z.string().nullable()}).strict(),r.z.object({organizationId:r.z.string().min(1)}).strict(),r.z.object({checkoutUrl:r.z.string().url(),sessionId:r.z.string()}).strict(),r.z.object({amountCents:r.z.number().min(500).max(1e5),successUrl:r.z.string().url(),cancelUrl:r.z.string().url()}).strict(),r.z.object({enabled:r.z.boolean(),thresholdCents:r.z.number().min(0).max(1e5).optional(),amountCents:r.z.number().min(500).max(1e5).optional()}).strict();var pi=r.z.object({id:r.z.string(),type:r.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]),amountCents:r.z.number(),balanceAfterCents:r.z.number(),usageMinutes:r.z.number().nullable(),pricePerMinuteCents:r.z.number().nullable(),referenceType:r.z.string().nullable(),referenceId:r.z.string().nullable(),createdAt:r.z.string()}).strict();r.z.object({items:r.z.array(pi),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict();var mi=r.z.object({limit:r.z.number().min(1).max(100).optional(),offset:r.z.number().min(0).optional(),type:r.z.enum([`top_up`,`auto_recharge`,`usage`,`refund`,`subscription_credit`,`adjustment`]).optional(),startDate:r.z.string().optional(),endDate:r.z.string().optional()}).strict();r.z.object({periodStart:r.z.string(),periodEnd:r.z.string(),totalMinutes:r.z.number(),includedMinutesUsed:r.z.number(),paidMinutesUsed:r.z.number(),totalChargedCents:r.z.number(),sandboxCount:r.z.number()}).strict();var hi=r.z.object({startDate:r.z.string().min(1),endDate:r.z.string().min(1)}).strict(),gi=r.z.object({planKey:r.z.string(),name:r.z.string(),pricePerSeatCents:r.z.number(),billingInterval:r.z.enum([`month`,`year`]),includedMinutesPerSeat:r.z.number(),stripePriceId:r.z.string().nullable()}).strict();r.z.object({plans:r.z.array(gi)}).strict(),r.z.object({hasSubscription:r.z.boolean(),planKey:r.z.string().nullable(),planName:r.z.string().nullable(),seatCount:r.z.number(),memberCount:r.z.number(),currentPeriodStart:r.z.string().nullable(),currentPeriodEnd:r.z.string().nullable(),cancelAtPeriodEnd:r.z.boolean(),stripeSubscriptionId:r.z.string().nullable(),includedMinutes:r.z.number(),usedMinutes:r.z.number(),remainingMinutes:r.z.number()}).strict(),r.z.object({redirectUrl:r.z.string().nullable(),sessionId:r.z.string().nullable()}).strict(),r.z.object({planKey:r.z.string().min(1),discountCode:r.z.string().optional()}).strict(),r.z.object({currentSeats:r.z.number(),newSeats:r.z.number(),amountDue:r.z.number().nullable(),subtotal:r.z.number().nullable(),total:r.z.number().nullable(),prorationDate:r.z.number().nullable()}).strict();var _i=r.z.object({seatCount:r.z.number().min(1)}).strict();r.z.object({success:r.z.boolean(),newSeatCount:r.z.number(),includedMinutes:r.z.number()}).strict(),r.z.object({seatCount:r.z.number().min(1)}).strict(),r.z.object({success:r.z.boolean(),cancelAtPeriodEnd:r.z.boolean(),periodEnd:r.z.string().nullable()}).strict(),r.z.object({success:r.z.boolean(),message:r.z.string()}).strict(),r.z.object({plan:r.z.string(),projects:r.z.object({used:r.z.number(),limit:r.z.number()}).strict(),apiKeys:r.z.object({used:r.z.number(),limit:r.z.number()}).strict(),mcpServers:r.z.object({used:r.z.number(),limit:r.z.number()}).strict(),seats:r.z.object({used:r.z.number(),limit:r.z.number()}).strict()}).strict();var vi=r.z.object({id:r.z.string(),agentSessionId:r.z.string(),workUnitId:r.z.string().nullable(),taskId:r.z.string().nullable(),projectId:r.z.string(),organizationId:r.z.string(),sandboxInstanceId:r.z.string().nullable(),containerId:r.z.string().nullable(),processId:r.z.string().nullable(),status:r.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),autoTerminate:r.z.boolean(),timeoutMinutes:r.z.number().min(-9007199254740991).max(9007199254740991).int(),command:r.z.string(),workingDirectory:r.z.string().nullable(),exitCode:r.z.number().min(-9007199254740991).max(9007199254740991).int().nullable(),previewUrl:r.z.string().nullable(),errorMessage:r.z.string().nullable(),startedAt:r.z.string().nullable(),completedAt:r.z.string().nullable(),createdAt:r.z.string(),updatedAt:r.z.string(),agentSession:r.z.object({id:r.z.string(),status:r.z.string(),currentAgentType:r.z.string().nullable()}).strict().nullable().optional(),workUnit:r.z.object({id:r.z.string(),title:r.z.string(),status:r.z.string()}).strict().nullable().optional(),project:r.z.object({id:r.z.string(),name:r.z.string()}).strict().nullable().optional()}).strict();r.z.object({items:r.z.array(vi),total:r.z.number(),limit:r.z.number(),offset:r.z.number()}).strict(),r.z.object({organizationId:r.z.string().min(1)}).strict();var yi=r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0),status:r.z.union([r.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),r.z.array(r.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]))]).optional(),projectId:r.z.string().optional(),workUnitId:r.z.string().optional(),agentSessionId:r.z.string().optional()}).strict();r.z.object({id:r.z.string(),status:r.z.enum([`pending`,`starting`,`running`,`completed`,`failed`,`stopped`]),sandboxInstanceId:r.z.string().nullable(),containerId:r.z.string().nullable(),previewUrl:r.z.string().nullable(),exitCode:r.z.number().nullable(),errorMessage:r.z.string().nullable(),startedAt:r.z.string().nullable(),completedAt:r.z.string().nullable(),createdAt:r.z.string(),updatedAt:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),sandboxId:r.z.string().min(1)}).strict(),r.z.object({message:r.z.string(),sandboxId:r.z.string(),status:r.z.string()}).strict(),r.z.object({message:r.z.string(),port:r.z.number(),url:r.z.string().optional()}).strict(),r.z.object({organizationId:r.z.string().min(1),sandboxId:r.z.string().min(1),port:r.z.number().min(1024).max(65535).int()}).strict(),r.z.object({message:r.z.string(),port:r.z.number()}).strict();var bi=r.z.object({port:r.z.number(),url:r.z.string().optional()}).strict();r.z.object({ports:r.z.array(bi)}).strict(),r.z.object({organizationId:r.z.string().min(1),sandboxId:r.z.string().min(1)}).strict(),r.z.object({organizationId:r.z.string()}).strict(),r.z.object({...On.shape}),r.z.void(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({received:r.z.boolean(),duplicate:r.z.boolean().optional(),ignored:r.z.boolean().optional()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({priceKey:r.z.string().min(1).describe(`Stripe price lookup key`),mode:r.z.enum([`payment`,`subscription`]).describe(`Checkout mode`),discountCode:r.z.string().optional().describe(`Optional discount/promotion code`)}).strict(),r.z.object({redirectUrl:r.z.string().url().describe(`URL to redirect user to Stripe checkout`)}).strict(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({sessionId:r.z.string().min(1),organizationId:r.z.string()}),r.z.object({id:r.z.string().describe(`Session ID`),status:r.z.string().nullable().describe(`Session status`),payment_status:r.z.string().describe(`Payment status`),invoice:r.z.record(r.z.string(),r.z.unknown()).nullable().describe(`Invoice details`)}).catchall(r.z.unknown()),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({url:r.z.string().url().describe(`URL to Stripe billing portal`)}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({id:r.z.string().describe(`Customer ID`),customerId:r.z.string().nullable().describe(`Stripe customer ID (null for free tier without payment info)`),organizationId:r.z.string().describe(`Organization ID`),email:r.z.string().nullable().describe(`Customer email`),name:r.z.string().nullable().describe(`Customer name`),subscriptionId:r.z.string().nullable().describe(`Active subscription ID`),subscriptionStatus:r.z.string().nullable().describe(`Current subscription status`),planKey:r.z.enum([`free`,`basic_monthly`,`basic_yearly`]).describe(`Current subscription plan`),seatCount:r.z.number().describe(`Number of seats in subscription`),currentPeriodEnd:r.z.string().nullable().describe(`End date of current billing period (renewal date)`),cancelAtPeriodEnd:r.z.boolean().describe(`Whether subscription is scheduled to cancel at period end`),createdAt:r.z.string().describe(`Customer creation date`),updatedAt:r.z.string().describe(`Customer last update date`)}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({received:r.z.boolean(),duplicate:r.z.boolean().optional(),ignored:r.z.boolean().optional()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({assetName:r.z.string()}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({installationId:r.z.string()}),r.z.void(),r.z.void(),r.z.void(),r.z.void(),r.z.object({installationId:r.z.string()}),r.z.void(),r.z.void(),r.z.void(),r.z.void(),r.z.object({file:r.z.string().describe(`Cropped WebP avatar`)}),r.z.void(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...Nn.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...F.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({version:r.z.string()}),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({...P.shape}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({...Fn.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),serverName:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({file:r.z.string().describe(`Cropped WebP logo`)}),r.z.void(),r.z.void(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...I.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...I.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...I.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...I.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),workUnitId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),workUnitId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),workUnitId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),workUnitId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),workUnitId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var xi=r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),Si=r.z.object({...Br.shape});r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict();var B=r.z.object({organizationId:r.z.string(),projectId:r.z.string(),workUnitId:r.z.string()});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),workUnitId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),workUnitId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),workUnitId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict();var Ci=r.z.object({organizationId:r.z.string()});r.z.object({...Hn.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...Wn.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...Kn.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...qn.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string(),type:r.z.string()}),r.z.object({...Xn.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string(),type:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string(),key:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string(),key:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string(),key:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),profileId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),provider:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),provider:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),provider:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),provider:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),provider:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({...er.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),owner:r.z.string(),repo:r.z.string()}),r.z.object({...nr.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({...$r.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...ur.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),deviceId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string()}),r.z.object({...fr.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1),deviceId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),deviceId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({...fr.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1)}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1)}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceAgentTypeId:r.z.string().min(1)}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1)}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1)}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1),agentTypeId:r.z.string().min(1)}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),deviceId:r.z.string().min(1)}),r.z.object({error:r.z.string()}).strict();var wi=r.z.object({organizationId:r.z.string().min(1)}),Ti=r.z.object({...gr.shape});r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string()}),r.z.object({...yr.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string(),userId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string()}),r.z.object({...xr.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),teamId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...Cr.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...Tr.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({stats:r.z.array(r.z.object({activityType:r.z.string(),count:r.z.number()}).strict()),total:r.z.number()}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({limit:r.z.number().min(1).max(100),offset:r.z.number().min(0)}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.array(Er),r.z.array(wr),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),activityId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),activityId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),activityId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict();var Ei=r.z.object({organizationId:r.z.string()}),Di=r.z.object({...Or.shape});r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({period:r.z.enum([`7d`,`30d`,`3m`,`12m`])}),r.z.object({items:r.z.array(r.z.object({period:r.z.string(),aiCompleted:r.z.number(),humanCompleted:r.z.number(),totalTasks:r.z.number(),totalCost:r.z.number()}).strict()),summary:r.z.object({totalCost:r.z.number(),totalTasks:r.z.number(),monthlyGrowth:r.z.number()}).strict()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.object({...Mr.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.object({...Nr.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),statusId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.void(),r.z.object({error:r.z.string()}).strict();var V=r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),Oi=r.z.object({...Or.shape});r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict();var H=r.z.object({organizationId:r.z.string(),projectId:r.z.string(),taskId:r.z.string()});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var ki=r.z.object({organizationId:r.z.string(),projectId:r.z.string(),taskId:r.z.string()});r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var Ai=r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),ji=r.z.object({...Rr.shape});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var Mi=r.z.object({organizationId:r.z.string(),taskId:r.z.string(),commentId:r.z.string()});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string(),commentId:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),taskId:r.z.string(),commentId:r.z.string()}),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({...Wr.shape}),r.z.void(),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.void(),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({...Gr.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string(),key:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string(),key:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string(),key:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),projectId:r.z.string().min(1)}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1),projectId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),environmentId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({...Zr.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string()}),r.z.object({...Qr.shape}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),projectId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict();var Ni=r.z.object({organizationId:r.z.string()}),Pi=r.z.object({...si.shape});r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string().min(1)}),r.z.object({...ii.shape}),r.z.object({error:r.z.string()}).strict();var Fi=r.z.object({organizationId:r.z.string(),id:r.z.string()});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var Ii=r.z.object({organizationId:r.z.string(),id:r.z.string()});r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({...fi.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({...li.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.object({...ui.shape}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),id:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...mi.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...hi.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({..._i.shape}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.void(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({...yi.shape}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string()}),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string(),port:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string(),port:r.z.string()}),r.z.void(),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict(),r.z.object({organizationId:r.z.string(),sandboxId:r.z.string()}),r.z.object({message:r.z.string()}).strict(),r.z.object({error:r.z.string()}).strict();var Li=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/members`,{method:`GET`,params:e,query:t})).data,Ri=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/members/agents`,{method:`POST`,params:e,body:t})).data,zi=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`GET`,params:e,query:t})).data,Bi=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments`,{method:`POST`,params:e,body:t})).data,Vi=async e=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`GET`,params:e})).data,Hi=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`PATCH`,params:e,body:t})).data,Ui=async e=>(await E.request(`/api/v1/organizations/{organizationId}/tasks/{taskId}/comments/{commentId}`,{method:`DELETE`,params:e})).data,Wi=async(e,t)=>(await E.request(`/api/v1/organizations/{organizationId}/task-statuses`,{method:`GET`,params:e,query:t})).data,Gi=`AGIFLOW_ORGANIZATION_ID`,Ki=`AGIFLOW_PROJECT_ID`,qi=`AGIFLOW_TASK_ID`,Ji=`AGIFLOW_WORK_UNIT_ID`,Yi={backlog:`planning`,brief:`planning`,ideation:`planning`,idea:`planning`,ideas:`planning`,planning:`planning`,planned:`planning`,ready:`todo`,to_do:`todo`,todo:`todo`,doing:`in_progress`,in_progress:`in_progress`,progress:`in_progress`,started:`in_progress`,testing:`testing`,qa:`testing`,quality_assurance:`testing`,review:`review`,approved:`review`,done:`done`,complete:`done`,completed:`done`,closed_won:`done`,published:`done`,blocked:`blocked`,hold:`blocked`,on_hold:`blocked`,paused:`blocked`,cancelled:`cancelled`,canceled:`cancelled`,closed_lost:`cancelled`},U=e=>e.trim().toLowerCase().replace(/['’]/g,``).replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``),Xi=r.z.object({format:r.z.literal(`json`).default(`json`).describe(`Output format`)}),Zi=r.z.object({tasksJson:r.z.string().min(1).describe(`Array of task objects or { "tasks": [...] }`)}),Qi=r.z.object({workUnitsJson:r.z.string().min(1).describe(`Array of work unit objects or { "workUnits": [...] }`)}),$i=r.z.object({status:r.z.string().optional().describe(`Task status name, key, or ID`),assignee:r.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:r.z.string().optional().describe(`Work unit ID`),acceptanceCriteriaJson:r.z.string().optional().describe(`Acceptance criteria JSON`),testCasesJson:r.z.string().optional().describe(`Test cases JSON`),devInfoJson:r.z.string().optional().describe(`Development info JSON`)}),ea=r.z.object({status:r.z.string().optional().describe(`Comma-separated status names, keys, or IDs`),assignee:r.z.string().optional().describe(`Assignee member ID, name, or email`),workUnit:r.z.string().optional().describe(`Work unit ID`)}),ta=r.z.object({devInfoJson:r.z.string().optional().describe(`Development info JSON`),testCasesJson:r.z.string().optional().describe(`Test cases JSON`)}),na=r.z.object({assignee:r.z.string().optional().describe(`Assignee member ID, name, or email`),infoJson:r.z.string().optional().describe(`Comment info JSON`)}),ra=r.z.object({intent:r.z.string().min(1).describe(`User-requested action that needs a connected tool`),server:r.z.string().min(1).optional().describe(`Optional external MCP server ID or name`),offset:r.z.coerce.number().int().nonnegative().default(0).describe(`Zero-based result offset`),limit:r.z.coerce.number().int().positive().max(25).default(10).describe(`Maximum matching tools to return`)}),ia=r.z.object({mcpToolsJson:r.z.string().min(1).describe(`Exact replacement array of selected external MCP tools`)}),aa=r.z.object({server:r.z.string().min(1).describe(`Enabled external MCP server ID or name`),tool:r.z.string().min(1).describe(`Allowed upstream MCP tool name`),argsJson:r.z.string().optional().describe(`JSON object matching the selected tool input schema`)}),oa=r.z.array(r.z.object({mcpServerId:r.z.string().min(1),tools:r.z.array(r.z.string().min(1)).min(1)})).max(5),sa=r.z.record(r.z.string(),r.z.unknown()),W=()=>({name:`org`,source:`organizationId`,envVar:Gi}),G=(e=`projectId`)=>({name:`project`,source:e,valueName:`projectIdOrSlug`,envVar:Ki}),K=()=>({name:`task`,source:`taskId`,valueName:`taskIdOrSlug`,envVar:qi}),q=()=>({name:`workUnit`,source:`workUnitId`,flag:`--work-unit`,valueName:`workUnitIdOrSlug`,envVar:Ji}),J=(...e)=>e,ca=(e=[],t={})=>[{name:`limit`,required:!1,defaultValue:t.limit??`20`},{name:`offset`,required:!1,defaultValue:t.offset??`0`},{name:`search`,required:!1},{name:`sort`,required:!1,defaultValue:t.sort??`createdAt`},{name:`order`,required:!1,defaultValue:t.order??`desc`},...e.map(e=>({...e,required:e.required??!1}))],Y=(e,t)=>Bt.for(e).fromSchemaGroups([...t,{schema:Xi,options:[{name:`format`,required:!1,defaultValue:`json`}]}]),X=e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t},la=(e,t)=>{let n=e&&typeof e==`object`&&t in e?e[t]:e;if(!Array.isArray(n))throw Error(`Expected ${t} JSON to be an array or an object containing ${t}.`);return n.map((e,n)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t}[${n}] must be an object.`);return e})},Z=class extends D{async resolveOrgOption(e){return this.resolveOrganizationId(e.org)}async resolveProjectOption(e){return this.resolveProjectIdOption(e.project)}async resolveProjectRoute(e){let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e);return{org:t,projectId:await this.resolveProjectId(t,n)}}async resolveTaskOption(e){return this.resolveTaskIdOption(e.task)}async resolveWorkUnitOption(e){return this.resolveWorkUnitIdOption(e.workUnit)}async resolveProjectId(e,t){return(await O({organizationId:e,id:t})).id}async resolveStatusId(e,t,n){return(await this.resolveStatus(e,t,n)).id}async resolveProjectStatusName(e,t,n){return(await this.resolveStatus(e,t,n)).name}async resolveStatus(e,t,n){let r=n?(await nt({organizationId:e,id:n})).items??[]:(await Wi({organizationId:e})).items??[],i=this.findStatus(r,t)??this.findLegacyStatusFallback(r,t);if(i)return i;let a=n?`project "${n}"`:`this organization`,o=r.sort((e,t)=>e.position-t.position).map(e=>`${e.name} (${e.key})`).join(`, `);throw Error(o?`Status "${t}" is not valid for ${a}. Available statuses: ${o}. Retry with --status using one of the listed names or keys.`:`No statuses are configured for ${a}. Configure statuses before retrying.`)}findStatus(e,t){let n=U(t);return e.find(e=>e.id===t||U(e.key)===n||U(e.name)===n)}findLegacyStatusFallback(e,t){let n=Yi[U(t)];if(!n)return;let r=[...e].sort((e,t)=>e.position-t.position),i=r.filter(e=>!e.isStartedState&&!e.isCompletionState&&!e.isTerminalState&&!e.isBlockedState),a=r.filter(e=>e.isStartedState),o=r.filter(e=>e.isTerminalState&&!e.isCompletionState);switch(n){case`planning`:return i[0];case`todo`:return r.find(e=>e.isAgentPickable)??i.at(-1);case`in_progress`:return a[0];case`testing`:return a[1]??a[0];case`review`:return a.at(-1);case`done`:return r.find(e=>e.isCompletionState);case`blocked`:return r.find(e=>e.isBlockedState);case`cancelled`:return o[0]}}async resolveMemberId(e,t){if(!t)return;let n=await Li({organizationId:e},{limit:100,offset:0,sortBy:`createdAt`,sortDirection:`desc`}),r=t.toLowerCase(),i=n.members.find(e=>{let n=e.member?.id,i=e.user?.name?.toLowerCase(),a=e.user?.email?.toLowerCase();return n===t||i===r||a===r});if(!i?.member?.id)throw Error(`Member "${t}" was not found.`);return i.member.id}baseListOptions(e){return X({limit:this.parseNumber(e.limit,20),offset:this.parseNumber(e.offset,0),sort:e.sort,order:e.order,search:e.search})}},ua=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`project`).description(`Project JSON commands`);Y(t.command(`create`).description(`Create a project`),J({schema:Ni,options:[W()]},{schema:ni,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List projects`),J({schema:Ni,options:[W()]},{schema:Pi,options:ca()})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a project by ID or slug`),J({schema:Ii,options:[W(),G(`projectIdOrSlug`)]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a project`),J({schema:Ii,options:[W(),G(`projectIdOrSlug`)]},{schema:ci,options:[{name:`name`},{name:`description`},{name:`slug`},{name:`path`},{name:`color`},{name:`icon`},{name:`archived`,source:`isArchived`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a project`),J({schema:Ii,options:[W(),G(`projectIdOrSlug`)]})).action(e=>this.delete(e)),Y(t.command(`status`).description(`Project status commands`).command(`list`).description(`List project statuses`),J({schema:Fi,options:[W(),G(`id`)]})).action(e=>this.statusList(e))}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon}),r=await tt({organizationId:t},n);this.printJson({project:r})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=this.baseListOptions(e),r=await et({organizationId:t},n);this.printJson({projects:r.items,total:r.total,limit:r.limit,offset:r.offset,currentPage:Math.floor(r.offset/r.limit)+1,totalPages:Math.ceil(r.total/r.limit)})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await O({organizationId:await this.resolveOrgOption(e),id:await this.resolveProjectOption(e)});this.printJson({project:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n),i=X({name:e.name,description:e.description,slug:e.slug,path:e.path,color:e.color,icon:e.icon,isArchived:e.archived===!0||void 0}),a=await rt({organizationId:t,id:r},i);this.printJson({project:a})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await this.resolveProjectId(t,n);await it({organizationId:t,id:r}),this.printJson({deleted:!0,project:{id:r}})})}async statusList(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`project commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveProjectOption(e),r=await nt({organizationId:t,id:await this.resolveProjectId(t,n)});this.printJson({statuses:r.items,total:r.total})})}};ua=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],ua);var da=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task`).description(`Task JSON commands`),n=[W(),G()],i=[{name:`title`},{name:`description`},{name:`priority`},{name:`position`},{name:`dueDate`,flag:`--due-date`},{name:`tags`}],a=[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`},{name:`acceptanceCriteriaJson`,flag:`--acceptance-criteria-json`},{name:`testCasesJson`,flag:`--test-cases-json`},{name:`devInfoJson`,flag:`--dev-info-json`}];Y(t.command(`create`).description(`Create a task`),J({schema:V,options:n},{schema:Vr,options:i},{schema:$i,options:a})).action(e=>this.create(e)),Y(t.command(`batch-create`).description(`Create multiple tasks`),J({schema:V,options:n},{schema:Zi,options:[{name:`tasksJson`,flag:`--tasks-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project tasks`),J({schema:V,options:n},{schema:Oi,options:ca([{name:`statusFilter`,flag:`--status-filter`},{name:`priority`},{name:`tags`}])},{schema:ea,options:[{name:`status`},{name:`assignee`},{name:`workUnit`,flag:`--work-unit`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task by ID or slug`),J({schema:H,options:[...n,K()]})).action(e=>this.get(e));let o=t.command(`tools`).description(`Connected task tool commands`);Y(o.command(`find`).description(`Find connected tools for a task action`),J({schema:V,options:n},{schema:ra,options:[{name:`intent`},{name:`server`,required:!1},{name:`offset`,required:!1,defaultValue:`0`},{name:`limit`,required:!1,defaultValue:`10`}]})).action(e=>this.findTools(e)),Y(o.command(`set`).description(`Replace the external tools allowed for a task`),J({schema:H,options:[...n,K()]},{schema:ia,options:[{name:`mcpToolsJson`,flag:`--mcp-tools-json`}]})).action(e=>this.setTools(e)),Y(t.command(`exec`).description(`Execute an external tool allowed for a task`),J({schema:H,options:[...n,K()]},{schema:aa,options:[{name:`server`},{name:`tool`},{name:`argsJson`,flag:`--args-json`,required:!1}]})).action(e=>this.execTool(e)),Y(t.command(`active`).description(`List active organization tasks`),J({schema:Ei,options:[W()]},{schema:Di,options:ca([{name:`project`,source:`projectId`},{name:`priority`},{name:`assigneeId`,flag:`--assignee-id`}])})).action(e=>this.active(e)),Y(t.command(`update`).description(`Update a task`),J({schema:H,options:[...n,K()]},{schema:Ar,options:i},{schema:$i,options:a})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task`),J({schema:H,options:[...n,K()]})).action(e=>this.delete(e)),Y(t.command(`reorder`).description(`Reorder tasks within a status`),J({schema:Ei,options:[W()]},{schema:r.z.object({status:r.z.string().min(1).describe(`Status name, key, or ID`)}),options:[{name:`status`}]},{schema:Fr,options:[{name:`taskIds`,flag:`--task-ids`,parse:`csv`}]})).action(e=>this.reorder(e)),Y(t.command(`move`).description(`Move a task to a different column/position`),J({schema:ki,options:[...n,K()]},{schema:Hr,options:[{name:`column`,source:`columnId`},{name:`position`}]})).action(e=>this.move(e)),Y(t.command(`status`).description(`Task status commands`).command(`list`).description(`List available task statuses`),J({schema:Ci,options:[W()]})).action(e=>this.statusList(e))}async buildTaskPayload(e){let t=typeof e.status==`string`?e.status:void 0,n=typeof e.assignee==`string`?e.assignee:void 0,r=String(e.org),i=typeof e.projectId==`string`?String(e.projectId):void 0,a=t?await this.resolveStatusId(r,t,i):void 0,o=await this.resolveMemberId(r,n);return X({title:e.title,description:e.description,statusId:a,priority:e.priority,position:typeof e.position==`string`?this.parseNumber(e.position,0):e.position,dueDate:e.dueDate,tags:this.parseCsv(typeof e.tags==`string`?e.tags:void 0),assigneeId:o,workUnitId:e.workUnit??e.workUnitId,acceptanceCriteria:this.parseJsonFlag(typeof e.acceptanceCriteriaJson==`string`?e.acceptanceCriteriaJson:void 0,`--acceptance-criteria-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`),devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`)})}async create(e){await this.runJsonOnly(async()=>{if(this.requireJsonFormat(e.format,`task commands`),await this.setupClient(),!e.title)throw Error(`--title is required.`);let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await gt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t,projectId:n}));this.printJson({task:r})})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=la(this.parseJsonFlag(e.tasksJson,`--tasks-json`),`tasks`),i=[];for(let e of r){let r=await gt({organizationId:t,projectId:n},await this.buildTaskPayload({...e,org:t,projectId:n}));i.push(r)}this.printJson({tasks:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=this.parseCsv(e.status),i=r?await Promise.all(r.map(e=>this.resolveStatusId(t,e,n))):void 0,a=await this.resolveMemberId(t,e.assignee),o=X({...this.baseListOptions(e),statusFilter:e.statusFilter,columnId:i?.length===1?i[0]:void 0,statusIds:i,workUnitId:e.workUnit,assigneeId:a,priority:e.priority,tags:this.parseCsv(e.tags)}),s=await ht({organizationId:t,projectId:n},o);this.printJson({tasks:s.items,total:s.total,limit:s.limit,offset:s.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`);let t=await this.resolveTaskOption(e),n=await this.callTaskMcpTool(e,`get_task`,{id:t});this.printJson(n)})}async findTools(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`);let t=ra.parse({intent:e.intent,server:e.server,offset:e.offset,limit:e.limit}),n=await this.callTaskMcpTool(e,`find_connected_tools`,X(t));this.printJson(n)})}async setTools(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`);let t=await this.resolveTaskOption(e),n=this.parseJsonFlag(e.mcpToolsJson,`--mcp-tools-json`),r=oa.parse(n),i=await this.callTaskMcpTool(e,`update_task`,{id:t,mcpTools:r});this.printJson(i)})}async execTool(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`);let t=await this.resolveTaskOption(e),n=aa.parse({server:e.server,tool:e.tool,argsJson:e.argsJson}),r=this.parseJsonFlag(n.argsJson,`--args-json`)??{},i=sa.parse(r),a=await this.callTaskMcpTool(e,`task_exec`,{taskId:t,server:n.server,tool:n.tool,args:i});this.printJson(a)})}async callTaskMcpTool(e,t,n){await this.setupClient();let{serverUrl:r,apiKey:i}=await this.resolveApiClientContext(),{org:a,projectId:o}=await this.resolveProjectRoute(e);return Ot({serverUrl:r,apiKey:i,organizationId:a,projectId:o,toolName:t,toolArgs:n})}async active(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=X({...this.baseListOptions(e),statusFilter:`active`,priority:e.priority,assigneeId:e.assigneeId});if(e.project){let r=await ht({organizationId:t,projectId:await this.resolveProjectId(t,e.project)},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset});return}let r=await dt({organizationId:t},n);this.printJson({tasks:r.items,total:r.total,limit:r.limit,offset:r.offset})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await vt({organizationId:t,projectId:n,taskId:await this.resolveTaskOption(e)},await this.buildTaskPayload({...e,org:t,projectId:n}));this.printJson({task:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);await yt({organizationId:t,projectId:n,taskId:r}),this.printJson({deleted:!0,task:{id:r}})})}async reorder(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveStatusId(t,e.status),r=this.parseCsv(e.taskIds);if(!r?.length)throw Error(`--task-ids must contain at least one task ID.`);await mt({organizationId:t,statusId:n},{taskIds:r}),this.printJson({reordered:!0,statusId:n,taskIds:r})})}async move(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveTaskOption(e);if(!e.column)throw Error(`--column is required.`);let i={columnId:e.column,position:this.parseNumber(e.position,0)},a=await bt({organizationId:t,projectId:n,taskId:r},i);this.printJson({task:a})})}async statusList(e){await this.runJsonOnly(async()=>{await this.setupClient();let t=await Wi({organizationId:await this.resolveOrgOption(e)});if(e.format===`table`){let e=t.items??[],n=[`id`,`key`,`name`],r=e.map(e=>[e.id,e.key,e.name]);console.log(n.join(` `));for(let e of r)console.log(e.join(` `));return}this.printJson({statuses:t.items,total:t.total})})}};da=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],da);var fa=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`work-unit`).description(`Work unit JSON commands`),n=[W(),G()],r=[{name:`title`},{name:`description`},{name:`type`},{name:`priority`},{name:`status`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`},{name:`estimatedEffort`,flag:`--estimated-effort`},{name:`startDate`,flag:`--start-date`},{name:`targetDate`,flag:`--target-date`}];Y(t.command(`batch-create`).description(`Create multiple work units`),J({schema:xi,options:n},{schema:Qi,options:[{name:`workUnitsJson`,flag:`--work-units-json`}]})).action(e=>this.batchCreate(e)),Y(t.command(`list`).description(`List project work units`),J({schema:xi,options:n},{schema:Si,options:ca([{name:`status`,source:`statuses`},{name:`excludeStatus`,flag:`--exclude-status`},{name:`type`},{name:`priority`},{name:`ownerId`,flag:`--owner-id`},{name:`parentWorkUnitId`,flag:`--parent-work-unit-id`}])})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a work unit by ID or slug`),J({schema:B,options:[...n,q()]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a work unit`),J({schema:B,options:[...n,q()]},{schema:Bn,options:r},{schema:ta,options:[{name:`devInfoJson`,flag:`--dev-info-json`},{name:`testCasesJson`,flag:`--test-cases-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a work unit`),J({schema:B,options:[...n,q()]})).action(e=>this.delete(e)),Y(t.command(`progress`).description(`Get work unit progress`),J({schema:B,options:[...n,q()]})).action(e=>this.progress(e))}async buildPayload(e,t,n){let r=typeof e.status==`string`?e.status:void 0,i=r?await this.resolveProjectStatusName(t,r,n):void 0;return X({title:e.title,description:e.description,type:e.type,priority:e.priority,status:i,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId,estimatedEffort:typeof e.estimatedEffort==`string`?this.parseNumber(e.estimatedEffort,0):e.estimatedEffort,startDate:e.startDate,targetDate:e.targetDate,devInfo:this.parseJsonFlag(typeof e.devInfoJson==`string`?e.devInfoJson:void 0,`--dev-info-json`),testCases:this.parseJsonFlag(typeof e.testCasesJson==`string`?e.testCasesJson:void 0,`--test-cases-json`)})}async batchCreate(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=la(this.parseJsonFlag(e.workUnitsJson,`--work-units-json`),`workUnits`),i=[];for(let e of r){let r=await St({organizationId:t,projectId:n},await this.buildPayload(e,t,n)),a=Array.isArray(e.taskIds)?e.taskIds.filter(e=>typeof e==`string`):[];for(let e of a)await vt({organizationId:t,projectId:n,taskId:e},{workUnitId:r.id});i.push(r)}this.printJson({workUnits:i,total:i.length})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=X({...this.baseListOptions(e),statuses:this.parseCsv(e.status),excludeStatus:e.excludeStatus,type:e.type,priority:e.priority,ownerId:e.ownerId,parentWorkUnitId:e.parentWorkUnitId}),i=await xt({organizationId:t,projectId:n},r);this.printJson({workUnits:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Ct({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({workUnit:r})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await wt({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)},await this.buildPayload(e,t,n));this.printJson({workUnit:r})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await this.resolveWorkUnitOption(e);await Tt({organizationId:t,projectId:n,workUnitId:r}),this.printJson({deleted:!0,workUnit:{id:r}})})}async progress(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`work-unit commands`),await this.setupClient();let{org:t,projectId:n}=await this.resolveProjectRoute(e),r=await Et({organizationId:t,projectId:n,workUnitId:await this.resolveWorkUnitOption(e)});this.printJson({progress:r})})}};fa=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],fa);var pa=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`member`).description(`Agent member JSON commands`);Y(t.command(`list`).description(`List agent members`),J({schema:wi,options:[W()]},{schema:Ti,options:[{name:`limit`,required:!1,defaultValue:`100`},{name:`offset`,required:!1,defaultValue:`0`}]})).action(e=>this.list(e)),Y(t.command(`create`).description(`Create an agent member`),J({schema:wi,options:[W()]},{schema:_r,options:[{name:`email`},{name:`name`},{name:`description`},{name:`prompt`}]})).action(e=>this.create(e))}normalizeMembers(e){return e.filter(e=>e.member?.role===`agent`)}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await Li({organizationId:await this.resolveOrgOption(e)},{limit:this.parseNumber(e.limit,100),offset:this.parseNumber(e.offset,0),sortBy:`createdAt`,sortDirection:`desc`,filterField:`role`,filterOperator:`eq`,filterValue:`agent`});this.printJson({members:this.normalizeMembers(t.members),total:t.total,limit:t.limit,offset:t.offset})})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`member commands`),await this.setupClient();let t=await Ri({organizationId:await this.resolveOrgOption(e)},{agents:[X({email:e.email,name:e.name,description:e.description,prompt:e.prompt})]});this.printJson({member:t.created[0]??null,errors:t.errors??[]})})}};pa=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],pa);var ma=class extends Z{constructor(e,t){super(e,t)}register(e){let t=e.command(`task-comment`).description(`Task comment JSON commands`),n=[W(),K()];Y(t.command(`create`).description(`Create a task comment`),J({schema:Ai,options:n},{schema:Lr,options:[{name:`content`}]},{schema:na,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.create(e)),Y(t.command(`list`).description(`List task comments`),J({schema:Ai,options:n},{schema:ji,options:[{name:`limit`,required:!1,defaultValue:`20`},{name:`offset`,required:!1,defaultValue:`0`},{name:`sort`,required:!1,defaultValue:`createdAt`},{name:`order`,required:!1,defaultValue:`asc`}]})).action(e=>this.list(e)),Y(t.command(`get`).description(`Get a task comment`),J({schema:Mi,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.get(e)),Y(t.command(`update`).description(`Update a task comment`),J({schema:Mi,options:[...n,{name:`comment`,source:`commentId`}]},{schema:zr,options:[{name:`content`}]},{schema:na,options:[{name:`assignee`},{name:`infoJson`,flag:`--info-json`}]})).action(e=>this.update(e)),Y(t.command(`delete`).description(`Delete a task comment`),J({schema:Mi,options:[...n,{name:`comment`,source:`commentId`}]})).action(e=>this.delete(e))}async buildPayload(e){let t=await this.resolveOrgOption(e);return X({content:e.content,assigneeId:await this.resolveMemberId(t,e.assignee),info:this.parseJsonFlag(e.infoJson,`--info-json`)})}async create(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await Bi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e)},await this.buildPayload(e));this.printJson({comment:t})})}async list(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await this.resolveOrgOption(e),n=await this.resolveTaskOption(e),r=this.baseListOptions(e),i=await zi({organizationId:t,taskId:n},r);this.printJson({comments:i.items,total:i.total,limit:i.limit,offset:i.offset})})}async get(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await Vi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment});this.printJson({comment:t})})}async update(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient();let t=await Hi({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment},await this.buildPayload(e));this.printJson({comment:t})})}async delete(e){await this.runJsonOnly(async()=>{this.requireJsonFormat(e.format,`task-comment commands`),await this.setupClient(),await Ui({organizationId:await this.resolveOrgOption(e),taskId:await this.resolveTaskOption(e),commentId:e.comment}),this.printJson({deleted:!0,comment:{id:e.comment}})})}};ma=e.a([(0,n.injectable)(),e.n(0,(0,n.inject)(e.r.ConfigManager)),e.n(1,(0,n.inject)(e.r.CredentialsService)),e.i(`design:paramtypes`,[Object,Object])],ma);var Q={AuthCommand:Symbol.for(`CLI.AuthCommand`),WorkflowCommand:Symbol.for(`CLI.WorkflowCommand`),ArtifactCommand:Symbol.for(`CLI.ArtifactCommand`),AutomationCommand:Symbol.for(`CLI.AutomationCommand`),ProjectCommand:Symbol.for(`CLI.ProjectCommand`),TaskCommand:Symbol.for(`CLI.TaskCommand`),WorkUnitCommand:Symbol.for(`CLI.WorkUnitCommand`),MemberCommand:Symbol.for(`CLI.MemberCommand`),TaskCommentCommand:Symbol.for(`CLI.TaskCommentCommand`),VaultCommand:Symbol.for(`CLI.VaultCommand`),AnalyticsCommand:Symbol.for(`CLI.AnalyticsCommand`),DependencyCommand:Symbol.for(`CLI.DependencyCommand`)},$=new n.Container({parent:e.t});$.bind(Q.AuthCommand).to(he),$.bind(Q.WorkflowCommand).to($e),$.bind(Q.ArtifactCommand).to(zt),$.bind(Q.AutomationCommand).to(cn),$.bind(Q.ProjectCommand).to(ua),$.bind(Q.TaskCommand).to(da),$.bind(Q.WorkUnitCommand).to(fa),$.bind(Q.MemberCommand).to(pa),$.bind(Q.TaskCommentCommand).to(ma),$.bind(Q.VaultCommand).to(bn),$.bind(Q.AnalyticsCommand).to(dn),$.bind(Q.DependencyCommand).to(En),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});