wizards 0.2.12 → 0.2.13
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/apps/runtime/dist/authoring/guide.js +8 -2
- package/apps/runtime/dist/db/migrations/tenant/0007_space_data.sql +43 -0
- package/apps/runtime/dist/db/migrations/tenant/meta/0007_snapshot.json +2012 -0
- package/apps/runtime/dist/db/migrations/tenant/meta/_journal.json +7 -0
- package/apps/runtime/dist/db/schema.js +55 -0
- package/apps/runtime/dist/engine/runner.js +1 -1
- package/apps/runtime/dist/routes/api.js +14 -1
- package/apps/runtime/dist/routes/runs.js +13 -7
- package/apps/runtime/dist/routes/studio.js +89 -1
- package/apps/runtime/dist/services/cloud.js +62 -2
- package/apps/runtime/dist/services/runs.js +69 -1
- package/apps/runtime/dist/services/space-data.js +361 -0
- package/apps/runtime/dist/services/spaces.js +95 -1
- package/apps/runtime/dist/store/errors.js +3 -0
- package/apps/runtime/dist/store/index.js +19 -5
- package/apps/runtime/dist/store/shared-lists.js +124 -0
- package/apps/runtime/dist/tools/index.js +4 -0
- package/apps/runtime/dist/tools/pages.js +51 -0
- package/apps/runtime/dist/tools/store.js +3 -3
- package/apps/web/dist/assets/Account-ulB5WeOT.js +1 -0
- package/apps/web/dist/assets/ChangelogDialog-BVR5814e.js +1 -0
- package/apps/web/dist/assets/ChatPanel-C7uql4_d.js +1 -0
- package/apps/web/dist/assets/{CreditsDialog-DSjsgLoo.js → CreditsDialog-o9h0Nrui.js} +1 -1
- package/apps/web/dist/assets/EditorPage-CskikVRK.js +2 -0
- package/apps/web/dist/assets/FlowPreview-YaqUirty.js +1 -0
- package/apps/web/dist/assets/{Harness-DEGZ-_YL.js → Harness-ut5xGR_o.js} +2 -2
- package/apps/web/dist/assets/HomePage-Drys3BPU.js +1 -0
- package/apps/web/dist/assets/{ImportWizard-pZCs65kL.js → ImportWizard-BGqkJFeZ.js} +1 -1
- package/apps/web/dist/assets/LocalRuntime-DwPJjv3H.js +1 -0
- package/apps/web/dist/assets/NewWizardPage-CrBSpeIw.js +2 -0
- package/apps/web/dist/assets/ProjectPage-CAdSHd0Y.js +4 -0
- package/apps/web/dist/assets/PublicRunner-JleX2stQ.js +1 -0
- package/apps/web/dist/assets/RunnerView-BWG4Odbt.js +70 -0
- package/apps/web/dist/assets/SettingsPage-CYOdJ5FL.js +1 -0
- package/apps/web/dist/assets/SetupPage-CMVwnLQm.js +1 -0
- package/apps/web/dist/assets/SharePage-CKppWAtr.js +1 -0
- package/apps/web/dist/assets/{api-u3nydnnp.js → api-DTLkC0ge.js} +2 -2
- package/apps/web/dist/assets/changelog-dI1t4l0T.js +1 -0
- package/apps/web/dist/assets/circle-alert-D2SCwFT-.js +1 -0
- package/apps/web/dist/assets/{definition-Co2Mg1qo.js → definition-Dp0DR2D6.js} +1 -1
- package/apps/web/dist/assets/{esm-CvV3man4.js → esm-B6hLaDRL.js} +1 -1
- package/apps/web/dist/assets/index-BWxUOTc4.js +10 -0
- package/apps/web/dist/assets/index-DMwk_afK.css +1 -0
- package/apps/web/dist/assets/lock-DZL2N67v.js +1 -0
- package/apps/web/dist/assets/meta-CZWUthoQ.js +1 -0
- package/apps/web/dist/assets/refresh-cw-BNtHis1x.js +1 -0
- package/apps/web/dist/assets/settings-menu-Iz6kyoDe.js +1 -0
- package/apps/web/dist/assets/{type-BqbppSsp.js → table-2-BdDuBcF2.js} +1 -1
- package/apps/web/dist/assets/ui-CHX2gEQl.js +1 -0
- package/apps/web/dist/assets/video-9fDPRPCv.js +1 -0
- package/apps/web/dist/index.html +4 -4
- package/apps/web/dist/mcp/flow.html +5 -5
- package/node_modules/@engenty-wizards/plugin-sdk/dist/studio.d.ts +12 -4
- package/node_modules/@engenty-wizards/shared/dist/definition.d.ts +6 -1
- package/node_modules/@engenty-wizards/shared/dist/definition.js +36 -2
- package/node_modules/@engenty-wizards/shared/dist/space-data.d.ts +69 -0
- package/node_modules/@engenty-wizards/shared/dist/space-data.js +46 -0
- package/node_modules/@engenty-wizards/shared/dist/store.d.ts +2 -0
- package/package.json +1 -1
- package/apps/web/dist/assets/Account-BK8Q-U-8.js +0 -1
- package/apps/web/dist/assets/ChangelogDialog-BZ8s1isE.js +0 -1
- package/apps/web/dist/assets/ChatPanel-CMf1PS2N.js +0 -1
- package/apps/web/dist/assets/EditorPage-Bpgiq7aR.js +0 -2
- package/apps/web/dist/assets/FlowPreview-B5HrjouC.js +0 -1
- package/apps/web/dist/assets/HomePage-DIDJ8Jw1.js +0 -1
- package/apps/web/dist/assets/LocalRuntime-DQW6CLg-.js +0 -1
- package/apps/web/dist/assets/NewWizardPage-uhIbKcwn.js +0 -2
- package/apps/web/dist/assets/ProjectPage-CAMddxGu.js +0 -2
- package/apps/web/dist/assets/PublicRunner-jOAbZd2P.js +0 -1
- package/apps/web/dist/assets/ReadOnly-B0-ReU_0.js +0 -1
- package/apps/web/dist/assets/RunnerView-BThdhY7S.js +0 -2
- package/apps/web/dist/assets/SettingsPage-D_6hzTLJ.js +0 -1
- package/apps/web/dist/assets/SetupPage-Cvpg9Jyh.js +0 -1
- package/apps/web/dist/assets/SharePage-CRSnOm0Z.js +0 -1
- package/apps/web/dist/assets/arrow-left-hTN1VoH1.js +0 -1
- package/apps/web/dist/assets/changelog-BJqo0vwQ.js +0 -1
- package/apps/web/dist/assets/circle-alert-B76z9TWZ.js +0 -1
- package/apps/web/dist/assets/index-CQQD8QNR.css +0 -1
- package/apps/web/dist/assets/index-CTM5iDwf.js +0 -10
- package/apps/web/dist/assets/lock-CzNXAYdi.js +0 -1
- package/apps/web/dist/assets/meta-CzzuBWbK.js +0 -1
- package/apps/web/dist/assets/mic-Bvz4mA2j.js +0 -1
- package/apps/web/dist/assets/outputs-CYynzGBS.js +0 -69
- package/apps/web/dist/assets/refresh-cw-Cmk7VCe0.js +0 -1
- package/apps/web/dist/assets/ui-gGAdXx-P.js +0 -1
- package/apps/web/dist/assets/video-DBmwF1Jm.js +0 -1
|
@@ -11,7 +11,7 @@ type Wizard = {
|
|
|
11
11
|
description: string // one sentence
|
|
12
12
|
avatar: "round"|"drop"|"dome"|"flame"|"oval"|"bean"|"pebble"|"sprout"|"tower"|"wedge" // the engenty mascot shown to end users
|
|
13
13
|
intro?: string // one friendly sentence above the first page
|
|
14
|
-
lists?: List[] // tabular data the wizard KEEPS between runs — separately for each person who runs it
|
|
14
|
+
lists?: List[] // tabular data the wizard KEEPS between runs — separately for each person who runs it, or for all with "shared"
|
|
15
15
|
connections?: Connection[] // accounts the PERSON connects during a run (their mailbox); kept for their next run
|
|
16
16
|
steps: Step[] // run top to bottom; the LAST step is always a "result"
|
|
17
17
|
}
|
|
@@ -19,6 +19,9 @@ type Wizard = {
|
|
|
19
19
|
type List = {
|
|
20
20
|
id, title, description?,
|
|
21
21
|
key?: columnId // rows are matched on this column: saving a row with a known key updates that row
|
|
22
|
+
shared?: true // ONE list for every run (leads, sign-ups, bookings, a log) instead of one per person.
|
|
23
|
+
// The person running the wizard never sees it: no list field, review or deliverable of it;
|
|
24
|
+
// the admin sees and edits it in the studio under Space → Daten
|
|
22
25
|
check?: { file?: columnId, status?: columnId }
|
|
23
26
|
// a review that shows the list lets the person go through it ROW BY ROW on a split screen:
|
|
24
27
|
// "file" = a text column holding the path of a kept file (PDF, photo), previewed beside the row;
|
|
@@ -84,7 +87,7 @@ type Field = {
|
|
|
84
87
|
type AgentStep = {
|
|
85
88
|
type: "agent"
|
|
86
89
|
instructions: string // the task, with {{templates}}
|
|
87
|
-
tools: ("web_search"|"web_fetch"|"browser"|"sandbox"|"image"|"http")[]
|
|
90
|
+
tools: ("web_search"|"web_fetch"|"browser"|"sandbox"|"image"|"http"|"pages")[]
|
|
88
91
|
mcp?: string[] // ids of the project's MCP servers this step may use
|
|
89
92
|
connections?: string[] // ids of wizard connections this step may read (mail → mail_search, mail_read, mail_save)
|
|
90
93
|
output: { format: "text"|"markdown"|"json", fields?: { id, kind: "text"|"number"|"list"|"table"|"yesno"|"choice", description, columns?: string[], options?: string[] }[] }
|
|
@@ -96,6 +99,8 @@ type AgentStep = {
|
|
|
96
99
|
}
|
|
97
100
|
// Every agent step also has, without listing them: list_read / list_write (the wizard's lists), files_list,
|
|
98
101
|
// read_document (PDF, scans and photos, Word, Excel, CSV, saved mails) and scan_documents (invoice / receipt fields, many at once).
|
|
102
|
+
// "pages" brings: page_read / page_write — Markdown pages of the space the wizard keeps for every run (notes, a log
|
|
103
|
+
// that grows with append), shown to the admin under Space → Daten; page_read also reads the space's own pages.
|
|
99
104
|
// "browser" brings: browser_open/click/type, browser_screenshot (the model looks at the page),
|
|
100
105
|
// browser_request_credentials (the PERSON types a login into the page — the model never sees it; sign-ins can be remembered),
|
|
101
106
|
// browser_request_user (the person solves a captcha or "continue with Google" in a picture of the page),
|
|
@@ -163,6 +168,7 @@ How good wizards look:
|
|
|
163
168
|
- Writing into other systems (CRM, database, spreadsheet, website): an agent step with the matching mcp server, http, or browser tool, preceded by a review step.
|
|
164
169
|
${sandboxGuideLine()}
|
|
165
170
|
- Remembering between runs ("merke dir", "führe eine Liste"): declare a list and let an agent step save into it with list_write; a later run reads it as {{lists.id}} or list_read. Give it a key column so known rows are updated, not duplicated. Never make the person re-upload last time's result.
|
|
171
|
+
- Collecting from everyone who runs the wizard (requests, leads, sign-ups, feedback): a list with "shared": true, saved with list_write. It is the admin's, under Space → Daten; never show one person's rows to another. Longer text for every run (a running summary, a log): the "pages" tool.
|
|
166
172
|
- The person's mail: one connection of kind "mail", a page field of kind "connection" early in the wizard, and the agent step lists it in "connections". Do not ask for the provider or the address in other fields — the connect field does that.
|
|
167
173
|
- Working in a service for the person (read their Notion, create an issue, look up a customer): import the service as a connector, declare a connection with "connector", put a page field of kind "connection" before the step, and list the connection in the step's "connections". Prefer a connector over the browser whenever the service has one.
|
|
168
174
|
- Logins on websites: never ask for passwords in page fields. An agent step with the browser tool asks the person at the moment it meets the login (browser_request_credentials); write that into its instructions, and that it must go on without the site when the person skips.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
CREATE TABLE `space_page` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`tenant_id` text NOT NULL,
|
|
4
|
+
`project_id` text NOT NULL,
|
|
5
|
+
`wizard_id` text,
|
|
6
|
+
`title` text NOT NULL,
|
|
7
|
+
`markdown` text DEFAULT '' NOT NULL,
|
|
8
|
+
`created_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
9
|
+
`updated_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
10
|
+
FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
11
|
+
FOREIGN KEY (`wizard_id`) REFERENCES `wizard`(`id`) ON UPDATE no action ON DELETE cascade
|
|
12
|
+
);
|
|
13
|
+
--> statement-breakpoint
|
|
14
|
+
CREATE INDEX `space_page_project` ON `space_page` (`project_id`,`wizard_id`);--> statement-breakpoint
|
|
15
|
+
CREATE TABLE `space_table` (
|
|
16
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
17
|
+
`tenant_id` text NOT NULL,
|
|
18
|
+
`project_id` text NOT NULL,
|
|
19
|
+
`wizard_id` text,
|
|
20
|
+
`list` text,
|
|
21
|
+
`key_column` text,
|
|
22
|
+
`title` text NOT NULL,
|
|
23
|
+
`columns` text NOT NULL,
|
|
24
|
+
`created_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
25
|
+
`updated_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
26
|
+
FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
27
|
+
FOREIGN KEY (`wizard_id`) REFERENCES `wizard`(`id`) ON UPDATE no action ON DELETE cascade
|
|
28
|
+
);
|
|
29
|
+
--> statement-breakpoint
|
|
30
|
+
CREATE INDEX `space_table_project` ON `space_table` (`project_id`,`wizard_id`);--> statement-breakpoint
|
|
31
|
+
CREATE UNIQUE INDEX `space_table_list` ON `space_table` (`wizard_id`,`list`);--> statement-breakpoint
|
|
32
|
+
CREATE TABLE `space_table_row` (
|
|
33
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
34
|
+
`table_id` text NOT NULL,
|
|
35
|
+
`key` text,
|
|
36
|
+
`cells` text NOT NULL,
|
|
37
|
+
`created_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
38
|
+
`updated_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
|
|
39
|
+
FOREIGN KEY (`table_id`) REFERENCES `space_table`(`id`) ON UPDATE no action ON DELETE cascade
|
|
40
|
+
);
|
|
41
|
+
--> statement-breakpoint
|
|
42
|
+
CREATE INDEX `space_table_row_table` ON `space_table_row` (`table_id`,`created_at`);--> statement-breakpoint
|
|
43
|
+
CREATE INDEX `space_table_row_key` ON `space_table_row` (`table_id`,`key`);
|