recess-cli 2.3.0 → 2.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "recess-cli",
3
- "version": "2.3.0",
3
+ "version": "2.5.0",
4
4
  "description": "Safe Recess administration and family AI tools from the command line.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -33,7 +33,7 @@ recess --json skills admin get recess-admin --all-references --reason "Load staf
33
33
 
34
34
  Use `skills guardian list` or `skills admin list` when the needed skill is not obvious. Never substitute one audience for the other. A guardian session cannot fetch the admin catalog; an admin may fetch either catalog.
35
35
 
36
- For machine-readable discovery, use `recess --json agent-context`; for a smaller syntax surface, use `recess --json help <noun> [verb]`. Unknown commands, flags, duplicate non-repeatable flags, missing flag values, and extra positional arguments fail explicitly.
36
+ For machine-readable discovery filtered to the current session's locally decoded CLI scope, use `recess --json agent-context`; for a smaller syntax surface, use `recess --json help <noun> [verb]`. These discovery commands make no API request; `auth status` and `doctor` are the live session checks. Human help uses `◇` for shared commands and `◆` for exact-admin commands. Unknown commands, flags, duplicate non-repeatable flags, missing flag values, and extra positional arguments fail explicitly.
37
37
 
38
38
  ## Authentication
39
39
 
@@ -41,8 +41,9 @@ For machine-readable discovery, use `recess --json agent-context`; for a smaller
41
41
  - Headless (no browser): `auth request`, then a human approves the printed URL while signed in to
42
42
  Recess, then `auth poll`. The session takes on the **approver's** scope — a guardian approving
43
43
  grants family-only access, not staff access. Kids cannot approve.
44
- - Sessions last 12 hours and are rechecked against the live user role and permissions.
45
- - `auth status` inspects the current session; `auth logout` clears the stored session.
44
+ - Sessions last 12 hours. `auth status` and `doctor` recheck the live user role and permissions;
45
+ discovery stays local and may reflect the minted scope until the next login.
46
+ - `auth logout` clears the stored session.
46
47
  - The default API is production. If `RECESS_CLI_API_ORIGIN` is set, state the non-default origin before acting.
47
48
 
48
49
  Never print or paste session cookies, device codes, or config-file contents.
@@ -69,6 +70,42 @@ Every write is two-step:
69
70
 
70
71
  Any changed target, payload, local file, server revision, amount, recipient, or consequence requires a new preview and new approval. Never infer approval from the original request. If a confirmed invocation is interrupted, retry the unchanged command with the same operation key; never mint a new one for an uncertain write. Inspect recovery state with `recess --json jobs get <operation-key>`.
71
72
 
73
+ ## Building Studio apps (`recess apps`)
74
+
75
+ Guides build Recess Studio apps in their own editor and publish them with the CLI; Studio never
76
+ prompts a model for them.
77
+
78
+ - `recess --json apps init <dir> --reason "..."` writes the locked scaffold plus `AGENTS.md` (the
79
+ runtime + template contract, pedagogy, and design rules). Read `AGENTS.md` before editing.
80
+ - Edit only `skill.js`, `model.js`, `model.css`, `params.schema.json`, `params.json`. Locked files
81
+ fail validation if changed.
82
+ - Write `contract.json` (the BuildContract from `AGENTS.md`) and `manifest.json`
83
+ (`{title, description, template?}`) before validating.
84
+ - `recess --json apps validate [dir] --reason "..."` runs Studio's deterministic validation on the
85
+ uploaded files and returns `report.failReasons`; fix every reason and rerun. Nothing is published.
86
+ - `recess --json apps publish [dir] --reason "..."` validates, then the independent reviewer judges
87
+ the app; on pass it becomes the current version at `appUrl`. `REJECTED` carries the reviewer's
88
+ findings — fix them and publish again. Both commands wait for the result (`--no-wait` to return the
89
+ build id and poll with `apps status`).
90
+ - `recess --json apps pull <project-id> [dir]` downloads a project you own to keep editing it.
91
+ - `recess --json apps standards "<words or notation>"` finds the CCSS standard for `manifest.json`
92
+ (`"grade 4 adding fractions"` → `4.NF.B.3a`…); guides rarely know the codes, look them up.
93
+
94
+ Two ways in. If the guide names a kid or a todo, pull the analysis first and build against it;
95
+ otherwise build from their description:
96
+
97
+ - `recess --json students todos --student <kid-id> [--analyzed]` lists the kid's recent todos with
98
+ CCSS tags and `analyzed` (a forensic analysis exists); `recess --json students analysis --todo <id>`
99
+ returns it pruned for building — patterns with `instanceKey`, root cause, prescriptions, the
100
+ standard, grade band, interests. No name, no frames.
101
+ - `recess --json apps init <dir> --for-todo <todo-id>` writes the scaffold plus `brief.md` (that
102
+ analysis as an assignment) and remembers the kid. Build to the brief: remediate mode, items the
103
+ kid would miss the observed way, `template.misconceptions` = the pattern keys.
104
+ - `recess --json apps publish --assign <kid-id> [--due YYYY-MM-DD]` publishes and, on `COMPLETE`,
105
+ creates the kid's todo (linked to the source todo when init used `--for-todo`). A rejected build
106
+ assigns nothing. `recess --json apps assign [dir] --student <kid-id>` assigns an already-published
107
+ app.
108
+
72
109
  ## Shared constraints
73
110
 
74
111
  - Use high-level CLI commands. The raw escape hatch is GET-only:
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "2.4.0",
3
- "minCliVersion": "2.1.0"
2
+ "version": "2.5.0",
3
+ "minCliVersion": "2.4.0"
4
4
  }