@burdenoff/cli-sdk 2026.1102.2 → 2026.1102.4
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 +6 -3
- package/dist/modules/adaptercloud/index.js +6 -3
- package/dist/modules/assethandler/index.cjs +22 -57
- package/dist/modules/assethandler/index.js +27 -62
- package/dist/modules/atheletebridge/index.cjs +33 -19
- package/dist/modules/atheletebridge/index.js +32 -18
- package/dist/modules/buildmyiq/index.cjs +64 -67
- package/dist/modules/buildmyiq/index.js +60 -63
- package/dist/modules/comradecircle/index.cjs +23 -15
- package/dist/modules/comradecircle/index.js +19 -11
- package/dist/modules/coolandlovely/index.cjs +27 -14
- package/dist/modules/coolandlovely/index.js +29 -16
- package/dist/modules/crewfoundry/index.cjs +63 -116
- package/dist/modules/crewfoundry/index.js +62 -115
- package/dist/modules/ecoimpacthub/index.cjs +19 -9
- package/dist/modules/ecoimpacthub/index.js +19 -9
- package/dist/modules/eventfullymanaged/index.cjs +77 -77
- package/dist/modules/eventfullymanaged/index.js +78 -78
- package/dist/modules/govcitizenhub/index.cjs +7 -4
- package/dist/modules/govcitizenhub/index.js +7 -4
- package/dist/modules/headshotmarketing/index.cjs +92 -261
- package/dist/modules/headshotmarketing/index.js +94 -263
- package/dist/modules/hookmovies/index.cjs +17 -6
- package/dist/modules/hookmovies/index.js +20 -9
- package/dist/modules/housingvista/index.cjs +31 -24
- package/dist/modules/housingvista/index.js +26 -19
- package/dist/modules/intelwatchtower/index.cjs +24 -12
- package/dist/modules/intelwatchtower/index.js +24 -12
- package/dist/modules/kadaikodi/index.cjs +56 -90
- package/dist/modules/kadaikodi/index.js +60 -94
- package/dist/modules/labsofscience/index.cjs +8 -4
- package/dist/modules/labsofscience/index.js +8 -4
- package/dist/modules/manufacturedops/index.cjs +35 -22
- package/dist/modules/manufacturedops/index.js +34 -21
- package/dist/modules/movethewheels/index.cjs +103 -231
- package/dist/modules/movethewheels/index.js +103 -231
- package/dist/modules/planmagnet/index.cjs +21 -21
- package/dist/modules/planmagnet/index.js +32 -32
- package/dist/modules/proserviceworld/index.cjs +17 -12
- package/dist/modules/proserviceworld/index.js +17 -12
- package/dist/modules/subscriberbot/index.cjs +43 -19
- package/dist/modules/subscriberbot/index.js +46 -22
- package/dist/modules/technospam/index.cjs +17 -8
- package/dist/modules/technospam/index.js +17 -8
- package/dist/modules/theculturepost/index.cjs +27 -22
- package/dist/modules/theculturepost/index.js +31 -26
- package/dist/modules/theglobalfuel/index.cjs +65 -60
- package/dist/modules/theglobalfuel/index.js +65 -60
- package/dist/modules/timecampus/index.cjs +31 -85
- package/dist/modules/timecampus/index.js +32 -86
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var
|
|
1
|
+
import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var R=`
|
|
2
2
|
query BuiGetCourse($id: ID!) {
|
|
3
3
|
buiCourse(id: $id) {
|
|
4
4
|
id workspaceId slug title summary description level status language
|
|
@@ -6,7 +6,7 @@ import {a,b,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';impor
|
|
|
6
6
|
createdAt updatedAt cover { id }
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
`,
|
|
9
|
+
`,O=`
|
|
10
10
|
query BuiListCourses(
|
|
11
11
|
$status: BuiCourseStatus
|
|
12
12
|
$level: BuiCourseLevel
|
|
@@ -19,37 +19,38 @@ import {a,b,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';impor
|
|
|
19
19
|
pageInfo { cursor hasMore }
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
`,
|
|
22
|
+
`,h=`
|
|
23
23
|
mutation BuiCreateCourse($input: BuiCreateCourseInput!) {
|
|
24
24
|
buiCreateCourse(input: $input) {
|
|
25
25
|
id slug title level status language estimatedHours isPublic
|
|
26
26
|
instructorId skillId tags createdAt
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
`,
|
|
29
|
+
`,w=`
|
|
30
30
|
mutation BuiUpdateCourse($id: ID!, $input: BuiUpdateCourseInput!) {
|
|
31
31
|
buiUpdateCourse(id: $id, input: $input) {
|
|
32
32
|
id slug title level status language estimatedHours isPublic
|
|
33
33
|
instructorId skillId tags updatedAt
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,D=`
|
|
37
37
|
mutation BuiPublishCourse($id: ID!) {
|
|
38
38
|
buiPublishCourse(id: $id) {
|
|
39
39
|
id slug title status publishedAt updatedAt
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
`,
|
|
42
|
+
`,T=`
|
|
43
43
|
mutation BuiArchiveCourse($id: ID!) {
|
|
44
44
|
buiArchiveCourse(id: $id)
|
|
45
45
|
}
|
|
46
|
-
`,
|
|
46
|
+
`,k=`
|
|
47
47
|
query BuiListModules($courseId: ID!) {
|
|
48
48
|
buiListModules(courseId: $courseId) {
|
|
49
|
-
id courseId title description position createdAt updatedAt workspaceId
|
|
49
|
+
items { id courseId title description position createdAt updatedAt workspaceId }
|
|
50
|
+
pageInfo { cursor hasMore }
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
`,
|
|
53
|
+
`,N=`
|
|
53
54
|
mutation BuiCreateModule($input: BuiCreateModuleInput!) {
|
|
54
55
|
buiCreateModule(input: $input) {
|
|
55
56
|
id courseId title description position createdAt
|
|
@@ -58,20 +59,24 @@ import {a,b,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';impor
|
|
|
58
59
|
`,$=`
|
|
59
60
|
query BuiListLessons($courseId: ID!, $moduleId: ID) {
|
|
60
61
|
buiListLessons(courseId: $courseId, moduleId: $moduleId) {
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
items {
|
|
63
|
+
id courseId moduleId title type position durationMin isPreview createdAt updatedAt
|
|
64
|
+
workspaceId
|
|
65
|
+
}
|
|
66
|
+
pageInfo { cursor hasMore }
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
|
-
`,
|
|
69
|
+
`,x=`
|
|
66
70
|
mutation BuiCreateLesson($input: BuiCreateLessonInput!) {
|
|
67
71
|
buiCreateLesson(input: $input) {
|
|
68
72
|
id courseId moduleId title type position durationMin isPreview createdAt
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
|
-
`,
|
|
75
|
+
`,M=`
|
|
72
76
|
query BuiListSkills($category: BuiSkillCategory) {
|
|
73
77
|
buiListSkills(category: $category) {
|
|
74
|
-
id name category description isActive createdAt updatedAt workspaceId
|
|
78
|
+
items { id name category description isActive createdAt updatedAt workspaceId }
|
|
79
|
+
pageInfo { cursor hasMore }
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
`,P=`
|
|
@@ -90,142 +95,134 @@ import {a,b,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';impor
|
|
|
90
95
|
`,B=`
|
|
91
96
|
query BuiListEnrollments(
|
|
92
97
|
$courseId: ID
|
|
93
|
-
$learnerId: ID
|
|
94
98
|
$status: BuiEnrollmentStatus
|
|
95
99
|
$pagination: PaginationInput
|
|
96
100
|
) {
|
|
97
|
-
buiListEnrollments(
|
|
98
|
-
courseId
|
|
99
|
-
learnerId: $learnerId
|
|
100
|
-
status: $status
|
|
101
|
-
pagination: $pagination
|
|
102
|
-
) {
|
|
103
|
-
items {
|
|
104
|
-
id courseId learnerId status progressPct enrolledAt completedAt
|
|
105
|
-
}
|
|
101
|
+
buiListEnrollments(courseId: $courseId, status: $status, pagination: $pagination) {
|
|
102
|
+
items { id courseId learnerId status progressPct enrolledAt completedAt }
|
|
106
103
|
pageInfo { cursor hasMore }
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
|
-
`,
|
|
106
|
+
`,U=`
|
|
110
107
|
mutation BuiEnroll($input: BuiEnrollInput!) {
|
|
111
108
|
buiEnroll(input: $input) {
|
|
112
109
|
id courseId learnerId cohortId status progressPct enrolledAt expiresAt
|
|
113
110
|
}
|
|
114
111
|
}
|
|
115
|
-
`,
|
|
112
|
+
`,_=`
|
|
116
113
|
mutation BuiTransitionEnrollment($id: ID!, $status: BuiEnrollmentStatus!) {
|
|
117
114
|
buiTransitionEnrollment(id: $id, status: $status) {
|
|
118
115
|
id status progressPct startedAt completedAt updatedAt
|
|
119
116
|
}
|
|
120
117
|
}
|
|
121
|
-
`,
|
|
118
|
+
`,q=`
|
|
122
119
|
mutation BuiRecordLessonProgress($input: BuiRecordLessonProgressInput!) {
|
|
123
120
|
buiRecordLessonProgress(input: $input) {
|
|
124
121
|
id enrollmentId lessonId status secondsSpent completedAt
|
|
125
122
|
createdAt updatedAt
|
|
126
123
|
}
|
|
127
124
|
}
|
|
128
|
-
`,
|
|
125
|
+
`,G=`
|
|
129
126
|
query BuiListCohorts($courseId: ID, $status: BuiCohortStatus) {
|
|
130
127
|
buiListCohorts(courseId: $courseId, status: $status) {
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
items {
|
|
129
|
+
id courseId name status capacity facilitatorId startDate endDate createdAt updatedAt
|
|
130
|
+
workspaceId
|
|
131
|
+
}
|
|
132
|
+
pageInfo { cursor hasMore }
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
`,
|
|
135
|
+
`,H=`
|
|
136
136
|
mutation BuiCreateCohort($input: BuiCreateCohortInput!) {
|
|
137
137
|
buiCreateCohort(input: $input) {
|
|
138
138
|
id courseId name status capacity facilitatorId startDate endDate createdAt
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
`,
|
|
142
|
-
query BuiListCertificates($courseId: ID
|
|
143
|
-
buiListCertificates(courseId: $courseId
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
`,F=`
|
|
142
|
+
query BuiListCertificates($courseId: ID) {
|
|
143
|
+
buiListCertificates(courseId: $courseId) {
|
|
144
|
+
items {
|
|
145
|
+
id courseId learnerId enrollmentId serial status finalScore issuedAt expiresAt
|
|
146
|
+
revokedAt createdAt updatedAt workspaceId
|
|
147
|
+
}
|
|
148
|
+
pageInfo { cursor hasMore }
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
|
-
`,
|
|
151
|
+
`,V=`
|
|
149
152
|
mutation BuiIssueCertificate($input: BuiIssueCertificateInput!) {
|
|
150
153
|
buiIssueCertificate(input: $input) {
|
|
151
154
|
id courseId learnerId enrollmentId serial status finalScore
|
|
152
155
|
issuedAt expiresAt
|
|
153
156
|
}
|
|
154
157
|
}
|
|
155
|
-
`,
|
|
158
|
+
`,Q=`
|
|
156
159
|
mutation BuiRevokeCertificate($id: ID!) {
|
|
157
160
|
buiRevokeCertificate(id: $id) {
|
|
158
161
|
id serial status revokedAt updatedAt
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
|
-
`,
|
|
164
|
+
`,W=`
|
|
162
165
|
query BuiGetAssessment($id: ID!) {
|
|
163
166
|
buiAssessment(id: $id) {
|
|
164
|
-
id courseId title description type status passingScore maxAttempts
|
|
165
|
-
|
|
166
|
-
questions { id prompt type points position }
|
|
167
|
+
id courseId title description type status passingScore maxAttempts timeLimitMin isGraded
|
|
168
|
+
createdAt updatedAt workspaceId
|
|
169
|
+
questions { items { id prompt type points position } pageInfo { cursor hasMore } }
|
|
167
170
|
}
|
|
168
171
|
}
|
|
169
|
-
`,
|
|
172
|
+
`,K=`
|
|
170
173
|
query BuiListAssessments($courseId: ID!, $status: BuiAssessmentStatus) {
|
|
171
174
|
buiListAssessments(courseId: $courseId, status: $status) {
|
|
172
|
-
|
|
173
|
-
|
|
175
|
+
items {
|
|
176
|
+
id courseId title type status passingScore maxAttempts timeLimitMin isGraded createdAt
|
|
177
|
+
}
|
|
178
|
+
pageInfo { cursor hasMore }
|
|
174
179
|
}
|
|
175
180
|
}
|
|
176
|
-
`,
|
|
181
|
+
`,j=`
|
|
177
182
|
mutation BuiCreateAssessment($input: BuiCreateAssessmentInput!) {
|
|
178
183
|
buiCreateAssessment(input: $input) {
|
|
179
184
|
id courseId title type status passingScore maxAttempts timeLimitMin
|
|
180
185
|
isGraded createdAt
|
|
181
186
|
}
|
|
182
187
|
}
|
|
183
|
-
`,
|
|
188
|
+
`,J=`
|
|
184
189
|
mutation BuiPublishAssessment($id: ID!) {
|
|
185
190
|
buiPublishAssessment(id: $id) {
|
|
186
191
|
id title type status updatedAt
|
|
187
192
|
}
|
|
188
193
|
}
|
|
189
|
-
`,
|
|
194
|
+
`,X=`
|
|
190
195
|
mutation BuiCreateQuestion($input: BuiCreateQuestionInput!) {
|
|
191
196
|
buiCreateQuestion(input: $input) {
|
|
192
197
|
id assessmentId prompt type points position explanation createdAt
|
|
193
198
|
}
|
|
194
199
|
}
|
|
195
|
-
`,
|
|
200
|
+
`,Z=`
|
|
196
201
|
query BuiListSubmissions(
|
|
197
202
|
$assessmentId: ID
|
|
198
|
-
$learnerId: ID
|
|
199
203
|
$status: BuiSubmissionStatus
|
|
200
204
|
$pagination: PaginationInput
|
|
201
205
|
) {
|
|
202
|
-
buiListSubmissions(
|
|
203
|
-
assessmentId
|
|
204
|
-
learnerId: $learnerId
|
|
205
|
-
status: $status
|
|
206
|
-
pagination: $pagination
|
|
207
|
-
) {
|
|
208
|
-
items {
|
|
209
|
-
id assessmentId learnerId attempt status score passed submittedAt
|
|
210
|
-
}
|
|
206
|
+
buiListSubmissions(assessmentId: $assessmentId, status: $status, pagination: $pagination) {
|
|
207
|
+
items { id assessmentId learnerId attempt status score passed submittedAt }
|
|
211
208
|
pageInfo { cursor hasMore }
|
|
212
209
|
}
|
|
213
210
|
}
|
|
214
|
-
`,
|
|
211
|
+
`,z=`
|
|
215
212
|
mutation BuiSubmitAssessment($input: BuiSubmitAssessmentInput!) {
|
|
216
213
|
buiSubmitAssessment(input: $input) {
|
|
217
214
|
id assessmentId learnerId attempt status score passed submittedAt createdAt
|
|
218
215
|
}
|
|
219
216
|
}
|
|
220
|
-
`,
|
|
217
|
+
`,Y=`
|
|
221
218
|
mutation BuiGradeSubmission($id: ID!, $input: BuiGradeSubmissionInput!) {
|
|
222
219
|
buiGradeSubmission(id: $id, input: $input) {
|
|
223
220
|
id assessmentId learnerId attempt status score passed feedback
|
|
224
221
|
gradedAt gradedById updatedAt
|
|
225
222
|
}
|
|
226
223
|
}
|
|
227
|
-
`,
|
|
224
|
+
`,tt=`
|
|
228
225
|
query BuiHealth {
|
|
229
226
|
buiHealth
|
|
230
227
|
}
|
|
231
|
-
`;function S(a,i){try{return JSON.parse(i)}catch{throw new o(`--${a} must be valid JSON`)}}function c(a){let i=Number.parseInt(a,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${a}"`);return i}function I(a){let i=Number.parseFloat(a);if(Number.isNaN(i))throw new o(`Expected a number but got "${a}"`);return i}function E(a){return a==="true"}function A(a){return a.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function tt(a){let i$1=a.command("courses").description("Buildmyiq courses");i$1.command("list").description("List courses").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(R,{status:t.status?t.status.toUpperCase():void 0,level:t.level?t.level.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListCourses.items,{headers:["ID","Title","Level","Status","Language","Hours"],rows:s.buiListCourses.items.map(d=>[r(d.id,12),d.title,d.level,d.status,d.language??"-",d.estimatedHours!=null?String(d.estimatedHours):"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a course by id").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(L,{id:t});if(!s.buiCourse)throw new o(`Course ${t} not found`);i(e,s.buiCourse);}catch(s){h$1(s);}}),i$1.command("create").description("Create a course").requiredOption("--slug <slug>","URL slug").requiredOption("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT","BEGINNER").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public","Make the course public").option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={slug:t.slug,title:t.title,level:(t.level??"BEGINNER").toUpperCase()};t.summary&&(e.summary=t.summary),t.description&&(e.description=t.description),t.language&&(e.language=t.language),t.estimatedHours!==void 0&&(e.estimatedHours=t.estimatedHours),t.public&&(e.isPublic=!0),t.instructor&&(e.instructorId=t.instructor),t.skill&&(e.skillId=t.skill),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=A(t.tags));let s=await b(O,{input:e});k$1(`Course created: ${s.buiCreateCourse.title}`),i(t,s.buiCreateCourse);}catch(e){h$1(e);}}),i$1.command("update").description("Update a course").argument("<id>","Course ID").option("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public <bool>","true|false",E).option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.summary!==void 0&&(s.summary=e.summary),e.description!==void 0&&(s.description=e.description),e.level&&(s.level=e.level.toUpperCase()),e.language&&(s.language=e.language),e.estimatedHours!==void 0&&(s.estimatedHours=e.estimatedHours),e.public!==void 0&&(s.isPublic=e.public),e.instructor&&(s.instructorId=e.instructor),e.skill&&(s.skillId=e.skill),e.coverFile&&(s.coverFileId=e.coverFile),e.tags&&(s.tags=A(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let d=await b(h,{id:t,input:s});k$1("Course updated"),i(e,d.buiUpdateCourse);}catch(s){h$1(s);}}),i$1.command("publish").description("Publish a course through its authoring lifecycle").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(w,{id:t});k$1(`Course published: ${s.buiPublishCourse.title}`),i(e,s.buiPublishCourse);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a course").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(D,{id:t});k$1(s.buiArchiveCourse?"Course archived":"Course not archived"),i(e,{archived:s.buiArchiveCourse});}catch(s){h$1(s);}});}function et(a){let i$1=a.command("modules").description("Buildmyiq course modules");i$1.command("list").description("List modules for a course").requiredOption("--course <id>","Course ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(T,{courseId:t.course});i(t,e.buiListModules,{headers:["ID","Title","Position","Description"],rows:e.buiListModules.map(s=>[r(s.id,12),s.title,String(s.position),r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a module").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Module title").option("--description <s>","Description").option("--position <n>","Ordering position",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let s=await b(k,{input:e});k$1(`Module created: ${s.buiCreateModule.title}`),i(t,s.buiCreateModule);}catch(e){h$1(e);}});}function st(a){let i$1=a.command("lessons").description("Buildmyiq course lessons");i$1.command("list").description("List lessons for a course").requiredOption("--course <id>","Course ID").option("--module <id>","Filter by module ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b($,{courseId:t.course,moduleId:t.module});i(t,e.buiListLessons,{headers:["ID","Title","Type","Position","Duration","Preview"],rows:e.buiListLessons.map(s=>[r(s.id,12),s.title,s.type,String(s.position),s.durationMin!=null?String(s.durationMin):"-",s.isPreview?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a lesson").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Lesson title").option("--module <id>","Module ID").option("--type <t>","ARTICLE|VIDEO|QUIZ|ASSIGNMENT|LIVE_SESSION|INTERACTIVE","ARTICLE").option("--content <s>","Lesson content").option("--duration-min <n>","Duration (minutes)",c).option("--position <n>","Ordering position",c).option("--preview","Mark as a preview lesson").option("--media-file <id>","Media File ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"ARTICLE").toUpperCase()};t.module&&(e.moduleId=t.module),t.content&&(e.content=t.content),t.durationMin!==void 0&&(e.durationMin=t.durationMin),t.position!==void 0&&(e.position=t.position),t.preview&&(e.isPreview=!0),t.mediaFile&&(e.mediaFileId=t.mediaFile);let s=await b(N,{input:e});k$1(`Lesson created: ${s.buiCreateLesson.title}`),i(t,s.buiCreateLesson);}catch(e){h$1(e);}});}function it(a){let i$1=a.command("skills").description("Buildmyiq skills taxonomy");i$1.command("list").description("List skills").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(x,{category:t.category?t.category.toUpperCase():void 0});i(t,e.buiListSkills,{headers:["ID","Name","Category","Active","Description"],rows:e.buiListSkills.map(s=>[r(s.id,12),s.name,s.category,s.isActive?"yes":"no",r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a skill").requiredOption("--name <name>","Skill name").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE","TECHNICAL").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,category:(t.category??"TECHNICAL").toUpperCase()};t.description&&(e.description=t.description);let s=await b(P,{input:e});k$1(`Skill created: ${s.buiCreateSkill.name}`),i(t,s.buiCreateSkill);}catch(e){h$1(e);}});}function rt(a){let i$1=a.command("enrollments").description("Buildmyiq enrollments & lesson progress");i$1.command("list").description("List enrollments").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(B,{courseId:t.course,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListEnrollments.items,{headers:["ID","Course","Learner","Status","Progress %"],rows:s.buiListEnrollments.items.map(d=>[r(d.id,12),r(d.courseId,12),r(d.learnerId,12),d.status,String(d.progressPct)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an enrollment by id").argument("<id>","Enrollment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(v,{id:t});if(!s.buiEnrollment)throw new o(`Enrollment ${t} not found`);i(e,s.buiEnrollment);}catch(s){h$1(s);}}),i$1.command("enroll").description("Enroll a learner in a course").requiredOption("--course <id>","Course ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--cohort <id>","Cohort ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course};t.learner&&(e.learnerId=t.learner),t.cohort&&(e.cohortId=t.cohort),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(M,{input:e});k$1(`Enrolled: ${s.buiEnroll.id}`),i(t,s.buiEnroll);}catch(e){h$1(e);}}),i$1.command("transition").description("Advance an enrollment through its lifecycle").argument("<id>","Enrollment ID").requiredOption("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(U,{id:t,status:e.status.toUpperCase()});k$1(`Enrollment status set to ${s.buiTransitionEnrollment.status}`),i(e,s.buiTransitionEnrollment);}catch(s){h$1(s);}}),i$1.command("record-progress").description("Record lesson progress for an enrollment").requiredOption("--enrollment <id>","Enrollment ID").requiredOption("--lesson <id>","Lesson ID").option("--status <s>","NOT_STARTED|IN_PROGRESS|COMPLETED","IN_PROGRESS").option("--seconds-spent <n>","Seconds spent",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={enrollmentId:t.enrollment,lessonId:t.lesson,status:(t.status??"IN_PROGRESS").toUpperCase()};t.secondsSpent!==void 0&&(e.secondsSpent=t.secondsSpent);let s=await b(_,{input:e});k$1(`Progress recorded: ${s.buiRecordLessonProgress.status}`),i(t,s.buiRecordLessonProgress);}catch(e){h$1(e);}});}function nt(a){let i$1=a.command("cohorts").description("Buildmyiq cohorts");i$1.command("list").description("List cohorts").option("--course <id>","Filter by course ID").option("--status <s>","SCHEDULED|ENROLLING|ACTIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(q,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListCohorts,{headers:["ID","Name","Status","Capacity","Start","End"],rows:e.buiListCohorts.map(s=>[r(s.id,12),s.name,s.status,String(s.capacity),q$1(s.startDate),q$1(s.endDate)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a cohort").requiredOption("--course <id>","Course ID").requiredOption("--name <name>","Cohort name").option("--capacity <n>","Capacity",c).option("--facilitator <id>","Facilitator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,name:t.name};t.capacity!==void 0&&(e.capacity=t.capacity),t.facilitator&&(e.facilitatorId=t.facilitator),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let s=await b(G,{input:e});k$1(`Cohort created: ${s.buiCreateCohort.name}`),i(t,s.buiCreateCohort);}catch(e){h$1(e);}});}function ot(a){let i$1=a.command("certificates").description("Buildmyiq certificates");i$1.command("list").description("List certificates").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(H,{courseId:t.course,learnerId:t.learner});i(t,e.buiListCertificates,{headers:["ID","Serial","Learner","Status","Score","Issued"],rows:e.buiListCertificates.map(s=>[r(s.id,12),s.serial,r(s.learnerId,12),s.status,s.finalScore!=null?String(s.finalScore):"-",q$1(s.issuedAt)])});}catch(e){h$1(e);}}),i$1.command("issue").description("Issue a certificate").requiredOption("--course <id>","Course ID").requiredOption("--learner <id>","Learner ID").requiredOption("--serial <s>","Certificate serial").option("--enrollment <id>","Enrollment ID").option("--final-score <n>","Final score",I).option("--file <id>","Rendered certificate PDF File ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,learnerId:t.learner,serial:t.serial};t.enrollment&&(e.enrollmentId=t.enrollment),t.finalScore!==void 0&&(e.finalScore=t.finalScore),t.file&&(e.fileId=t.file),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(F,{input:e});k$1(`Certificate issued: ${s.buiIssueCertificate.serial}`),i(t,s.buiIssueCertificate);}catch(e){h$1(e);}}),i$1.command("revoke").description("Revoke a certificate").argument("<id>","Certificate ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(V,{id:t});k$1(`Certificate revoked: ${s.buiRevokeCertificate.serial}`),i(e,s.buiRevokeCertificate);}catch(s){h$1(s);}});}function at(a){let i$1=a.command("assessments").description("Buildmyiq assessments & questions");i$1.command("list").description("List assessments for a course").requiredOption("--course <id>","Course ID").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(W,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListAssessments,{headers:["ID","Title","Type","Status","Pass","Attempts","Graded"],rows:e.buiListAssessments.map(s=>[r(s.id,12),s.title,s.type,s.status,s.passingScore!=null?String(s.passingScore):"-",s.maxAttempts!=null?String(s.maxAttempts):"-",s.isGraded?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an assessment by id").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(Q,{id:t});if(!s.buiAssessment)throw new o(`Assessment ${t} not found`);i(e,s.buiAssessment);}catch(s){h$1(s);}}),i$1.command("create").description("Create an assessment").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Assessment title").option("--type <t>","QUIZ|EXAM|ASSIGNMENT|SURVEY|PRACTICAL","QUIZ").option("--description <s>","Description").option("--passing-score <n>","Passing score",I).option("--max-attempts <n>","Max attempts",c).option("--time-limit-min <n>","Time limit (minutes)",c).option("--graded","Mark assessment as graded").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"QUIZ").toUpperCase()};t.description&&(e.description=t.description),t.passingScore!==void 0&&(e.passingScore=t.passingScore),t.maxAttempts!==void 0&&(e.maxAttempts=t.maxAttempts),t.timeLimitMin!==void 0&&(e.timeLimitMin=t.timeLimitMin),t.graded&&(e.isGraded=!0);let s=await b(K,{input:e});k$1(`Assessment created: ${s.buiCreateAssessment.title}`),i(t,s.buiCreateAssessment);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish an assessment").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(j,{id:t});k$1(`Assessment published: ${s.buiPublishAssessment.title}`),i(e,s.buiPublishAssessment);}catch(s){h$1(s);}}),i$1.command("add-question").description("Add a question to an assessment").requiredOption("--assessment <id>","Assessment ID").requiredOption("--prompt <p>","Question prompt").option("--type <t>","SINGLE_CHOICE|MULTIPLE_CHOICE|TRUE_FALSE|SHORT_ANSWER|ESSAY|CODE","SINGLE_CHOICE").option("--points <n>","Points",I).option("--position <n>","Ordering position",c).option("--explanation <s>","Explanation").option("--options <json>","Options JSON").option("--answer-key <json>","Answer key JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment,prompt:t.prompt,type:(t.type??"SINGLE_CHOICE").toUpperCase()};t.points!==void 0&&(e.points=t.points),t.position!==void 0&&(e.position=t.position),t.explanation&&(e.explanation=t.explanation),t.options&&(e.options=S("options",t.options)),t.answerKey&&(e.answerKey=S("answer-key",t.answerKey));let s=await b(J,{input:e});k$1(`Question added: ${r(s.buiCreateQuestion.prompt,40)}`),i(t,s.buiCreateQuestion);}catch(e){h$1(e);}});}function ut(a){let i$1=a.command("submissions").description("Buildmyiq assessment submissions");i$1.command("list").description("List submissions").option("--assessment <id>","Filter by assessment ID").option("--learner <id>","Filter by learner ID").option("--status <s>","IN_PROGRESS|SUBMITTED|GRADING|GRADED|RETURNED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(X,{assessmentId:t.assessment,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListSubmissions.items,{headers:["ID","Assessment","Learner","Attempt","Status","Score","Passed"],rows:s.buiListSubmissions.items.map(d=>[r(d.id,12),r(d.assessmentId,12),r(d.learnerId,12),String(d.attempt),d.status,d.score!=null?String(d.score):"-",d.passed==null?"-":d.passed?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("submit").description("Submit an assessment attempt").requiredOption("--assessment <id>","Assessment ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--enrollment <id>","Enrollment ID").option("--attempt <n>","Attempt number",c).option("--answers <json>","Answers JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment};t.learner&&(e.learnerId=t.learner),t.enrollment&&(e.enrollmentId=t.enrollment),t.attempt!==void 0&&(e.attempt=t.attempt),t.answers&&(e.answers=S("answers",t.answers));let s=await b(Z,{input:e});k$1(`Submission created: ${s.buiSubmitAssessment.id}`),i(t,s.buiSubmitAssessment);}catch(e){h$1(e);}}),i$1.command("grade").description("Grade a submission").argument("<id>","Submission ID").requiredOption("--score <n>","Score",I).option("--passed <bool>","true|false",E).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={score:e.score};e.passed!==void 0&&(s.passed=e.passed),e.feedback&&(s.feedback=e.feedback);let d=await b(z,{id:t,input:s});k$1(`Submission graded: ${d.buiGradeSubmission.status}`),i(e,d.buiGradeSubmission);}catch(s){h$1(s);}});}function dt(a){a.command("health").description("Buildmyiq subgraph liveness/identity probe (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(Y);k$1(t.buiHealth),i(i$1,{health:t.buiHealth});}catch(t){h$1(t);}});}var mt={id:"buildmyiq",version:"1.0.0",displayName:"Buildmyiq",dependsOn:["auth","workspaces"],register(a$1,i){a(i);let t=a$1.command("buildmyiq").description("Buildmyiq education, learning & development platform");tt(t),et(t),st(t),it(t),rt(t),nt(t),ot(t),at(t),ut(t),dt(t);}},ie=mt;export{ie as default};
|
|
228
|
+
`;function E(a,i){try{return JSON.parse(i)}catch{throw new o(`--${a} must be valid JSON`)}}function c(a){let i=Number.parseInt(a,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${a}"`);return i}function C(a){let i=Number.parseFloat(a);if(Number.isNaN(i))throw new o(`Expected a number but got "${a}"`);return i}function b(a){return a==="true"}function y(a){return a.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function et(a){let i$1=a.command("courses").description("Buildmyiq courses");i$1.command("list").description("List courses").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b$1(O,{status:t.status?t.status.toUpperCase():void 0,level:t.level?t.level.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListCourses.items,{headers:["ID","Title","Level","Status","Language","Hours"],rows:s.buiListCourses.items.map(d=>[r(d.id,12),d.title,d.level,d.status,d.language??"-",d.estimatedHours!=null?String(d.estimatedHours):"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a course by id").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(R,{id:t});if(!s.buiCourse)throw new o(`Course ${t} not found`);i(e,s.buiCourse);}catch(s){h$1(s);}}),i$1.command("create").description("Create a course").requiredOption("--slug <slug>","URL slug").requiredOption("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT","BEGINNER").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public","Make the course public").option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={slug:t.slug,title:t.title,level:(t.level??"BEGINNER").toUpperCase()};t.summary&&(e.summary=t.summary),t.description&&(e.description=t.description),t.language&&(e.language=t.language),t.estimatedHours!==void 0&&(e.estimatedHours=t.estimatedHours),t.public&&(e.isPublic=!0),t.instructor&&(e.instructorId=t.instructor),t.skill&&(e.skillId=t.skill),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=y(t.tags));let s=await b$1(h,{input:e});k$1(`Course created: ${s.buiCreateCourse.title}`),i(t,s.buiCreateCourse);}catch(e){h$1(e);}}),i$1.command("update").description("Update a course").argument("<id>","Course ID").option("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public <bool>","true|false",b).option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.summary!==void 0&&(s.summary=e.summary),e.description!==void 0&&(s.description=e.description),e.level&&(s.level=e.level.toUpperCase()),e.language&&(s.language=e.language),e.estimatedHours!==void 0&&(s.estimatedHours=e.estimatedHours),e.public!==void 0&&(s.isPublic=e.public),e.instructor&&(s.instructorId=e.instructor),e.skill&&(s.skillId=e.skill),e.coverFile&&(s.coverFileId=e.coverFile),e.tags&&(s.tags=y(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let d=await b$1(w,{id:t,input:s});k$1("Course updated"),i(e,d.buiUpdateCourse);}catch(s){h$1(s);}}),i$1.command("publish").description("Publish a course through its authoring lifecycle").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(D,{id:t});k$1(`Course published: ${s.buiPublishCourse.title}`),i(e,s.buiPublishCourse);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a course").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(T,{id:t});k$1(s.buiArchiveCourse?"Course archived":"Course not archived"),i(e,{archived:s.buiArchiveCourse});}catch(s){h$1(s);}});}function st(a){let i$1=a.command("modules").description("Buildmyiq course modules");i$1.command("list").description("List modules for a course").requiredOption("--course <id>","Course ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{courseId:t.course});i(t,e.buiListModules.items,{headers:["ID","Title","Position","Description"],rows:e.buiListModules.items.map(s=>[r(s.id,12),s.title,String(s.position),r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a module").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Module title").option("--description <s>","Description").option("--position <n>","Ordering position",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let s=await b$1(N,{input:e});k$1(`Module created: ${s.buiCreateModule.title}`),i(t,s.buiCreateModule);}catch(e){h$1(e);}});}function it(a){let i$1=a.command("lessons").description("Buildmyiq course lessons");i$1.command("list").description("List lessons for a course").requiredOption("--course <id>","Course ID").option("--module <id>","Filter by module ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1($,{courseId:t.course,moduleId:t.module});i(t,e.buiListLessons.items,{headers:["ID","Title","Type","Position","Duration","Preview"],rows:e.buiListLessons.items.map(s=>[r(s.id,12),s.title,s.type,String(s.position),s.durationMin!=null?String(s.durationMin):"-",s.isPreview?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a lesson").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Lesson title").option("--module <id>","Module ID").option("--type <t>","ARTICLE|VIDEO|QUIZ|ASSIGNMENT|LIVE_SESSION|INTERACTIVE","ARTICLE").option("--content <s>","Lesson content").option("--duration-min <n>","Duration (minutes)",c).option("--position <n>","Ordering position",c).option("--preview","Mark as a preview lesson").option("--media-file <id>","Media File ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"ARTICLE").toUpperCase()};t.module&&(e.moduleId=t.module),t.content&&(e.content=t.content),t.durationMin!==void 0&&(e.durationMin=t.durationMin),t.position!==void 0&&(e.position=t.position),t.preview&&(e.isPreview=!0),t.mediaFile&&(e.mediaFileId=t.mediaFile);let s=await b$1(x,{input:e});k$1(`Lesson created: ${s.buiCreateLesson.title}`),i(t,s.buiCreateLesson);}catch(e){h$1(e);}});}function rt(a){let i$1=a.command("skills").description("Buildmyiq skills taxonomy");i$1.command("list").description("List skills").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{category:t.category?t.category.toUpperCase():void 0});i(t,e.buiListSkills.items,{headers:["ID","Name","Category","Active","Description"],rows:e.buiListSkills.items.map(s=>[r(s.id,12),s.name,s.category,s.isActive?"yes":"no",r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a skill").requiredOption("--name <name>","Skill name").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE","TECHNICAL").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,category:(t.category??"TECHNICAL").toUpperCase()};t.description&&(e.description=t.description);let s=await b$1(P,{input:e});k$1(`Skill created: ${s.buiCreateSkill.name}`),i(t,s.buiCreateSkill);}catch(e){h$1(e);}});}function nt(a){let i$1=a.command("enrollments").description("Buildmyiq enrollments & lesson progress");i$1.command("list").description("List enrollments").option("--course <id>","Filter by course ID").option("--learner <id>","Only this learner's rows (filtered client-side)").option("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b$1(B,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0}),d=t.learner?s.buiListEnrollments.items.filter(p=>p.learnerId===t.learner):s.buiListEnrollments.items;i(t,d,{headers:["ID","Course","Learner","Status","Progress %"],rows:d.map(p=>[r(p.id,12),r(p.courseId,12),r(p.learnerId,12),p.status,String(p.progressPct)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an enrollment by id").argument("<id>","Enrollment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(v,{id:t});if(!s.buiEnrollment)throw new o(`Enrollment ${t} not found`);i(e,s.buiEnrollment);}catch(s){h$1(s);}}),i$1.command("enroll").description("Enroll a learner in a course").requiredOption("--course <id>","Course ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--cohort <id>","Cohort ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course};t.learner&&(e.learnerId=t.learner),t.cohort&&(e.cohortId=t.cohort),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b$1(U,{input:e});k$1(`Enrolled: ${s.buiEnroll.id}`),i(t,s.buiEnroll);}catch(e){h$1(e);}}),i$1.command("transition").description("Advance an enrollment through its lifecycle").argument("<id>","Enrollment ID").requiredOption("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(_,{id:t,status:e.status.toUpperCase()});k$1(`Enrollment status set to ${s.buiTransitionEnrollment.status}`),i(e,s.buiTransitionEnrollment);}catch(s){h$1(s);}}),i$1.command("record-progress").description("Record lesson progress for an enrollment").requiredOption("--enrollment <id>","Enrollment ID").requiredOption("--lesson <id>","Lesson ID").option("--status <s>","NOT_STARTED|IN_PROGRESS|COMPLETED","IN_PROGRESS").option("--seconds-spent <n>","Seconds spent",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={enrollmentId:t.enrollment,lessonId:t.lesson,status:(t.status??"IN_PROGRESS").toUpperCase()};t.secondsSpent!==void 0&&(e.secondsSpent=t.secondsSpent);let s=await b$1(q,{input:e});k$1(`Progress recorded: ${s.buiRecordLessonProgress.status}`),i(t,s.buiRecordLessonProgress);}catch(e){h$1(e);}});}function ot(a){let i$1=a.command("cohorts").description("Buildmyiq cohorts");i$1.command("list").description("List cohorts").option("--course <id>","Filter by course ID").option("--status <s>","SCHEDULED|ENROLLING|ACTIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListCohorts.items,{headers:["ID","Name","Status","Capacity","Start","End"],rows:e.buiListCohorts.items.map(s=>[r(s.id,12),s.name,s.status,String(s.capacity),q$1(s.startDate),q$1(s.endDate)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a cohort").requiredOption("--course <id>","Course ID").requiredOption("--name <name>","Cohort name").option("--capacity <n>","Capacity",c).option("--facilitator <id>","Facilitator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,name:t.name};t.capacity!==void 0&&(e.capacity=t.capacity),t.facilitator&&(e.facilitatorId=t.facilitator),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let s=await b$1(H,{input:e});k$1(`Cohort created: ${s.buiCreateCohort.name}`),i(t,s.buiCreateCohort);}catch(e){h$1(e);}});}function at(a){let i$1=a.command("certificates").description("Buildmyiq certificates");i$1.command("list").description("List certificates").option("--course <id>","Filter by course ID").option("--learner <id>","Only this learner's rows (filtered client-side)").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{courseId:t.course}),s=t.learner?e.buiListCertificates.items.filter(d=>d.learnerId===t.learner):e.buiListCertificates.items;i(t,s,{headers:["ID","Serial","Learner","Status","Score","Issued"],rows:s.map(d=>[r(d.id,12),d.serial,r(d.learnerId,12),d.status,d.finalScore!=null?String(d.finalScore):"-",q$1(d.issuedAt)])});}catch(e){h$1(e);}}),i$1.command("issue").description("Issue a certificate").requiredOption("--course <id>","Course ID").requiredOption("--learner <id>","Learner ID").requiredOption("--serial <s>","Certificate serial").option("--enrollment <id>","Enrollment ID").option("--final-score <n>","Final score",C).option("--file <id>","Rendered certificate PDF File ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,learnerId:t.learner,serial:t.serial};t.enrollment&&(e.enrollmentId=t.enrollment),t.finalScore!==void 0&&(e.finalScore=t.finalScore),t.file&&(e.fileId=t.file),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b$1(V,{input:e});k$1(`Certificate issued: ${s.buiIssueCertificate.serial}`),i(t,s.buiIssueCertificate);}catch(e){h$1(e);}}),i$1.command("revoke").description("Revoke a certificate").argument("<id>","Certificate ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(Q,{id:t});k$1(`Certificate revoked: ${s.buiRevokeCertificate.serial}`),i(e,s.buiRevokeCertificate);}catch(s){h$1(s);}});}function ut(a){let i$1=a.command("assessments").description("Buildmyiq assessments & questions");i$1.command("list").description("List assessments for a course").requiredOption("--course <id>","Course ID").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(K,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListAssessments.items,{headers:["ID","Title","Type","Status","Pass","Attempts","Graded"],rows:e.buiListAssessments.items.map(s=>[r(s.id,12),s.title,s.type,s.status,s.passingScore!=null?String(s.passingScore):"-",s.maxAttempts!=null?String(s.maxAttempts):"-",s.isGraded?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an assessment by id").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(W,{id:t});if(!s.buiAssessment)throw new o(`Assessment ${t} not found`);i(e,s.buiAssessment);}catch(s){h$1(s);}}),i$1.command("create").description("Create an assessment").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Assessment title").option("--type <t>","QUIZ|EXAM|ASSIGNMENT|SURVEY|PRACTICAL","QUIZ").option("--description <s>","Description").option("--passing-score <n>","Passing score",C).option("--max-attempts <n>","Max attempts",c).option("--time-limit-min <n>","Time limit (minutes)",c).option("--graded","Mark assessment as graded").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"QUIZ").toUpperCase()};t.description&&(e.description=t.description),t.passingScore!==void 0&&(e.passingScore=t.passingScore),t.maxAttempts!==void 0&&(e.maxAttempts=t.maxAttempts),t.timeLimitMin!==void 0&&(e.timeLimitMin=t.timeLimitMin),t.graded&&(e.isGraded=!0);let s=await b$1(j,{input:e});k$1(`Assessment created: ${s.buiCreateAssessment.title}`),i(t,s.buiCreateAssessment);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish an assessment").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(J,{id:t});k$1(`Assessment published: ${s.buiPublishAssessment.title}`),i(e,s.buiPublishAssessment);}catch(s){h$1(s);}}),i$1.command("add-question").description("Add a question to an assessment").requiredOption("--assessment <id>","Assessment ID").requiredOption("--prompt <p>","Question prompt").option("--type <t>","SINGLE_CHOICE|MULTIPLE_CHOICE|TRUE_FALSE|SHORT_ANSWER|ESSAY|CODE","SINGLE_CHOICE").option("--points <n>","Points",C).option("--position <n>","Ordering position",c).option("--explanation <s>","Explanation").option("--options <json>","Options JSON").option("--answer-key <json>","Answer key JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment,prompt:t.prompt,type:(t.type??"SINGLE_CHOICE").toUpperCase()};t.points!==void 0&&(e.points=t.points),t.position!==void 0&&(e.position=t.position),t.explanation&&(e.explanation=t.explanation),t.options&&(e.options=E("options",t.options)),t.answerKey&&(e.answerKey=E("answer-key",t.answerKey));let s=await b$1(X,{input:e});k$1(`Question added: ${r(s.buiCreateQuestion.prompt,40)}`),i(t,s.buiCreateQuestion);}catch(e){h$1(e);}});}function dt(a){let i$1=a.command("submissions").description("Buildmyiq assessment submissions");i$1.command("list").description("List submissions").option("--assessment <id>","Filter by assessment ID").option("--learner <id>","Only this learner's rows (filtered client-side)").option("--status <s>","IN_PROGRESS|SUBMITTED|GRADING|GRADED|RETURNED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b$1(Z,{assessmentId:t.assessment,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0}),d=t.learner?s.buiListSubmissions.items.filter(p=>p.learnerId===t.learner):s.buiListSubmissions.items;i(t,d,{headers:["ID","Assessment","Learner","Attempt","Status","Score","Passed"],rows:d.map(p=>[r(p.id,12),r(p.assessmentId,12),r(p.learnerId,12),String(p.attempt),p.status,p.score!=null?String(p.score):"-",p.passed==null?"-":p.passed?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("submit").description("Submit an assessment attempt").requiredOption("--assessment <id>","Assessment ID").option("--enrollment <id>","Enrollment ID").option("--attempt <n>","Attempt number",c).option("--answers <json>","Answers JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment};t.enrollment&&(e.enrollmentId=t.enrollment),t.attempt!==void 0&&(e.attempt=t.attempt),t.answers&&(e.answers=E("answers",t.answers));let s=await b$1(z,{input:e});k$1(`Submission created: ${s.buiSubmitAssessment.id}`),i(t,s.buiSubmitAssessment);}catch(e){h$1(e);}}),i$1.command("grade").description("Grade a submission").argument("<id>","Submission ID").requiredOption("--score <n>","Score",C).option("--passed <bool>","true|false",b).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={score:e.score};e.passed!==void 0&&(s.passed=e.passed),e.feedback&&(s.feedback=e.feedback);let d=await b$1(Y,{id:t,input:s});k$1(`Submission graded: ${d.buiGradeSubmission.status}`),i(e,d.buiGradeSubmission);}catch(s){h$1(s);}});}function mt(a){a.command("health").description("Buildmyiq subgraph liveness/identity probe (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(tt);k$1(t.buiHealth),i(i$1,{health:t.buiHealth});}catch(t){h$1(t);}});}var ct={id:"buildmyiq",version:"1.0.0",displayName:"Buildmyiq",dependsOn:["auth","workspaces"],register(a$1,i){a(i);let t=a$1.command("buildmyiq").description("Buildmyiq education, learning & development platform");et(t),st(t),it(t),rt(t),nt(t),ot(t),at(t),ut(t),dt(t),mt(t);}},re=ct;export{re as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(n,t){super(n),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends p{constructor(n,t){super(n,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},C=class extends Error{cause;constructor(n,t){super(n),this.name="CliInternalError",this.cause=t;}};var y=null;function T(s){y=s;}function I(){if(!y)throw new C("vibecontrols module helpers used before setHelpersContext was called");return y}function St(){let s=I();if(!s.auth.isAuthenticated())throw new h("Authentication required.",{hint:`Run \`${s.productName} auth login\` to authenticate.`})}async function a(s,n){return St(),I().gql.workspace.request(s,n)}async function w(s,n){return I().gql.workspaceAuthOnly.request(s,n)}function r(s){let n=s instanceof Error?s.message:String(s);throw new p(n)}function i(s,n,t){I().output.formatAndOutput(s,n,t);}function c(s){I().output.printSuccess(s);}function E(s){return I().output.formatDate(s)}function d(s,n){return I().output.truncate(s,n)}var A=`
|
|
2
2
|
query ComradecircleCircle($id: ID!) {
|
|
3
3
|
comCircle(id: $id) {
|
|
4
4
|
id name slug description topic status visibility tags memberCount
|
|
@@ -38,8 +38,11 @@
|
|
|
38
38
|
`,L=`
|
|
39
39
|
query ComradecircleListChannels($circleId: ID!) {
|
|
40
40
|
comListChannels(circleId: $circleId) {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
items {
|
|
42
|
+
id circleId name slug description type visibility position isArchived createdAt
|
|
43
|
+
updatedAt workspaceId
|
|
44
|
+
}
|
|
45
|
+
pageInfo { cursor hasMore }
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
`,R=`
|
|
@@ -77,13 +80,13 @@
|
|
|
77
80
|
mutation ComradecircleLeaveCircle($circleId: ID!) {
|
|
78
81
|
comLeaveCircle(circleId: $circleId)
|
|
79
82
|
}
|
|
80
|
-
`,
|
|
83
|
+
`,M=`
|
|
81
84
|
mutation ComradecircleSetMemberRole($membershipId: ID!, $role: ComMemberRole!) {
|
|
82
85
|
comSetMemberRole(membershipId: $membershipId, role: $role) {
|
|
83
86
|
id circleId memberId role status updatedAt
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
`,
|
|
89
|
+
`,U=`
|
|
87
90
|
query ComradecirclePost($id: ID!) {
|
|
88
91
|
comPost(id: $id) {
|
|
89
92
|
id channelId authorId body status tags attachmentFileIds isPinned
|
|
@@ -129,7 +132,8 @@
|
|
|
129
132
|
`,W=`
|
|
130
133
|
query ComradecircleListComments($postId: ID!) {
|
|
131
134
|
comListComments(postId: $postId) {
|
|
132
|
-
id postId parentId authorId body isHidden createdAt updatedAt workspaceId
|
|
135
|
+
items { id postId parentId authorId body isHidden createdAt updatedAt workspaceId }
|
|
136
|
+
pageInfo { cursor hasMore }
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
`,j=`
|
|
@@ -189,23 +193,26 @@
|
|
|
189
193
|
`,Q=`
|
|
190
194
|
query ComradecirclePoll($id: ID!) {
|
|
191
195
|
comPoll(id: $id) {
|
|
192
|
-
id circleId question status isAnonymous allowMultiple closesAt
|
|
193
|
-
|
|
194
|
-
options { id pollId label position voteCount }
|
|
196
|
+
id circleId question status isAnonymous allowMultiple closesAt createdAt updatedAt
|
|
197
|
+
workspaceId
|
|
198
|
+
options { items { id pollId label position voteCount } pageInfo { cursor hasMore } }
|
|
195
199
|
}
|
|
196
200
|
}
|
|
197
201
|
`,X=`
|
|
198
202
|
query ComradecircleListPolls($circleId: ID!, $status: ComPollStatus) {
|
|
199
203
|
comListPolls(circleId: $circleId, status: $status) {
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
items {
|
|
205
|
+
id circleId question status isAnonymous allowMultiple closesAt createdAt
|
|
206
|
+
options { items { id label position voteCount } pageInfo { cursor hasMore } }
|
|
207
|
+
}
|
|
208
|
+
pageInfo { cursor hasMore }
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
211
|
`,Z=`
|
|
205
212
|
mutation ComradecircleCreatePoll($input: ComCreatePollInput!) {
|
|
206
213
|
comCreatePoll(input: $input) {
|
|
207
214
|
id circleId question status isAnonymous allowMultiple closesAt createdAt
|
|
208
|
-
options { id label position voteCount }
|
|
215
|
+
options { items { id label position voteCount } pageInfo { cursor hasMore } }
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
218
|
`,tt=`
|
|
@@ -255,7 +262,8 @@
|
|
|
255
262
|
`,st=`
|
|
256
263
|
query ComradecircleMyFollows($targetType: ComFollowTargetType) {
|
|
257
264
|
comMyFollows(targetType: $targetType) {
|
|
258
|
-
id followerId targetId targetType muted createdAt updatedAt workspaceId
|
|
265
|
+
items { id followerId targetId targetType muted createdAt updatedAt workspaceId }
|
|
266
|
+
pageInfo { cursor hasMore }
|
|
259
267
|
}
|
|
260
268
|
}
|
|
261
269
|
`,at=`
|
|
@@ -274,8 +282,8 @@
|
|
|
274
282
|
id followerId targetId targetType muted updatedAt
|
|
275
283
|
}
|
|
276
284
|
}
|
|
277
|
-
`,
|
|
285
|
+
`,pt=`
|
|
278
286
|
query ComradecircleHealth {
|
|
279
287
|
comHealth
|
|
280
288
|
}
|
|
281
|
-
`;function u(s){let n=Number.parseInt(s,10);if(Number.isNaN(n))throw new l(`Expected an integer but got "${s}"`);return n}function m(s){return s.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function pt(s){let n=s.command("circles").description("Comradecircle circles");n.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,visibility:t.visibility?t.visibility.toUpperCase():void 0});i(t,e.comListCircles.items,{headers:["ID","Name","Slug","Status","Visibility","Members"],rows:e.comListCircles.items.map(o=>[d(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get a circle by id").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(A,{id:t});if(!o.comCircle)throw new l(`Circle ${t} not found`);i(e,o.comCircle);}catch(o){r(o);}}),n.command("create").description("Create a circle").requiredOption("--name <name>","Circle name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET","PUBLIC").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.description&&(e.description=t.description),t.topic&&(e.topic=t.topic),t.tags&&(e.tags=m(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(k,{input:e});c(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){r(e);}}),n.command("update").description("Update a circle").argument("<id>","Circle ID").option("--name <name>","Circle name").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.topic!==void 0&&(o.topic=e.topic),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.tags&&(o.tags=m(e.tags)),e.avatarFileId&&(o.avatarFileId=e.avatarFileId),!Object.keys(o).length)throw new l("No updates specified");let f=await a(O,{id:t,input:o});c("Circle updated"),i(e,f.comUpdateCircle);}catch(o){r(o);}}),n.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(P,{id:t});c(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){r(o);}});}function ut(s){let n=s.command("channels").description("Comradecircle channels");n.command("list").description("List channels in a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(L,{circleId:t.circle});i(t,e.comListChannels,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.map(o=>[d(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){r(e);}}),n.command("create").description("Create a channel").requiredOption("--circle <id>","Circle ID").requiredOption("--name <name>","Channel name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT","TEXT").option("--visibility <v>","CIRCLE|PRIVATE","CIRCLE").option("--position <n>","Position",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,name:t.name,slug:t.slug,type:(t.type??"TEXT").toUpperCase(),visibility:(t.visibility??"CIRCLE").toUpperCase()};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let o=await a(R,{input:e});c(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){r(e);}}),n.command("update").description("Update a channel").argument("<id>","Channel ID").option("--name <name>","Channel name").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT").option("--visibility <v>","CIRCLE|PRIVATE").option("--position <n>","Position",u).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.type&&(o.type=e.type.toUpperCase()),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o.position=e.position),e.archived!==void 0&&(o.isArchived=e.archived),!Object.keys(o).length)throw new l("No updates specified");let f=await a(S,{id:t,input:o});c("Channel updated"),i(e,f.comUpdateChannel);}catch(o){r(o);}});}function mt(s){let n=s.command("memberships").description("Comradecircle circle memberships");n.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListMemberships.items,{headers:["ID","Circle","Member","Role","Status"],rows:e.comListMemberships.items.map(o=>[d(o.id,12),d(o.circleId,12),d(o.memberId,12),o.role,o.status])});}catch(e){r(e);}}),n.command("join").description("Join a circle as the calling member").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(D,{circleId:t.circle});c(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){r(e);}}),n.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(N,{circleId:t.circle});c(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){r(e);}}),n.command("set-role").description("Set a member role").argument("<membershipId>","Membership ID").requiredOption("--role <r>","OWNER|ADMIN|MODERATOR|MEMBER").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(U,{membershipId:t,role:e.role.toUpperCase()});c(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){r(o);}});}function ft(s){let n=s.command("posts").description("Comradecircle posts");n.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{channelId:t.channel,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPosts.items,{headers:["ID","Channel","Author","Status","Pinned","Comments","Reactions"],rows:e.comListPosts.items.map(o=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get a post by id").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(M,{id:t});if(!o.comPost)throw new l(`Post ${t} not found`);i(e,o.comPost);}catch(o){r(o);}}),n.command("create").description("Create a post").requiredOption("--channel <id>","Channel ID").requiredOption("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED","PUBLISHED").option("--tags <csv>","Comma-separated tags").option("--attachments <csv>","Comma-separated attachment file IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={channelId:t.channel,body:t.body,status:(t.status??"PUBLISHED").toUpperCase()};t.tags&&(e.tags=m(t.tags)),t.attachments&&(e.attachmentFileIds=m(t.attachments));let o=await a(q,{input:e});c(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){r(e);}}),n.command("update").description("Update a post").argument("<id>","Post ID").option("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--pinned <bool>","true|false",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.body&&(o.body=e.body),e.status&&(o.status=e.status.toUpperCase()),e.pinned!==void 0&&(o.isPinned=e.pinned),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new l("No updates specified");let f=await a(F,{id:t,input:o});c("Post updated"),i(e,f.comUpdatePost);}catch(o){r(o);}}),n.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(V,{id:t});c(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){r(o);}}),n.command("react").description("Toggle a reaction on a post").argument("<postId>","Post ID").requiredOption("--type <t>","LIKE|LOVE|CELEBRATE|INSIGHTFUL|SUPPORT|LAUGH").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(H,{postId:t,type:e.type.toUpperCase()});c(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){r(o);}});}function gt(s){let n=s.command("comments").description("Comradecircle post comments");n.command("list").description("List comments on a post").requiredOption("--post <id>","Post ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(W,{postId:t.post});i(t,e.comListComments,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.map(o=>[d(o.id,12),d(o.authorId,12),d(o.body,40),o.parentId?d(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){r(e);}}),n.command("add").description("Add a comment to a post").requiredOption("--post <id>","Post ID").requiredOption("--body <text>","Comment body").option("--parent <id>","Parent comment ID (for replies)").option("-f, --format <format>","Output format").action(async t=>{try{let e={postId:t.post,body:t.body};t.parent&&(e.parentId=t.parent);let o=await a(j,{input:e});c(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){r(e);}});}function Ct(s){let n=s.command("events").description("Comradecircle events");n.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListEvents.items,{headers:["ID","Title","Mode","Status","Starts","RSVPs"],rows:e.comListEvents.items.map(o=>[d(o.id,12),o.title,o.mode,o.status,E(o.startsAt),String(o.rsvpCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(G,{id:t});if(!o.comEvent)throw new l(`Event ${t} not found`);i(e,o.comEvent);}catch(o){r(o);}}),n.command("create").description("Create an event").requiredOption("--circle <id>","Circle ID").requiredOption("--title <t>","Event title").requiredOption("--starts-at <iso>","Start time (ISO date)").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID","ONLINE").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",u).option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,title:t.title,startsAt:t.startsAt,mode:(t.mode??"ONLINE").toUpperCase()};t.description&&(e.description=t.description),t.location&&(e.location=t.location),t.joinUrl&&(e.joinUrl=t.joinUrl),t.capacity!==void 0&&(e.capacity=t.capacity),t.endsAt&&(e.endsAt=t.endsAt),t.tags&&(e.tags=m(t.tags));let o=await a(J,{input:e});c(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){r(e);}}),n.command("update").description("Update an event").argument("<id>","Event ID").option("--title <t>","Event title").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",u).option("--starts-at <iso>","Start time (ISO date)").option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.title&&(o.title=e.title),e.description!==void 0&&(o.description=e.description),e.mode&&(o.mode=e.mode.toUpperCase()),e.location!==void 0&&(o.location=e.location),e.joinUrl!==void 0&&(o.joinUrl=e.joinUrl),e.capacity!==void 0&&(o.capacity=e.capacity),e.startsAt&&(o.startsAt=e.startsAt),e.endsAt&&(o.endsAt=e.endsAt),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new l("No updates specified");let f=await a(z,{id:t,input:o});c("Event updated"),i(e,f.comUpdateEvent);}catch(o){r(o);}}),n.command("transition").description("Advance an event through its lifecycle").argument("<id>","Event ID").requiredOption("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(Y,{id:t,status:e.status.toUpperCase()});c(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){r(o);}}),n.command("rsvp").description("RSVP to an event as the calling member").argument("<eventId>","Event ID").requiredOption("--status <s>","GOING|INTERESTED|NOT_GOING|WAITLISTED").option("--note <s>","RSVP note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(K,{eventId:t,status:e.status.toUpperCase(),note:e.note});c(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){r(o);}});}function It(s){let n=s.command("polls").description("Comradecircle polls");n.command("list").description("List polls in a circle").requiredOption("--circle <id>","Circle ID").option("--status <s>","OPEN|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(X,{circleId:t.circle,status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPolls,{headers:["ID","Question","Status","Anonymous","Multiple"],rows:e.comListPolls.map(o=>[d(o.id,12),d(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a poll by id").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(Q,{id:t});if(!o.comPoll)throw new l(`Poll ${t} not found`);i(e,o.comPoll);}catch(o){r(o);}}),n.command("create").description("Create a poll").requiredOption("--circle <id>","Circle ID").requiredOption("--question <q>","Poll question").requiredOption("--options <csv>","Comma-separated option labels").option("--allow-multiple","Allow multiple selections").option("--anonymous","Anonymous voting").option("--closes-at <iso>","Close time (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e=m(t.options);if(e.length===0)throw new l("--options must contain at least one option");let o={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o.closesAt=t.closesAt);let f=await a(Z,{input:o});c(`Poll created: ${f.comCreatePoll.id}`),i(t,f.comCreatePoll);}catch(e){r(e);}}),n.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(tt,{id:t});c(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){r(o);}}),n.command("vote").description("Cast a vote for a poll option").argument("<pollId>","Poll ID").requiredOption("--option <id>","Option ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(et,{pollId:t,optionId:e.option});c(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){r(o);}});}function ht(s){let n=s.command("profiles").description("Comradecircle member profiles");n.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{discoverable:t.discoverable,pagination:{limit:t.limit,offset:t.offset}});i(t,e.comListProfiles.items,{headers:["ID","Member","Display Name","Headline","Presence","Discoverable"],rows:e.comListProfiles.items.map(o=>[d(o.id,12),d(o.memberId,12),o.displayName,d(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a member profile by member id").argument("<memberId>","Member ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(ot,{memberId:t});if(!o.comProfile)throw new l(`Profile for member ${t} not found`);i(e,o.comProfile);}catch(o){r(o);}}),n.command("upsert").description("Create or update the calling member's profile").requiredOption("--display-name <name>","Display name").option("--headline <s>","Headline").option("--bio <s>","Bio").option("--presence <p>","ONLINE|AWAY|BUSY|OFFLINE").option("--discoverable <bool>","true|false",t=>t==="true").option("--interests <csv>","Comma-separated interests").option("--skills <csv>","Comma-separated skills").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={displayName:t.displayName};t.headline&&(e.headline=t.headline),t.bio&&(e.bio=t.bio),t.presence&&(e.presence=t.presence.toUpperCase()),t.discoverable!==void 0&&(e.discoverable=t.discoverable),t.interests&&(e.interests=m(t.interests)),t.skills&&(e.skills=m(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(rt,{input:e});c(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){r(e);}});}function yt(s){let n=s.command("feed").description("Comradecircle home feed & follows");n.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(it,{pagination:{limit:t.limit,offset:t.offset}});i(t,e.comMyFeed.items,{headers:["ID","Channel","Author","Status","Comments","Reactions"],rows:e.comMyFeed.items.map(o=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.command("follows").description("List the calling member's follows").option("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(st,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.map(o=>[d(o.id,12),d(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){r(e);}}),n.command("follow").description("Follow a target (circle, channel, or member)").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await a(at,{input:e});c(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){r(e);}}),n.command("unfollow").description("Unfollow a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await a(ct,{input:e});c(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){r(e);}}),n.command("mute").description("Mute or unmute a follow").argument("<id>","Follow ID").requiredOption("--muted <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(dt,{id:t,muted:e.muted});c(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){r(o);}});}function wt(s){s.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(lt);c(t.comHealth),i(n,{health:t.comHealth});}catch(t){r(t);}});}var $t={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(s,n){T(n);let t=s.command("comradecircle").description("Comradecircle community circles");pt(t),ut(t),mt(t),ft(t),gt(t),Ct(t),It(t),ht(t),yt(t),wt(t);}},Lo=$t;module.exports=Lo;
|
|
289
|
+
`;function u(s){let n=Number.parseInt(s,10);if(Number.isNaN(n))throw new p(`Expected an integer but got "${s}"`);return n}function m(s){return s.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function lt(s){let n=s.command("circles").description("Comradecircle circles");n.command("list").description("List circles").option("--status <s>","ACTIVE|ARCHIVED|SUSPENDED").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,visibility:t.visibility?t.visibility.toUpperCase():void 0});i(t,e.comListCircles.items,{headers:["ID","Name","Slug","Status","Visibility","Members"],rows:e.comListCircles.items.map(o=>[d(o.id,12),o.name,o.slug,o.status,o.visibility,String(o.memberCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get a circle by id").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(A,{id:t});if(!o.comCircle)throw new p(`Circle ${t} not found`);i(e,o.comCircle);}catch(o){r(o);}}),n.command("create").description("Create a circle").requiredOption("--name <name>","Circle name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET","PUBLIC").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.description&&(e.description=t.description),t.topic&&(e.topic=t.topic),t.tags&&(e.tags=m(t.tags)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(k,{input:e});c(`Circle created: ${o.comCreateCircle.name}`),i(t,o.comCreateCircle);}catch(e){r(e);}}),n.command("update").description("Update a circle").argument("<id>","Circle ID").option("--name <name>","Circle name").option("--description <s>","Description").option("--topic <s>","Topic").option("--visibility <v>","PUBLIC|PRIVATE|SECRET").option("--tags <csv>","Comma-separated tags").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.topic!==void 0&&(o.topic=e.topic),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.tags&&(o.tags=m(e.tags)),e.avatarFileId&&(o.avatarFileId=e.avatarFileId),!Object.keys(o).length)throw new p("No updates specified");let f=await a(O,{id:t,input:o});c("Circle updated"),i(e,f.comUpdateCircle);}catch(o){r(o);}}),n.command("archive").description("Archive a circle").argument("<id>","Circle ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(P,{id:t});c(`Circle archived: ${o.comArchiveCircle}`),i(e,{archived:o.comArchiveCircle});}catch(o){r(o);}});}function ut(s){let n=s.command("channels").description("Comradecircle channels");n.command("list").description("List channels in a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(L,{circleId:t.circle});i(t,e.comListChannels.items,{headers:["ID","Name","Slug","Type","Visibility","Position"],rows:e.comListChannels.items.map(o=>[d(o.id,12),o.name,o.slug,o.type,o.visibility,String(o.position??0)])});}catch(e){r(e);}}),n.command("create").description("Create a channel").requiredOption("--circle <id>","Circle ID").requiredOption("--name <name>","Channel name").requiredOption("--slug <slug>","URL slug").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT","TEXT").option("--visibility <v>","CIRCLE|PRIVATE","CIRCLE").option("--position <n>","Position",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,name:t.name,slug:t.slug,type:(t.type??"TEXT").toUpperCase(),visibility:(t.visibility??"CIRCLE").toUpperCase()};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let o=await a(R,{input:e});c(`Channel created: ${o.comCreateChannel.name}`),i(t,o.comCreateChannel);}catch(e){r(e);}}),n.command("update").description("Update a channel").argument("<id>","Channel ID").option("--name <name>","Channel name").option("--description <s>","Description").option("--type <t>","TEXT|VOICE|FORUM|ANNOUNCEMENT").option("--visibility <v>","CIRCLE|PRIVATE").option("--position <n>","Position",u).option("--archived <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.type&&(o.type=e.type.toUpperCase()),e.visibility&&(o.visibility=e.visibility.toUpperCase()),e.position!==void 0&&(o.position=e.position),e.archived!==void 0&&(o.isArchived=e.archived),!Object.keys(o).length)throw new p("No updates specified");let f=await a(S,{id:t,input:o});c("Channel updated"),i(e,f.comUpdateChannel);}catch(o){r(o);}});}function mt(s){let n=s.command("memberships").description("Comradecircle circle memberships");n.command("list").description("List memberships").option("--circle <id>","Filter by circle ID").option("--status <s>","ACTIVE|PENDING|LEFT|BANNED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListMemberships.items,{headers:["ID","Circle","Member","Role","Status"],rows:e.comListMemberships.items.map(o=>[d(o.id,12),d(o.circleId,12),d(o.memberId,12),o.role,o.status])});}catch(e){r(e);}}),n.command("join").description("Join a circle as the calling member").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(D,{circleId:t.circle});c(`Joined circle ${e.comJoinCircle.circleId}`),i(t,e.comJoinCircle);}catch(e){r(e);}}),n.command("leave").description("Leave a circle").requiredOption("--circle <id>","Circle ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(N,{circleId:t.circle});c(`Left circle: ${e.comLeaveCircle}`),i(t,{left:e.comLeaveCircle});}catch(e){r(e);}}),n.command("set-role").description("Set a member role").argument("<membershipId>","Membership ID").requiredOption("--role <r>","OWNER|ADMIN|MODERATOR|MEMBER").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(M,{membershipId:t,role:e.role.toUpperCase()});c(`Role set to ${o.comSetMemberRole.role}`),i(e,o.comSetMemberRole);}catch(o){r(o);}});}function ft(s){let n=s.command("posts").description("Comradecircle posts");n.command("list").description("List posts").option("--channel <id>","Filter by channel ID").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{channelId:t.channel,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPosts.items,{headers:["ID","Channel","Author","Status","Pinned","Comments","Reactions"],rows:e.comListPosts.items.map(o=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,o.isPinned?"yes":"no",String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get a post by id").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(U,{id:t});if(!o.comPost)throw new p(`Post ${t} not found`);i(e,o.comPost);}catch(o){r(o);}}),n.command("create").description("Create a post").requiredOption("--channel <id>","Channel ID").requiredOption("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED","PUBLISHED").option("--tags <csv>","Comma-separated tags").option("--attachments <csv>","Comma-separated attachment file IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={channelId:t.channel,body:t.body,status:(t.status??"PUBLISHED").toUpperCase()};t.tags&&(e.tags=m(t.tags)),t.attachments&&(e.attachmentFileIds=m(t.attachments));let o=await a(q,{input:e});c(`Post created: ${o.comCreatePost.id}`),i(t,o.comCreatePost);}catch(e){r(e);}}),n.command("update").description("Update a post").argument("<id>","Post ID").option("--body <text>","Post body").option("--status <s>","DRAFT|PUBLISHED|HIDDEN|REMOVED").option("--pinned <bool>","true|false",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.body&&(o.body=e.body),e.status&&(o.status=e.status.toUpperCase()),e.pinned!==void 0&&(o.isPinned=e.pinned),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let f=await a(F,{id:t,input:o});c("Post updated"),i(e,f.comUpdatePost);}catch(o){r(o);}}),n.command("remove").description("Remove a post").argument("<id>","Post ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(V,{id:t});c(`Post removed: ${o.comRemovePost}`),i(e,{removed:o.comRemovePost});}catch(o){r(o);}}),n.command("react").description("Toggle a reaction on a post").argument("<postId>","Post ID").requiredOption("--type <t>","LIKE|LOVE|CELEBRATE|INSIGHTFUL|SUPPORT|LAUGH").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(H,{postId:t,type:e.type.toUpperCase()});c(`Reaction toggled on post ${o.comReactToPost.id}`),i(e,o.comReactToPost);}catch(o){r(o);}});}function gt(s){let n=s.command("comments").description("Comradecircle post comments");n.command("list").description("List comments on a post").requiredOption("--post <id>","Post ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(W,{postId:t.post});i(t,e.comListComments.items,{headers:["ID","Author","Body","Parent","Hidden"],rows:e.comListComments.items.map(o=>[d(o.id,12),d(o.authorId,12),d(o.body,40),o.parentId?d(o.parentId,12):"-",o.isHidden?"yes":"no"])});}catch(e){r(e);}}),n.command("add").description("Add a comment to a post").requiredOption("--post <id>","Post ID").requiredOption("--body <text>","Comment body").option("--parent <id>","Parent comment ID (for replies)").option("-f, --format <format>","Output format").action(async t=>{try{let e={postId:t.post,body:t.body};t.parent&&(e.parentId=t.parent);let o=await a(j,{input:e});c(`Comment added: ${o.comAddComment.id}`),i(t,o.comAddComment);}catch(e){r(e);}});}function Ct(s){let n=s.command("events").description("Comradecircle events");n.command("list").description("List events").option("--circle <id>","Filter by circle ID").option("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{circleId:t.circle,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.comListEvents.items,{headers:["ID","Title","Mode","Status","Starts","RSVPs"],rows:e.comListEvents.items.map(o=>[d(o.id,12),o.title,o.mode,o.status,E(o.startsAt),String(o.rsvpCount??0)])});}catch(e){r(e);}}),n.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(G,{id:t});if(!o.comEvent)throw new p(`Event ${t} not found`);i(e,o.comEvent);}catch(o){r(o);}}),n.command("create").description("Create an event").requiredOption("--circle <id>","Circle ID").requiredOption("--title <t>","Event title").requiredOption("--starts-at <iso>","Start time (ISO date)").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID","ONLINE").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",u).option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={circleId:t.circle,title:t.title,startsAt:t.startsAt,mode:(t.mode??"ONLINE").toUpperCase()};t.description&&(e.description=t.description),t.location&&(e.location=t.location),t.joinUrl&&(e.joinUrl=t.joinUrl),t.capacity!==void 0&&(e.capacity=t.capacity),t.endsAt&&(e.endsAt=t.endsAt),t.tags&&(e.tags=m(t.tags));let o=await a(J,{input:e});c(`Event created: ${o.comCreateEvent.title}`),i(t,o.comCreateEvent);}catch(e){r(e);}}),n.command("update").description("Update an event").argument("<id>","Event ID").option("--title <t>","Event title").option("--description <s>","Description").option("--mode <m>","ONLINE|IN_PERSON|HYBRID").option("--location <s>","Location").option("--join-url <url>","Join URL").option("--capacity <n>","Capacity",u).option("--starts-at <iso>","Start time (ISO date)").option("--ends-at <iso>","End time (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.title&&(o.title=e.title),e.description!==void 0&&(o.description=e.description),e.mode&&(o.mode=e.mode.toUpperCase()),e.location!==void 0&&(o.location=e.location),e.joinUrl!==void 0&&(o.joinUrl=e.joinUrl),e.capacity!==void 0&&(o.capacity=e.capacity),e.startsAt&&(o.startsAt=e.startsAt),e.endsAt&&(o.endsAt=e.endsAt),e.tags&&(o.tags=m(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let f=await a(z,{id:t,input:o});c("Event updated"),i(e,f.comUpdateEvent);}catch(o){r(o);}}),n.command("transition").description("Advance an event through its lifecycle").argument("<id>","Event ID").requiredOption("--status <s>","SCHEDULED|LIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(Y,{id:t,status:e.status.toUpperCase()});c(`Event transitioned to ${o.comTransitionEvent.status}`),i(e,o.comTransitionEvent);}catch(o){r(o);}}),n.command("rsvp").description("RSVP to an event as the calling member").argument("<eventId>","Event ID").requiredOption("--status <s>","GOING|INTERESTED|NOT_GOING|WAITLISTED").option("--note <s>","RSVP note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(K,{eventId:t,status:e.status.toUpperCase(),note:e.note});c(`RSVP saved: ${o.comRsvpEvent.status}`),i(e,o.comRsvpEvent);}catch(o){r(o);}});}function It(s){let n=s.command("polls").description("Comradecircle polls");n.command("list").description("List polls in a circle").requiredOption("--circle <id>","Circle ID").option("--status <s>","OPEN|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(X,{circleId:t.circle,status:t.status?t.status.toUpperCase():void 0});i(t,e.comListPolls.items,{headers:["ID","Question","Status","Anonymous","Multiple"],rows:e.comListPolls.items.map(o=>[d(o.id,12),d(o.question,40),o.status,o.isAnonymous?"yes":"no",o.allowMultiple?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a poll by id").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(Q,{id:t});if(!o.comPoll)throw new p(`Poll ${t} not found`);i(e,o.comPoll);}catch(o){r(o);}}),n.command("create").description("Create a poll").requiredOption("--circle <id>","Circle ID").requiredOption("--question <q>","Poll question").requiredOption("--options <csv>","Comma-separated option labels").option("--allow-multiple","Allow multiple selections").option("--anonymous","Anonymous voting").option("--closes-at <iso>","Close time (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e=m(t.options);if(e.length===0)throw new p("--options must contain at least one option");let o={circleId:t.circle,question:t.question,options:e,allowMultiple:t.allowMultiple??!1,isAnonymous:t.anonymous??!1};t.closesAt&&(o.closesAt=t.closesAt);let f=await a(Z,{input:o});c(`Poll created: ${f.comCreatePoll.id}`),i(t,f.comCreatePoll);}catch(e){r(e);}}),n.command("close").description("Close a poll").argument("<id>","Poll ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(tt,{id:t});c(`Poll closed: ${o.comClosePoll.status}`),i(e,o.comClosePoll);}catch(o){r(o);}}),n.command("vote").description("Cast a vote for a poll option").argument("<pollId>","Poll ID").requiredOption("--option <id>","Option ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(et,{pollId:t,optionId:e.option});c(`Voted: ${o.comVotePoll.label} (${o.comVotePoll.voteCount})`),i(e,o.comVotePoll);}catch(o){r(o);}});}function ht(s){let n=s.command("profiles").description("Comradecircle member profiles");n.command("list").description("List member profiles").option("--discoverable <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{discoverable:t.discoverable,pagination:{limit:t.limit,offset:t.offset}});i(t,e.comListProfiles.items,{headers:["ID","Member","Display Name","Headline","Presence","Discoverable"],rows:e.comListProfiles.items.map(o=>[d(o.id,12),d(o.memberId,12),o.displayName,d(o.headline??"-",30),o.presence??"-",o.discoverable?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a member profile by member id").argument("<memberId>","Member ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(ot,{memberId:t});if(!o.comProfile)throw new p(`Profile for member ${t} not found`);i(e,o.comProfile);}catch(o){r(o);}}),n.command("upsert").description("Create or update the calling member's profile").requiredOption("--display-name <name>","Display name").option("--headline <s>","Headline").option("--bio <s>","Bio").option("--presence <p>","ONLINE|AWAY|BUSY|OFFLINE").option("--discoverable <bool>","true|false",t=>t==="true").option("--interests <csv>","Comma-separated interests").option("--skills <csv>","Comma-separated skills").option("--avatar-file-id <id>","Avatar file ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={displayName:t.displayName};t.headline&&(e.headline=t.headline),t.bio&&(e.bio=t.bio),t.presence&&(e.presence=t.presence.toUpperCase()),t.discoverable!==void 0&&(e.discoverable=t.discoverable),t.interests&&(e.interests=m(t.interests)),t.skills&&(e.skills=m(t.skills)),t.avatarFileId&&(e.avatarFileId=t.avatarFileId);let o=await a(rt,{input:e});c(`Profile saved: ${o.comUpsertProfile.displayName}`),i(t,o.comUpsertProfile);}catch(e){r(e);}});}function yt(s){let n=s.command("feed").description("Comradecircle home feed & follows");n.command("home").description("The calling member's unified home feed").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(it,{pagination:{limit:t.limit,offset:t.offset}});i(t,e.comMyFeed.items,{headers:["ID","Channel","Author","Status","Comments","Reactions"],rows:e.comMyFeed.items.map(o=>[d(o.id,12),d(o.channelId,12),d(o.authorId,12),o.status,String(o.commentCount??0),String(o.reactionCount??0)])});}catch(e){r(e);}}),n.command("follows").description("List the calling member's follows").option("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(st,{targetType:t.targetType?t.targetType.toUpperCase():void 0});i(t,e.comMyFollows.items,{headers:["ID","Target","Target Type","Muted"],rows:e.comMyFollows.items.map(o=>[d(o.id,12),d(o.targetId,12),o.targetType,o.muted?"yes":"no"])});}catch(e){r(e);}}),n.command("follow").description("Follow a target (circle, channel, or member)").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await a(at,{input:e});c(`Following ${o.comFollow.targetType} ${o.comFollow.targetId}`),i(t,o.comFollow);}catch(e){r(e);}}),n.command("unfollow").description("Unfollow a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","CIRCLE|CHANNEL|MEMBER").option("-f, --format <format>","Output format").action(async t=>{try{let e={targetId:t.targetId,targetType:t.targetType.toUpperCase()},o=await a(ct,{input:e});c(`Unfollowed: ${o.comUnfollow}`),i(t,{unfollowed:o.comUnfollow});}catch(e){r(e);}}),n.command("mute").description("Mute or unmute a follow").argument("<id>","Follow ID").requiredOption("--muted <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await a(dt,{id:t,muted:e.muted});c(`Follow ${o.comMuteFollow.muted?"muted":"unmuted"}`),i(e,o.comMuteFollow);}catch(o){r(o);}});}function wt(s){s.command("health").description("Comradecircle service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await w(pt);c(t.comHealth),i(n,{health:t.comHealth});}catch(t){r(t);}});}var $t={id:"comradecircle",version:"1.0.0",displayName:"Comradecircle",dependsOn:["auth","workspaces"],register(s,n){T(n);let t=s.command("comradecircle").description("Comradecircle community circles");lt(t),ut(t),mt(t),ft(t),gt(t),Ct(t),It(t),ht(t),yt(t),wt(t);}},Lo=$t;module.exports=Lo;
|