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
package/bin/wizards.mjs CHANGED
@@ -4,7 +4,7 @@
4
4
  const [major, minor] = process.versions.node.split(".").map(Number);
5
5
  if (major < 24 || (major === 24 && minor < 11)) {
6
6
  console.error(
7
- `engenty wizards needs Node.js 24.11 or newer; this is ${process.version}.\n` +
7
+ `engenty wizards needs Node.js 24.11 or newer. This is ${process.version}.\n` +
8
8
  "The installer brings its own and leaves yours alone:\n\n" +
9
9
  " curl -fsSL https://engenty.ai/install.sh | bash\n",
10
10
  );
@@ -197,7 +197,7 @@ export interface PluginSpaceContext {
197
197
  */
198
198
  steps?: ("agent" | "html")[];
199
199
  }
200
- /** A space's brand as the studio's Info & Marke has it: what a plugin draws or writes in its look. */
200
+ /** A space's brand as the studio's Info & brand has it: what a plugin draws or writes in its look. */
201
201
  export interface PluginBrand {
202
202
  /** The title end users see. */
203
203
  name: string;
@@ -232,7 +232,7 @@ export interface PluginIndex {
232
232
  /** Takes one key out, or without a key every entry of the plugin in the space. */
233
233
  remove(space: string, key?: string): Promise<void>;
234
234
  }
235
- /** A Kategorie of a space: a typed property set on pages, tables, rows and files of Wissen. */
235
+ /** A category of a space: a typed property set on pages, tables, rows and files of Knowledge. */
236
236
  export interface PluginCategory {
237
237
  name: string;
238
238
  type: "choice" | "date" | "number" | "text" | "boolean";
@@ -253,7 +253,7 @@ export interface PluginCategory {
253
253
  };
254
254
  }
255
255
  /**
256
- * Kategorien of an item, by their names: a choice's value (or a list of them), a day as
256
+ * Categories of an item, by their names: a choice's value (or a list of them), a day as
257
257
  * `YYYY-MM-DD`, a number, a short text, true or false. Null takes one off.
258
258
  */
259
259
  export type PluginCategoryValues = Record<string, string | number | boolean | (string | number)[] | null>;
@@ -278,9 +278,9 @@ export interface PluginPageInput {
278
278
  position?: number;
279
279
  original?: PluginOriginal;
280
280
  categories?: PluginCategoryValues;
281
- /** A model fills the space's Kategorien the page did not get from `categories`. */
281
+ /** A model fills the space's categories the page did not get from `categories`. */
282
282
  fill?: boolean;
283
- /** Why a person should look at it ("hardly readable"); shown in Wissen. */
283
+ /** Why a person should look at it ("hardly readable"); shown in Knowledge. */
284
284
  review?: string | null;
285
285
  }
286
286
  export interface PluginTableInput {
@@ -320,7 +320,7 @@ export interface PluginDocumentInput {
320
320
  data: Uint8Array;
321
321
  /** Set on what it becomes: its first page, its first table, or the file. */
322
322
  categories?: PluginCategoryValues;
323
- /** A model fills the space's Kategorien it did not get from `categories`. */
323
+ /** A model fills the space's categories it did not get from `categories`. */
324
324
  fill?: boolean;
325
325
  }
326
326
  /** What a document became: pages and tables (the first is the one it is found as), or a file. */
@@ -373,12 +373,12 @@ export interface PluginSpaceItem {
373
373
  updatedAt: string;
374
374
  }
375
375
  /**
376
- * Wissen of a space, written by a plugin: pages, tables and files under keys of its own, with
377
- * their Kategorien. Every write is indexed: `project_search` finds it a moment later.
376
+ * Knowledge of a space, written by a plugin: pages, tables and files under keys of its own, with
377
+ * their categories. Every write is indexed: `project_search` finds it a moment later.
378
378
  */
379
379
  export interface PluginSpaceData {
380
380
  /**
381
- * Adds Kategorien to the space, or values to ones it has. `proposed`: shown to the person to
381
+ * Adds categories to the space, or values to ones it has. `proposed`: shown to the person to
382
382
  * confirm, never filled before; a later call without it takes them.
383
383
  */
384
384
  putCategories(input: {
@@ -417,14 +417,14 @@ export interface PluginSpaceData {
417
417
  }): Promise<PluginSpacePage[]>;
418
418
  /** The space's files of a kind (`document` when left out), newest first. */
419
419
  files(space: string, kind?: "logo" | "asset" | "document" | "pattern"): Promise<PluginSpaceFile[]>;
420
- /** One file of the space with its bytes: a price list someone dropped into Wissen. */
420
+ /** One file of the space with its bytes: a price list someone dropped into Knowledge. */
421
421
  readFile(space: string, fileId: string): Promise<PluginSpaceFile & {
422
422
  data: Uint8Array;
423
423
  }>;
424
424
  /** Takes out one key, or every item of the plugin in the space; what a person changed stays. */
425
425
  remove(space: string, key?: string): Promise<number>;
426
426
  /**
427
- * Writes the Übersicht of values: of one, or of every value of a choice (or of every choice)
427
+ * Writes the summary of values: of one, or of every value of a choice (or of every choice)
428
428
  * that has three items or more. Returns how many were written. Costs a model call each.
429
429
  */
430
430
  summarize(space: string, category?: string, value?: string): Promise<number>;
@@ -1021,6 +1021,24 @@ export interface PluginServerApi {
1021
1021
  publicRef(): Promise<string>;
1022
1022
  /** A route for every tenant at once (one webhook of a service for all of them). */
1023
1023
  registerSharedRoute(route: PluginSharedRoute): void;
1024
+ /**
1025
+ * Keys the plugin holds across the runtime's tenants, each for one tenant at a time: a keyword
1026
+ * on a number every tenant shares, who writes to it, a number a tenant connected. A shared
1027
+ * route finds its tenant with `holder` and enters it with `inTenant`. Keys are the plugin's
1028
+ * own, 1 to 200 characters.
1029
+ */
1030
+ claims: {
1031
+ /** Takes `key` for the current tenant; false when another tenant holds it. */
1032
+ take(key: string): Promise<boolean>;
1033
+ /** Gives `key` to the current tenant, whoever held it. */
1034
+ put(key: string): Promise<void>;
1035
+ /** Gives up the current tenant's `key`; nothing when another tenant holds it. */
1036
+ drop(key: string): Promise<void>;
1037
+ /** The ref of the tenant that holds `key` (for `inTenant`), or null. Asked outside a tenant too. */
1038
+ holder(key: string): Promise<string | null>;
1039
+ /** Whether the current tenant holds `key`. */
1040
+ mine(key: string): Promise<boolean>;
1041
+ };
1024
1042
  /** The full address of a shared route, the same for every tenant. */
1025
1043
  sharedUrl(path: string): string;
1026
1044
  /**
@@ -1046,10 +1064,11 @@ export interface PluginServerApi {
1046
1064
  withdraw(): Promise<boolean>;
1047
1065
  /**
1048
1066
  * Books what the tenant's number carried, at the Manage-App's prices: `sms` by segment
1049
- * (sent or received), `call` by started minute. The same `key` twice books once.
1067
+ * (sent or received), `call` by started minute, `whatsapp` by message sent. The same `key`
1068
+ * twice books once.
1050
1069
  */
1051
1070
  book(input: {
1052
- kind: "sms" | "call";
1071
+ kind: "sms" | "call" | "whatsapp";
1053
1072
  quantity: number;
1054
1073
  key: string;
1055
1074
  runId?: string | null;
@@ -1066,7 +1085,7 @@ export interface PluginServerApi {
1066
1085
  every(name: string, everyMs: number, handler: (tick: PluginTick) => void | Promise<void>): void;
1067
1086
  /** The space's search index, which `project_search` asks. */
1068
1087
  index: PluginIndex;
1069
- /** Wissen of a space: pages, tables and files the plugin writes, with their Kategorien. */
1088
+ /** Knowledge of a space: pages, tables and files the plugin writes, with their categories. */
1070
1089
  spaceData: PluginSpaceData;
1071
1090
  spaces: {
1072
1091
  /** The space's brand, of the current tenant; null for a space it does not have. */
@@ -57,8 +57,8 @@ export interface StudioSpaceSection {
57
57
  component: ComponentType;
58
58
  }
59
59
  /**
60
- * A part of the space page of the plugin's own, beside Info & Marke, Wissen, Daten and
61
- * Ergebnisse: an entry in the parts' menu and a page at `/space/<id>`. The component draws the
60
+ * A part of the space page of the plugin's own, beside Info & brand, Knowledge, Data and
61
+ * Results: an entry in the parts' menu and a page at `/space/<id>`. The component draws the
62
62
  * whole part; `useSpaceMenu` fills the part's menu with what it draws.
63
63
  */
64
64
  export interface StudioSpacePart {
@@ -159,7 +159,7 @@ export interface StudioAssistantCard {
159
159
  tool: string;
160
160
  component: ComponentType<StudioAssistantCardProps<any>>;
161
161
  }
162
- /** A space's brand as Info & Marke has it: what a plugin draws in its look. */
162
+ /** A space's brand as Info & brand has it: what a plugin draws in its look. */
163
163
  export interface StudioBrand {
164
164
  /** The title end users see. */
165
165
  name: string;