recess-cli 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/help.js ADDED
@@ -0,0 +1,415 @@
1
+ export const HELP = `recess — safe Recess administration and family AI tools
2
+
3
+ Usage:
4
+ recess [--json] --version
5
+ recess [--json] agent-context
6
+ recess [--json] setup [--skill-only]
7
+ recess [--json] doctor
8
+ recess [--json] profile list
9
+ recess [--json] profile show <name>
10
+ recess [--json] profile save <name> [--api-origin URL] [--web-origin URL]
11
+ [--oauth-client-id ID]
12
+ recess [--json] profile use <name>
13
+ recess [--json] profile delete <name>
14
+ recess [--json] jobs list [--limit 20]
15
+ recess [--json] jobs get <operation-key>
16
+ recess [--json] jobs prune [--older-than-days 30]
17
+ recess [--json] feedback list [--limit 20]
18
+ recess [--json] feedback submit <text> [--confirm]
19
+ recess [--json] auth login [--client-id ID] [--callback-port 8765]
20
+ recess [--json] auth request [--label TEXT]
21
+ recess [--json] auth poll [--timeout 300]
22
+ recess [--json] auth status|logout
23
+ recess [--json] users search <name-or-id> [--limit 10]
24
+ recess [--json] users get <user-id>
25
+ recess [--json] users tier list-tiers
26
+ recess [--json] users tier get <kid-id>
27
+ recess [--json] users tier preview <kid-id> --tier social|academics|lite|complete|platform
28
+ [--slots N]
29
+ recess [--json] users tier set <kid-id> --tier social|academics|lite|complete|platform
30
+ [--slots N] --expected-updated-at <iso> [--allow-strand] [--confirm]
31
+ recess [--json] guides create --email <email> --first-name TEXT
32
+ [--last-name TEXT] [--no-invite] [--confirm]
33
+ recess [--json] guides invite --user <user-id> [--confirm]
34
+ recess [--json] guardians invite --family <family-id> --email <email>
35
+ --first-name TEXT [--last-name TEXT] [--no-invite] [--confirm]
36
+ recess [--json] students upload-map-scores --student <kid-id>
37
+ --file </path/to/map-report.pdf> [--confirm]
38
+ recess [--json] students list
39
+ recess [--json] students today --student <kid-id> [--date YYYY-MM-DD]
40
+ recess [--json] students schedule --student <kid-id> [--days 14]
41
+ recess [--json] students xp-history --student <kid-id>
42
+ [--range week|month|quarter|year]
43
+ recess [--json] enrollments list --user <user-id>
44
+ recess [--json] subscriptions list --family <family-id> [--kid <kid-id>]
45
+ recess [--json] invoices list --subscription <subscription-id>
46
+ recess [--json] billing pause --subscription <id> [--until ISO_DATE] [--confirm]
47
+ recess [--json] billing resume --subscription <id> [--confirm]
48
+ recess [--json] invoices refund --invoice <id> --line-item <id>
49
+ --method refund|credit|tokens [--full | --amount-cents N]
50
+ [--who-pays guide|recess] [--reason TEXT] [--confirm]
51
+ recess [--json] applications list [--status SUBMITTED|CLAIMED|ENROLLED|CLOSED]
52
+ [--status-scope active|closed] [--disposition READY_TO_ENROLL|TRIAL|PENDING_FUNDING|NO]
53
+ [--dispositioned true|false] [--quality QUALIFIED|NEEDS_NURTURE|UNKNOWN]
54
+ [--source PUBLIC|STAFF] [--limit 100] [--cursor <id>]
55
+ recess [--json] applications get <application-id>
56
+ recess [--json] applications quotes <application-id>
57
+ recess [--json] applications meetings <application-id>
58
+ recess [--json] applications call-notes <application-id>
59
+ recess [--json] applications create --data-file <application.json> [--confirm]
60
+ recess [--json] applications disposition <application-id>
61
+ --data-file <disposition.json> [--confirm]
62
+ recess [--json] applications qualify <application-id>
63
+ --quality QUALIFIED|NEEDS_NURTURE|UNKNOWN --reason TEXT [--confirm]
64
+ recess [--json] applications update-contact <application-id>
65
+ --data-file <contact.json> [--confirm]
66
+ recess [--json] applications claim-email|claim-link <application-id>
67
+ --intent-key <uuid> [--supersede] [--confirm]
68
+ recess [--json] applications revoke-claim <application-id> [--confirm]
69
+ recess [--json] applications link-family <application-id> --family <family-id> [--confirm]
70
+ recess [--json] applications close <application-id> --reason TEXT [--confirm]
71
+ recess [--json] applications add-call-note <application-id>
72
+ --data-file <call-note.json> [--confirm]
73
+ recess [--json] applications edit-call-note <application-id>
74
+ --note-id <note-id> --data-file <comment.json> [--confirm]
75
+ recess [--json] applications enroll <application-id> --quote <quote-id>
76
+ --school <institution-slug> --kid "<quoteLineId>:<firstName>[:<age>]" (repeat per line)
77
+ [--family <family-id>] [--unassign <kid-id>] (repeat) [--note TEXT] [--confirm]
78
+ recess [--json] quotes get <quote-id>
79
+ recess [--json] quotes preview --data-file <quote.json>
80
+ recess [--json] quotes create --data-file <quote.json> [--confirm]
81
+ recess [--json] quotes update <quote-id> --data-file <quote.json> [--confirm]
82
+ recess [--json] quotes send <quote-id> [--expected-revision <sha>] [--confirm]
83
+ recess [--json] quotes accept <quote-id> [--confirm]
84
+ recess [--json] quotes decline <quote-id> [--note TEXT] [--confirm]
85
+ recess [--json] cohorts search <query>
86
+ recess [--json] enrollments create --user <kid-id> --cohort <id>
87
+ [--first-charge-at ISO_DATETIME] [--send-email] [--force]
88
+ [--confirm --approval-token TOKEN]
89
+ recess [--json] enrollments register-cohort --enrollment <id>
90
+ --user <id> --cohort <id> [--confirm]
91
+ recess [--json] enrollments unregister-cohort --user <id>
92
+ --cohort <id> [--confirm]
93
+ recess [--json] enrollments get-for-subscription --subscription <id>
94
+ recess [--json] billing extend-trial --subscription <id>
95
+ --trial-end ISO_DATE [--confirm]
96
+ recess [--json] billing cancel-subscription --subscription <id>
97
+ [--immediate] [--reason TEXT] [--restore] [--confirm]
98
+ recess [--json] payout payruns list [--status A,B] [--schedule <id>]
99
+ recess [--json] payout recipients list [--search <name>] [--user <id>] [--id <id>]
100
+ [--limit 20] [--cursor <id>]
101
+ recess [--json] payout invoices list [--payrun <id>] [--recipient <account-id>]
102
+ [--user <id>] [--status A,B] (at least one filter)
103
+ recess [--json] payout invoices get <invoice-id>
104
+ recess [--json] payout invoices set-status <invoice-id>
105
+ --status IN_REVIEW|OPEN|PAID|CANCELED [--send-email] [--confirm]
106
+ recess [--json] payout items add --invoice <id> --amount-cents N
107
+ --description TEXT [--date YYYY-MM-DD] [--confirm]
108
+ recess [--json] payout items edit <item-id> [--amount-cents N]
109
+ [--description TEXT] [--date YYYY-MM-DD] [--confirm]
110
+ recess [--json] payout items delete <item-id> [--confirm]
111
+ recess [--json] cohorts get <cohort-id> [--events-tab ACTIVE|ENDED|CANCELED|ARCHIVED]
112
+ recess [--json] cohorts parent-emails <cohort-id>
113
+ recess [--json] cohorts end <cohort-id> [--cancel-subscriptions] [--confirm]
114
+ recess [--json] cohorts pause-billing <cohort-id> --weeks 1..6 [--confirm]
115
+ recess [--json] cohorts resume-billing <cohort-id> [--confirm]
116
+ recess [--json] cohorts email <cohort-id> --target ALL_PARENTS|ALL_PARENTS_GUIDES
117
+ --content TEXT [--confirm]
118
+ recess [--json] events get <event-id>
119
+ recess [--json] events take-attendance <event-id> --attended <id,id,...>
120
+ [--absent <id,id,...>] [--excused <id,id,...>] [--confirm]
121
+ recess [--json] events cancel <event-id> --reason TEXT [--confirm]
122
+ recess [--json] events set-status <event-id> --status ACTIVE|ENDED|CANCELED [--confirm]
123
+ recess [--json] events reschedule --cohort <id> --event <event-id>
124
+ --starts-at "YYYY-MM-DDTHH:MM" [--timezone <iana>] [--length-mins N] [--confirm]
125
+ recess [--json] events add --cohort <id> --starts-at "YYYY-MM-DDTHH:MM"
126
+ [--timezone <iana>] [--length-mins N] [--confirm]
127
+ recess [--json] registrations approve --registration <id> [--confirm]
128
+ recess [--json] registrations deny --cohort <id> --user <id> [--confirm]
129
+ recess [--json] request get </path?query=value>
130
+ recess [--json] onboarding status <family-id>
131
+ recess [--json] onboarding queue [--school <institution-slug>]
132
+ recess [--json] onboarding kids [--time-period-days N] [--cohort <id>]
133
+ [--limit N] [--stage-filter all|scheduled|oriented|course|converted|lost]
134
+ recess [--json] onboarding timeline <family-id>
135
+ recess [--json] onboarding readiness <family-id>
136
+ recess [--json] onboarding active-tutors <family-id>
137
+ recess [--json] onboarding meetings <family-id>
138
+ recess [--json] onboarding cohort-options <family-id> [--kid <kid-id>]
139
+ recess [--json] onboarding comms [--school <institution-slug>]
140
+ [--status RESERVED|SENT|FAILED] [--kind <kind>] [--limit 50] [--cursor <cursor>]
141
+ recess [--json] onboarding lifecycle-prompts
142
+ recess [--json] onboarding orientation-sessions
143
+ recess [--json] onboarding ixl-preview <family-id> --kid <kid-id>
144
+ recess [--json] onboarding intake-session <family-id>
145
+ recess [--json] onboarding reviews <family-id>
146
+ recess [--json] onboarding review <session-id>
147
+ recess [--json] onboarding intake-session-create <family-id> [--confirm]
148
+ recess [--json] onboarding set-stage <family-id>
149
+ --stage LEGACY|PROVISIONED|PARENT_CONFIRMED|CLEARED_FOR_COHORT|COMPLETE [--confirm]
150
+ recess [--json] onboarding set-account-state <family-id>
151
+ --state ACTIVE|PENDING_PAYMENT|PAUSED|BOOTED [--note TEXT] [--confirm]
152
+ recess [--json] onboarding set-primary-tutor <family-id>
153
+ [--tutor <user-id> | --clear] [--confirm]
154
+ recess [--json] onboarding attest <family-id>
155
+ --condition app_downloaded|tutor_met|goals_loaded|ma_diagnostic [--revoke]
156
+ [--note TEXT] [--confirm]
157
+ recess [--json] onboarding clear-for-cohort <family-id> [--confirm]
158
+ recess [--json] onboarding register-cohort <family-id>
159
+ --kid <kid-id> --cohort <event-series-id> [--confirm]
160
+ recess [--json] onboarding set-kid-grade <family-id>
161
+ --kid <kid-id> [--grade 1..12 | --clear] [--confirm]
162
+ recess [--json] onboarding seed-feed <family-id> --kid <kid-id> [--confirm]
163
+ recess [--json] onboarding generate-summaries <family-id> [--confirm]
164
+ recess [--json] onboarding provision-math-academy <family-id>
165
+ --kid <kid-id> [--grade 1..12] [--confirm]
166
+ recess [--json] onboarding provision-ixl <family-id>
167
+ --kid <kid-id> [--credentials-file <credentials.json>] [--confirm]
168
+ recess [--json] onboarding remove-ixl <family-id> --kid <kid-id> [--confirm]
169
+ recess [--json] onboarding ixl-sync [--apply] [--confirm]
170
+ recess [--json] onboarding contracts [--kid <kid-id>]
171
+ recess [--json] onboarding send-contract <kid-id> [--tuition-cents N]
172
+ [--parent-email <email>] [--partner-name TEXT] [--partner-email <email>] [--confirm]
173
+ recess [--json] onboarding send-comms --subject <family:id|invite:id>
174
+ --kind <kind> [--confirm]
175
+ recess [--json] onboarding send-welcome <family-id> [--resend] [--confirm]
176
+ recess [--json] onboarding send-payment-email <family-id> [--resend] [--confirm]
177
+ recess [--json] onboarding send-recommendations <family-id>
178
+ --courses <course-id,course-id> [--resend] [--confirm]
179
+ recess [--json] onboarding set-lifecycle-prompt <kind>
180
+ [--enabled true|false] [--delay-days N] [--window-days N]
181
+ [--snooze-days N] [--max-prompts N] [--confirm]
182
+ recess [--json] onboarding override-lifecycle-prompt <kind> <family-id>
183
+ --action delay|skip|clear [--days N] [--confirm]
184
+ recess [--json] onboarding orientation-create --starts-at <iso>
185
+ [--ends-at <iso>] [--capacity N] [--confirm]
186
+ recess [--json] onboarding orientation-set-status <session-id>
187
+ --status CANCELED|COMPLETED [--confirm]
188
+ recess [--json] onboarding orientation-attendance <session-id>
189
+ --family <family-id> --attended true|false [--confirm]
190
+ recess [--json] onboarding meeting-reschedule <meeting-id>
191
+ --starts-at <iso> [--note TEXT] [--confirm]
192
+ recess [--json] onboarding meeting-cancel <meeting-id> --reason TEXT [--confirm]
193
+ recess [--json] onboarding set-intake <family-id> --session <id>
194
+ --data <json> [--expected-updated-at <iso>] [--confirm]
195
+ recess [--json] onboarding extract <family-id> --session <id>
196
+ (--transcript-file <path> | --granola <ref>) [--confirm]
197
+ recess [--json] onboarding mark-reviewed <session-id> [--confirm]
198
+ recess [--json] onboarding pairing-code <kid-id> [--confirm]
199
+ recess [--json] school list
200
+ recess [--json] school families --school <institution-slug>
201
+ recess [--json] school family-search --school <institution-slug> --query TEXT
202
+ [--limit N]
203
+ recess [--json] school convert <family-id> --school <institution-slug>
204
+ --kid "<kid-id>:<tier>[:<slots>[:<enrollment-cents>]]" [--kid "..."]
205
+ [--credit-cents N] [--enrollment-payment-cents N] [--note TEXT] [--confirm]
206
+ recess [--json] school revert <family-id> --school <institution-slug>
207
+ [--keep-tokens] [--note TEXT] [--confirm]
208
+ recess [--json] school start-memberships <family-id> --kid <kid-id> [--kid <kid-id>]
209
+ [--confirm]
210
+ recess [--json] school resolve-payment <payment-id> --school <institution-slug>
211
+ --action waive|cancel [--note TEXT] [--confirm]
212
+ recess [--json] school close-reconciliation <payment-id> --school <institution-slug>
213
+ --outcome refunded|kept|written_off [--note TEXT] [--confirm]
214
+ recess [--json] school codes list --school <institution-slug>
215
+ recess [--json] school codes get <code-id> --school <institution-slug>
216
+ recess [--json] school codes create --school <institution-slug> [--count N]
217
+ [--expires-at <iso>] [--note TEXT] [--credit-cents N]
218
+ [--tier social|academics|lite|complete|platform] [--slots N]
219
+ [--enrollment-payment-cents N] [--data-file <preconfigured-family.json>] [--confirm]
220
+ recess [--json] school codes set-kids <code-id> --school <institution-slug>
221
+ --data-file <roster.json> [--confirm]
222
+ recess [--json] school codes replace <code-id> --school <institution-slug>
223
+ --data-file <invite.json> [--confirm]
224
+ recess [--json] school codes resend <code-id> --school <institution-slug> [--confirm]
225
+ recess [--json] school codes revoke <code-id> --school <institution-slug> [--confirm]
226
+ recess [--json] village models list [--world village-1] [--query TEXT] [--archived]
227
+ recess [--json] village models upload --file </path/model.glb>
228
+ [--world village-1] [--name TEXT] [--id ID] [--description TEXT] [--tags A,B]
229
+ [--visual-only] [--confirm]
230
+ recess [--json] village models publish|archive <model-id> [--world village-1] [--confirm]
231
+ recess [--json] village models place <model-id> --x N --z N
232
+ [--y N] [--rotation 0..3] [--mirrored] [--no-collision] [--batch ID]
233
+ [--world village-1] [--confirm]
234
+ recess [--json] village models move <placement-id> --x N --z N
235
+ [--y N] [--rotation 0..3] [--mirrored] [--world village-1] [--confirm]
236
+ recess [--json] village models remove <placement-id> [--world village-1] [--confirm]
237
+ recess [--json] village render --min-x N --min-z N --max-x N --max-z N
238
+ [--world village-1]
239
+ recess [--json] village library search [query] [--query TEXT] [--limit 20]
240
+ [--world home-USER_ID]
241
+ recess [--json] village library get <model-id> [--world home-USER_ID]
242
+ recess [--json] village objects list [--min-x -20] [--min-z -20]
243
+ [--max-x 20] [--max-z 20] [--world home-USER_ID]
244
+ recess [--json] village objects get <object-id> [--world home-USER_ID]
245
+ recess [--json] village build cmd '<command-json>' [--world home-USER_ID] [--confirm]
246
+ recess [--json] village build cmd --file <command.json> [--world home-USER_ID] [--confirm]
247
+ recess [--json] village worlds export <world-id> [--out <bundle.json>] [--confirm]
248
+ recess [--json] village worlds import <world-id> --file <bundle.json> [--confirm]
249
+ recess [--json] village worlds promote <mirror-or-archive-id> [--confirm]
250
+ recess [--json] store-items list [--search TEXT]
251
+ [--status ACTIVE|INACTIVE|COMING_SOON] [--item-type TYPE]
252
+ [--page 0] [--limit 20] [--sort-by name|price|createdAt|updatedAt|order]
253
+ [--sort-order asc|desc]
254
+ recess [--json] store-items set-status <village-store-item-id>
255
+ --status ACTIVE|INACTIVE|COMING_SOON [--confirm]
256
+ recess [--json] content-library search <query> [--limit 8]
257
+ recess [--json] content-library status <gem-id-or-url>
258
+ recess [--json] content-library set-stage <gem-id-or-url...> [--file <path>]
259
+ --stage review|polishing|live|archived [--wait] [--timeout 900] [--confirm]
260
+ recess [--json] content-library submit <url...> [--file <path>]
261
+ [--stage review|polish] [--title TEXT] [--summary TEXT]
262
+ [--lane web-toys|mechanics|explorables|data-stories|sims|maps-scale|sound-art|puzzles|wonder|idea-games]
263
+ [--wait] [--timeout 900] [--confirm]
264
+ recess [--json] skills guardian list [--query TEXT] [--category TEXT]
265
+ recess [--json] skills guardian get <skill-name>
266
+ [--reference NAME | --all-references] [--refresh]
267
+ recess [--json] skills admin list [--query TEXT] [--category TEXT]
268
+ recess [--json] skills admin get <skill-name>
269
+ [--reference NAME | --all-references]
270
+ [--refresh]
271
+ recess [--json] goal-templates list [--query TEXT] [--category TEXT]
272
+ [--kind SIMPLE|BLUEPRINT] [--starter-only] [--include-deleted]
273
+ [--limit 20] [--cursor <id>]
274
+ recess [--json] goal-templates get <template-id|slug> [--spec-only]
275
+ recess [--json] goal-templates versions <template-id> [--version N]
276
+ recess [--json] goal-templates validate-spec --file <path/template.json>
277
+ recess [--json] goal-templates create --file <path/template.json>
278
+ [--coin-amount N] [--confirm]
279
+ recess [--json] goal-templates patch-spec <template-id|slug> --expected-version N
280
+ --patches-file <path/patches.json> [--confirm --approval-token TOKEN]
281
+ [--confirm-destructive-changes --destructive-change-token TOKEN]
282
+ recess [--json] goal-templates set-metadata <template-id> --expected-version N
283
+ [--title TEXT] [--description TEXT] [--emoji X] [--category TEXT] [--tags A,B]
284
+ [--image-url URL] [--coin-amount N] [--sort-order N] [--is-starter true|false]
285
+ [--setup-audience KID_FRIENDLY|PARENT_SETUP] [--kind SIMPLE|BLUEPRINT]
286
+ [--agent-instructions-file <path>]
287
+ [--output-template-file <path>] [--confirm]
288
+ recess [--json] goal-templates delete <template-id> --expected-version N [--confirm]
289
+ recess [--json] goal-templates generate-image <template-id|slug>
290
+ [--prompt TEXT] [--confirm]
291
+ recess [--json] goal-templates snapshot-files <template-id> [--path P]
292
+ recess [--json] goal-templates capture-snapshot <template-id|slug>
293
+ (--source-goal <goal-id> | --source-draft <draft-slug> --student <goal-owner-id>
294
+ | --source-dir <local-checkout>)
295
+ [--dry-run] [--confirm --approval-token TOKEN]
296
+ recess [--json] goal-templates apply <template-id> --answers-file <path>
297
+ [--dry-run] [--confirm --approval-token TOKEN]
298
+ recess [--json] goal-templates apply-starter <template-id> --student <kid-id>
299
+ [--answers-file <path>] [--confirm]
300
+ recess [--json] goals list --student <kid-id>
301
+ recess [--json] goals create [--student <kid-id>] --title TEXT
302
+ (--description TEXT | --description-file <path>) [--target-date <iso>]
303
+ [--schedule TEXT] [(--draft <draft-slug> | --source-dir <local-checkout>)
304
+ (--enable-applet-follow-ups | --disable-applet-follow-ups)]
305
+ [--confirm --approval-token TOKEN]
306
+ recess [--json] goals edit <goal-id> --student <kid-id> --patch-file <path/patch.json>
307
+ --delta TEXT [--confirm --approval-token TOKEN]
308
+ recess [--json] goals delete <goal-id> --student <kid-id>
309
+ [--confirm --approval-token TOKEN]
310
+ recess [--json] goals complete <goal-id> [--confirm]
311
+ recess [--json] goals undo-completion <goal-id> [--confirm]
312
+ recess [--json] goals queue get <goal-id> --student <kid-id>
313
+ recess [--json] goals queue set <goal-id> --student <kid-id>
314
+ --entries-file <path.json> --delta TEXT [--replace-description-pointer]
315
+ [--confirm --approval-token TOKEN]
316
+ recess [--json] todos create --student <kid-id> --title TEXT
317
+ [--due-date YYYY-MM-DD] [--estimated-minutes N] [--url URL] [--confirm]
318
+ recess [--json] todos edit <todo-id> --patch-file <path/patch.json>
319
+ [--confirm --approval-token TOKEN]
320
+ recess [--json] todos delete <todo-id>
321
+ [--confirm --approval-token TOKEN]
322
+ recess [--json] todos generate-applet <todo-id> --student <kid-id>
323
+ [--due-date YYYY-MM-DD] [--confirm --approval-token TOKEN]
324
+ recess [--json] memories context --student <kid-id>
325
+ recess [--json] memories log --student <kid-id> --date YYYY-MM-DD
326
+ recess [--json] rocky get --student <kid-id>
327
+ recess [--json] rocky set --student <kid-id> --patch-file <path/patch.json>
328
+ --expected-updated-at ISO|none [--confirm]
329
+ recess [--json] goals files list --student <goal-owner-id> --goal <goal-id>
330
+ recess [--json] goals files read --student <goal-owner-id> --goal <goal-id> --path P
331
+ recess [--json] goals files init --student <goal-owner-id> --draft <draft-slug>
332
+ --output-dir <local-dir>
333
+ recess [--json] goals files checkout --student <goal-owner-id>
334
+ (--goal <goal-id> | --draft <draft-slug>)
335
+ --output-dir <local-dir>
336
+ recess [--json] goals files push --source-dir <local-checkout>
337
+ [--message TEXT] [--confirm --approval-token TOKEN]
338
+ recess [--json] goals files write --student <goal-owner-id>
339
+ (--goal <goal-id> | --draft <draft-slug>)
340
+ (--source-dir <local-dir> | --source-file <local-file> --path P)
341
+ [--message TEXT] [--confirm --approval-token TOKEN]
342
+ recess [--json] goals pdf upload --student <goal-owner-id>
343
+ (--goal <goal-id> | --draft <draft-slug>) --source-file <local.pdf>
344
+ [--path uploads/name.pdf] [--message TEXT]
345
+ [--confirm --approval-token TOKEN]
346
+
347
+ Authoring notes: "skills" serves the in-product tutor skills (the private
348
+ packages/skills workspace package) read-only over your admin session — they are never
349
+ bundled into this npm package. Load os-v2-goal-template-builder and its
350
+ references/deterministic-workflow-setup.md BEFORE authoring a template; that is
351
+ the same guidance the recess.gg/ai agent follows, so there is exactly one
352
+ standard. Responses cache under ~/.recess-cli/skills-cache/ (--refresh re-fetches).
353
+ For goal workspace and PDF commands, --student names the goal owner. A
354
+ full_admin session may use a KID or ADMIN user id, including its own ADMIN id;
355
+ family_ai sessions remain limited to managed KID profiles.
356
+ "goals create --source-dir" materializes a clean, fully pushed draft checkout as
357
+ a personal module-backed goal and retargets that checkout to the resulting live
358
+ goal. It does not create or apply a reusable template. Its preview is bound to
359
+ the exact workspace revision, hash, module inventory, and applet follow-up choice.
360
+ Every template created here is setupMode DETERMINISTIC_WORKFLOW and CANNOT be
361
+ converted back, so "validate-spec" against the same file until it passes, then
362
+ "create". "create" runs a real server-side validation before its gate, so the
363
+ preview shows the handler/goalShape/step keys the SERVER resolved. "apply" runs
364
+ the backend's own dryRun before the gate and previews the per-student outcome.
365
+ "set-metadata" and "delete" require --expected-version (from "get"); a stale one
366
+ 409s STALE_WRITE and writes nothing. The spec is unreachable from "set-metadata"
367
+ by design — an existing spec is edited only through the guarded /ai patch path.
368
+
369
+ Onboarding notes: "status" and "intake-session" are reads — "intake-session"
370
+ looks up the current IN_PROGRESS session without creating one (prints a "none
371
+ yet" result when absent). "intake-session-create" is the explicit write that
372
+ mints a blank session, so it is gated behind --confirm. "set-stage" reads the
373
+ current stage first and warns when a move re-locks progress; CLEARED_FOR_COHORT
374
+ unlocks cohort registration. "set-account-state" PAUSED/BOOTED lock the family out of paid
375
+ capabilities (--note is analytics-only). "set-intake --data" takes JSON (agents
376
+ drive it with --json; humans rarely will); the preview is offline. Its
377
+ optimistic-concurrency token resolves only on --confirm: pass
378
+ --expected-updated-at <iso> (from an intake-session read's updatedAt) for strict
379
+ CAS that 409s if a parent autosaved since; omit it and the CLI fetches the
380
+ current token at confirm time and warns that post-preview edits are unprotected.
381
+ "extract" is LLM-bound and can take ~30s; a 503 means Granola is not configured
382
+ server-side.
383
+
384
+ Class-ops notes: "events cancel" notifies families (chat + parent email blast +
385
+ credit notes + Slack); "events set-status --status CANCELED" is a silent status
386
+ change. Reschedule times are cohort-local wall-clock (zoneless).
387
+
388
+ Payout notes: amounts are integer cents. "payout items add" without --date
389
+ defaults the item date to the penultimate day of the invoice's cycle (its
390
+ endDate minus one day) and shows the computed date in the preview.
391
+
392
+ Auth notes: "auth login" runs the browser loopback flow for ADMIN, GUIDE, a GUARDIAN with
393
+ access:ai, or a KID using only Village home building. Guardian sessions are family-scoped and
394
+ cannot call /admin; KID sessions cannot call any non-Village API command. For a headless
395
+ cloud agent, the ADMIN-only "auth request" prints an approval URL to hand a Recess admin; after they
396
+ approve it in a browser, "auth poll" collects the 12h session. When it lapses, run
397
+ "auth request" again for a fresh link. Both paths yield the same session.
398
+
399
+ Skill notes: this CLI's own agent skill ships inside the npm package AND is served
400
+ by the server, so wording/Gotcha updates arrive without an npm release. "setup"
401
+ (or "setup --skill-only") installs the bundled copy, then upgrades it from the
402
+ server when the served bundle's minCliVersion allows — an older binary keeps the
403
+ bundled copy, and an unreachable server is not an error. "doctor" reports whether
404
+ a newer skill exists and names the command; it never writes.
405
+
406
+ Writes preview and exit 2 unless --confirm is supplied after explicit human approval.
407
+ Every preview includes an operationKey; confirmed writes must echo it with
408
+ --operation-key so an interrupted invocation can be retried without duplicating the write.
409
+ Environment overrides: RECESS_CLI_API_ORIGIN, RECESS_CLI_WEB_ORIGIN,
410
+ RECESS_CLI_OAUTH_CLIENT_ID, RECESS_CLI_COOKIE, RECESS_CLI_CONFIG,
411
+ RECESS_CLI_PROFILE, RECESS_CLI_FEEDBACK_ENDPOINT.
412
+
413
+ Every command that calls the Recess API, except auth commands, requires
414
+ --reason TEXT: a non-empty human-readable purpose of at most 1024 characters.`;
415
+ //# sourceMappingURL=help.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "recess-cli",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Safe Recess administration and family AI tools from the command line.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -48,8 +48,8 @@
48
48
  "typecheck": "tsgo --noEmit",
49
49
  "format": "oxfmt --ignore-path .oxfmtignore --check",
50
50
  "format:fix": "oxfmt --ignore-path .oxfmtignore",
51
- "lint": "oxlint --type-aware src/*.ts",
52
- "lint:fix": "oxlint --type-aware --fix src/*.ts",
51
+ "lint": "oxlint --type-aware src/*.ts src/commands/*.ts",
52
+ "lint:fix": "oxlint --type-aware --fix src/*.ts src/commands/*.ts",
53
53
  "test": "vitest run",
54
54
  "install-local": "pnpm run build && make install-local",
55
55
  "install-persistent": "pnpm run build && make install-persistent",
@@ -16,6 +16,8 @@ recess --json doctor --reason "Verify CLI connectivity, identity, and scope"
16
16
 
17
17
  `doctor` reports the active API origin, authenticated user, and CLI scope. Do not assume a role from the request. Use the scope returned by the server.
18
18
 
19
+ If the reported scope is `village_home`, use only `recess village build`, `village library`, `village objects`, and `village render`. That session is intentionally unable to fetch the guardian or admin skill catalogs or call ordinary Recess API routes; Village applies the user's own-home and object-ownership checks to every build or read.
20
+
19
21
  Then load the guidance for the purpose of the work:
20
22
 
21
23
  ```bash
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "2.2.0",
3
- "minCliVersion": "2.0.0"
2
+ "version": "2.3.0",
3
+ "minCliVersion": "2.1.0"
4
4
  }