@burdenoff/cli-sdk 2026.928.1 → 2026.1021.2

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 (236) hide show
  1. package/dist/chunk-SQSFZFQZ.js +1 -0
  2. package/dist/chunk-UAFYTYK6.js +32 -0
  3. package/dist/core/index.cjs +7 -7
  4. package/dist/core/index.d.cts +2 -2
  5. package/dist/core/index.d.ts +2 -2
  6. package/dist/core/index.js +1 -1
  7. package/dist/index.cjs +7 -7
  8. package/dist/index.d.cts +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/{module-DxCuik6L.d.cts → module-DOIiVaXQ.d.cts} +4 -1
  12. package/dist/{module-DxCuik6L.d.ts → module-DOIiVaXQ.d.ts} +4 -1
  13. package/dist/modules/adaptercloud/index.cjs +2 -2
  14. package/dist/modules/adaptercloud/index.d.cts +1 -1
  15. package/dist/modules/adaptercloud/index.d.ts +1 -1
  16. package/dist/modules/adaptercloud/index.js +1 -1
  17. package/dist/modules/artistrybase/index.cjs +8 -8
  18. package/dist/modules/artistrybase/index.d.cts +1 -1
  19. package/dist/modules/artistrybase/index.d.ts +1 -1
  20. package/dist/modules/artistrybase/index.js +1 -1
  21. package/dist/modules/assethandler/index.cjs +1 -1
  22. package/dist/modules/assethandler/index.d.cts +1 -1
  23. package/dist/modules/assethandler/index.d.ts +1 -1
  24. package/dist/modules/assethandler/index.js +1 -1
  25. package/dist/modules/atheletebridge/index.cjs +8 -8
  26. package/dist/modules/atheletebridge/index.d.cts +1 -1
  27. package/dist/modules/atheletebridge/index.d.ts +1 -1
  28. package/dist/modules/atheletebridge/index.js +1 -1
  29. package/dist/modules/auth/index.cjs +34 -34
  30. package/dist/modules/auth/index.d.cts +1 -1
  31. package/dist/modules/auth/index.d.ts +1 -1
  32. package/dist/modules/auth/index.js +30 -30
  33. package/dist/modules/billing/index.cjs +3 -3
  34. package/dist/modules/billing/index.d.cts +1 -1
  35. package/dist/modules/billing/index.d.ts +1 -1
  36. package/dist/modules/billing/index.js +1 -1
  37. package/dist/modules/brainyrich/index.cjs +4 -4
  38. package/dist/modules/brainyrich/index.d.cts +1 -1
  39. package/dist/modules/brainyrich/index.d.ts +1 -1
  40. package/dist/modules/brainyrich/index.js +1 -1
  41. package/dist/modules/buildmyiq/index.cjs +3 -3
  42. package/dist/modules/buildmyiq/index.d.cts +1 -1
  43. package/dist/modules/buildmyiq/index.d.ts +1 -1
  44. package/dist/modules/buildmyiq/index.js +1 -1
  45. package/dist/modules/channels/index.cjs +5 -5
  46. package/dist/modules/channels/index.d.cts +1 -1
  47. package/dist/modules/channels/index.d.ts +1 -1
  48. package/dist/modules/channels/index.js +1 -1
  49. package/dist/modules/collabkin/index.cjs +11 -11
  50. package/dist/modules/collabkin/index.d.cts +1 -1
  51. package/dist/modules/collabkin/index.d.ts +1 -1
  52. package/dist/modules/collabkin/index.js +1 -1
  53. package/dist/modules/comradecircle/index.cjs +6 -6
  54. package/dist/modules/comradecircle/index.d.cts +1 -1
  55. package/dist/modules/comradecircle/index.d.ts +1 -1
  56. package/dist/modules/comradecircle/index.js +1 -1
  57. package/dist/modules/conversations/index.cjs +8 -8
  58. package/dist/modules/conversations/index.d.cts +1 -1
  59. package/dist/modules/conversations/index.d.ts +1 -1
  60. package/dist/modules/conversations/index.js +1 -1
  61. package/dist/modules/coolandlovely/index.cjs +4 -4
  62. package/dist/modules/coolandlovely/index.d.cts +1 -1
  63. package/dist/modules/coolandlovely/index.d.ts +1 -1
  64. package/dist/modules/coolandlovely/index.js +1 -1
  65. package/dist/modules/cosmicintersection/index.cjs +6 -6
  66. package/dist/modules/cosmicintersection/index.d.cts +1 -1
  67. package/dist/modules/cosmicintersection/index.d.ts +1 -1
  68. package/dist/modules/cosmicintersection/index.js +1 -1
  69. package/dist/modules/crewfoundry/index.cjs +1 -1
  70. package/dist/modules/crewfoundry/index.d.cts +1 -1
  71. package/dist/modules/crewfoundry/index.d.ts +1 -1
  72. package/dist/modules/crewfoundry/index.js +1 -1
  73. package/dist/modules/devportal/index.cjs +7 -7
  74. package/dist/modules/devportal/index.d.cts +1 -1
  75. package/dist/modules/devportal/index.d.ts +1 -1
  76. package/dist/modules/devportal/index.js +1 -1
  77. package/dist/modules/ecoimpacthub/index.cjs +2 -2
  78. package/dist/modules/ecoimpacthub/index.d.cts +1 -1
  79. package/dist/modules/ecoimpacthub/index.d.ts +1 -1
  80. package/dist/modules/ecoimpacthub/index.js +1 -1
  81. package/dist/modules/eventfullymanaged/index.cjs +21 -21
  82. package/dist/modules/eventfullymanaged/index.d.cts +1 -1
  83. package/dist/modules/eventfullymanaged/index.d.ts +1 -1
  84. package/dist/modules/eventfullymanaged/index.js +1 -1
  85. package/dist/modules/export/index.cjs +3 -3
  86. package/dist/modules/export/index.d.cts +1 -1
  87. package/dist/modules/export/index.d.ts +1 -1
  88. package/dist/modules/export/index.js +1 -1
  89. package/dist/modules/files/index.cjs +8 -8
  90. package/dist/modules/files/index.d.cts +1 -1
  91. package/dist/modules/files/index.d.ts +1 -1
  92. package/dist/modules/files/index.js +1 -1
  93. package/dist/modules/fluidgrids/index.cjs +401 -0
  94. package/dist/modules/fluidgrids/index.d.cts +7 -0
  95. package/dist/modules/fluidgrids/index.d.ts +7 -0
  96. package/dist/modules/fluidgrids/index.js +401 -0
  97. package/dist/modules/ggnomad/index.cjs +7 -7
  98. package/dist/modules/ggnomad/index.d.cts +1 -1
  99. package/dist/modules/ggnomad/index.d.ts +1 -1
  100. package/dist/modules/ggnomad/index.js +1 -1
  101. package/dist/modules/govcitizenhub/index.cjs +4 -4
  102. package/dist/modules/govcitizenhub/index.d.cts +1 -1
  103. package/dist/modules/govcitizenhub/index.d.ts +1 -1
  104. package/dist/modules/govcitizenhub/index.js +1 -1
  105. package/dist/modules/groups/index.cjs +4 -4
  106. package/dist/modules/groups/index.d.cts +1 -1
  107. package/dist/modules/groups/index.d.ts +1 -1
  108. package/dist/modules/groups/index.js +1 -1
  109. package/dist/modules/headshotmarketing/index.cjs +1 -1
  110. package/dist/modules/headshotmarketing/index.d.cts +1 -1
  111. package/dist/modules/headshotmarketing/index.d.ts +1 -1
  112. package/dist/modules/headshotmarketing/index.js +1 -1
  113. package/dist/modules/health/index.d.cts +1 -1
  114. package/dist/modules/health/index.d.ts +1 -1
  115. package/dist/modules/hookmovies/index.cjs +7 -7
  116. package/dist/modules/hookmovies/index.d.cts +1 -1
  117. package/dist/modules/hookmovies/index.d.ts +1 -1
  118. package/dist/modules/hookmovies/index.js +1 -1
  119. package/dist/modules/housingvista/index.cjs +8 -8
  120. package/dist/modules/housingvista/index.d.cts +1 -1
  121. package/dist/modules/housingvista/index.d.ts +1 -1
  122. package/dist/modules/housingvista/index.js +1 -1
  123. package/dist/modules/integrations/index.cjs +5 -5
  124. package/dist/modules/integrations/index.d.cts +1 -1
  125. package/dist/modules/integrations/index.d.ts +1 -1
  126. package/dist/modules/integrations/index.js +1 -1
  127. package/dist/modules/intelwatchtower/index.cjs +6 -6
  128. package/dist/modules/intelwatchtower/index.d.cts +1 -1
  129. package/dist/modules/intelwatchtower/index.d.ts +1 -1
  130. package/dist/modules/intelwatchtower/index.js +1 -1
  131. package/dist/modules/kadaikodi/index.cjs +2 -2
  132. package/dist/modules/kadaikodi/index.d.cts +1 -1
  133. package/dist/modules/kadaikodi/index.d.ts +1 -1
  134. package/dist/modules/kadaikodi/index.js +1 -1
  135. package/dist/modules/labsofscience/index.cjs +6 -6
  136. package/dist/modules/labsofscience/index.d.cts +1 -1
  137. package/dist/modules/labsofscience/index.d.ts +1 -1
  138. package/dist/modules/labsofscience/index.js +1 -1
  139. package/dist/modules/manufacturedops/index.cjs +6 -6
  140. package/dist/modules/manufacturedops/index.d.cts +1 -1
  141. package/dist/modules/manufacturedops/index.d.ts +1 -1
  142. package/dist/modules/manufacturedops/index.js +1 -1
  143. package/dist/modules/movethewheels/index.cjs +1 -1
  144. package/dist/modules/movethewheels/index.d.cts +1 -1
  145. package/dist/modules/movethewheels/index.d.ts +1 -1
  146. package/dist/modules/movethewheels/index.js +1 -1
  147. package/dist/modules/mybodyshield/index.cjs +8 -8
  148. package/dist/modules/mybodyshield/index.d.cts +1 -1
  149. package/dist/modules/mybodyshield/index.d.ts +1 -1
  150. package/dist/modules/mybodyshield/index.js +1 -1
  151. package/dist/modules/notifications/index.cjs +5 -5
  152. package/dist/modules/notifications/index.d.cts +1 -1
  153. package/dist/modules/notifications/index.d.ts +1 -1
  154. package/dist/modules/notifications/index.js +1 -1
  155. package/dist/modules/organizations/index.d.cts +1 -1
  156. package/dist/modules/organizations/index.d.ts +1 -1
  157. package/dist/modules/organizations/index.js +1 -1
  158. package/dist/modules/planmagnet/index.cjs +23 -23
  159. package/dist/modules/planmagnet/index.d.cts +1 -1
  160. package/dist/modules/planmagnet/index.d.ts +1 -1
  161. package/dist/modules/planmagnet/index.js +1 -1
  162. package/dist/modules/products/index.cjs +6 -6
  163. package/dist/modules/products/index.d.cts +1 -1
  164. package/dist/modules/products/index.d.ts +1 -1
  165. package/dist/modules/products/index.js +1 -1
  166. package/dist/modules/proserviceworld/index.cjs +2 -2
  167. package/dist/modules/proserviceworld/index.d.cts +1 -1
  168. package/dist/modules/proserviceworld/index.d.ts +1 -1
  169. package/dist/modules/proserviceworld/index.js +1 -1
  170. package/dist/modules/rbac/index.cjs +2 -2
  171. package/dist/modules/rbac/index.d.cts +1 -1
  172. package/dist/modules/rbac/index.d.ts +1 -1
  173. package/dist/modules/rbac/index.js +1 -1
  174. package/dist/modules/sandbox/index.cjs +1 -1
  175. package/dist/modules/sandbox/index.d.cts +1 -1
  176. package/dist/modules/sandbox/index.d.ts +1 -1
  177. package/dist/modules/sandbox/index.js +1 -1
  178. package/dist/modules/scheduler/index.cjs +7 -7
  179. package/dist/modules/scheduler/index.d.cts +1 -1
  180. package/dist/modules/scheduler/index.d.ts +1 -1
  181. package/dist/modules/scheduler/index.js +1 -1
  182. package/dist/modules/security/index.cjs +7 -7
  183. package/dist/modules/security/index.d.cts +1 -1
  184. package/dist/modules/security/index.d.ts +1 -1
  185. package/dist/modules/security/index.js +1 -1
  186. package/dist/modules/semanticfed/index.cjs +7 -7
  187. package/dist/modules/semanticfed/index.d.cts +1 -1
  188. package/dist/modules/semanticfed/index.d.ts +1 -1
  189. package/dist/modules/semanticfed/index.js +1 -1
  190. package/dist/modules/store/index.cjs +7 -7
  191. package/dist/modules/store/index.d.cts +1 -1
  192. package/dist/modules/store/index.d.ts +1 -1
  193. package/dist/modules/store/index.js +1 -1
  194. package/dist/modules/subscriberbot/index.cjs +2 -2
  195. package/dist/modules/subscriberbot/index.d.cts +1 -1
  196. package/dist/modules/subscriberbot/index.d.ts +1 -1
  197. package/dist/modules/subscriberbot/index.js +1 -1
  198. package/dist/modules/support/index.cjs +2 -2
  199. package/dist/modules/support/index.d.cts +1 -1
  200. package/dist/modules/support/index.d.ts +1 -1
  201. package/dist/modules/support/index.js +1 -1
  202. package/dist/modules/tags/index.cjs +1 -1
  203. package/dist/modules/tags/index.d.cts +1 -1
  204. package/dist/modules/tags/index.d.ts +1 -1
  205. package/dist/modules/tags/index.js +1 -1
  206. package/dist/modules/technospam/index.cjs +4 -4
  207. package/dist/modules/technospam/index.d.cts +1 -1
  208. package/dist/modules/technospam/index.d.ts +1 -1
  209. package/dist/modules/technospam/index.js +1 -1
  210. package/dist/modules/theculturepost/index.cjs +3 -3
  211. package/dist/modules/theculturepost/index.d.cts +1 -1
  212. package/dist/modules/theculturepost/index.d.ts +1 -1
  213. package/dist/modules/theculturepost/index.js +1 -1
  214. package/dist/modules/theglobalfuel/index.cjs +3 -3
  215. package/dist/modules/theglobalfuel/index.d.cts +1 -1
  216. package/dist/modules/theglobalfuel/index.d.ts +1 -1
  217. package/dist/modules/theglobalfuel/index.js +1 -1
  218. package/dist/modules/timecampus/index.cjs +7 -7
  219. package/dist/modules/timecampus/index.d.cts +1 -1
  220. package/dist/modules/timecampus/index.d.ts +1 -1
  221. package/dist/modules/timecampus/index.js +1 -1
  222. package/dist/modules/tours/index.cjs +2 -2
  223. package/dist/modules/tours/index.d.cts +1 -1
  224. package/dist/modules/tours/index.d.ts +1 -1
  225. package/dist/modules/tours/index.js +1 -1
  226. package/dist/modules/vibecontrols/index.cjs +1 -1
  227. package/dist/modules/vibecontrols/index.d.cts +1 -1
  228. package/dist/modules/vibecontrols/index.d.ts +1 -1
  229. package/dist/modules/vibecontrols/index.js +1 -1
  230. package/dist/modules/workspaces/index.cjs +14 -14
  231. package/dist/modules/workspaces/index.d.cts +1 -1
  232. package/dist/modules/workspaces/index.d.ts +1 -1
  233. package/dist/modules/workspaces/index.js +11 -11
  234. package/package.json +1 -1
  235. package/dist/chunk-TCBALVP4.js +0 -32
  236. package/dist/chunk-WXDQ3S5J.js +0 -1
@@ -0,0 +1,401 @@
1
+ import {a,b,h as h$1,i,o as o$1,p as p$1,q as q$1}from'../../chunk-SQSFZFQZ.js';import {o}from'../../chunk-UAFYTYK6.js';import {readFileSync}from'fs';import {createInterface}from'readline';import {Writable}from'stream';var E=`
2
+ id workflowKey name description version status category tags icon isActive
3
+ totalVersions projectId createdAt updatedAt
4
+ `,q=`
5
+ query FluidgridsListWorkflows($input: ListWorkflowDefinitionsInput!) {
6
+ workflowDefinitions(input: $input) {
7
+ items { ${E} }
8
+ total
9
+ hasMore
10
+ }
11
+ }
12
+ `,v=`
13
+ query FluidgridsGetWorkflow($id: ID, $workflowKey: String, $version: String) {
14
+ workflowDefinition(id: $id, workflowKey: $workflowKey, version: $version) {
15
+ ${E}
16
+ alias
17
+ definitionJson
18
+ context
19
+ }
20
+ }
21
+ `,Y=`
22
+ query FluidgridsWorkflowVersions($workflowKey: String!) {
23
+ workflowVersions(workflowKey: $workflowKey) { ${E} }
24
+ }
25
+ `,z=`
26
+ mutation FluidgridsCreateWorkflow($input: CreateWorkflowDefinitionInput!) {
27
+ createWorkflowDefinition(input: $input) { ${E} }
28
+ }
29
+ `,Z=`
30
+ mutation FluidgridsUpdateWorkflow($id: ID!, $input: UpdateWorkflowDefinitionInput!) {
31
+ updateWorkflowDefinition(id: $id, input: $input) { ${E} }
32
+ }
33
+ `,Q=`
34
+ mutation FluidgridsDeleteWorkflow($workflowKey: String!, $version: String) {
35
+ deleteWorkflowDefinition(workflowKey: $workflowKey, version: $version)
36
+ }
37
+ `,X=`
38
+ mutation FluidgridsTriggerWorkflow($input: TriggerWorkflowInput!) {
39
+ triggerWorkflow(input: $input) {
40
+ runId
41
+ status
42
+ workflowKey
43
+ version
44
+ triggerNodeId
45
+ }
46
+ }
47
+ `,tt=`
48
+ mutation FluidgridsPublishWorkflow($id: ID!) {
49
+ publishWorkflow(id: $id) { ${E} }
50
+ }
51
+ `,et=`
52
+ mutation FluidgridsActivateWorkflow($id: ID!) {
53
+ activateWorkflowDefinition(id: $id) { ${E} }
54
+ }
55
+ `,ot=`
56
+ mutation FluidgridsDeactivateWorkflow($id: ID!) {
57
+ deactivateWorkflowDefinition(id: $id) { ${E} }
58
+ }
59
+ `,nt=`
60
+ mutation FluidgridsDuplicateWorkflow(
61
+ $workflowKey: String!
62
+ $version: String!
63
+ $input: DuplicateWorkflowInput!
64
+ ) {
65
+ duplicateWorkflow(workflowKey: $workflowKey, version: $version, input: $input) {
66
+ success
67
+ message
68
+ workflow { ${E} }
69
+ }
70
+ }
71
+ `,it=`
72
+ mutation FluidgridsArchiveWorkflow($id: ID!) {
73
+ archiveWorkflow(id: $id) { ${E} }
74
+ }
75
+ `,rt=`
76
+ mutation FluidgridsImportWorkflowTemplate($input: ImportWorkflowTemplateInput!) {
77
+ importWorkflowTemplate(input: $input) {
78
+ success
79
+ message
80
+ workflow { ${E} }
81
+ }
82
+ }
83
+ `,st=`
84
+ id workflowId workflowKey version status mode startedAt completedAt duration
85
+ triggeredById triggerNodeId errorMessage errorType progress totalNodes
86
+ completedNodes failedNodes skippedNodes createdAt
87
+ `,F=`
88
+ query FluidgridsListRuns($input: ListWorkflowRunsInput!) {
89
+ workflowRuns(input: $input) {
90
+ items { ${st} }
91
+ total
92
+ hasMore
93
+ }
94
+ }
95
+ `,at=`
96
+ query FluidgridsGetRun($id: ID!) {
97
+ workflowRun(id: $id) {
98
+ ${st}
99
+ triggerData
100
+ nodeStates {
101
+ id nodeId nodeType nodeVersion status error errorType attemptCount
102
+ startTime endTime duration output
103
+ }
104
+ }
105
+ }
106
+ `,dt=`
107
+ query FluidgridsRunLogs(
108
+ $runId: ID!
109
+ $nodeId: String
110
+ $minLevel: RunLogLevel
111
+ $limit: Int
112
+ $after: String
113
+ $search: String
114
+ $includeChildRuns: Boolean
115
+ ) {
116
+ workflowRunLogs(
117
+ runId: $runId
118
+ nodeId: $nodeId
119
+ minLevel: $minLevel
120
+ limit: $limit
121
+ after: $after
122
+ search: $search
123
+ includeChildRuns: $includeChildRuns
124
+ ) {
125
+ lines {
126
+ id runId nodeId nodeStateId level message timestamp data attempt phase
127
+ stream truncated
128
+ }
129
+ hasMore
130
+ nextCursor
131
+ limitReached
132
+ }
133
+ }
134
+ `,L="id status completedAt errorMessage",lt=`
135
+ mutation FluidgridsCancelRun($id: ID!) {
136
+ cancelWorkflowRun(id: $id) { ${L} }
137
+ }
138
+ `,ut=`
139
+ mutation FluidgridsPauseRun($id: ID!) {
140
+ pauseWorkflowRun(id: $id) { ${L} }
141
+ }
142
+ `,ct=`
143
+ mutation FluidgridsResumeRun($id: ID!, $payload: JSON) {
144
+ resumeWorkflowRun(id: $id, payload: $payload) {
145
+ success
146
+ message
147
+ resumedFromNodeId
148
+ run { ${L} }
149
+ }
150
+ }
151
+ `,pt=`
152
+ mutation FluidgridsRetryNode($id: ID!, $nodeId: String!) {
153
+ retryNode(id: $id, nodeId: $nodeId) {
154
+ id nodeId nodeType status error attemptCount
155
+ }
156
+ }
157
+ `,ft=`
158
+ id nodeType nodeVersion name description category icon logo keywords kind author
159
+ publishType status isLatest endpointUrl operations supportsAdapterMode
160
+ adapterOutputType docsUrl createdAt updatedAt
161
+ `,mt=`
162
+ query FluidgridsListNodes(
163
+ $nodeType: String
164
+ $publishType: PublishType
165
+ $status: NodeConfigStatus
166
+ $pagination: WorkflowPaginationInput
167
+ ) {
168
+ nodeEndpointConfigs(
169
+ nodeType: $nodeType
170
+ publishType: $publishType
171
+ status: $status
172
+ pagination: $pagination
173
+ ) {
174
+ configs { ${ft} }
175
+ pagination { total limit offset hasMore }
176
+ }
177
+ }
178
+ `,gt=`
179
+ query FluidgridsGetNode($nodeType: String!, $nodeVersion: String!) {
180
+ nodeEndpointConfig(nodeType: $nodeType, nodeVersion: $nodeVersion) {
181
+ ${ft}
182
+ healthCheckUrl
183
+ nodeAdapters
184
+ }
185
+ }
186
+ `,_=`
187
+ id name description status providerId credentialSource externalAccountId
188
+ externalAccountName externalAccountEmail grantedScopes lastUsedAt lastHealthCheck
189
+ errorMessage createdAt updatedAt
190
+ `,wt=`
191
+ query FluidgridsListCredentials(
192
+ $filter: ConnectionFilterInput
193
+ $pagination: IntegrationsPaginationInput
194
+ ) {
195
+ getConnections(filter: $filter, pagination: $pagination) {
196
+ items {
197
+ ${_}
198
+ provider { id key name category authType icon }
199
+ }
200
+ total
201
+ hasMore
202
+ }
203
+ }
204
+ `,yt=`
205
+ query FluidgridsGetCredential($id: ID!) {
206
+ getConnection(id: $id) {
207
+ ${_}
208
+ config
209
+ metadata
210
+ workspaceId
211
+ provider {
212
+ id key name description category authType configSchema availableScopes
213
+ defaultScopes icon docsUrl
214
+ }
215
+ }
216
+ }
217
+ `,kt=`
218
+ query FluidgridsListCredentialTypes(
219
+ $filter: ProviderFilterInput
220
+ $pagination: IntegrationsPaginationInput
221
+ ) {
222
+ getProviders(filter: $filter, pagination: $pagination) {
223
+ items {
224
+ id key name description category authType configSchema availableScopes
225
+ defaultScopes icon docsUrl isBuiltIn isEnabled connectionCount
226
+ }
227
+ total
228
+ hasMore
229
+ }
230
+ }
231
+ `,ht=`
232
+ mutation FluidgridsCreateCredential($input: CreateConnectionInput!) {
233
+ createConnection(input: $input) {
234
+ ${_}
235
+ provider { id key name authType }
236
+ }
237
+ }
238
+ `,Et=`
239
+ id name status grantedScopes externalAccountName errorMessage updatedAt
240
+ `,Rt=`
241
+ mutation FluidgridsAuthenticateCredentialApiKey($input: ApiKeyAuthInput!) {
242
+ authenticateWithApiKey(input: $input) { ${Et} }
243
+ }
244
+ `,bt=`
245
+ mutation FluidgridsAuthenticateCredentialBasic($input: BasicAuthInput!) {
246
+ authenticateWithBasicAuth(input: $input) { ${Et} }
247
+ }
248
+ `,St=`
249
+ mutation FluidgridsUpdateCredential($id: ID!, $input: UpdateConnectionInput!) {
250
+ updateConnection(id: $id, input: $input) {
251
+ id name description status config updatedAt
252
+ }
253
+ }
254
+ `,It=`
255
+ mutation FluidgridsDeleteCredential($id: ID!, $deleteVaultSecret: Boolean) {
256
+ deleteConnection(id: $id, deleteVaultSecret: $deleteVaultSecret)
257
+ }
258
+ `,Ot=`
259
+ mutation FluidgridsTestCredential($connectionId: ID!) {
260
+ testConnection(connectionId: $connectionId) { success message latencyMs }
261
+ }
262
+ `,$=`
263
+ id name description workflowKey triggerNodeId eventSource eventType status isActive
264
+ webhookUrl webhookToken validationMethod signatureHeader apiKeyHeader payloadMapping
265
+ config tags totalTriggers successfulTriggers failedTriggers lastTriggeredAt
266
+ projectId createdAt updatedAt
267
+ `,Tt=`
268
+ query FluidgridsListWebhooks($status: EventStatus, $workflowKey: String) {
269
+ eventRegistrations(status: $status, workflowKey: $workflowKey) { ${$} }
270
+ }
271
+ `,Ct=`
272
+ query FluidgridsGetWebhook($id: ID!) {
273
+ eventRegistration(id: $id) { ${$} }
274
+ }
275
+ `,$t=`
276
+ mutation FluidgridsCreateWebhook($input: CreateEventRegistrationInput!) {
277
+ createEventRegistration(input: $input) { ${$} }
278
+ }
279
+ `,Dt=`
280
+ mutation FluidgridsUpdateWebhook($id: ID!, $input: UpdateEventRegistrationInput!) {
281
+ updateEventRegistration(id: $id, input: $input) { ${$} }
282
+ }
283
+ `,vt=`
284
+ mutation FluidgridsDeleteWebhook($id: ID!) {
285
+ deleteEventRegistration(id: $id)
286
+ }
287
+ `,Wt=`
288
+ mutation FluidgridsToggleWebhook($id: ID!, $isActive: Boolean!) {
289
+ toggleEventRegistration(id: $id, isActive: $isActive) { ${$} }
290
+ }
291
+ `,W=`
292
+ id name workflowKey version schedule enabled nextRun lastRun config createdAt updatedAt
293
+ `,At=`
294
+ query FluidgridsListScheduledJobs(
295
+ $enabled: Boolean
296
+ $workflowKey: String
297
+ $pagination: WorkflowPaginationInput
298
+ ) {
299
+ workflowScheduledJobs(enabled: $enabled, workflowKey: $workflowKey, pagination: $pagination) {
300
+ jobs { ${W} }
301
+ pagination { total limit offset hasMore }
302
+ }
303
+ }
304
+ `,Nt=`
305
+ query FluidgridsGetScheduledJob($jobId: ID!) {
306
+ workflowScheduledJob(jobId: $jobId) {
307
+ ${W}
308
+ workspaceId
309
+ }
310
+ }
311
+ `,Ft=`
312
+ mutation FluidgridsCreateScheduledJob($input: ScheduledJobInput!) {
313
+ createWorkflowScheduledJob(input: $input) {
314
+ success
315
+ message
316
+ job { ${W} }
317
+ }
318
+ }
319
+ `,x=`
320
+ mutation FluidgridsUpdateScheduledJob($jobId: ID!, $input: WorkflowUpdateScheduledJobInput!) {
321
+ updateWorkflowScheduledJob(jobId: $jobId, input: $input) {
322
+ success
323
+ message
324
+ job { ${W} }
325
+ }
326
+ }
327
+ `,Lt=`
328
+ mutation FluidgridsDeleteScheduledJob($jobId: ID!) {
329
+ deleteWorkflowScheduledJob(jobId: $jobId) { success message }
330
+ }
331
+ `,_t=`
332
+ query FluidgridsDashboardSummary($projectId: String) {
333
+ dashboardSummary(projectId: $projectId) {
334
+ userId
335
+ username
336
+ workflowsCount
337
+ activeWorkflowsCount
338
+ archivedWorkflowsCount
339
+ runsCountTotal
340
+ runsCompletedCount
341
+ runsFailedCount
342
+ runsCancelledCount
343
+ runsPendingCount
344
+ runsRunningCount
345
+ runsWaitingCount
346
+ runsCompletedLast24h
347
+ runsFailedLast24h
348
+ runsCompletedLast7d
349
+ runsFailedLast7d
350
+ runsCompletedLast30d
351
+ runsFailedLast30d
352
+ totalNodesExecutedCount
353
+ workflowSuccessRate
354
+ avgWorkflowExecutionTimeSeconds
355
+ avgNodeExecutionTimeSeconds
356
+ timeSavedEstimateHours
357
+ recentRuns { id workflowKey version status startedAt completedAt duration }
358
+ recentWorkflows { workflowKey name version updatedAt }
359
+ nodeUsageStats { nodeType totalExecutions successCount failureCount avgExecutionTime }
360
+ }
361
+ }
362
+ `,xt=`
363
+ query FluidgridsUsageMetrics($input: UsageQueryInput!) {
364
+ usageMetrics(input: $input) {
365
+ period
366
+ workflowMetrics {
367
+ totalRuns successfulRuns failedRuns cancelledRuns totalDurationSeconds
368
+ averageDurationSeconds minDurationSeconds maxDurationSeconds medianDurationSeconds
369
+ }
370
+ nodeMetrics {
371
+ totalNodes successfulNodes failedNodes skippedNodes totalDurationSeconds
372
+ averageDurationSeconds nodeTypeBreakdown
373
+ }
374
+ }
375
+ }
376
+ `,Ut="query results entityCounts totalResults metadata",jt=`
377
+ query FluidgridsSearch($input: SearchRequestInput!) {
378
+ search(input: $input) { ${Ut} }
379
+ }
380
+ `,Kt=`
381
+ query FluidgridsSearchByEntityType(
382
+ $entityType: String!
383
+ $query: String!
384
+ $filters: SearchFilterInput
385
+ $limit: Int
386
+ $offset: Int
387
+ ) {
388
+ searchByEntityType(
389
+ entityType: $entityType
390
+ query: $query
391
+ filters: $filters
392
+ limit: $limit
393
+ offset: $offset
394
+ ) { ${Ut} }
395
+ }
396
+ `,Pt=`
397
+ query FluidgridsSystemConfig {
398
+ systemConfig { version revision environment deploymentType hostname hostIp }
399
+ }
400
+ `;function p(r,i){if(!/^\d+$/.test(r))throw new o(`Invalid value '${r}' for ${i}: expected a non-negative integer.`);let t=Number(r);if(!Number.isSafeInteger(t))throw new o(`Invalid value '${r}' for ${i}: expected a non-negative integer.`);return t}function w(r,i,t){if(r===void 0)return;let e=t.find(o=>o===r);if(e===void 0)throw new o(`Invalid value '${r}' for ${i}. Allowed: ${t.join(", ")}`);return e}function C(r,i){let t;try{t=JSON.parse(r);}catch{throw new o(`${i} must be valid JSON.`)}if(!re(t))throw new o(`${i} must be a JSON object.`);return t}function k(r){let i;try{i=readFileSync(r,"utf8");}catch(t){let e=t instanceof Error?t.message:String(t);throw new o(`Cannot read ${r}: ${e}`)}return C(i,r)}function T(r,i){if(r!==void 0){if(!r.trim())throw new o(`${i} cannot be empty.`);return r}}function h(r,i,t){if(r==null)throw new o(`${i} ${t} not found (NOT_FOUND)`);return r}function re(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function Jt(r,i=[]){return [...i,r]}async function I(r,i){if(!await q$1(r,i))throw new o("Aborted: nothing was changed.")}var U=["DRAFT","ACTIVE","ARCHIVED","DEPRECATED"],j=["PENDING","RUNNING","WAITING","COMPLETED","FAILED","CANCELLED","TERMINATED"],Mt=["COMPLETED","FAILED","CANCELLED","TERMINATED"],K=["DEBUG","INFO","WARN","ERROR"],P=["BUILTIN","CUSTOM","STORE"],J=["AVAILABLE","DEPRECATED","DISABLED"],M=["ACTIVE","PAUSED","DISABLED","ARCHIVED"],G=["ACTIVE","INACTIVE","PENDING_AUTH","ERROR","EXPIRED","REVOKED"],V=["workflow","run","node","event"];function Gt(r){return {headers:["ID","Key","Name","Version","Status","Active","Updated"],rows:r.map(i=>[p$1(i.id,12),i.workflowKey,p$1(i.name,32),i.version,i.status,i.isActive?"yes":"no",o$1(i.updatedAt)])}}function Vt(r){let i$1=r.command("workflows").description("FluidGrids workflow definitions");i$1.command("list").description("List workflow definitions").option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("-s, --status <status>",`Filter by status (${U.join("|")})`).option("--category <category>","Filter by category").option("--tag <tag>","Filter by tag (repeatable)",Jt).option("--latest-only","Only the latest version of each workflow key").option("-f, --format <format>","Output format (json, table, yaml)").action(async e=>{let o={limit:p(e.limit,"--limit"),offset:p(e.offset,"--offset")},n=w(e.status,"--status",U);n&&(o.status=n),e.category&&(o.category=e.category),e.tag?.length&&(o.tags=e.tag),e.latestOnly&&(o.latestOnly=true);let s=await b(q,{input:o});h$1(e,s.workflowDefinitions.items,Gt(s.workflowDefinitions.items));}),i$1.command("get").description("Get a workflow definition by ID, or by key with --key").argument("[id]","Workflow definition ID").option("--key <workflowKey>","Look up by workflow key instead of ID").option("--wf-version <version>","Version to fetch with --key").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o$1)=>{if(!e&&!o$1.key)throw new o("Pass a workflow ID or --key <workflowKey>.");if(e&&o$1.key)throw new o("Pass either a workflow ID or --key, not both.");let n=await b(v,e?{id:e}:{workflowKey:o$1.key,version:o$1.wfVersion});h$1(o$1,h(n.workflowDefinition,"Workflow",e??o$1.key??""));}),i$1.command("versions").description("List every stored version of a workflow key").argument("<workflowKey>","Workflow key").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o)=>{let n=await b(Y,{workflowKey:e});h$1(o,n.workflowVersions,Gt(n.workflowVersions));}),i$1.command("create").description("Create a workflow definition from a CreateWorkflowDefinitionInput JSON file").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o)=>{let n=k(e),s=await b(z,{input:n});i(`Workflow created: ${s.createWorkflowDefinition.workflowKey}`),h$1(o,s.createWorkflowDefinition);}),i$1.command("update").description("Update a workflow definition from an UpdateWorkflowDefinitionInput JSON file").argument("<id>","Workflow definition ID").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o,n)=>{let s=k(o),d=await b(Z,{id:e,input:s});i("Workflow updated"),h$1(n,d.updateWorkflowDefinition);}),i$1.command("delete").description("Delete a workflow (every version, or one with --wf-version)").argument("<workflowKey>","Workflow key").option("--wf-version <version>","Delete only this version").option("--force","Skip the confirmation prompt").action(async(e,o$1)=>{let n=o$1.wfVersion?`${e}@${o$1.wfVersion}`:`${e} (all versions)`;if(await I(`Delete workflow ${n}?`,o$1.force),!(await b(Q,{workflowKey:e,version:o$1.wfVersion})).deleteWorkflowDefinition)throw new o(`Workflow ${n} was not deleted.`);i(`Workflow ${n} deleted`);}),i$1.command("trigger").description("Trigger a workflow run").argument("<workflowKey>","Workflow key").requiredOption("--wf-version <version>","Workflow version").requiredOption("--trigger-node <id>","Trigger node ID").option("-i, --input <json>","Trigger data as a JSON object").option("--stop-at-node <id>","Stop the run after this node").option("--test","Run in TEST mode instead of PRODUCTION").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o)=>{let n={workflowKey:e,version:T(o.wfVersion,"--wf-version"),triggerNodeId:T(o.triggerNode,"--trigger-node")};o.input!==void 0&&(n.triggerData=C(o.input,"--input")),o.stopAtNode&&(n.stopAtNodeId=o.stopAtNode),o.test&&(n.mode="TEST");let s=await b(X,{input:n});h$1(o,s.triggerWorkflow);}),i$1.command("duplicate").description("Duplicate a workflow version under a new key").argument("<workflowKey>","Source workflow key").argument("<version>","Source version").requiredOption("--new-key <key>","Workflow key for the copy").option("--new-version <version>","Version for the copy").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o$1,n)=>{let s={newWorkflowKey:T(n.newKey,"--new-key")};n.newVersion&&(s.newVersion=n.newVersion);let d=await b(nt,{workflowKey:e,version:o$1,input:s});if(!d.duplicateWorkflow.success)throw new o(d.duplicateWorkflow.message??"Duplicate failed.");h$1(n,d.duplicateWorkflow.workflow??d.duplicateWorkflow);});let t=[["publish","Publish a workflow definition version",tt,"publishWorkflow"],["activate","Make a workflow definition version the active one",et,"activateWorkflowDefinition"],["deactivate","Deactivate a workflow definition version",ot,"deactivateWorkflowDefinition"],["archive","Archive a workflow definition version",it,"archiveWorkflow"]];for(let[e,o$1,n,s]of t)i$1.command(e).description(o$1).argument("<id>","Workflow definition ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(d,f)=>{let m=(await b(n,{id:d}))[s];if(!m)throw new o(`Workflow ${d}: ${e} returned no result.`);i(`Workflow ${m.workflowKey}@${m.version}: ${m.status}`),h$1(f,m);});i$1.command("import").description("Import a workflow from a store template (ImportWorkflowTemplateInput JSON)").argument("<file>","Path to the template input JSON").option("--name <name>","Override the workflow name").option("--description <text>","Override the description").option("--icon <icon>","Override the icon").option("--category <category>","Override the category").option("--project-id <id>","Scope to a project").option("--source-template-id <id>","Source template ID (lineage)").option("--context <json>","Context metadata as a JSON object").option("-f, --format <format>","Output format (json, table, yaml)").action(async(e,o$1)=>{let n={...k(e)},s=T(o$1.name,"--name"),d=T(o$1.projectId,"--project-id"),f=T(o$1.sourceTemplateId,"--source-template-id");s!==void 0&&(n.name=s),o$1.description!==void 0&&(n.description=o$1.description),o$1.icon!==void 0&&(n.icon=o$1.icon),o$1.category!==void 0&&(n.category=o$1.category),d!==void 0&&(n.projectId=d),f!==void 0&&(n.sourceTemplateId=f),o$1.context!==void 0&&(n.context=C(o$1.context,"--context"));let S=await b(rt,{input:n});if(!S.importWorkflowTemplate.success)throw new o(S.importWorkflowTemplate.message??"Import failed.");i("Workflow imported"),h$1(o$1,S.importWorkflowTemplate.workflow??S.importWorkflowTemplate);});}var se=100;function Bt(r){return {headers:["ID","Workflow","Version","Status","Progress","Started","Completed"],rows:r.map(i=>[p$1(i.id,12),i.workflowKey,i.version,i.status,`${Math.round(i.progress)}%`,o$1(i.startedAt),o$1(i.completedAt)])}}async function A(r){let i=await b(at,{id:r});return h(i.workflowRun,"Run",r)}function ae(r){return Mt.some(i=>i===r.toUpperCase())}async function de(r,i,t,e,o$1){if(e===0)return [];let n=[],s=new Set,d=0,f=0;for(;n.length<e;){let m=(await b(F,{input:{workflowKey:i,status:t,limit:se,offset:d}})).workflowRuns;if(m.items.length===0){if(m.hasMore)throw new o("Run listing returned an empty page before the end.");break}for(let D of m.items)if(!(D.workflowId!==r||s.has(D.id))){if(s.add(D.id),f<o$1){f++;continue}if(n.push(D),n.length===e)break}if(d+=m.items.length,!m.hasMore)break}return n}function le(r,i,t){let e=t.filter(d=>d.nodeId===i);if(e.length===0)throw new o(`Node ${i} not found in run ${r} (NOT_FOUND)`);let o$1=e.filter(d=>["FAILED","TIMEOUT"].includes(d.status.toUpperCase()));if(o$1.length===0)throw new o(`Node ${i} is not failed in run ${r} (INVALID_STATE)`);let[n,...s]=o$1;if(!n||s.length>0)throw new o(`Node ${i} is ambiguous in run ${r}; retry a specific node state.`);return n}function ue(r){return new Promise(i=>setTimeout(i,r))}function Ht(r){let i$1=r.command("runs").description("FluidGrids workflow runs");i$1.command("list").description("List workflow runs").option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("-s, --status <status>",`Filter by status (${j.join("|")})`).option("--workflow-key <key>","Filter by workflow key").option("--workflow-id <id>","Filter by exact workflow definition ID (scans all pages)").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=p(t.limit,"--limit"),o$1=p(t.offset,"--offset"),n=w(t.status,"--status",j);if(t.workflowId&&t.workflowKey)throw new o("Use either --workflow-id or --workflow-key, not both.");if(t.workflowId){let f=await b(v,{id:t.workflowId}),S=h(f.workflowDefinition,"Workflow",t.workflowId),m=await de(t.workflowId,S.workflowKey,n,e,o$1);h$1(t,m,Bt(m));return}let s={limit:e,offset:o$1};n&&(s.status=n),t.workflowKey&&(s.workflowKey=t.workflowKey);let d=await b(F,{input:s});h$1(t,d.workflowRuns.items,Bt(d.workflowRuns.items));}),i$1.command("get").description("Get a run (with node states)").argument("<id>","Run ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{h$1(e,await A(t));}),i$1.command("cancel").description("Cancel a run").argument("<id>","Run ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(lt,{id:t});i(`Run ${t}: ${o.cancelWorkflowRun.status}`),h$1(e,o.cancelWorkflowRun);}),i$1.command("pause").description("Pause a run").argument("<id>","Run ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(ut,{id:t});i(`Run ${t}: ${o.pauseWorkflowRun.status}`),h$1(e,o.pauseWorkflowRun);}),i$1.command("resume").description("Resume a paused or waiting run").argument("<id>","Run ID").option("--payload <json>","JSON object delivered to the waiting node").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o$1=e.payload===void 0?void 0:C(e.payload,"--payload"),n=await b(ct,{id:t,payload:o$1});if(!n.resumeWorkflowRun.success)throw new o(n.resumeWorkflowRun.message);h$1(e,n.resumeWorkflowRun);}),i$1.command("wait").description("Poll a run until it reaches a terminal status").argument("<id>","Run ID").option("--timeout <ms>","Give up after this many milliseconds","300000").option("--poll-interval <ms>","Delay between polls in milliseconds","1000").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o$1=p(e.timeout,"--timeout"),n=p(e.pollInterval,"--poll-interval"),s=Date.now(),d=await A(t);for(;!ae(d.status);){if(Date.now()-s>o$1)throw new o(`Timed out waiting for run ${t} (last status ${d.status}).`);await ue(n),d=await A(t);}h$1(e,d);}),i$1.command("logs").description("Get run logs (one cursor page)").argument("<id>","Run ID").option("--level <level>",`Minimum level (${K.join("|")})`).option("--node-id <id>","Only this graph node").option("--search <text>","Only lines containing this text").option("--include-child-runs","Include sub-workflow runs").option("--limit <n>","Page size, 1 to 1000").option("--after <cursor>","Continue after a nextCursor from an earlier page").option("--page-info","Print the whole page (lines + cursor) instead of only lines").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o$2=w(e.level,"--level",K),n=e.limit===void 0?void 0:p(e.limit,"--limit");if(n!==void 0&&(n<1||n>1e3))throw new o(`Invalid value '${e.limit}' for --limit: expected 1 to 1000.`);if(e.after!==void 0&&!e.after.trim())throw new o("--after cursor cannot be empty.");let d=(await b(dt,{runId:t,nodeId:e.nodeId,minLevel:o$2,limit:n,after:e.after,search:e.search,includeChildRuns:e.includeChildRuns})).workflowRunLogs;if(e.pageInfo){h$1(e,d);return}h$1(e,d.lines,{headers:["Time","Level","Node","Message"],rows:d.lines.map(f=>[o$1(f.timestamp),f.level,f.nodeId??"-",p$1(f.message,100)])});}),i$1.command("retry-node").description("Retry one failed node of a run (run ID + graph node ID)").argument("<runId>","Run ID").argument("<nodeId>","Graph node ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o)=>{let n=await A(t),s=le(t,e,n.nodeStates??[]),d=await b(pt,{id:s.id,nodeId:e});i(`Node ${e} retry: ${d.retryNode.status}`),h$1(o,d.retryNode);});}function qt(r){let i=r.command("nodes").description("FluidGrids node catalogue");i.command("list").description("List node endpoint configurations").option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("-t, --node-type <type>","Filter by node type").option("--publish-type <type>",`Filter by publish type (${P.join("|")})`).option("--status <status>",`Filter by status (${J.join("|")})`).option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let o=(await b(mt,{nodeType:t.nodeType,publishType:w(t.publishType,"--publish-type",P),status:w(t.status,"--status",J),pagination:{limit:p(t.limit,"--limit"),offset:p(t.offset,"--offset")}})).nodeEndpointConfigs.configs;h$1(t,o,{headers:["Type","Version","Name","Category","Publish","Status","Latest"],rows:o.map(n=>[n.nodeType,n.nodeVersion,n.name,n.category??"-",n.publishType,n.status,n.isLatest?"yes":"no"])});}),i.command("get").description("Get a node endpoint configuration by type and version").argument("<nodeType>","Node type").argument("<nodeVersion>","Node version").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o)=>{let n=await b(gt,{nodeType:t,nodeVersion:e});h$1(o,h(n.nodeEndpointConfig,"Node",`${t}@${e}`));});}var fe=/^[A-Za-z_][A-Za-z0-9_]*$/;async function me(r,i=process.stdin,t=process.stderr){if(!i.isTTY)throw new o("A terminal is required to prompt for a secret.");let e=new Writable({write(n,s,d){d();}}),o$1=createInterface({input:i,output:e,terminal:true});t.write(`${r}: `);try{return await new Promise(n=>{o$1.question("",n);})}finally{o$1.close(),t.write(`
401
+ `);}}async function Yt(r,i,t,e=process.env,o$1=me){if(r!==void 0){if(!fe.test(r))throw new o(`Invalid environment variable name for ${t}.`);let s=e[r];if(!s?.trim())throw new o(`The environment variable selected by ${t} is empty or unset.`);return s}if(!process.stdin.isTTY)throw new o(`An interactive terminal or ${t} is required to supply ${i}.`);let n=await o$1(i);if(!n.trim())throw new o(`${i} cannot be empty.`);return n}async function zt(r,i,t){try{let o=(await b(r,{input:t}))[i];if(o===void 0)throw new Error("empty response");return o}catch{throw new o("Connection authentication failed; verify the connection and secret.")}}function Zt(r){let i$1=r.command("credentials").description("FluidGrids credentials (integration connections)");i$1.command("list").description("List credentials").option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("-p, --provider-id <id>","Filter by provider ID").option("-s, --status <status>",`Filter by status (${G.join("|")})`).option("--search <text>","Filter by name").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e={};t.providerId&&(e.providerId=t.providerId);let o=w(t.status,"--status",G);o&&(e.status=o),t.search&&(e.search=t.search);let s=(await b(wt,{filter:Object.keys(e).length>0?e:void 0,pagination:{limit:p(t.limit,"--limit"),offset:p(t.offset,"--offset")}})).getConnections.items;h$1(t,s,{headers:["ID","Name","Provider","Status","Last used"],rows:s.map(d=>[p$1(d.id,12),d.name,d.provider?.key??d.providerId,d.status,o$1(d.lastUsedAt)])});}),i$1.command("get").description("Get a credential").argument("<id>","Credential (connection) ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(yt,{id:t});h$1(e,h(o.getConnection,"Credential",t));}),i$1.command("types").description("List the credential types (integration providers) you can create").option("-l, --limit <n>","Page size","50").option("-o, --offset <n>","Offset","0").option("--search <text>","Filter by name").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=await b(kt,{filter:t.search?{search:t.search}:void 0,pagination:{limit:p(t.limit,"--limit"),offset:p(t.offset,"--offset")}}),o=e.getProviders.items;h$1(t,e.getProviders,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:o.map(n=>[p$1(n.id,12),n.key,n.name,n.category,n.authType,n.isEnabled?"yes":"no"])});}),i$1.command("create").description("Create a credential shell from a CreateConnectionInput JSON file (no secrets; attach one with auth-api-key / auth-basic)").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=k(t),n=await b(ht,{input:o});i(`Credential created: ${n.createConnection.id}`),h$1(e,n.createConnection);}),i$1.command("update").description("Update a credential (name, description, config) from a JSON file").argument("<id>","Credential (connection) ID").argument("<file>","Path to the UpdateConnectionInput JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o)=>{let n=k(e),s=await b(St,{id:t,input:n});i("Credential updated"),h$1(o,s.updateConnection);}),i$1.command("delete").description("Delete a credential (the vault secret is kept unless --delete-vault-secret)").argument("<id>","Credential (connection) ID").option("--delete-vault-secret","Also delete the backing vault secret").option("--force","Skip the confirmation prompt").action(async(t,e)=>{if(await I(`Delete credential ${t}?`,e.force),!(await b(It,{id:t,deleteVaultSecret:e.deleteVaultSecret?true:void 0})).deleteConnection)throw new o(`Credential ${t} was not deleted.`);i(`Credential ${t} deleted`);}),i$1.command("test").description("Test a credential against its provider").argument("<id>","Credential (connection) ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(Ot,{connectionId:t});h$1(e,o.testConnection);}),i$1.command("auth-api-key").description("Attach a provider API key to a credential (hidden prompt or named env var)").argument("<id>","Credential (connection) ID").option("--api-key-env <name>","Read the API key from this environment variable").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await Yt(e.apiKeyEnv,"API key","--api-key-env"),n=await zt(Rt,"authenticateWithApiKey",{connectionId:t,apiKey:o});i(`Credential ${t}: ${n.status}`),h$1(e,n);}),i$1.command("auth-basic").description("Attach provider basic-auth credentials (hidden prompt or named env var)").argument("<id>","Credential (connection) ID").argument("<username>","Provider username").option("--password-env <name>","Read the password from this environment variable").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o$1)=>{if(!e.trim())throw new o("Provider username cannot be empty.");let n=await Yt(o$1.passwordEnv,"Password","--password-env"),s=await zt(bt,"authenticateWithBasicAuth",{connectionId:t,username:e,password:n});i(`Credential ${t}: ${s.status}`),h$1(o$1,s);});}function Qt(r){let i$1=r.command("webhooks").description("FluidGrids inbound webhooks (event registrations)");i$1.command("list").description("List webhooks").option("--workflow-key <key>","Filter by workflow key").option("-s, --status <status>",`Filter by status (${M.join("|")})`).option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=await b(Tt,{status:w(t.status,"--status",M),workflowKey:t.workflowKey});h$1(t,e.eventRegistrations,{headers:["ID","Name","Workflow","Trigger node","Status","Triggers","Last"],rows:e.eventRegistrations.map(o=>[p$1(o.id,12),o.name??"-",o.workflowKey,o.triggerNodeId,o.isActive?o.status:`${o.status} (inactive)`,String(o.totalTriggers),o$1(o.lastTriggeredAt)])});}),i$1.command("get").description("Get a webhook").argument("<id>","Event registration ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(Ct,{id:t});h$1(e,h(o.eventRegistration,"Webhook",t));}),i$1.command("create").description("Create a webhook from a CreateEventRegistrationInput JSON file").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=k(t),n=await b($t,{input:o});i(`Webhook created: ${n.createEventRegistration.id}`),h$1(e,n.createEventRegistration);}),i$1.command("update").description("Update a webhook from an UpdateEventRegistrationInput JSON file").argument("<id>","Event registration ID").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o)=>{let n=k(e),s=await b(Dt,{id:t,input:n});i("Webhook updated"),h$1(o,s.updateEventRegistration);}),i$1.command("delete").description("Delete a webhook").argument("<id>","Event registration ID").option("--force","Skip the confirmation prompt").action(async(t,e)=>{if(await I(`Delete webhook ${t}?`,e.force),!(await b(vt,{id:t})).deleteEventRegistration)throw new o(`Webhook ${t} was not deleted.`);i(`Webhook ${t} deleted`);});for(let[t,e]of [["activate",true],["deactivate",false]])i$1.command(t).description(`${e?"Activate":"Deactivate"} a webhook`).argument("<id>","Event registration ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(o,n)=>{let s=await b(Wt,{id:o,isActive:e});i(`Webhook ${o} ${e?"activated":"deactivated"}`),h$1(n,s.toggleEventRegistration);});}function B(r){if(!r.success)throw new o(r.message||"Scheduled job update failed.");return r}function Xt(r){let i$1=r.command("scheduled-jobs").description("FluidGrids scheduled workflow runs (cron)");i$1.command("list").description("List scheduled jobs").option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("--workflow-key <key>","Filter by workflow key").option("--enabled","Only enabled jobs").option("--disabled","Only disabled jobs").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{if(t.enabled&&t.disabled)throw new o("Use either --enabled or --disabled, not both.");let o$2=(await b(At,{enabled:t.enabled?true:t.disabled?false:void 0,workflowKey:t.workflowKey,pagination:{limit:p(t.limit,"--limit"),offset:p(t.offset,"--offset")}})).workflowScheduledJobs.jobs;h$1(t,o$2,{headers:["ID","Name","Workflow","Version","Schedule","Enabled","Next run"],rows:o$2.map(n=>[p$1(n.id,12),n.name,n.workflowKey,n.version,n.schedule,n.enabled?"yes":"no",o$1(n.nextRun)])});}),i$1.command("get").description("Get a scheduled job").argument("<jobId>","Scheduled job ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=await b(Nt,{jobId:t});h$1(e,h(o.workflowScheduledJob,"Scheduled job",t));}),i$1.command("create").description("Create a scheduled job from a ScheduledJobInput JSON file").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{let o=k(t),n=await b(Ft,{input:o}),s=B(n.createWorkflowScheduledJob);i(s.message||"Scheduled job created"),h$1(e,s.job??s);}),i$1.command("update").description("Update a scheduled job from a WorkflowUpdateScheduledJobInput JSON file").argument("<jobId>","Scheduled job ID").argument("<file>","Path to the input JSON").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e,o)=>{let n=k(e),s=await b(x,{jobId:t,input:n}),d=B(s.updateWorkflowScheduledJob);i(d.message||"Scheduled job updated"),h$1(o,d.job??d);}),i$1.command("delete").description("Delete a scheduled job").argument("<jobId>","Scheduled job ID").option("--force","Skip the confirmation prompt").action(async(t,e)=>{await I(`Delete scheduled job ${t}?`,e.force);let o$1=await b(Lt,{jobId:t});if(!o$1.deleteWorkflowScheduledJob.success)throw new o(o$1.deleteWorkflowScheduledJob.message||"Delete failed.");i(`Scheduled job ${t} deleted`);});for(let[t,e]of [["pause",false],["resume",true]])i$1.command(t).description(`${e?"Resume":"Pause"} a scheduled job`).argument("<jobId>","Scheduled job ID").option("-f, --format <format>","Output format (json, table, yaml)").action(async(o,n)=>{let s=await b(x,{jobId:o,input:{enabled:e}}),d=B(s.updateWorkflowScheduledJob);i(`Scheduled job ${o} ${e?"resumed":"paused"}`),h$1(n,d.job??d);});}function te(r,i){if(Number.isNaN(Date.parse(r)))throw new o(`Invalid value '${r}' for ${i}: expected an ISO 8601 date.`);return r}function ee(r){let i=r.command("dashboard").description("FluidGrids dashboard metrics");i.command("summary").description("Workflow, run and node counters (incl. 24h / 7d / 30d windows)").option("-p, --project <id>","Scope to a project").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=await b(_t,{projectId:t.project});h$1(t,e.dashboardSummary);}),i.command("usage").description("Workflow and node execution metrics for a date range").requiredOption("--start <date>","Range start (ISO 8601)").requiredOption("--end <date>","Range end (ISO 8601)").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=te(t.start,"--start"),o$1=te(t.end,"--end");if(Date.parse(e)>Date.parse(o$1))throw new o("--start must not be after --end.");let n=await b(xt,{input:{startDate:e,endDate:o$1}});h$1(t,n.usageMetrics);});}function oe(r){r.command("search").description("Search FluidGrids workflows, runs, nodes").command("query").description("Search across FluidGrids entities").argument("<query>","Search text").option("-t, --type <type>",`Restrict to one entity type (${V.join("|")})`).option("-l, --limit <n>","Page size","20").option("-o, --offset <n>","Offset","0").option("-f, --format <format>","Output format (json, table, yaml)").action(async(t,e)=>{if(!t.trim())throw new o("Search text cannot be empty.");let o$1=w(e.type,"--type",V),n=p(e.limit,"--limit"),s=p(e.offset,"--offset"),d=o$1?(await b(Kt,{entityType:o$1,query:t,limit:n,offset:s})).searchByEntityType:(await b(jt,{input:{query:t,limit:n,offset:s}})).search;h$1(e,d);});}function ne(r){r.command("admin").description("FluidGrids administration").command("system-info").description("Deployment information (version, revision, environment) of the workflow service").option("-f, --format <format>","Output format (json, table, yaml)").action(async t=>{let e=await b(Pt);h$1(t,e.systemConfig);});}var ge={id:"fluidgrids",version:"1.0.0",displayName:"FluidGrids",dependsOn:["auth","workspaces"],register(r,i){a(i),Vt(r),Ht(r),qt(r),Zt(r),Qt(r),Xt(r),ee(r),oe(r),ne(r);}},uo=ge;export{uo as default};
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},f=class extends p{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},l=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var C=null;function x(o){C=o;}function y(){if(!C)throw new l("vibecontrols module helpers used before setHelpersContext was called");return C}function dt(){let o=y();if(!o.auth.isAuthenticated())throw new f(`Authentication required. Run \`${o.productName} auth login\`.`)}async function i(o,r){return dt(),y().gql.workspace.request(o,r)}function s(o){let r=o instanceof Error?o.message:String(o);throw new p(r)}function a(o,r,t){y().output.formatAndOutput(o,r,t);}function m(o){y().output.printSuccess(o);}function h(o){return y().output.formatDate(o)}function d(o,r){return y().output.truncate(o,r)}var I=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},l=class extends p{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var C=null;function x(o){C=o;}function y(){if(!C)throw new f("vibecontrols module helpers used before setHelpersContext was called");return C}function dt(){let o=y();if(!o.auth.isAuthenticated())throw new l("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function i(o,r){return dt(),y().gql.workspace.request(o,r)}function s(o){let r=o instanceof Error?o.message:String(o);throw new p(r)}function a(o,r,t){y().output.formatAndOutput(o,r,t);}function m(o){y().output.printSuccess(o);}function h(o){return y().output.formatDate(o)}function d(o,r){return y().output.truncate(o,r)}var I=`
2
2
  query GgnomadGetProvider($id: ID!) {
3
3
  ggnomadProvider(id: $id) {
4
4
  id name type description status website contactEmail contactPhone
@@ -18,7 +18,7 @@
18
18
  listingCount rating reviewCount totalRevenue createdAt workspaceId
19
19
  }
20
20
  }
21
- `,A=`
21
+ `,O=`
22
22
  query GgnomadGetProperty($id: ID!) {
23
23
  ggnomadProperty(id: $id) {
24
24
  id name type description status address amenities bathrooms bedrooms
@@ -26,7 +26,7 @@
26
26
  providerId rating reviewCount createdAt updatedAt workspaceId
27
27
  }
28
28
  }
29
- `,O=`
29
+ `,A=`
30
30
  query GgnomadListProperties($pagination: GgnomadPaginationInput) {
31
31
  ggnomadProperties(pagination: $pagination) {
32
32
  id name type status currency pricePerNight maxGuests bedrooms bathrooms
@@ -71,7 +71,7 @@
71
71
  status providerId createdAt
72
72
  }
73
73
  }
74
- `,D=`
74
+ `,N=`
75
75
  query GgnomadGetTour($id: ID!) {
76
76
  ggnomadTour(id: $id) {
77
77
  id name type description difficulty duration currency price images
@@ -79,7 +79,7 @@
79
79
  rating reviewCount status createdAt updatedAt workspaceId
80
80
  }
81
81
  }
82
- `,N=`
82
+ `,D=`
83
83
  query GgnomadListTours($pagination: GgnomadPaginationInput) {
84
84
  ggnomadTours(pagination: $pagination) {
85
85
  id name type difficulty duration currency price maxGroupSize rating
@@ -131,10 +131,10 @@
131
131
  revenueByCategory topDestinations monthlyTrends
132
132
  }
133
133
  }
134
- `,M=`
134
+ `,U=`
135
135
  query GgnomadOverviewStats {
136
136
  ggnomadOverviewStats {
137
137
  users listings bookings monthlyRevenue
138
138
  }
139
139
  }
140
- `;function U(o,r){try{return JSON.parse(r)}catch{throw new p(`--${o} must be valid JSON`)}}function c(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${o}"`);return r}function k(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new p(`Expected a number but got "${o}"`);return r}function j(o){let r=o.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(b,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:n.ggnomadProviders.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(n){s(n);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(I,{id:t});if(!e.ggnomadProvider)throw new p(`Provider ${t} not found`);a(n,e.ggnomadProvider);}catch(e){s(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type};t.description&&(n.description=t.description),t.website&&(n.website=t.website),t.contactEmail&&(n.contactEmail=t.contactEmail),t.contactPhone&&(n.contactPhone=t.contactPhone);let e=await i(E,{input:n});m(`Provider created: ${e.createGgnomadProvider.name}`),a(t,e.createGgnomadProvider);}catch(n){s(n);}});}function z(o){let r=o.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(O,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:n.ggnomadProperties.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(n){s(n);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(A,{id:t});if(!e.ggnomadProperty)throw new p(`Property ${t} not found`);a(n,e.ggnomadProperty);}catch(e){s(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",c).requiredOption("--price-per-night <n>","Price per night",k).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",c).option("--bathrooms <n>","Bathrooms",c).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,address:U("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(w=>w.trim()),images:t.images.split(",").map(w=>w.trim())};t.provider&&(n.providerId=t.provider),t.description&&(n.description=t.description),t.bedrooms!==void 0&&(n.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(n.bathrooms=t.bathrooms),t.checkInTime&&(n.checkInTime=t.checkInTime),t.checkOutTime&&(n.checkOutTime=t.checkOutTime),t.currency&&(n.currency=t.currency);let e=await i(P,{input:n});m(`Property created: ${e.createGgnomadProperty.name}`),a(t,e.createGgnomadProperty);}catch(n){s(n);}});}function Y(o){let r=o.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(R,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:n.ggnomadActivities.map(e=>[d(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(S,{id:t});if(!e.ggnomadActivity)throw new p(`Activity ${t} not found`);a(n,e.ggnomadActivity);}catch(e){s(e);}});}function H(o){let r=o.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i($,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:n.ggnomadEvents.map(e=>[d(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),h(e.startsAt),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(G,{id:t});if(!e.ggnomadEvent)throw new p(`Event ${t} not found`);a(n,e.ggnomadEvent);}catch(e){s(e);}});}function K(o){let r=o.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(N,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:n.ggnomadTours.map(e=>[d(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(D,{id:t});if(!e.ggnomadTour)throw new p(`Tour ${t} not found`);a(n,e.ggnomadTour);}catch(e){s(e);}});}function J(o){o.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(q,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:n.ggnomadTrips.map(e=>[d(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),h(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(n){s(n);}});}function Q(o){let r=o.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(L,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:n.ggnomadBookings.map(e=>[d(e.id,12),e.referenceCode,e.bookingType,d(e.itemName,20),d(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(n){s(n);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",c).requiredOption("--total-price <n>","Total price",k).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let n={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(n.guestEmail=t.guestEmail),t.guestPhone&&(n.guestPhone=t.guestPhone),t.currency&&(n.currency=t.currency),t.checkIn&&(n.checkIn=t.checkIn),t.checkOut&&(n.checkOut=t.checkOut),t.eventDate&&(n.eventDate=t.eventDate),t.paymentMethod&&(n.paymentMethod=t.paymentMethod),t.specialRequests&&(n.specialRequests=t.specialRequests);let e=await i(_,{input:n});m(`Booking created: ${e.createGgnomadBooking.referenceCode}`),a(t,e.createGgnomadBooking);}catch(n){s(n);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(F,{id:t,reason:n.reason});m(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),a(n,e.cancelGgnomadBooking);}catch(e){s(e);}});}function X(o){let r=o.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(W,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadFavorites);}catch(n){s(n);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let n={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await i(B,{input:n});m(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),a(t,{favorited:e.toggleGgnomadFavorite});}catch(n){s(n);}});}function Z(o){let r=o.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(V);a(t,n.ggnomadAnalytics);}catch(n){s(n);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(M);a(t,n.ggnomadOverviewStats);}catch(n){s(n);}});}var mt={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(o,r){x(r);let t=o.command("ggnomad").description("GGNomad travel & experiences marketplace");j(t),z(t),Y(t),H(t),K(t),J(t),Q(t),X(t),Z(t);}},sn=mt;module.exports=sn;
140
+ `;function M(o,r){try{return JSON.parse(r)}catch{throw new p(`--${o} must be valid JSON`)}}function c(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${o}"`);return r}function w(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new p(`Expected a number but got "${o}"`);return r}function j(o){let r=o.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(b,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:n.ggnomadProviders.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(n){s(n);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(I,{id:t});if(!e.ggnomadProvider)throw new p(`Provider ${t} not found`);a(n,e.ggnomadProvider);}catch(e){s(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type};t.description&&(n.description=t.description),t.website&&(n.website=t.website),t.contactEmail&&(n.contactEmail=t.contactEmail),t.contactPhone&&(n.contactPhone=t.contactPhone);let e=await i(E,{input:n});m(`Provider created: ${e.createGgnomadProvider.name}`),a(t,e.createGgnomadProvider);}catch(n){s(n);}});}function z(o){let r=o.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(A,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:n.ggnomadProperties.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(n){s(n);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(O,{id:t});if(!e.ggnomadProperty)throw new p(`Property ${t} not found`);a(n,e.ggnomadProperty);}catch(e){s(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",c).requiredOption("--price-per-night <n>","Price per night",w).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",c).option("--bathrooms <n>","Bathrooms",c).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,address:M("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(k=>k.trim()),images:t.images.split(",").map(k=>k.trim())};t.provider&&(n.providerId=t.provider),t.description&&(n.description=t.description),t.bedrooms!==void 0&&(n.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(n.bathrooms=t.bathrooms),t.checkInTime&&(n.checkInTime=t.checkInTime),t.checkOutTime&&(n.checkOutTime=t.checkOutTime),t.currency&&(n.currency=t.currency);let e=await i(P,{input:n});m(`Property created: ${e.createGgnomadProperty.name}`),a(t,e.createGgnomadProperty);}catch(n){s(n);}});}function Y(o){let r=o.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(R,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:n.ggnomadActivities.map(e=>[d(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(S,{id:t});if(!e.ggnomadActivity)throw new p(`Activity ${t} not found`);a(n,e.ggnomadActivity);}catch(e){s(e);}});}function H(o){let r=o.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i($,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:n.ggnomadEvents.map(e=>[d(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),h(e.startsAt),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(G,{id:t});if(!e.ggnomadEvent)throw new p(`Event ${t} not found`);a(n,e.ggnomadEvent);}catch(e){s(e);}});}function K(o){let r=o.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(D,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:n.ggnomadTours.map(e=>[d(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(N,{id:t});if(!e.ggnomadTour)throw new p(`Tour ${t} not found`);a(n,e.ggnomadTour);}catch(e){s(e);}});}function J(o){o.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(q,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:n.ggnomadTrips.map(e=>[d(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),h(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(n){s(n);}});}function Q(o){let r=o.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(L,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:n.ggnomadBookings.map(e=>[d(e.id,12),e.referenceCode,e.bookingType,d(e.itemName,20),d(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(n){s(n);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",c).requiredOption("--total-price <n>","Total price",w).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let n={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(n.guestEmail=t.guestEmail),t.guestPhone&&(n.guestPhone=t.guestPhone),t.currency&&(n.currency=t.currency),t.checkIn&&(n.checkIn=t.checkIn),t.checkOut&&(n.checkOut=t.checkOut),t.eventDate&&(n.eventDate=t.eventDate),t.paymentMethod&&(n.paymentMethod=t.paymentMethod),t.specialRequests&&(n.specialRequests=t.specialRequests);let e=await i(_,{input:n});m(`Booking created: ${e.createGgnomadBooking.referenceCode}`),a(t,e.createGgnomadBooking);}catch(n){s(n);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(F,{id:t,reason:n.reason});m(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),a(n,e.cancelGgnomadBooking);}catch(e){s(e);}});}function X(o){let r=o.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(W,{pagination:{first:t.limit,skip:t.offset}});a(t,n.ggnomadFavorites);}catch(n){s(n);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let n={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await i(B,{input:n});m(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),a(t,{favorited:e.toggleGgnomadFavorite});}catch(n){s(n);}});}function Z(o){let r=o.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(V);a(t,n.ggnomadAnalytics);}catch(n){s(n);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(U);a(t,n.ggnomadOverviewStats);}catch(n){s(n);}});}var mt={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(o,r){x(r);let t=o.command("ggnomad").description("GGNomad travel & experiences marketplace");j(t),z(t),Y(t),H(t),K(t),J(t),Q(t),X(t),Z(t);}},sn=mt;module.exports=sn;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-DxCuik6L.cjs';
1
+ import { C as CliModule } from '../../module-DOIiVaXQ.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-DxCuik6L.js';
1
+ import { C as CliModule } from '../../module-DOIiVaXQ.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,h as h$1,p,g,i,o as o$1}from'../../chunk-WXDQ3S5J.js';import {o}from'../../chunk-TCBALVP4.js';var T=`
1
+ import {a,b as b$1,h as h$1,p,g,i,o as o$1}from'../../chunk-SQSFZFQZ.js';import {o}from'../../chunk-UAFYTYK6.js';var T=`
2
2
  query GgnomadGetProvider($id: ID!) {
3
3
  ggnomadProvider(id: $id) {
4
4
  id name type description status website contactEmail contactPhone