@burdenoff/cli-sdk 2026.627.5 → 2026.629.1
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.
- package/dist/modules/adaptercloud/index.cjs +308 -0
- package/dist/modules/adaptercloud/index.d.cts +7 -0
- package/dist/modules/adaptercloud/index.d.ts +7 -0
- package/dist/modules/adaptercloud/index.js +308 -0
- package/dist/modules/atheletebridge/index.cjs +276 -0
- package/dist/modules/atheletebridge/index.d.cts +7 -0
- package/dist/modules/atheletebridge/index.d.ts +7 -0
- package/dist/modules/atheletebridge/index.js +276 -0
- package/dist/modules/coolandlovely/index.cjs +282 -0
- package/dist/modules/coolandlovely/index.d.cts +7 -0
- package/dist/modules/coolandlovely/index.d.ts +7 -0
- package/dist/modules/coolandlovely/index.js +282 -0
- package/dist/modules/hookmovies/index.cjs +304 -0
- package/dist/modules/hookmovies/index.d.cts +7 -0
- package/dist/modules/hookmovies/index.d.ts +7 -0
- package/dist/modules/hookmovies/index.js +304 -0
- package/dist/modules/labsofscience/index.cjs +343 -0
- package/dist/modules/labsofscience/index.d.cts +7 -0
- package/dist/modules/labsofscience/index.d.ts +7 -0
- package/dist/modules/labsofscience/index.js +343 -0
- package/dist/modules/subscriberbot/index.cjs +325 -0
- package/dist/modules/subscriberbot/index.d.cts +7 -0
- package/dist/modules/subscriberbot/index.d.ts +7 -0
- package/dist/modules/subscriberbot/index.js +325 -0
- package/package.json +1 -1
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var u=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends u{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},y=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var L=null;function T(r){L=r;}function C(){if(!L)throw new y("vibecontrols module helpers used before setHelpersContext was called");return L}function qt(){let r=C();if(!r.auth.isAuthenticated())throw new h(`Authentication required. Run \`${r.productName} auth login\`.`)}async function a(r,o){return qt(),C().gql.workspace.request(r,o)}async function k(r,o){return C().gql.workspaceAuthOnly.request(r,o)}function i(r){let o=r instanceof Error?r.message:String(r);throw new u(o)}function s(r,o,t){C().output.formatAndOutput(r,o,t);}function c(r){C().output.printSuccess(r);}function E(r){return C().output.formatDate(r)}function d(r,o){return C().output.truncate(r,o)}var R=`
|
|
2
|
+
query LabProject($id: ID!) {
|
|
3
|
+
labProject(id: $id) {
|
|
4
|
+
id workspaceId name code description field status visibility
|
|
5
|
+
principalInvestigatorId startDate endDate tags createdAt updatedAt
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,P=`
|
|
9
|
+
query LabListProjects($status: LabProjectStatus, $pagination: PaginationInput) {
|
|
10
|
+
labListProjects(status: $status, pagination: $pagination) {
|
|
11
|
+
items {
|
|
12
|
+
id name code field status visibility principalInvestigatorId
|
|
13
|
+
startDate endDate createdAt
|
|
14
|
+
}
|
|
15
|
+
pageInfo { cursor hasMore }
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,O=`
|
|
19
|
+
mutation LabCreateProject($input: LabCreateProjectInput!) {
|
|
20
|
+
labCreateProject(input: $input) {
|
|
21
|
+
id workspaceId name code description field status visibility
|
|
22
|
+
principalInvestigatorId startDate endDate tags createdAt
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`,D=`
|
|
26
|
+
mutation LabUpdateProject($id: ID!, $input: LabUpdateProjectInput!) {
|
|
27
|
+
labUpdateProject(id: $id, input: $input) {
|
|
28
|
+
id name code description field status visibility
|
|
29
|
+
principalInvestigatorId startDate endDate tags updatedAt
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
`,S=`
|
|
33
|
+
mutation LabArchiveProject($id: ID!) {
|
|
34
|
+
labArchiveProject(id: $id)
|
|
35
|
+
}
|
|
36
|
+
`,N=`
|
|
37
|
+
query LabExperiment($id: ID!) {
|
|
38
|
+
labExperiment(id: $id) {
|
|
39
|
+
id workspaceId projectId title description hypothesis status
|
|
40
|
+
leadResearcherId protocolId variables tags createdAt updatedAt
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`,_=`
|
|
44
|
+
query LabListExperiments(
|
|
45
|
+
$projectId: ID
|
|
46
|
+
$status: LabExperimentStatus
|
|
47
|
+
$pagination: PaginationInput
|
|
48
|
+
) {
|
|
49
|
+
labListExperiments(projectId: $projectId, status: $status, pagination: $pagination) {
|
|
50
|
+
items {
|
|
51
|
+
id projectId title status hypothesis leadResearcherId protocolId
|
|
52
|
+
tags createdAt
|
|
53
|
+
}
|
|
54
|
+
pageInfo { cursor hasMore }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
`,$=`
|
|
58
|
+
mutation LabCreateExperiment($input: LabCreateExperimentInput!) {
|
|
59
|
+
labCreateExperiment(input: $input) {
|
|
60
|
+
id workspaceId projectId title description hypothesis status
|
|
61
|
+
leadResearcherId protocolId variables tags createdAt
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
`,j=`
|
|
65
|
+
mutation LabUpdateExperiment($id: ID!, $input: LabUpdateExperimentInput!) {
|
|
66
|
+
labUpdateExperiment(id: $id, input: $input) {
|
|
67
|
+
id title description hypothesis status leadResearcherId protocolId
|
|
68
|
+
variables tags updatedAt
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
`,B=`
|
|
72
|
+
mutation LabTransitionExperiment($id: ID!, $status: LabExperimentStatus!) {
|
|
73
|
+
labTransitionExperiment(id: $id, status: $status) {
|
|
74
|
+
id title status updatedAt
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
`,q=`
|
|
78
|
+
query LabListRuns($experimentId: ID, $status: LabRunStatus, $pagination: PaginationInput) {
|
|
79
|
+
labListRuns(experimentId: $experimentId, status: $status, pagination: $pagination) {
|
|
80
|
+
items {
|
|
81
|
+
id experimentId runNumber status performedById startedAt
|
|
82
|
+
completedAt createdAt
|
|
83
|
+
}
|
|
84
|
+
pageInfo { cursor hasMore }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
`,U=`
|
|
88
|
+
mutation LabStartRun($input: LabCreateRunInput!) {
|
|
89
|
+
labStartRun(input: $input) {
|
|
90
|
+
id workspaceId experimentId runNumber status parameters notes
|
|
91
|
+
performedById startedAt createdAt
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
`,M=`
|
|
95
|
+
mutation LabCompleteRun($id: ID!, $status: LabRunStatus!, $input: LabRecordRunResultsInput) {
|
|
96
|
+
labCompleteRun(id: $id, status: $status, input: $input) {
|
|
97
|
+
id experimentId runNumber status observations notes completedAt updatedAt
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
`,F=`
|
|
101
|
+
query LabListNotebookEntries(
|
|
102
|
+
$experimentId: ID
|
|
103
|
+
$projectId: ID
|
|
104
|
+
$status: LabNotebookEntryStatus
|
|
105
|
+
$pagination: PaginationInput
|
|
106
|
+
) {
|
|
107
|
+
labListNotebookEntries(
|
|
108
|
+
experimentId: $experimentId
|
|
109
|
+
projectId: $projectId
|
|
110
|
+
status: $status
|
|
111
|
+
pagination: $pagination
|
|
112
|
+
) {
|
|
113
|
+
items {
|
|
114
|
+
id projectId experimentId runId title status authorId signedById
|
|
115
|
+
signedAt witnessedById tags createdAt
|
|
116
|
+
}
|
|
117
|
+
pageInfo { cursor hasMore }
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`,V=`
|
|
121
|
+
mutation LabCreateNotebookEntry($input: LabCreateNotebookEntryInput!) {
|
|
122
|
+
labCreateNotebookEntry(input: $input) {
|
|
123
|
+
id workspaceId projectId experimentId runId title body status
|
|
124
|
+
authorId tags createdAt
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
`,W=`
|
|
128
|
+
mutation LabSignNotebookEntry($id: ID!) {
|
|
129
|
+
labSignNotebookEntry(id: $id) {
|
|
130
|
+
id title status authorId signedById signedAt updatedAt
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`,G=`
|
|
134
|
+
query LabProtocol($id: ID!) {
|
|
135
|
+
labProtocol(id: $id) {
|
|
136
|
+
id workspaceId name summary status version estimatedMinutes
|
|
137
|
+
materials safetyNotes authorId publishedAt tags createdAt updatedAt
|
|
138
|
+
steps {
|
|
139
|
+
id ordinal kind instruction durationMinutes isCritical
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
`,H=`
|
|
144
|
+
query LabListProtocols($status: LabProtocolStatus, $pagination: PaginationInput) {
|
|
145
|
+
labListProtocols(status: $status, pagination: $pagination) {
|
|
146
|
+
items {
|
|
147
|
+
id name summary status version estimatedMinutes authorId
|
|
148
|
+
publishedAt tags createdAt
|
|
149
|
+
}
|
|
150
|
+
pageInfo { cursor hasMore }
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
`,z=`
|
|
154
|
+
mutation LabCreateProtocol($input: LabCreateProtocolInput!) {
|
|
155
|
+
labCreateProtocol(input: $input) {
|
|
156
|
+
id workspaceId name summary status version estimatedMinutes
|
|
157
|
+
materials safetyNotes authorId tags createdAt
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
`,J=`
|
|
161
|
+
mutation LabUpdateProtocol($id: ID!, $input: LabUpdateProtocolInput!) {
|
|
162
|
+
labUpdateProtocol(id: $id, input: $input) {
|
|
163
|
+
id name summary status version estimatedMinutes materials
|
|
164
|
+
safetyNotes tags updatedAt
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
`,K=`
|
|
168
|
+
mutation LabPublishProtocol($id: ID!) {
|
|
169
|
+
labPublishProtocol(id: $id) {
|
|
170
|
+
id name status version publishedAt updatedAt
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
`,Y=`
|
|
174
|
+
mutation LabAddProtocolStep($input: LabAddProtocolStepInput!) {
|
|
175
|
+
labAddProtocolStep(input: $input) {
|
|
176
|
+
id protocolId ordinal kind instruction durationMinutes isCritical createdAt
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
`,Q=`
|
|
180
|
+
query LabDataset($id: ID!) {
|
|
181
|
+
labDataset(id: $id) {
|
|
182
|
+
id workspaceId name description kind status experimentId projectId
|
|
183
|
+
latestVersion tags createdAt updatedAt
|
|
184
|
+
versions {
|
|
185
|
+
id version sizeBytes rowCount checksum changeNote createdAt
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
`,X=`
|
|
190
|
+
query LabListDatasets(
|
|
191
|
+
$kind: LabDatasetKind
|
|
192
|
+
$status: LabDatasetStatus
|
|
193
|
+
$pagination: PaginationInput
|
|
194
|
+
) {
|
|
195
|
+
labListDatasets(kind: $kind, status: $status, pagination: $pagination) {
|
|
196
|
+
items {
|
|
197
|
+
id name description kind status experimentId projectId
|
|
198
|
+
latestVersion tags createdAt
|
|
199
|
+
}
|
|
200
|
+
pageInfo { cursor hasMore }
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
`,Z=`
|
|
204
|
+
mutation LabCreateDataset($input: LabCreateDatasetInput!) {
|
|
205
|
+
labCreateDataset(input: $input) {
|
|
206
|
+
id workspaceId name description kind status experimentId projectId
|
|
207
|
+
latestVersion tags createdAt
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
`,tt=`
|
|
211
|
+
mutation LabAddDatasetVersion($input: LabAddDatasetVersionInput!) {
|
|
212
|
+
labAddDatasetVersion(input: $input) {
|
|
213
|
+
id datasetId version sizeBytes rowCount checksum changeNote createdAt
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
`,et=`
|
|
217
|
+
mutation LabArchiveDataset($id: ID!) {
|
|
218
|
+
labArchiveDataset(id: $id)
|
|
219
|
+
}
|
|
220
|
+
`,nt=`
|
|
221
|
+
query LabListPipelines {
|
|
222
|
+
labListPipelines {
|
|
223
|
+
id workspaceId projectId name description engine version isActive
|
|
224
|
+
definition tags createdAt updatedAt
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
`,ot=`
|
|
228
|
+
mutation LabCreatePipeline($input: LabCreatePipelineInput!) {
|
|
229
|
+
labCreatePipeline(input: $input) {
|
|
230
|
+
id workspaceId projectId name description engine version isActive
|
|
231
|
+
definition tags createdAt
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
`,rt=`
|
|
235
|
+
mutation LabRunPipeline($input: LabRunPipelineInput!) {
|
|
236
|
+
labRunPipeline(input: $input) {
|
|
237
|
+
id workspaceId pipelineId datasetId datasetVersionId status
|
|
238
|
+
parameters triggeredById startedAt createdAt
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
`,it=`
|
|
242
|
+
query LabListPipelineRuns(
|
|
243
|
+
$pipelineId: ID
|
|
244
|
+
$status: LabPipelineRunStatus
|
|
245
|
+
$pagination: PaginationInput
|
|
246
|
+
) {
|
|
247
|
+
labListPipelineRuns(pipelineId: $pipelineId, status: $status, pagination: $pagination) {
|
|
248
|
+
items {
|
|
249
|
+
id pipelineId datasetId datasetVersionId outputDatasetId status
|
|
250
|
+
triggeredById startedAt finishedAt createdAt
|
|
251
|
+
}
|
|
252
|
+
pageInfo { cursor hasMore }
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
`,st=`
|
|
256
|
+
mutation LabTransitionPipelineRun(
|
|
257
|
+
$id: ID!
|
|
258
|
+
$status: LabPipelineRunStatus!
|
|
259
|
+
$log: String
|
|
260
|
+
) {
|
|
261
|
+
labTransitionPipelineRun(id: $id, status: $status, log: $log) {
|
|
262
|
+
id pipelineId status log startedAt finishedAt updatedAt
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
`,at=`
|
|
266
|
+
query LabInventoryItem($id: ID!) {
|
|
267
|
+
labInventoryItem(id: $id) {
|
|
268
|
+
id workspaceId name category status quantity unit reorderLevel
|
|
269
|
+
location vendor catalogNumber lotNumber expiresAt tags createdAt updatedAt
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
`,ct=`
|
|
273
|
+
query LabListInventoryItems(
|
|
274
|
+
$category: LabInventoryCategory
|
|
275
|
+
$status: LabInventoryStatus
|
|
276
|
+
$pagination: PaginationInput
|
|
277
|
+
) {
|
|
278
|
+
labListInventoryItems(category: $category, status: $status, pagination: $pagination) {
|
|
279
|
+
items {
|
|
280
|
+
id name category status quantity unit reorderLevel location
|
|
281
|
+
vendor expiresAt tags createdAt
|
|
282
|
+
}
|
|
283
|
+
pageInfo { cursor hasMore }
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
`,pt=`
|
|
287
|
+
mutation LabCreateInventoryItem($input: LabCreateInventoryItemInput!) {
|
|
288
|
+
labCreateInventoryItem(input: $input) {
|
|
289
|
+
id workspaceId name category status quantity unit reorderLevel
|
|
290
|
+
location vendor catalogNumber lotNumber expiresAt tags createdAt
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
`,ut=`
|
|
294
|
+
mutation LabAdjustInventory($id: ID!, $input: LabAdjustInventoryInput!) {
|
|
295
|
+
labAdjustInventory(id: $id, input: $input) {
|
|
296
|
+
id name category status quantity unit reorderLevel updatedAt
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
`,dt=`
|
|
300
|
+
mutation LabArchiveInventoryItem($id: ID!) {
|
|
301
|
+
labArchiveInventoryItem(id: $id)
|
|
302
|
+
}
|
|
303
|
+
`,mt=`
|
|
304
|
+
query LabInstrument($id: ID!) {
|
|
305
|
+
labInstrument(id: $id) {
|
|
306
|
+
id workspaceId name model location status requiresApproval
|
|
307
|
+
custodianId tags createdAt updatedAt
|
|
308
|
+
bookings {
|
|
309
|
+
id startTime endTime status purpose bookedById experimentId
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
`,lt=`
|
|
314
|
+
query LabListInstruments($status: LabInstrumentStatus) {
|
|
315
|
+
labListInstruments(status: $status) {
|
|
316
|
+
id name model location status requiresApproval custodianId tags createdAt
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
`,gt=`
|
|
320
|
+
mutation LabCreateInstrument($input: LabCreateInstrumentInput!) {
|
|
321
|
+
labCreateInstrument(input: $input) {
|
|
322
|
+
id workspaceId name model location status requiresApproval
|
|
323
|
+
custodianId tags createdAt
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
`,ft=`
|
|
327
|
+
mutation LabBookInstrument($input: LabBookInstrumentInput!) {
|
|
328
|
+
labBookInstrument(input: $input) {
|
|
329
|
+
id workspaceId instrumentId bookedById experimentId startTime
|
|
330
|
+
endTime status purpose createdAt
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
`,It=`
|
|
334
|
+
mutation LabCancelBooking($id: ID!) {
|
|
335
|
+
labCancelBooking(id: $id) {
|
|
336
|
+
id instrumentId status startTime endTime updatedAt
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
`,bt=`
|
|
340
|
+
query LabHealth {
|
|
341
|
+
labHealth
|
|
342
|
+
}
|
|
343
|
+
`;function b(r,o){try{return JSON.parse(o)}catch{throw new u(`--${r} must be valid JSON`)}}function p(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new u(`Expected an integer but got "${r}"`);return o}function A(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new u(`Expected a number but got "${r}"`);return o}function l(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function g(r,o){return {limit:r,offset:o}}function yt(r){let o=r.command("projects").description("Labsofscience research projects");o.command("list").description("List research projects").option("--status <s>","Filter by project status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListProjects.items,{headers:["ID","Name","Code","Field","Status","Visibility"],rows:e.labListProjects.items.map(n=>[d(n.id,12),n.name,n.code??"-",n.field??"-",n.status,n.visibility])});}catch(e){i(e);}}),o.command("get").description("Get a research project by id").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(R,{id:t});if(!n.labProject)throw new u(`Project ${t} not found`);s(e,n.labProject);}catch(n){i(n);}}),o.command("create").description("Create a research project").requiredOption("--name <name>","Project name").option("--code <code>","Project code").option("--description <s>","Description").option("--field <s>","Research field").option("--pi <id>","Principal investigator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--status <s>","PLANNING|ACTIVE|ON_HOLD|COMPLETED|ARCHIVED","PLANNING").option("--visibility <v>","PRIVATE|WORKSPACE|PUBLIC","WORKSPACE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,status:(t.status??"PLANNING").toUpperCase(),visibility:(t.visibility??"WORKSPACE").toUpperCase()};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.field&&(e.field=t.field),t.pi&&(e.principalInvestigatorId=t.pi),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate),t.tags&&(e.tags=l(t.tags));let n=await a(O,{input:e});c(`Project created: ${n.labCreateProject.name}`),s(t,n.labCreateProject);}catch(e){i(e);}}),o.command("update").description("Update a research project").argument("<id>","Project ID").option("--name <name>","Project name").option("--code <code>","Project code").option("--description <s>","Description").option("--field <s>","Research field").option("--pi <id>","Principal investigator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("--status <s>","Project status").option("--visibility <v>","Visibility").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.code&&(n.code=e.code),e.description!==void 0&&(n.description=e.description),e.field&&(n.field=e.field),e.pi&&(n.principalInvestigatorId=e.pi),e.startDate&&(n.startDate=e.startDate),e.endDate&&(n.endDate=e.endDate),e.status&&(n.status=e.status.toUpperCase()),e.visibility&&(n.visibility=e.visibility.toUpperCase()),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let f=await a(D,{id:t,input:n});c("Project updated"),s(e,f.labUpdateProject);}catch(n){i(n);}}),o.command("archive").description("Archive a research project").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(S,{id:t});c(`Project archived: ${n.labArchiveProject}`),s(e,{archived:n.labArchiveProject});}catch(n){i(n);}});}function Ct(r){let o=r.command("experiments").description("Labsofscience experiments");o.command("list").description("List experiments").option("--project <id>","Filter by project ID").option("--status <s>","Filter by experiment status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{projectId:t.project,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListExperiments.items,{headers:["ID","Title","Status","Project","Lead"],rows:e.labListExperiments.items.map(n=>[d(n.id,12),n.title,n.status,d(n.projectId,12),n.leadResearcherId?d(n.leadResearcherId,12):"-"])});}catch(e){i(e);}}),o.command("get").description("Get an experiment by id").argument("<id>","Experiment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(N,{id:t});if(!n.labExperiment)throw new u(`Experiment ${t} not found`);s(e,n.labExperiment);}catch(n){i(n);}}),o.command("create").description("Create an experiment").requiredOption("--project <id>","Project ID").requiredOption("--title <t>","Experiment title").option("--description <s>","Description").option("--hypothesis <s>","Hypothesis").option("--lead <id>","Lead researcher user ID").option("--protocol <id>","Protocol ID").option("--variables <json>","Variables JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,title:t.title};t.description&&(e.description=t.description),t.hypothesis&&(e.hypothesis=t.hypothesis),t.lead&&(e.leadResearcherId=t.lead),t.protocol&&(e.protocolId=t.protocol),t.variables&&(e.variables=b("variables",t.variables)),t.tags&&(e.tags=l(t.tags));let n=await a($,{input:e});c(`Experiment created: ${n.labCreateExperiment.title}`),s(t,n.labCreateExperiment);}catch(e){i(e);}}),o.command("update").description("Update an experiment").argument("<id>","Experiment ID").option("--title <t>","Experiment title").option("--description <s>","Description").option("--hypothesis <s>","Hypothesis").option("--lead <id>","Lead researcher user ID").option("--protocol <id>","Protocol ID").option("--variables <json>","Variables JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.hypothesis!==void 0&&(n.hypothesis=e.hypothesis),e.lead&&(n.leadResearcherId=e.lead),e.protocol&&(n.protocolId=e.protocol),e.variables&&(n.variables=b("variables",e.variables)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let f=await a(j,{id:t,input:n});c("Experiment updated"),s(e,f.labUpdateExperiment);}catch(n){i(n);}}),o.command("transition").description("Advance an experiment through its lifecycle").argument("<id>","Experiment ID").requiredOption("--status <s>","DESIGN|RUNNING|ANALYSIS|COMPLETE|ABANDONED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t,status:e.status.toUpperCase()});c(`Experiment moved to ${n.labTransitionExperiment.status}`),s(e,n.labTransitionExperiment);}catch(n){i(n);}});}function Et(r){let o=r.command("runs").description("Labsofscience reproducible experiment runs");o.command("list").description("List experiment runs").option("--experiment <id>","Filter by experiment ID").option("--status <s>","Filter by run status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(q,{experimentId:t.experiment,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListRuns.items,{headers:["ID","Run #","Status","Experiment","Started","Completed"],rows:e.labListRuns.items.map(n=>[d(n.id,12),String(n.runNumber),n.status,d(n.experimentId,12),E(n.startedAt),E(n.completedAt)])});}catch(e){i(e);}}),o.command("start").description("Start a new reproducible run of an experiment").requiredOption("--experiment <id>","Experiment ID").option("--notes <s>","Run notes").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={experimentId:t.experiment};t.notes&&(e.notes=t.notes),t.parameters&&(e.parameters=b("parameters",t.parameters));let n=await a(U,{input:e});c(`Run #${n.labStartRun.runNumber} started`),s(t,n.labStartRun);}catch(e){i(e);}}),o.command("complete").description("Record observations and complete a run with a terminal status").argument("<id>","Run ID").requiredOption("--status <s>","SUCCEEDED|FAILED|CANCELLED").option("--notes <s>","Result notes").option("--observations <json>","Observations JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={id:t,status:e.status.toUpperCase()},f={};e.notes&&(f.notes=e.notes),e.observations&&(f.observations=b("observations",e.observations)),Object.keys(f).length&&(n.input=f);let w=await a(M,n);c(`Run #${w.labCompleteRun.runNumber} completed: ${w.labCompleteRun.status}`),s(e,w.labCompleteRun);}catch(n){i(n);}});}function ht(r){let o=r.command("notebook").description("Labsofscience electronic lab notebook (ELN)");o.command("list").description("List notebook entries").option("--experiment <id>","Filter by experiment ID").option("--project <id>","Filter by project ID").option("--status <s>","Filter by entry status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{experimentId:t.experiment,projectId:t.project,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListNotebookEntries.items,{headers:["ID","Title","Status","Project","Author"],rows:e.labListNotebookEntries.items.map(n=>[d(n.id,12),n.title,n.status,d(n.projectId,12),d(n.authorId,12)])});}catch(e){i(e);}}),o.command("create").description("Create a notebook entry").requiredOption("--project <id>","Project ID").requiredOption("--title <t>","Entry title").option("--body <s>","Entry body").option("--experiment <id>","Experiment ID").option("--run <id>","Run ID").option("--file-ids <csv>","Comma-separated wspace-files-svc File ids").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,title:t.title};t.body&&(e.body=t.body),t.experiment&&(e.experimentId=t.experiment),t.run&&(e.runId=t.run),t.fileIds&&(e.fileIds=l(t.fileIds)),t.tags&&(e.tags=l(t.tags));let n=await a(V,{input:e});c(`Notebook entry created: ${n.labCreateNotebookEntry.title}`),s(t,n.labCreateNotebookEntry);}catch(e){i(e);}}),o.command("sign").description("Sign a notebook entry (locks editable content)").argument("<id>","Entry ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t});c(`Notebook entry signed: ${n.labSignNotebookEntry.status}`),s(e,n.labSignNotebookEntry);}catch(n){i(n);}});}function At(r){let o=r.command("protocols").description("Labsofscience versioned protocols");o.command("list").description("List protocols").option("--status <s>","DRAFT|PUBLISHED|DEPRECATED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(H,{status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListProtocols.items,{headers:["ID","Name","Status","Version","Est. min"],rows:e.labListProtocols.items.map(n=>[d(n.id,12),n.name,n.status,String(n.version),n.estimatedMinutes!=null?String(n.estimatedMinutes):"-"])});}catch(e){i(e);}}),o.command("get").description("Get a protocol by id").argument("<id>","Protocol ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(G,{id:t});if(!n.labProtocol)throw new u(`Protocol ${t} not found`);s(e,n.labProtocol);}catch(n){i(n);}}),o.command("create").description("Create a protocol").requiredOption("--name <name>","Protocol name").option("--summary <s>","Summary").option("--author <id>","Author user ID").option("--estimated-minutes <n>","Estimated minutes",p).option("--materials <csv>","Comma-separated materials").option("--safety-notes <s>","Safety notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.summary&&(e.summary=t.summary),t.author&&(e.authorId=t.author),t.estimatedMinutes!==void 0&&(e.estimatedMinutes=t.estimatedMinutes),t.materials&&(e.materials=l(t.materials)),t.safetyNotes&&(e.safetyNotes=t.safetyNotes),t.tags&&(e.tags=l(t.tags));let n=await a(z,{input:e});c(`Protocol created: ${n.labCreateProtocol.name}`),s(t,n.labCreateProtocol);}catch(e){i(e);}}),o.command("update").description("Update a protocol").argument("<id>","Protocol ID").option("--name <name>","Protocol name").option("--summary <s>","Summary").option("--estimated-minutes <n>","Estimated minutes",p).option("--materials <csv>","Comma-separated materials").option("--safety-notes <s>","Safety notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.summary!==void 0&&(n.summary=e.summary),e.estimatedMinutes!==void 0&&(n.estimatedMinutes=e.estimatedMinutes),e.materials&&(n.materials=l(e.materials)),e.safetyNotes!==void 0&&(n.safetyNotes=e.safetyNotes),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let f=await a(J,{id:t,input:n});c("Protocol updated"),s(e,f.labUpdateProtocol);}catch(n){i(n);}}),o.command("publish").description("Publish a draft protocol, freezing its version").argument("<id>","Protocol ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(K,{id:t});c(`Protocol published: v${n.labPublishProtocol.version}`),s(e,n.labPublishProtocol);}catch(n){i(n);}}),o.command("add-step").description("Append a step to a protocol").requiredOption("--protocol <id>","Protocol ID").requiredOption("--instruction <s>","Step instruction").option("--kind <k>","PREPARATION|INCUBATION|MEASUREMENT|ANALYSIS|CLEANUP|SAFETY","PREPARATION").option("--ordinal <n>","Step ordinal",p).option("--duration-minutes <n>","Duration (minutes)",p).option("--critical","Mark step as critical").option("-f, --format <format>","Output format").action(async t=>{try{let e={protocolId:t.protocol,instruction:t.instruction,kind:(t.kind??"PREPARATION").toUpperCase()};t.ordinal!==void 0&&(e.ordinal=t.ordinal),t.durationMinutes!==void 0&&(e.durationMinutes=t.durationMinutes),t.critical&&(e.isCritical=!0);let n=await a(Y,{input:e});c(`Step added at ordinal ${n.labAddProtocolStep.ordinal}`),s(t,n.labAddProtocolStep);}catch(e){i(e);}});}function wt(r){let o=r.command("datasets").description("Labsofscience versioned datasets");o.command("list").description("List datasets").option("--kind <k>","RAW|PROCESSED|RESULT|REFERENCE").option("--status <s>","ACTIVE|LOCKED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(X,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListDatasets.items,{headers:["ID","Name","Kind","Status","Latest v"],rows:e.labListDatasets.items.map(n=>[d(n.id,12),n.name,n.kind,n.status,String(n.latestVersion)])});}catch(e){i(e);}}),o.command("get").description("Get a dataset by id").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Q,{id:t});if(!n.labDataset)throw new u(`Dataset ${t} not found`);s(e,n.labDataset);}catch(n){i(n);}}),o.command("create").description("Create a dataset").requiredOption("--name <name>","Dataset name").option("--description <s>","Description").option("--kind <k>","RAW|PROCESSED|RESULT|REFERENCE","RAW").option("--experiment <id>","Experiment ID").option("--project <id>","Project ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,kind:(t.kind??"RAW").toUpperCase()};t.description&&(e.description=t.description),t.experiment&&(e.experimentId=t.experiment),t.project&&(e.projectId=t.project),t.tags&&(e.tags=l(t.tags));let n=await a(Z,{input:e});c(`Dataset created: ${n.labCreateDataset.name}`),s(t,n.labCreateDataset);}catch(e){i(e);}}),o.command("add-version").description("Append an immutable version to a dataset").requiredOption("--dataset <id>","Dataset ID").option("--file <id>","wspace-files-svc File id holding the snapshot bytes").option("--size-bytes <s>","Size in bytes").option("--row-count <n>","Row count",p).option("--checksum <s>","Checksum").option("--change-note <s>","Change note").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset};t.file&&(e.fileId=t.file),t.sizeBytes&&(e.sizeBytes=t.sizeBytes),t.rowCount!==void 0&&(e.rowCount=t.rowCount),t.checksum&&(e.checksum=t.checksum),t.changeNote&&(e.changeNote=t.changeNote);let n=await a(tt,{input:e});c(`Dataset version added: v${n.labAddDatasetVersion.version}`),s(t,n.labAddDatasetVersion);}catch(e){i(e);}}),o.command("archive").description("Archive a dataset").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(et,{id:t});c(`Dataset archived: ${n.labArchiveDataset}`),s(e,{archived:n.labArchiveDataset});}catch(n){i(n);}});}function Lt(r){let o=r.command("pipelines").description("Labsofscience reproducible analysis pipelines");o.command("list").description("List analysis pipelines").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt);s(t,e.labListPipelines,{headers:["ID","Name","Engine","Version","Active"],rows:e.labListPipelines.map(n=>[d(n.id,12),n.name,n.engine,String(n.version),n.isActive?"yes":"no"])});}catch(e){i(e);}}),o.command("create").description("Create an analysis pipeline").requiredOption("--name <name>","Pipeline name").option("--description <s>","Description").option("--engine <s>","Execution engine").option("--project <id>","Project ID").option("--definition <json>","Pipeline definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.engine&&(e.engine=t.engine),t.project&&(e.projectId=t.project),t.definition&&(e.definition=b("definition",t.definition)),t.tags&&(e.tags=l(t.tags));let n=await a(ot,{input:e});c(`Pipeline created: ${n.labCreatePipeline.name}`),s(t,n.labCreatePipeline);}catch(e){i(e);}}),o.command("run").description("Queue a reproducible pipeline run over a dataset version").requiredOption("--pipeline <id>","Pipeline ID").option("--dataset <id>","Dataset ID").option("--dataset-version <id>","Dataset version ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={pipelineId:t.pipeline};t.dataset&&(e.datasetId=t.dataset),t.datasetVersion&&(e.datasetVersionId=t.datasetVersion),t.parameters&&(e.parameters=b("parameters",t.parameters));let n=await a(rt,{input:e});c(`Pipeline run queued: ${n.labRunPipeline.status}`),s(t,n.labRunPipeline);}catch(e){i(e);}}),o.command("list-runs").description("List pipeline runs").option("--pipeline <id>","Filter by pipeline ID").option("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(it,{pipelineId:t.pipeline,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListPipelineRuns.items,{headers:["ID","Pipeline","Status","Started","Finished"],rows:e.labListPipelineRuns.items.map(n=>[d(n.id,12),d(n.pipelineId,12),n.status,E(n.startedAt),E(n.finishedAt)])});}catch(e){i(e);}}),o.command("transition-run").description("Advance a pipeline run through its execution lifecycle").argument("<id>","Pipeline run ID").requiredOption("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--log <s>","Execution log").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t,status:e.status.toUpperCase(),log:e.log});c(`Pipeline run moved to ${n.labTransitionPipelineRun.status}`),s(e,n.labTransitionPipelineRun);}catch(n){i(n);}});}function kt(r){let o=r.command("inventory").description("Labsofscience lab inventory (reagents, samples, consumables)");o.command("list").description("List inventory items").option("--category <c>","REAGENT|CHEMICAL|BIOLOGICAL|CONSUMABLE|EQUIPMENT_PART|SAMPLE").option("--status <s>","IN_STOCK|LOW|OUT_OF_STOCK|EXPIRED|QUARANTINED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(ct,{category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:g(t.limit,t.offset)});s(t,e.labListInventoryItems.items,{headers:["ID","Name","Category","Status","Qty","Unit"],rows:e.labListInventoryItems.items.map(n=>[d(n.id,12),n.name,n.category,n.status,String(n.quantity),n.unit])});}catch(e){i(e);}}),o.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(at,{id:t});if(!n.labInventoryItem)throw new u(`Inventory item ${t} not found`);s(e,n.labInventoryItem);}catch(n){i(n);}}),o.command("create").description("Create an inventory item").requiredOption("--name <name>","Item name").option("--category <c>","REAGENT|CHEMICAL|BIOLOGICAL|CONSUMABLE|EQUIPMENT_PART|SAMPLE","REAGENT").option("--quantity <n>","Quantity",A).option("--unit <s>","Unit of measure").option("--reorder-level <n>","Reorder level",A).option("--location <s>","Storage location").option("--vendor <s>","Vendor").option("--catalog-number <s>","Catalog number").option("--lot-number <s>","Lot number").option("--expires-at <iso>","Expiry date (ISO)").option("--sds-file <id>","wspace-files-svc File id for the SDS").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,category:(t.category??"REAGENT").toUpperCase()};t.quantity!==void 0&&(e.quantity=t.quantity),t.unit&&(e.unit=t.unit),t.reorderLevel!==void 0&&(e.reorderLevel=t.reorderLevel),t.location&&(e.location=t.location),t.vendor&&(e.vendor=t.vendor),t.catalogNumber&&(e.catalogNumber=t.catalogNumber),t.lotNumber&&(e.lotNumber=t.lotNumber),t.expiresAt&&(e.expiresAt=t.expiresAt),t.sdsFile&&(e.sdsFileId=t.sdsFile),t.tags&&(e.tags=l(t.tags));let n=await a(pt,{input:e});c(`Inventory item created: ${n.labCreateInventoryItem.name}`),s(t,n.labCreateInventoryItem);}catch(e){i(e);}}),o.command("adjust").description("Apply a signed quantity delta and recompute stock status").argument("<id>","Inventory item ID").requiredOption("--delta <n>","Signed quantity delta (positive = restock)",A).option("--reason <s>","Reason for adjustment").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={delta:e.delta};e.reason&&(n.reason=e.reason);let f=await a(ut,{id:t,input:n});c(`Inventory adjusted: ${f.labAdjustInventory.quantity} ${f.labAdjustInventory.unit}`),s(e,f.labAdjustInventory);}catch(n){i(n);}}),o.command("archive").description("Archive an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(dt,{id:t});c(`Inventory item archived: ${n.labArchiveInventoryItem}`),s(e,{archived:n.labArchiveInventoryItem});}catch(n){i(n);}});}function xt(r){let o=r.command("instruments").description("Labsofscience instruments & bookings");o.command("list").description("List instruments").option("--status <s>","AVAILABLE|IN_USE|MAINTENANCE|OFFLINE").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(lt,{status:t.status?t.status.toUpperCase():void 0});s(t,e.labListInstruments,{headers:["ID","Name","Model","Location","Status","Approval"],rows:e.labListInstruments.map(n=>[d(n.id,12),n.name,n.model??"-",n.location??"-",n.status,n.requiresApproval?"yes":"no"])});}catch(e){i(e);}}),o.command("get").description("Get an instrument by id").argument("<id>","Instrument ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(mt,{id:t});if(!n.labInstrument)throw new u(`Instrument ${t} not found`);s(e,n.labInstrument);}catch(n){i(n);}}),o.command("create").description("Create an instrument").requiredOption("--name <name>","Instrument name").option("--model <s>","Model").option("--location <s>","Location").option("--custodian <id>","Custodian user ID").option("--requires-approval","Bookings require approval").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.model&&(e.model=t.model),t.location&&(e.location=t.location),t.custodian&&(e.custodianId=t.custodian),t.requiresApproval&&(e.requiresApproval=!0),t.tags&&(e.tags=l(t.tags));let n=await a(gt,{input:e});c(`Instrument created: ${n.labCreateInstrument.name}`),s(t,n.labCreateInstrument);}catch(e){i(e);}}),o.command("book").description("Reserve an instrument for a time window").requiredOption("--instrument <id>","Instrument ID").requiredOption("--start <iso>","Start time (ISO)").requiredOption("--end <iso>","End time (ISO)").option("--experiment <id>","Experiment ID").option("--purpose <s>","Booking purpose").option("-f, --format <format>","Output format").action(async t=>{try{let e={instrumentId:t.instrument,startTime:t.start,endTime:t.end};t.experiment&&(e.experimentId=t.experiment),t.purpose&&(e.purpose=t.purpose);let n=await a(ft,{input:e});c(`Instrument booked: ${n.labBookInstrument.status}`),s(t,n.labBookInstrument);}catch(e){i(e);}}),o.command("cancel-booking").description("Cancel an instrument booking").argument("<id>","Booking ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(It,{id:t});c(`Booking cancelled: ${n.labCancelBooking.status}`),s(e,n.labCancelBooking);}catch(n){i(n);}});}function vt(r){r.command("health").description("Labsofscience service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(bt);c(t.labHealth),s(o,{health:t.labHealth});}catch(t){i(t);}});}var Ut={id:"labsofscience",version:"1.0.0",displayName:"Labsofscience",dependsOn:["auth","workspaces"],register(r,o){T(o);let t=r.command("labsofscience").description("Labsofscience science & discovery platform");yt(t),Ct(t),Et(t),ht(t),At(t),wt(t),Lt(t),kt(t),xt(t),vt(t);}},jn=Ut;module.exports=jn;
|