@wji.ai/cli 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +63 -2
  2. package/dist/commands/backreel.js +260 -0
  3. package/dist/commands/canvas.js +588 -88
  4. package/dist/commands/class.js +395 -0
  5. package/dist/commands/npc.js +413 -0
  6. package/dist/commands/workspace.js +109 -24
  7. package/dist/core/members.js +54 -0
  8. package/dist/core/npc.js +108 -0
  9. package/dist/core/output.js +4 -2
  10. package/dist/index.js +8 -0
  11. package/package.json +1 -1
  12. package/skill/ads/SKILL.md +176 -0
  13. package/skill/ads/reference/ai-consistency.md +109 -0
  14. package/skill/ads/reference/brief-template.md +103 -0
  15. package/skill/ads/reference/compliance.md +66 -0
  16. package/skill/ads/reference/formats-image.md +108 -0
  17. package/skill/ads/reference/formats-video.md +121 -0
  18. package/skill/ads/reference/models.md +90 -0
  19. package/skill/ads/reference/product-photography.md +119 -0
  20. package/skill/ads/reference/styles.md +70 -0
  21. package/skill/short-drama/SKILL.md +90 -8
  22. package/skill/short-drama/reference/action-bullet-time.md +47 -0
  23. package/skill/short-drama/reference/action-car-chase.md +51 -0
  24. package/skill/short-drama/reference/action-gun-fu.md +52 -0
  25. package/skill/short-drama/reference/action-historical-realist.md +50 -0
  26. package/skill/short-drama/reference/action-hk-kungfu.md +54 -0
  27. package/skill/short-drama/reference/action-street-brawl.md +49 -0
  28. package/skill/short-drama/reference/action-superhero.md +50 -0
  29. package/skill/short-drama/reference/action-wuxia-fantasy.md +51 -0
  30. package/skill/short-drama/reference/action.md +94 -0
  31. package/skill/short-drama/reference/cinematography-costume-dark.md +117 -0
  32. package/skill/short-drama/reference/cinematography-costume-idol.md +126 -0
  33. package/skill/short-drama/reference/cinematography-low-key.md +115 -0
  34. package/skill/short-drama/reference/cinematography-period-nostalgia.md +106 -0
  35. package/skill/short-drama/reference/cinematography-scifi-hard.md +63 -0
  36. package/skill/short-drama/reference/cinematography-scifi-soft.md +66 -0
  37. package/skill/short-drama/reference/cinematography-sweet-romance.md +175 -0
  38. package/skill/short-drama/reference/cinematography.md +83 -0
  39. package/skill/short-drama/reference/composition-art-first.md +74 -0
  40. package/skill/short-drama/reference/craft-shots.md +3 -1
  41. package/skill/short-drama/reference/craft-story.md +4 -1
  42. package/skill/short-drama/reference/format.md +94 -0
  43. package/skill/short-drama/reference/grammar-comedy.md +105 -0
  44. package/skill/short-drama/reference/grammar-faceslap.md +67 -0
  45. package/skill/short-drama/reference/grammar.md +103 -0
  46. package/skill/short-drama/reference/operations-cli.md +1 -1
  47. package/skill/short-drama/reference/schema.md +34 -3
  48. package/skill/short-drama/reference/stage-art.md +1 -1
  49. package/skill/short-drama/reference/stage-outline.md +21 -0
  50. package/skill/short-drama/reference/stage-script.md +10 -0
  51. package/skill/short-drama/reference/stage-storyboard.md +15 -0
  52. package/skill/short-drama/reference/story-angst.md +117 -0
  53. package/skill/short-drama/reference/story-comedy.md +136 -0
  54. package/skill/short-drama/reference/story-cultivation.md +109 -0
  55. package/skill/short-drama/reference/story-family.md +119 -0
  56. package/skill/short-drama/reference/story-horror.md +124 -0
  57. package/skill/short-drama/reference/story-mystery.md +127 -0
  58. package/skill/short-drama/reference/story-palace.md +103 -0
  59. package/skill/short-drama/reference/story-revenge.md +124 -0
  60. package/skill/short-drama/reference/story-scifi.md +112 -0
  61. package/skill/short-drama/reference/story-sweet.md +128 -0
  62. package/skill/short-drama/reference/story.md +127 -0
  63. package/skill/short-drama/scripts/selftest.mjs +809 -1
  64. package/skill/short-drama/scripts/short-drama.mjs +1608 -16
  65. package/skill/social-media/SKILL.md +152 -0
  66. package/skill/social-media/reference/content-craft.md +124 -0
  67. package/skill/social-media/reference/plan-template.md +171 -0
  68. package/skill/social-media/reference/platforms-china.md +94 -0
  69. package/skill/social-media/reference/platforms-global.md +122 -0
  70. package/skill/social-media/reference/ratio-map.md +100 -0
  71. package/skill/social-media/reference/repurpose.md +119 -0
  72. package/skill/wji/SKILL.md +66 -2
  73. package/skill/wji/reference/commands.md +76 -15
  74. package/skill/wji-classroom/SKILL.md +161 -0
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: wji-classroom
3
+ description: Run a class on WJI with the `wji` CLI — a teacher's workspace where every student has their own Infinite Canvas. Set up the class workspace, invite students by email or share link, create one private canvas per student, hand out preset prompts and starter nodes (copy the teacher's selected nodes into every student's canvas), then check each student's progress and collect their generated results by name, recency or color tag. Use when a teacher / instructor / 老師 / 講師 mentions a class, course, workshop, students / 學生 / 学员, assignments / homework / 作業, or wants to manage members' canvases on WJI.
4
+ ---
5
+
6
+ # WJI classroom
7
+
8
+ This skill sits on top of the `wji` skill — read that one for sign-in,
9
+ models, generation and the canvas basics. Everything here is the `wji`
10
+ CLI; the class-wide commands live under `wji class`.
11
+
12
+ ## How a class maps onto WJI
13
+
14
+ | Class | WJI |
15
+ | --- | --- |
16
+ | the class | a workspace the teacher **owns** |
17
+ | a student | a workspace member with role **editor** (viewers cannot generate) |
18
+ | a student's desk | a canvas whose owner is that student, visibility `owner` — only they and the teacher see it |
19
+ | handouts | workspace prompt presets, and starter nodes copied into every canvas |
20
+ | an assignment | nodes carrying a color tag with a label, e.g. red = `HW1` |
21
+
22
+ Only the workspace **owner** can invite, create share links and set canvas
23
+ owners. Check first:
24
+
25
+ ```bash
26
+ wji auth whoami
27
+ wji ws member list <workspaceId> # your row must say owner
28
+ ```
29
+
30
+ ## 1. Create the class workspace
31
+
32
+ ```bash
33
+ wji ws create "Art 101 — Spring" -a canvas # the canvas app is all a class needs
34
+ wji ws use <workspaceId> # later commands default to it
35
+ ```
36
+
37
+ ## 2. Invite students
38
+
39
+ ```bash
40
+ wji ws member invite amy@school.edu, ben@school.edu # ≤50 per call; commas or spaces
41
+ wji ws member link # or a join link (valid 7 days) to post in the class chat
42
+ wji ws member link --show # the active link
43
+ wji class roster # who has joined, role, canvas
44
+ ```
45
+
46
+ - Registered emails join immediately (`added`); the others get an invitation
47
+ email and join after signing up (`invited`). Rerun `class roster` later.
48
+ - There is **one** active link per workspace. `member link` — and any
49
+ `member invite` that emails someone — revokes the previous link. Tell the
50
+ teacher before replacing a link they already shared.
51
+ - Late joiners via the link join as the link's role (default editor).
52
+ - Wrong role: `wji ws member role "Ben" editor`. Remove: `wji ws member rm "Ben"`.
53
+
54
+ ## 3. One canvas per student
55
+
56
+ ```bash
57
+ wji class canvases --create # named after each student, private
58
+ wji class canvases --create --name "{name} · Art 101"
59
+ wji class canvases --visibility members --update # let the class see each other's canvases
60
+ ```
61
+
62
+ It only creates what is missing, so rerun it after new students join. The
63
+ teacher (workspace owner) sees every canvas; each student sees only theirs
64
+ (plus any canvas with visibility `members`, e.g. a shared "Class board").
65
+ Individual canvases: `wji canvas owner <canvasId> "Amy" --visibility owner`.
66
+
67
+ ## 4. Preset prompts, so students don't have to type
68
+
69
+ Two ways, often both:
70
+
71
+ **Workspace presets** — a prompt library for the class. Students press `/`
72
+ on their canvas (the *workspace* tab) and the prompt becomes a text node, or
73
+ `/` inside a generate node's prompt box to insert it.
74
+
75
+ ```bash
76
+ wji preset create "Watercolor portrait" -w <workspaceId> -c utility -t hw1 \
77
+ -p "A soft watercolor portrait of @image1, loose brush strokes, paper texture"
78
+ wji preset workspace # what the class sees
79
+ ```
80
+
81
+ **Starter nodes** — a ready-to-run generate node (prompt, model, settings,
82
+ reference images already wired) that students only have to press Generate on.
83
+ Build it once on the teacher's canvas, then copy it to everyone (step 5):
84
+
85
+ ```bash
86
+ wji canvas add image -c <teacherCanvas> -n "HW1 portrait" -m <model> \
87
+ -p "@image1 as a watercolor portrait" --from <referenceImageNode>
88
+ ```
89
+
90
+ Pick the model with `wji models list --feature image` / `wji models get`.
91
+
92
+ ## 5. Copy nodes into every student's canvas
93
+
94
+ The usual way: the teacher selects the nodes in the browser and presses the
95
+ link button in the canvas top bar. Then:
96
+
97
+ ```bash
98
+ wji canvas status # confirm what is selected
99
+ wji canvas tag red --selected -l HW1 # optional: mark it as an assignment
100
+ wji class copy -y # the selection → every student canvas
101
+ wji class copy <nodeId> <nodeId> -c <canvasId> --student "Amy" "Ben" -y
102
+ ```
103
+
104
+ - Connections between the copied nodes come along with their `@image1…`
105
+ order; finished images/videos are shared (not regenerated); generate nodes
106
+ keep prompt, model and settings but start un-generated.
107
+ - The group lands to the right of what is already on each canvas (`--at x,y`
108
+ or `--same-position` to choose).
109
+ - Color tags come along; the label (`HW1`) is added to a student's canvas if
110
+ that color has no label there yet.
111
+ - Failures are reported per student with a `--student …` rerun hint.
112
+
113
+ ## 6. Check progress and gather results
114
+
115
+ ```bash
116
+ wji class status # every student: nodes, done / running / failed / not run, gens, last gen, credits
117
+ wji class status --tag HW1 --sort progress # just the assignment, least done first
118
+ wji class status --sort recent # who generated most recently
119
+ wji class results --tag HW1 # finished work, newest first
120
+ wji class results --student "Amy" --since 2h
121
+ wji class results --tag HW1 -d ./hw1 # download: ./hw1/<student>/<node>-<id>.png
122
+ wji class results --tag HW1 --all # also display nodes students uploaded
123
+ ```
124
+
125
+ To review, download and look at the files, then leave feedback on the
126
+ student's canvas:
127
+
128
+ ```bash
129
+ wji canvas list --owner "Amy"
130
+ wji canvas add comment -c <amyCanvas> -t "Lovely colors — try a warmer background" --at 0,-200
131
+ ```
132
+
133
+ ## Rules
134
+
135
+ - **Emails go out in the teacher's name.** Show the exact address list and
136
+ role and get a yes in the chat before `ws member invite`. Same for
137
+ `ws member link` when a link is already active (it stops working).
138
+ - **Copying writes into every student's canvas.** Say what will be copied
139
+ (node names, count of students) and get a yes, then pass `-y`.
140
+ - **Don't generate on students' canvases** unless the teacher asks — it
141
+ spends the teacher's credits and replaces what the student would do. When
142
+ asked, follow the `wji` skill's cost rules (show the total for N students).
143
+ - **Deleting in a student's canvas** (`canvas rm`) follows the `wji`
144
+ confirm-before-destroying rule, one canvas at a time.
145
+ - Look students up by name or email (`--student "Amy"`); if a name is
146
+ ambiguous the CLI says so — ask, don't guess.
147
+
148
+ ## Good to know
149
+
150
+ - Private (`owner`) visibility hides a canvas; it does not lock it. On a
151
+ `members` canvas any editor can edit anything.
152
+ - Students can edit or delete workspace presets (the backend has no role
153
+ check there). Keep the canonical prompts in the teacher's own presets too
154
+ (`wji preset create` without `-w`) and re-copy with `wji preset copy`.
155
+ - Generation history in a workspace is readable by every member, so students
156
+ can technically list each other's generations through the API even when
157
+ canvases are private.
158
+ - Organization admins who are not the workspace owner cannot invite or set
159
+ canvas owners — the workspace owner must.
160
+ - Credits in `class status` are what each student spent in this workspace
161
+ (all time); `wji ws quota` sets a workspace spending cap.