wizards 0.4.7 → 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 (183) hide show
  1. package/README.md +45 -42
  2. package/apps/runtime/dist/agents/studio-assistant.js +8 -8
  3. package/apps/runtime/dist/app.js +7 -4
  4. package/apps/runtime/dist/assistant/primer.js +1 -1
  5. package/apps/runtime/dist/auth/index.js +2 -2
  6. package/apps/runtime/dist/authoring/guide.js +8 -8
  7. package/apps/runtime/dist/cli/account.js +31 -28
  8. package/apps/runtime/dist/cli/autostart.js +5 -3
  9. package/apps/runtime/dist/cli/clients.js +1 -1
  10. package/apps/runtime/dist/cli/connect.js +24 -24
  11. package/apps/runtime/dist/cli/features.js +6 -6
  12. package/apps/runtime/dist/cli/main.js +51 -39
  13. package/apps/runtime/dist/cli/mcp.js +5 -4
  14. package/apps/runtime/dist/cli/menu.js +32 -30
  15. package/apps/runtime/dist/cli/report.js +7 -9
  16. package/apps/runtime/dist/cli/setup.js +42 -38
  17. package/apps/runtime/dist/cli/start.js +16 -15
  18. package/apps/runtime/dist/cli/status.js +20 -20
  19. package/apps/runtime/dist/cli/ui.js +9 -2
  20. package/apps/runtime/dist/cli/update.js +6 -6
  21. package/apps/runtime/dist/cli/validate.js +1 -1
  22. package/apps/runtime/dist/connectors/external.js +3 -2
  23. package/apps/runtime/dist/connectors/index.js +5 -5
  24. package/apps/runtime/dist/connectors/plugin-connections.js +2 -2
  25. package/apps/runtime/dist/connectors/via-account.js +5 -5
  26. package/apps/runtime/dist/db/control-schema.js +14 -0
  27. package/apps/runtime/dist/db/migrations/control/0009_plugin_claim.sql +9 -0
  28. package/apps/runtime/dist/db/migrations/control/meta/0009_snapshot.json +561 -0
  29. package/apps/runtime/dist/db/migrations/control/meta/_journal.json +7 -0
  30. package/apps/runtime/dist/db/schema.js +9 -9
  31. package/apps/runtime/dist/docs/dev/index.md +16 -14
  32. package/apps/runtime/dist/docs/dev/plugins/connections.md +27 -24
  33. package/apps/runtime/dist/docs/dev/plugins/events.md +19 -17
  34. package/apps/runtime/dist/docs/dev/plugins/examples.md +13 -12
  35. package/apps/runtime/dist/docs/dev/plugins/index.md +29 -24
  36. package/apps/runtime/dist/docs/dev/plugins/layout.md +20 -19
  37. package/apps/runtime/dist/docs/dev/plugins/quick-start.md +16 -15
  38. package/apps/runtime/dist/docs/dev/plugins/reference.md +52 -40
  39. package/apps/runtime/dist/docs/dev/plugins/reloading.md +24 -23
  40. package/apps/runtime/dist/docs/dev/plugins/routes.md +26 -22
  41. package/apps/runtime/dist/docs/dev/plugins/runners.md +49 -44
  42. package/apps/runtime/dist/docs/dev/plugins/server.md +95 -43
  43. package/apps/runtime/dist/docs/dev/plugins/shipping.md +19 -16
  44. package/apps/runtime/dist/docs/dev/plugins/space.md +75 -69
  45. package/apps/runtime/dist/docs/dev/plugins/starters.md +22 -17
  46. package/apps/runtime/dist/docs/dev/plugins/studio.md +80 -37
  47. package/apps/runtime/dist/docs/dev/plugins/styling.md +44 -41
  48. package/apps/runtime/dist/docs/dev/plugins/tables.md +11 -11
  49. package/apps/runtime/dist/docs/dev/plugins/tools.md +26 -25
  50. package/apps/runtime/dist/docs/dev/wizard-format.md +35 -23
  51. package/apps/runtime/dist/docs/user/ai-apps.md +46 -43
  52. package/apps/runtime/dist/docs/user/assistant.md +41 -36
  53. package/apps/runtime/dist/docs/user/build-a-wizard.md +64 -39
  54. package/apps/runtime/dist/docs/user/command-line.md +47 -44
  55. package/apps/runtime/dist/docs/user/connectors.md +40 -35
  56. package/apps/runtime/dist/docs/user/create-account.md +27 -22
  57. package/apps/runtime/dist/docs/user/data.md +29 -29
  58. package/apps/runtime/dist/docs/user/first-start.md +26 -28
  59. package/apps/runtime/dist/docs/user/index.md +16 -17
  60. package/apps/runtime/dist/docs/user/install.md +28 -27
  61. package/apps/runtime/dist/docs/user/local-only.md +21 -17
  62. package/apps/runtime/dist/docs/user/models.md +92 -84
  63. package/apps/runtime/dist/docs/user/plugins.md +28 -23
  64. package/apps/runtime/dist/docs/user/run.md +51 -50
  65. package/apps/runtime/dist/docs/user/server.md +9 -9
  66. package/apps/runtime/dist/docs/user/space.md +87 -65
  67. package/apps/runtime/dist/docs/user/steps.md +73 -69
  68. package/apps/runtime/dist/docs/user/test-and-share.md +127 -105
  69. package/apps/runtime/dist/docs/user/troubleshooting.md +40 -38
  70. package/apps/runtime/dist/docs/user/wordpress.md +62 -54
  71. package/apps/runtime/dist/documents/parse.js +2 -2
  72. package/apps/runtime/dist/engenty/shims/web-ingest.js +17 -1
  73. package/apps/runtime/dist/engine/input.js +4 -4
  74. package/apps/runtime/dist/engine/push.js +2 -2
  75. package/apps/runtime/dist/engine/runner.js +8 -8
  76. package/apps/runtime/dist/engine/steps.js +4 -4
  77. package/apps/runtime/dist/engine/surface.js +1 -1
  78. package/apps/runtime/dist/film/step.js +3 -3
  79. package/apps/runtime/dist/harness/claude.js +1 -1
  80. package/apps/runtime/dist/harness/codex.js +1 -1
  81. package/apps/runtime/dist/harness/model.js +2 -2
  82. package/apps/runtime/dist/harness/terminal.js +3 -3
  83. package/apps/runtime/dist/mcp/handler.js +2 -2
  84. package/apps/runtime/dist/mcp/tools.js +9 -9
  85. package/apps/runtime/dist/models.js +15 -15
  86. package/apps/runtime/dist/plugins/claims.js +56 -0
  87. package/apps/runtime/dist/plugins/loader.js +2 -0
  88. package/apps/runtime/dist/plugins/public.js +2 -3
  89. package/apps/runtime/dist/plugins/runs.js +13 -8
  90. package/apps/runtime/dist/render/chromium.js +24 -11
  91. package/apps/runtime/dist/routes/api.js +16 -10
  92. package/apps/runtime/dist/routes/debug.js +1 -1
  93. package/apps/runtime/dist/routes/delivery.js +46 -0
  94. package/apps/runtime/dist/routes/lang.js +7 -0
  95. package/apps/runtime/dist/routes/marketplace.js +2 -1
  96. package/apps/runtime/dist/routes/plugin-public.js +2 -1
  97. package/apps/runtime/dist/routes/plugins.js +13 -14
  98. package/apps/runtime/dist/routes/runs.js +59 -49
  99. package/apps/runtime/dist/routes/studio.js +58 -28
  100. package/apps/runtime/dist/services/access.js +3 -3
  101. package/apps/runtime/dist/services/assistant-chats.js +1 -1
  102. package/apps/runtime/dist/services/brand.js +2 -2
  103. package/apps/runtime/dist/services/cloud.js +5 -4
  104. package/apps/runtime/dist/services/errors.js +2 -1
  105. package/apps/runtime/dist/services/knowledge-model.js +10 -10
  106. package/apps/runtime/dist/services/knowledge.js +19 -19
  107. package/apps/runtime/dist/services/marketplace.js +2 -2
  108. package/apps/runtime/dist/services/package-file.js +12 -9
  109. package/apps/runtime/dist/services/package.js +3 -3
  110. package/apps/runtime/dist/services/project-files.js +15 -17
  111. package/apps/runtime/dist/services/project-index.js +10 -10
  112. package/apps/runtime/dist/services/projects.js +13 -8
  113. package/apps/runtime/dist/services/relevance.js +3 -3
  114. package/apps/runtime/dist/services/runners.js +4 -3
  115. package/apps/runtime/dist/services/runs.js +3 -3
  116. package/apps/runtime/dist/services/site.js +10 -10
  117. package/apps/runtime/dist/services/space-categories.js +22 -22
  118. package/apps/runtime/dist/services/space-data.js +16 -16
  119. package/apps/runtime/dist/services/space-origin.js +4 -4
  120. package/apps/runtime/dist/services/spaces.js +10 -10
  121. package/apps/runtime/dist/services/wizards.js +5 -5
  122. package/apps/runtime/dist/tools/index.js +1 -1
  123. package/apps/runtime/dist/tools/net-guard.js +135 -24
  124. package/apps/runtime/dist/tools/pages.js +4 -4
  125. package/apps/runtime/dist/tools/plugin.js +1 -1
  126. package/apps/runtime/dist/tools/project.js +10 -10
  127. package/apps/runtime/dist/tools/store.js +1 -1
  128. package/apps/runtime/dist/widgets/step.js +1 -1
  129. package/apps/web/dist/assets/AboutDialog-DaYwk84X.js +1 -0
  130. package/apps/web/dist/assets/{ChangelogDialog-Cm25slr3.js → ChangelogDialog-CsYbEayb.js} +1 -1
  131. package/apps/web/dist/assets/{ChatView-BXtXWnqK.js → ChatView-BRD3fKZU.js} +1 -1
  132. package/apps/web/dist/assets/EditorPage-ocPlZD3E.js +3 -0
  133. package/apps/web/dist/assets/{FlowPreview-BsfjDVv8.js → FlowPreview-Bm7sv746.js} +1 -1
  134. package/apps/web/dist/assets/{Harness-B0hD5Pp7.js → Harness-DKE-YNA5.js} +1 -1
  135. package/apps/web/dist/assets/{NewWizardChannels-DMDp9Ao5.js → NewWizardChannels-CnWckqjO.js} +1 -1
  136. package/apps/web/dist/assets/{NewWizardPage-aOisxyk2.js → NewWizardPage-BXTpbHVM.js} +1 -1
  137. package/apps/web/dist/assets/{OnboardingPage-Czb0pOyy.js → OnboardingPage-3Rz5uOsa.js} +1 -1
  138. package/apps/web/dist/assets/{ProjectPage-DPCtb42K.js → ProjectPage-QdSJwm3k.js} +1 -1
  139. package/apps/web/dist/assets/{PublicRunner-CvyA-gkf.js → PublicRunner-DEpBer5g.js} +1 -1
  140. package/apps/web/dist/assets/ReadOnly-rr_RJD-a.js +1 -0
  141. package/apps/web/dist/assets/{RunDrawer-BCiPEz9g.js → RunDrawer-BsZt0tL9.js} +1 -1
  142. package/apps/web/dist/assets/{RunnerView-4z6DMzE6.js → RunnerView-BbRukEdE.js} +1 -1
  143. package/apps/web/dist/assets/SettingsPage-qkWsQIMN.js +1 -0
  144. package/apps/web/dist/assets/{SetupPage-YFoU_nXK.js → SetupPage-PzvPPLfM.js} +1 -1
  145. package/apps/web/dist/assets/{SharePage-BBHiJ34e.js → SharePage-7vdDWG1n.js} +1 -1
  146. package/apps/web/dist/assets/changelog-BFdAYD28.js +1 -0
  147. package/apps/web/dist/assets/{esm-hSq-jeOG.js → esm-g0kaGp8t.js} +1 -1
  148. package/apps/web/dist/assets/{index-CSeBGwy0.css → index-Bi2x2g7n.css} +1 -1
  149. package/apps/web/dist/assets/{index-DB_iwB35.js → index-BzPid1oQ.js} +4 -4
  150. package/apps/web/dist/assets/lock-BK9RYIft.js +1 -0
  151. package/apps/web/dist/assets/oss-credits-BJrR7BR1.js +1 -0
  152. package/apps/web/dist/assets/{phone-CeqyvwK-.js → phone-DtkY0NfU.js} +1 -1
  153. package/apps/web/dist/assets/{settings-menu-BK8WpcGv.js → settings-menu-7EJQRFOi.js} +1 -1
  154. package/apps/web/dist/assets/{ui-BbIh6SOJ.js → ui-B6S5hYPd.js} +3 -3
  155. package/apps/web/dist/assets/{upload-BQrAlHIG.js → upload-rYCAy7ox.js} +1 -1
  156. package/apps/web/dist/index.html +3 -3
  157. package/apps/web/dist/mcp/flow.html +4 -4
  158. package/bin/wizards.mjs +1 -1
  159. package/node_modules/@engenty-wizards/plugin-sdk/dist/index.d.ts +33 -14
  160. package/node_modules/@engenty-wizards/plugin-sdk/dist/studio.d.ts +3 -3
  161. package/node_modules/@engenty-wizards/shared/dist/definition.d.ts +690 -690
  162. package/node_modules/@engenty-wizards/shared/dist/definition.js +1 -1
  163. package/node_modules/@engenty-wizards/shared/dist/engenty/data-tables/columns.d.ts +76 -76
  164. package/node_modules/@engenty-wizards/shared/dist/feature-flags.d.ts +3 -3
  165. package/node_modules/@engenty-wizards/shared/dist/feature-flags.js +3 -3
  166. package/node_modules/@engenty-wizards/shared/dist/knowledge.d.ts +13 -13
  167. package/node_modules/@engenty-wizards/shared/dist/knowledge.js +4 -4
  168. package/node_modules/@engenty-wizards/shared/dist/marketplace.d.ts +4 -4
  169. package/node_modules/@engenty-wizards/shared/dist/projects.js +1 -1
  170. package/node_modules/@engenty-wizards/shared/dist/run.d.ts +48 -48
  171. package/node_modules/@engenty-wizards/shared/dist/run.js +48 -48
  172. package/node_modules/@engenty-wizards/shared/dist/space-data.d.ts +2 -2
  173. package/node_modules/@engenty-wizards/shared/dist/surface.d.ts +20 -20
  174. package/node_modules/@engenty-wizards/shared/dist/wizard-package.js +1 -1
  175. package/package.json +5 -4
  176. package/apps/web/dist/assets/AboutDialog-BtAuA44m.js +0 -1
  177. package/apps/web/dist/assets/EditorPage-B4jX_Ckc.js +0 -3
  178. package/apps/web/dist/assets/ReadOnly-DFysMEMF.js +0 -1
  179. package/apps/web/dist/assets/SettingsPage-BKkOfz6P.js +0 -1
  180. package/apps/web/dist/assets/changelog-D8WjOq7d.js +0 -1
  181. package/apps/web/dist/assets/circle-alert-BVj6idzu.js +0 -1
  182. package/apps/web/dist/assets/lock-BoWS-JhN.js +0 -1
  183. package/apps/web/dist/assets/oss-credits-BQQX0kvk.js +0 -1
@@ -1,87 +1,90 @@
1
1
  ---
2
2
  title: Models and account
3
- description: Who does what your wizards ask for — an installed AI client, your own API keys, a local model, or credits.
4
- version: 0.3.4
3
+ description: What runs the AI in your wizards – an AI client on your computer, your own API keys, a local model or credits.
4
+ version: 0.5.0
5
5
  ---
6
6
 
7
- Settings → Models decides who does what your wizards ask for. On your computer it is yours; on
8
- engenty.ai it is the team's, and only its admins change it.
7
+ Settings → Models decides what runs the AI in your wizards. On your computer you set it up
8
+ yourself. On engenty.ai the settings belong to the team, and only its admins can change them.
9
9
 
10
10
  ## What the wizards can do
11
11
 
12
- The menu on the left lists five capabilities, each with a dot for how it runs: green on something
13
- of your own, amber on credits, hollow when nothing is set up.
12
+ The menu lists five capabilities under “Capabilities”. A dot beside each one shows how it runs:
13
+ green on something of your own, amber on credits, hollow when nothing is set up.
14
14
 
15
15
  | Capability | Used for | Classes |
16
16
  |---|---|---|
17
- | Text & reasoning | Writing, research, decisions; the assistant and the editor's chat | Classifier, Standard, High, Highest |
17
+ | Text & reasoning | Writing, research and decisions; Goose and the assistant in the editor | Classifier, Standard, High, Highest |
18
18
  | Images | Logos, product shots, illustrations | Image |
19
- | Videos | Short clips from text or a picture | Video |
19
+ | Videos | Short clips from text or an image | Video |
20
20
  | Voice | Reading text aloud | Speech |
21
- | Voice notes | Writing down what is said | Audio |
21
+ | Voice notes | Turning speech into text | Audio |
22
22
 
23
- A capability's page asks "Who does it?":
23
+ A capability’s page asks “Who does it?”:
24
24
 
25
25
  | Choice | What it is | Cost |
26
26
  |---|---|---|
27
- | Your subscription | Claude Code, Codex, Gemini CLI or Cursor Agent on this computer, on your sign-in there (text; Codex also images) | Your subscription |
28
- | Own API key | OpenAI, Anthropic, Google Gemini, fal.ai, ElevenLabs, Replicate or Vercel AI Gateway | The provider bills your key |
27
+ | Your subscription | Claude Code, Codex, Gemini CLI or Cursor Agent on this computer, using your sign-in there (text; Codex also makes images) | Your subscription |
28
+ | Your own API key | OpenAI, Anthropic, Google Gemini, fal.ai, ElevenLabs, Replicate or Vercel AI Gateway | The provider bills your key |
29
29
  | Apple Intelligence | The model on this Mac: short texts and decisions (Classifier, Standard) and voice notes. See [Apple Intelligence](#apple-intelligence) | Nothing |
30
30
  | Local model | [Ollama](https://ollama.com) on this computer (text) | Nothing |
31
- | engenty credits | Your account's credits; engenty picks the model, or you pick one it offers (FLUX on fal, ElevenLabs voices, Veo …) | Credits |
31
+ | engenty credits | Your account’s credits. engenty chooses the model, or you choose one it offers (FLUX on fal, ElevenLabs voices, Veo …) | Credits |
32
32
 
33
- Then the model of the provider you picked, and "Try it": a short answer, a test image, a voice to
34
- hear, a 4-second clip or a transcript. A try costs like a real call.
33
+ Below that you choose the provider’s model, and “Try it” makes one real call: a short answer, a
34
+ test image, a voice to hear, a 4-second clip or a transcript. A try costs the same as a real call.
35
35
 
36
- With an account, credits step in where nothing of your own is set up — videos without a key of
37
- your own, say. The switch under "engenty credits" turns that off; then a capability without a way
38
- of its own does not run.
36
+ With an account, credits step in where you have nothing of your own set up – for example,
37
+ videos without your own API key. The switch “Credits step in” on the page “engenty credits” turns
38
+ that off. A capability with nothing of its own set up then doesn’t run.
39
39
 
40
40
  ## Apple Intelligence
41
41
 
42
- On a Mac with Apple silicon and macOS 26 or later, the [setup](./first-start.md) and "Text &
43
- reasoning" offer Apple Intelligence: the model Apple keeps on the Mac. It is there on your
44
- computer only, not on engenty.ai. Nothing leaves the machine, nothing is signed in and nothing
45
- is paid. It needs Apple Intelligence switched on (System Settings → Apple Intelligence & Siri);
46
- until then the choice says why it waits: "switched off", or "Apple is still loading the model".
47
-
48
- The model is small: it reads at most 4,096 tokens for a prompt and its answer together, and it
49
- uses no tools. So it takes the classes Classifier and Standard — decisions, picking values out
50
- of text, short copy. A step of these classes runs there without its tools (no API call, no web,
51
- no lists or documents), and a step whose text is too long fails with a note that says so: give
52
- such a step the class High, or bind the class elsewhere. The binding is `apple:default`;
53
- `apple:tagging` is Apple's adapter for tagging and extraction.
54
-
55
- High and Highest keep the way they had: the installed AI client, a key, or the credits. The
56
- page under the choice names it. Picking another way for text afterwards takes Classifier and
57
- Standard off Apple Intelligence again.
58
-
59
- "Voice notes" offers Apple Intelligence on the same Macs, even with Apple Intelligence switched
60
- off: the Mac writes a recording down itself (`apple:transcribe`), in the language the runner was
61
- in, for nothing. The first note in a language waits while Apple fetches it. A recording from
62
- Chrome or Firefox (WebM, Ogg) needs ffmpeg on the Mac, which turns it into WAV first; Safari's
63
- and the app's recordings need nothing. Without ffmpeg the page says so under "Voice notes".
64
-
65
- **In the app.** On an iPhone with iOS 26 the engenty wizards app writes voice notes down on the
66
- phone, and once Apple Intelligence is switched on it also answers a run's short text calls —
67
- Classifier and Standard steps without tools or files of their own — so a run in the cloud
68
- spends no credits on them and that text never leaves the phone. Where the phone does not
69
- answer, the run thinks the way these settings say.
42
+ On a Mac with Apple silicon and macOS 26 or later, the [setup](./first-start.md) and “Text &
43
+ reasoning” offer Apple Intelligence: the model Apple keeps on the Mac. It is there on your
44
+ computer only, not on engenty.ai. Nothing leaves the Mac, you don’t sign in and you pay nothing.
45
+ It needs Apple Intelligence switched on (System Settings → Apple Intelligence & Siri). Until
46
+ then, the choice says why it can’t be used yet: “switched off” or “Apple is still loading the
47
+ model”.
48
+
49
+ The model is small. It reads at most 4,096 tokens for a prompt and its answer together, and it
50
+ uses no tools. So it takes only the classes Classifier and Standard: decisions, picking values
51
+ out of text and short copy. A step of these classes runs there without its tools (no API calls,
52
+ no web, no lists or documents). A step whose text is too long fails with a note that says so.
53
+ Give such a step the class High, or choose something else for the class. The binding is
54
+ `apple:default`; `apple:tagging` is Apple’s adapter for tagging and extraction.
55
+
56
+ High and Highest keep what they ran on before: the AI client on this computer, an API key or the
57
+ credits. The page names it under the choice. If you later choose something else for text,
58
+ Classifier and Standard leave Apple Intelligence again.
59
+
60
+ “Voice notes” offers Apple Intelligence on the same Macs, even with Apple Intelligence switched
61
+ off. The Mac writes a recording down itself (`apple:transcribe`), in the language of the run, and
62
+ it costs nothing. The first note in a language waits while Apple downloads that language. A
63
+ recording from Chrome or Firefox (WebM, Ogg) needs ffmpeg on the Mac, which turns it into WAV
64
+ first. Recordings from Safari and the app need nothing. Without ffmpeg, the page “Voice notes”
65
+ says so.
66
+
67
+ **In the app.** On an iPhone with iOS 26, the engenty wizards app writes voice notes down on the
68
+ phone. Once Apple Intelligence is switched on, it also answers a run’s short text calls:
69
+ Classifier and Standard steps without tools or files of their own. A run in the cloud then
70
+ spends no credits on them, and that text never leaves the phone. Where the phone doesn’t answer,
71
+ the run uses what these settings say.
70
72
 
71
73
  ## Keys
72
74
 
73
- A key is checked with its provider before it is kept. On your computer keys stay in the Keychain
74
- on a Mac, elsewhere in an encrypted file in the data folder; on engenty.ai they are kept encrypted
75
- for the team. They are never in the database and never shown again.
75
+ engenty wizards checks a key with its provider before it stores it. On your computer, keys stay
76
+ in the Keychain on a Mac and in an encrypted file in the data folder elsewhere. On engenty.ai
77
+ they are kept encrypted for the team. They are never in the database, and nobody sees them again.
76
78
 
77
- Under "Access" stand the credits, the AI clients on this computer and each provider you gave a
78
- key; the other providers are under "More providers". A provider's page holds its key, what it is
79
- used for, and which of its models run on credits without a key of your own.
79
+ Under “Access” you find the credits, the AI clients on this computer and each provider you gave
80
+ a key. The other providers are under “More providers”. A provider’s page holds its key, what it
81
+ is used for, and which of its models run on credits without your own API key.
80
82
 
81
- On engenty.ai, keys of your own come with the Pro plan; without them the team's credits pay.
83
+ On engenty.ai, your own API keys come with the Pro plan. Without them, runs use the team’s
84
+ credits.
82
85
 
83
- A Vercel AI Gateway key on Vercel's free tier is refused for many models. The Models page and the
84
- check before a run say so, with the link to top up at Vercel.
86
+ Vercel refuses many models for an AI Gateway key on its free tier. The Models page and the check
87
+ before a run say so, with a link to top up at Vercel.
85
88
 
86
89
  | Provider | Serves |
87
90
  |---|---|
@@ -91,58 +94,63 @@ check before a run say so, with the link to top up at Vercel.
91
94
  | fal.ai | Images (FLUX, Recraft, Imagen), video (Veo, Luma, MiniMax), voice, transcripts |
92
95
  | ElevenLabs | Voices, transcripts (Scribe) |
93
96
  | Replicate | Images, video |
94
- | Vercel AI Gateway | Many providers' models with one key, web search |
97
+ | Vercel AI Gateway | Many providers’ models with one key, web search |
95
98
 
96
99
  ## Model per class
97
100
 
98
- A step names a class, never a model. For text, "Adjust per class" picks the model of each class:
101
+ A step names a class, never a model. For text, “Adjust per class” sets the model of each class:
99
102
 
100
103
  | Class | Used for |
101
104
  |---|---|
102
105
  | Classifier | Decisions, picking values out of text |
103
106
  | Standard | Short copy, API calls |
104
- | High | Research, long documents; the [assistant](./assistant.md) |
105
- | Highest | Hard reasoning, code; the editor's chat |
107
+ | High | Research, long documents; [Goose](./assistant.md) |
108
+ | Highest | Hard reasoning, code; the assistant in the editor |
106
109
 
107
- A model is written `vendor/model` for the AI Gateway, with the provider in front
108
- (`openai:gpt-5.4-mini`, `fal:fal-ai/flux/schnell`, `ollama:qwen3`), or `credits` /
110
+ You write a model as `vendor/model` for the AI Gateway, with the provider in front for the others
111
+ (`openai:gpt-5.4-mini`, `fal:fal-ai/flux/schnell`, `ollama:qwen3`), or as `credits` /
109
112
  `credits:<model>` for the credits.
110
113
 
111
- Decisions in a wizard (a branch with a statement, a field shown when the AI finds a statement
112
- true) and the check of what a Knowledge search found go to a decision model, Jev, where there is
113
- a way to one: an AI Gateway key, a TypeSafe key (`TYPESAFE_API_KEY` in the settings file) or an
114
- account. Otherwise the Classifier class decides.
114
+ Some decisions go to a decision model, Jev, wherever one can be reached: decisions in a wizard (a
115
+ branch with a statement, a field shown when the AI finds a statement true) and the check of what
116
+ a Knowledge search found. Jev is reached through an AI Gateway key, a TypeSafe key
117
+ (`TYPESAFE_API_KEY` in the settings file) or an account. Without one of them, the Classifier class
118
+ decides.
115
119
 
116
- ## The editor's chat
120
+ ## The editor’s chat
117
121
 
118
- Where Claude Code is installed on this computer, "The studio chat answers on" (on the page of
119
- Text & reasoning) picks what builds your wizards in the editor's conversation:
122
+ Where Claude Code is installed on this computer, “The studio chat uses” (on the page “Text &
123
+ reasoning”) sets what builds your wizards in the editor’s chat:
120
124
 
121
125
  | Choice | Means |
122
126
  |---|---|
123
- | Model class Highest | The model bound to that class |
124
- | Claude subscription (Claude Code) | The Claude Code installed on this computer builds the wizard, on your sign-in there. Runs keep using keys or credits |
127
+ | Model class Highest | The model set for that class |
128
+ | Claude subscription (Claude Code) | Claude Code on this computer builds the wizard, using your sign-in there. Runs still use keys or credits |
125
129
 
126
130
  ## Account
127
131
 
128
- An install normally signs in to your account during the setup ([Install](./install.md)); one
129
- without an account is [local only](./local-only.md). With an account you
132
+ engenty wizards on your computer normally signs in to your account during the setup
133
+ ([Install](./install.md)). If you set it up without an account, it stays
134
+ [on your computer only](./local-only.md). With an account you can
130
135
 
131
- - use credits instead of your own keys (the editor's note about missing models says so where
132
- text, image or video models are missing),
133
- - publish wizards to the cloud, where their links run while your computer is off
136
+ - use credits instead of your own API keys (where text, image or video models are missing, the
137
+ editor’s note about them says so),
138
+ - publish wizards to the cloud, where their links work while your computer is off
134
139
  ([Test and share](./test-and-share.md#in-the-cloud)),
135
140
  - connect Gmail, Drive, Calendar and Contacts without a Google client of your own
136
141
  ([Connectors](./connectors.md)).
137
142
 
138
- Settings → Account signs you in, in your browser. A new account needs an invitation code: type it
139
- there and "Create account" opens the sign-up page with it. An account starts with credits;
140
- some of them may end on a date, which the settings show. Runs in the cloud are paid from the
141
- account's credits and stop when they are used up, until you top up.
143
+ You sign in under Settings → Account, which opens your browser. In a terminal,
144
+ `wizards account sign-in` does the same. A new account needs an invitation code: enter it under
145
+ “No account yet?”, and “Create account” opens the sign-up with the code filled in
146
+ ([Create an account](./create-account.md)). An account starts with credits. Some of them expire
147
+ on a set date, which the settings show. Runs in the cloud are paid from the account’s credits.
148
+ They stop when the credits are used up, until you top up.
142
149
 
143
- While an account is signed in, the studio calls you by its name and e-mail: Settings → Account
144
- shows them under "Profile" without changing them. The avatar carries a small cloud; its menu
145
- says "Connected to engenty.ai" and the credits, or that the sign-in has run out.
150
+ While you are signed in, the studio uses the name and email of your account. Settings → Account
151
+ shows them under “Profile”, and you can’t change them there. The avatar carries a small cloud.
152
+ Its menu says “Connected to engenty.ai” and shows your credits, or says “Sign-in expired” when
153
+ you need to sign in again.
146
154
 
147
- Without an account the app is not connected to anything: wizards, the space and its files stay on
148
- your computer.
155
+ Without an account, engenty wizards isn’t connected to anything. Your wizards, the space and its
156
+ files stay on your computer.
@@ -1,65 +1,70 @@
1
1
  ---
2
2
  title: Plugins
3
- description: Add pages, settings and tools for steps to your install. What a plugin may do, and how to install one.
4
- version: 0.3.4
3
+ description: Add pages, settings and tools for steps to engenty wizards on your computer. What a plugin may do, and how to install one.
4
+ version: 0.5.0
5
5
  ---
6
6
 
7
7
  A plugin adds to engenty wizards without changing it:
8
8
 
9
- | It can add | You find it |
9
+ | It can add | Where you find it |
10
10
  |---|---|
11
- | Tools for AI steps | In a step's tool list, beside the built-in ones |
12
- | A page | Behind an icon in the studio's app bar |
11
+ | Tools for AI steps | In a step’s tool list, beside the built-in ones |
12
+ | What every AI step of a space knows | Nowhere: the steps get it, with tools to look things up |
13
+ | A page | Behind an icon in the studio’s app bar |
13
14
  | A settings section | In the settings |
14
- | A section of the space page | In one of the space page's parts |
15
+ | A section of the space page | In one of the space page’s parts |
16
+ | A part of the space page | In the space’s menu, beside Info & brand, Knowledge and Data |
15
17
  | A template | First among the templates of a new wizard |
16
- | A channel a wizard runs through | In the channels of a new wizard, and in the share dialog's ways in |
18
+ | A channel a wizard runs through | Under “How should it run?” on a new wizard, and under “How others reach it” in the share dialog, where “Set up” opens the plugin’s own setup |
17
19
  | Something that happens when a run ends, or again and again | Nowhere: it works in the background, for example posts a message |
18
20
 
19
- > A plugin runs with the app's full rights: it reads your wizards, your results, your settings
20
- > and the files of your computer. Install only what you know.
21
+ > A plugin runs with the app’s full rights: it reads your wizards, your results, your settings
22
+ > and the files on your computer. Install only plugins you trust.
21
23
 
22
24
  ## Install one
23
25
 
24
- A plugin is a file or a folder. Put it into the plugins folder of your install:
26
+ A plugin is a file or a folder. Put it into the plugins folder of engenty wizards:
25
27
 
26
28
  ```bash
27
29
  ~/.engenty/wizards/plugins
28
30
  ```
29
31
 
30
- - The app sees a new plugin while it runs; no restart.
31
- - A plugin's own instructions say which settings it needs. They go into the install's
32
+ - engenty wizards notices a new plugin while it runs. You don’t need to restart it.
33
+ - A plugin’s own instructions say which settings it needs. They go into the
32
34
  [settings file](./command-line.md#settings).
33
- - Another folder: `PLUGINS_DIR` in the settings file names one or several, comma-separated. It
34
- replaces the plugins folder above; name that one too to keep it.
35
+ - To use another folder, name it with `PLUGINS_DIR` in the settings file. You can name several,
36
+ separated by commas. They replace the plugins folder above, so name that one too if you want
37
+ to keep it.
35
38
 
36
39
  ## See what is installed
37
40
 
38
41
  Settings → Plugins lists the plugins with their version and the tools they add. The section
39
- appears once a plugin, or a file that looks like one, is there.
42
+ appears once there is a plugin, or a file that looks like one. It also appears while you are
43
+ signed in to an account.
40
44
 
41
- | Button | Does |
45
+ | Button | What it does |
42
46
  |---|---|
43
47
  | Reload | Loads one plugin again from its files |
44
48
  | Look again | Loads all plugins again and finds new ones |
45
49
 
46
- - "The server half did not load" or "The studio half did not load" names what went wrong with a
47
- plugin. It adds nothing until that is mended.
48
- - "Not a plugin" lists files in the plugins folder that look like a plugin and are none.
50
+ - “The server part didn’t load” or “The studio part didn’t load” says what went wrong with a
51
+ plugin. The plugin adds nothing until that is fixed.
52
+ - “Not a plugin” lists files in the plugins folder that look like a plugin but aren’t one.
49
53
 
50
54
  ## Remove one
51
55
 
52
- Delete its file or folder. Tables a plugin made in your database stay, with their rows.
56
+ Delete its file or folder. Tables the plugin made in your database stay, with their rows.
53
57
 
54
- ## Wizards that use a plugin's tool
58
+ ## Wizards that use a plugin’s tool
55
59
 
56
- A wizard that lists a plugin's tool runs only where that plugin is installed. Elsewhere the
60
+ A wizard that lists a plugin’s tool runs only where that plugin is installed. Elsewhere the
57
61
  editor shows an issue, and a run stops at that step. Keep that in mind when you export a wizard
58
62
  or publish it to the cloud.
59
63
 
60
64
  ## On engenty.ai
61
65
 
62
- Plugins are installed by the service. The settings list the ones switched on for your account.
66
+ engenty installs the plugins in the cloud. Settings → Plugins lists the ones switched on for your
67
+ account.
63
68
 
64
69
  ## Write your own
65
70
 
@@ -1,59 +1,58 @@
1
1
  ---
2
2
  title: Run a wizard
3
- description: What a person sees who opens a wizard's link, on a computer or a phone.
4
- version: 0.3.2
3
+ description: What you see when you open a wizard's link, on a computer or a phone.
4
+ version: 0.5.0
5
5
  ---
6
6
 
7
- ![A wizard on a phone: two pages of questions and the finished result with its downloads](../../assets/wizard.png)
8
-
9
7
  ## From the link to the result
10
8
 
11
- 1. The link opens the wizard. "Let's go" starts a run.
12
- 2. Pages ask their questions. "Continue" goes on, "Back" returns.
9
+ 1. The link opens the wizard. “Let’s go” starts a run.
10
+ 2. Pages ask their questions. “Continue” takes you to the next page, “Back” to the one before.
13
11
  3. While an AI step works, the page says what it is doing. The screen stays on.
14
- 4. A review shows what was made: "Looks good" accepts it, "New version" asks for another with a
15
- note on what should change, "Edit" changes a text by hand.
16
- 5. The result page offers the downloads, "Copy text" and "Share".
12
+ 4. A review shows what was made. “Looks good” accepts it. “New version” asks for another one,
13
+ with a note on what should change. “Edit” lets you change a text by hand.
14
+ 5. The result page offers the downloads, “Copy text” and “Share”.
17
15
 
18
- A run that was left can be picked up again: "Continue your last run".
16
+ If you left a run, you can pick it up again with “Continue your last run”.
19
17
 
20
18
  ## As a chat
21
19
 
22
- Unless the owner switched it off, the wizard also runs as a chat, at `…/chat` or straight on its
23
- link: it asks one question at a time, answers come from the composer or the replies under the
24
- question, and every answer stays in the thread. The composer has these buttons:
20
+ Where the owner switched it on, the wizard also runs as a chat, at `…/chat` or straight on its
21
+ link. It asks one question at a time. You answer in the composer or with the replies under the
22
+ question, and every answer stays in the chat. The composer has these buttons:
25
23
 
26
24
  | Button | Does |
27
25
  |---|---|
28
- | Speaker | Reads what the wizard says aloud, with the browser's own voice in the wizard's language. Costs nothing, stays on in this browser |
29
- | Microphone (⌘⇧M, Ctrl⇧M on Windows) | Dictates into the composer. The browser writes along where it can recognise speech; elsewhere the recording is written down by the wizard's own model when you stop, like a voice note |
30
- | Phone | A live conversation: you talk, the wizard talks back and fills its pages from what you say, one question at a time. Files and signatures stay on the screen; the wizard says so. Only where the owner switched on live voice or the video call for the wizard (always in the owner's test run) and the app that runs it has an OpenAI API key under Models, for now |
31
- | Camera, in a conversation | The wizard sees what you show it ("is the dent on the left?") and takes photos into a photo field when you hold something still. The small picture shows what it sees |
26
+ | Speaker (“Read aloud”) | Reads what the wizard says aloud, with the browser’s own voice in the wizard’s language. It costs nothing and stays on in this browser |
27
+ | Microphone (“Dictate”, ⌘⇧M, Ctrl⇧M on Windows) | Dictates into the composer. Where the browser can recognise speech, it writes along. Elsewhere the wizard’s own model writes the recording down when you stop, like a voice note |
28
+ | Phone (“Start talking”) | Starts a live conversation: you talk, and the wizard talks back and fills its pages from what you say, one question at a time. Files and signatures stay on the screen, and the wizard tells you so. The button is there only where the owner switched on live voice or the video call for the wizard (always in the owner’s test run), and for now only where the app that runs it has an OpenAI API key under Models |
29
+ | Camera, in a conversation | The wizard sees what you show it (“is the dent on the left?”) and takes photos into a photo field when you hold something still. The small picture shows what it sees |
32
30
 
33
31
  When a step works on a website, the chat shows that page live with what the wizard just did.
34
- "Take over" lets you click and type in it yourself while the wizard waits; "Hand back" lets it
35
- go on from where you left the page.
32
+ “Take over” lets you click and type in it yourself while the wizard waits. “Hand back” lets the
33
+ wizard go on from where you left the page.
36
34
 
37
35
  ## As a live conversation
38
36
 
39
37
  Where the owner switched it on, the wizard opens at `…/talk`, or straight on its link, as a
40
- live audio screen: its engenty alone in the middle, breathing while it speaks and glowing while
41
- it listens, the whole transcript of what either of you said under it, and mute, camera and
42
- leave underneath. The chat sits beside it as the screen the wizard draws on. Switch the camera
43
- on and it becomes the video call below.
38
+ live audio screen. “Start talking” begins the conversation. The wizard’s engenty stands alone
39
+ in the middle: it breathes while it speaks and glows while it listens. The whole transcript of
40
+ what either of you said runs under it, with “Mute”, the camera and “Leave” underneath. The chat
41
+ sits beside it as the screen the wizard draws on. If you switch the camera on, it becomes the
42
+ video call below.
44
43
 
45
44
  ## As a video call
46
45
 
47
- Where the owner switched it on, the wizard runs as a call, at `…/video` or straight on its
48
- link: a stage with your camera and the wizard's engenty as the two on the call, what either of
49
- you said as captions, and the call's controls underneath, mute, camera, switch camera on a phone,
50
- leave. The chat sits beside the stage, under it on a phone, and is the screen the wizard draws
51
- on: the questions and answers as they go, a photo field filled from the camera, a signature or a
52
- file where only the screen can take it, the result at the end.
46
+ Where the owner switched it on, the wizard runs as a call, at `…/video` or straight on its link.
47
+ A stage shows your camera and the wizard’s engenty as the two on the call, with what either of
48
+ you said as captions. The controls underneath are “Mute”, the camera, “Switch camera” on a phone
49
+ and “Leave”. The chat sits beside the stage (under it on a phone) and is the screen the wizard
50
+ draws on: the questions and answers as they go, a photo field filled from the camera, a
51
+ signature or a file where only the screen can take it, and the result at the end.
53
52
 
54
- "Let's go" starts the run, "Join" starts the call: the browser asks for the microphone and the
55
- camera then. The conversation is the same as the chat's live voice, with the camera on from the
56
- start. Needs an OpenAI API key under Models for now.
53
+ “Let’s go” starts the run, and “Join” starts the call. Your browser then asks for the microphone
54
+ and the camera. The conversation is the same as the chat’s live voice, with the camera on from
55
+ the start. For now it needs an OpenAI API key under Models.
57
56
 
58
57
  ## On a phone
59
58
 
@@ -62,36 +61,38 @@ start. Needs an OpenAI API key under Models for now.
62
61
  | Photos | The camera, page after page, or pictures from the library |
63
62
  | A paper | The camera as a scanner |
64
63
  | A short clip | The camera, up to 30 seconds |
65
- | A serial or ticket number | "Scan" reads a QR code or barcode |
66
- | Where you are | "Use my location", with its accuracy. An address can be typed instead |
67
- | What happened | "Record a voice note", up to 5 minutes |
68
- | A sign-off | "Sign here", with a finger |
64
+ | A serial or ticket number | “Scan” reads a QR code or barcode |
65
+ | Where you are | “Use my location”, with its accuracy. You can type an address instead |
66
+ | What happened | “Record a voice note”, up to 5 minutes |
67
+ | A sign-off | “Sign here”, with your finger |
69
68
 
70
- The browser asks before it uses the camera, the microphone or the location. If one was denied,
71
- allow it in the browser's site settings (the lock icon in the address bar), or use the fallback
72
- the field offers: choose a photo, type the address, pick an audio file.
69
+ Your browser asks before it uses the camera, the microphone or your location. If you denied one,
70
+ allow it in your browser’s site settings (the lock icon in the address bar). Or use the fallback
71
+ the field offers: choose a photo, type the address or choose an audio file.
73
72
 
74
- "Tell me when it is done" lets you switch apps during a long step: a notification, a sound or a
75
- buzz brings you back. "Add to home screen" puts the wizard on the phone like an app.
73
+ With “Tell me when it’s done” you can switch apps during a long step: a notification, a sound
74
+ or a buzz brings you back. “Add to home screen” puts the wizard on your phone like an app. On a
75
+ computer, “Bookmark this wizard” shows how to keep it in your bookmarks.
76
76
 
77
77
  ## When the wizard needs you
78
78
 
79
79
  | It shows | Because | You |
80
80
  |---|---|---|
81
- | A website live, with a sign-in | A step met a login, a captcha or "continue with Google" | Fill the fields shown, or click and type in the live page itself, then "Sign in" or "I am signed in". What you enter goes straight into the page; the AI never sees it. "Remember this sign-in for next time" stores it encrypted. "Skip" goes on without the site |
82
- | "The wizard wants to run this in …" | A step wants to change something in a service you connected | "Allow", "Allow for the rest of this run" or "Don't allow". Reading does not ask; deleting always does |
83
- | "Connect" | The wizard works with your own account of a service | Sign in to the service in a new tab. The connection is kept for your next run |
81
+ | A website live, with a sign-in | A step met a login, a captcha or “continue with Google” | Fill in the fields shown, or click and type in the live page itself. Then choose “Sign in” or “I’m signed in”. What you enter goes straight into the page, and the AI never sees it. “Remember this sign-in for next time” stores it encrypted. “Skip” goes on without the site |
82
+ | “The wizard wants to run this in …” | A step wants to change something in a service you connected | Choose “Allow”, “Allow for the rest of this run” or “Don’t allow”. Reading doesn’t ask, deleting always does |
83
+ | “Connect” | The wizard works with your own account of a service | Sign in to the service in a new tab. The connection is kept for your next run |
84
84
 
85
85
  ## What this wizard remembers
86
86
 
87
87
  A wizard can keep lists, files and connected accounts for your next run. Only you see them.
88
- The link "What this wizard remembers" below the wizard's pages shows what is kept and deletes
89
- everything on request. What nobody used for 400 days is deleted by itself.
88
+ The link “What this wizard remembers” below the wizard’s pages shows what is kept, and “Delete
89
+ everything” deletes it. Anything nobody used for 400 days is deleted by itself.
90
90
 
91
91
  ## Share a result
92
92
 
93
- "Share" on the result page makes a link to the result, sends it by e-mail or hands it to
94
- another app. The result and its link are kept for 7 days. "Withdraw link" ends the link earlier.
93
+ “Share” on the result page makes a link to the result. You can copy it, send it by email or hand
94
+ it to another app. When you ran the wizard over its link, the result and its link are kept for 7
95
+ days. “Withdraw link” ends the link earlier.
95
96
 
96
- Media a model made carries an "AI generated" label. Whoever publishes it has to label it as
97
- AI-generated; the file already carries the marking.
97
+ Media made by a model carries an “AI-generated” label. Whoever publishes it has to label it as
98
+ AI-generated. The file already carries the marking.
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  title: Run it on a server
3
3
  description: One Docker container behind an https proxy, so others can open your wizards' links.
4
- version: 0.3.2
4
+ version: 0.5.0
5
5
  ---
6
6
 
7
- An install on your computer answers on `localhost` only. On a server with a public address,
7
+ engenty wizards on your computer answers on `localhost` only. On a server with a public address,
8
8
  anyone with a link can run your wizards.
9
9
 
10
10
  ## Start it
@@ -17,7 +17,7 @@ cd wizards
17
17
  cp .env.example .env
18
18
  ```
19
19
 
20
- In `.env`, set `APP_URL` to your https address (the container does not start without it) and add
20
+ In `.env`, set `APP_URL` to your https address (the container doesn’t start without it) and add
21
21
  a model key. Then:
22
22
 
23
23
  ```bash
@@ -25,18 +25,18 @@ docker compose up -d --build
25
25
  docker compose logs
26
26
  ```
27
27
 
28
- The logs show a link. Open it once: it signs your browser in.
28
+ The logs show a link (“Open the studio: …”). Open it once: it signs your browser in.
29
29
 
30
30
  ## What to know
31
31
 
32
32
  | | |
33
33
  |---|---|
34
34
  | Port | Point the proxy at port 8891 |
35
- | Data | On the `/data` volume: databases and files. Back that volume up |
36
- | Models | Your keys or Ollama. The subscriptions of AI clients live on your own computer, not on a server |
35
+ | Data | Databases and files are on the `/data` volume. Back that volume up |
36
+ | Models | Your own API keys or Ollama. The subscriptions of AI clients live on your own computer, not on a server |
37
37
  | PDF, PNG, browser steps, MP4 | Chromium and ffmpeg are in the image |
38
- | Code & shell | The sandbox is off in this image; steps cannot use that tool. `compose.yaml` shows how to switch it on |
39
- | Plugins | A folder named in `PLUGINS_DIR`, mounted into the container |
38
+ | Code & shell | The sandbox is off in this image, so steps can’t use that tool. `compose.yaml` shows how to switch it on |
39
+ | Plugins | Put them in a folder that you mount into the container and name in `PLUGINS_DIR` |
40
40
 
41
41
  ## Update
42
42
 
@@ -45,7 +45,7 @@ git pull
45
45
  docker compose up -d --build
46
46
  ```
47
47
 
48
- The data is brought up to date at the start.
48
+ Your data is brought up to date when the container starts.
49
49
 
50
50
  ## Sign in again
51
51