@engenty/wizards-runtime 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/runtime/dist/agents/architect.js +2 -2
- package/apps/runtime/dist/agents/studio-assistant.js +1 -1
- package/apps/runtime/dist/agents/website.js +1 -1
- package/apps/runtime/dist/app.js +1 -1
- package/apps/runtime/dist/assistant/browser.js +1 -1
- package/apps/runtime/dist/authoring/guide.js +2 -2
- package/apps/runtime/dist/authoring/ops.js +1 -1
- package/apps/runtime/dist/cli/features.js +1 -1
- package/apps/runtime/dist/cli/validate.js +2 -2
- package/apps/runtime/dist/connectors/external.js +1 -1
- package/apps/runtime/dist/connectors/index.js +2 -2
- package/apps/runtime/dist/connectors/via-account.js +1 -1
- package/apps/runtime/dist/credits/estimate.js +1 -1
- package/apps/runtime/dist/docs/dev/index.md +1 -1
- package/apps/runtime/dist/docs/dev/integration/index.md +1 -1
- package/apps/runtime/dist/docs/dev/integration/openui.md +1 -1
- package/apps/runtime/dist/docs/dev/integration/own-ui.md +2 -2
- package/apps/runtime/dist/docs/dev/plugins/examples.md +2 -3
- package/apps/runtime/dist/docs/dev/plugins/studio.md +5 -6
- package/apps/runtime/dist/docs/dev/plugins/styling.md +10 -7
- package/apps/runtime/dist/docs/user/build-a-wizard.md +2 -2
- package/apps/runtime/dist/docs/user/space.md +14 -10
- package/apps/runtime/dist/documents/parse.js +1 -1
- package/apps/runtime/dist/engine/decide.js +1 -1
- package/apps/runtime/dist/engine/events.js +1 -1
- package/apps/runtime/dist/engine/input.js +3 -3
- package/apps/runtime/dist/engine/prepare.js +1 -1
- package/apps/runtime/dist/engine/requirements.js +3 -3
- package/apps/runtime/dist/engine/runner.js +6 -6
- package/apps/runtime/dist/engine/steps.js +6 -6
- package/apps/runtime/dist/engine/surface.js +3 -3
- package/apps/runtime/dist/engine/template.js +4 -4
- package/apps/runtime/dist/features.js +1 -1
- package/apps/runtime/dist/film/project.js +2 -2
- package/apps/runtime/dist/film/step.js +2 -2
- package/apps/runtime/dist/harness/apple.js +1 -1
- package/apps/runtime/dist/harness/claude.js +1 -1
- package/apps/runtime/dist/harness/codex.js +1 -1
- package/apps/runtime/dist/harness/model.js +1 -1
- package/apps/runtime/dist/harness/terminal.js +1 -1
- package/apps/runtime/dist/mcp/flow-app.js +1 -1
- package/apps/runtime/dist/media/conversation.js +1 -1
- package/apps/runtime/dist/media/transcribe.js +1 -1
- package/apps/runtime/dist/model-errors.js +1 -1
- package/apps/runtime/dist/models.js +3 -3
- package/apps/runtime/dist/plugin.js +1 -1
- package/apps/runtime/dist/plugins/discovery.js +1 -1
- package/apps/runtime/dist/plugins/loader.js +2 -2
- package/apps/runtime/dist/plugins/runs.js +2 -2
- package/apps/runtime/dist/render/downloads.js +2 -2
- package/apps/runtime/dist/render/shaped.js +1 -1
- package/apps/runtime/dist/routes/api.js +2 -2
- package/apps/runtime/dist/routes/lang.js +1 -1
- package/apps/runtime/dist/routes/marketplace.js +1 -1
- package/apps/runtime/dist/routes/runs.js +4 -4
- package/apps/runtime/dist/routes/studio.js +8 -8
- package/apps/runtime/dist/services/access.js +1 -1
- package/apps/runtime/dist/services/api.js +4 -4
- package/apps/runtime/dist/services/assistant-chats.js +2 -2
- package/apps/runtime/dist/services/brand.js +2 -2
- package/apps/runtime/dist/services/cloud.js +1 -1
- package/apps/runtime/dist/services/errors.js +1 -1
- package/apps/runtime/dist/services/files.js +1 -1
- package/apps/runtime/dist/services/knowledge-model.js +3 -3
- package/apps/runtime/dist/services/knowledge.js +2 -2
- package/apps/runtime/dist/services/marketplace.js +5 -5
- package/apps/runtime/dist/services/package-file.js +3 -3
- package/apps/runtime/dist/services/package.js +2 -2
- package/apps/runtime/dist/services/profile.js +1 -1
- package/apps/runtime/dist/services/project-files.js +2 -2
- package/apps/runtime/dist/services/project-index.js +1 -1
- package/apps/runtime/dist/services/projects.js +2 -2
- package/apps/runtime/dist/services/runners.js +3 -3
- package/apps/runtime/dist/services/runs.js +2 -2
- package/apps/runtime/dist/services/shares.js +1 -1
- package/apps/runtime/dist/services/site.js +2 -2
- package/apps/runtime/dist/services/space-categories.js +3 -3
- package/apps/runtime/dist/services/space-data.js +4 -4
- package/apps/runtime/dist/services/spaces.js +6 -6
- package/apps/runtime/dist/services/translations.js +5 -5
- package/apps/runtime/dist/services/widgets.js +1 -1
- package/apps/runtime/dist/services/wizards.js +3 -3
- package/apps/runtime/dist/sharing/files.js +1 -1
- package/apps/runtime/dist/sharing/jobs.js +1 -1
- package/apps/runtime/dist/store/index.js +3 -3
- package/apps/runtime/dist/store/shared-lists.js +1 -1
- package/apps/runtime/dist/texts.js +1 -1
- package/apps/runtime/dist/tools/index.js +1 -1
- package/apps/runtime/dist/tools/plugin.js +2 -2
- package/apps/runtime/dist/tools/project.js +1 -1
- package/apps/runtime/dist/tools/store.js +2 -2
- package/apps/runtime/dist/widgets/bundle.js +1 -1
- package/apps/runtime/dist/widgets/step.js +3 -3
- package/apps/web/dist/assets/AboutDialog-CB0EwGxP.js +1 -0
- package/apps/web/dist/assets/{ChangelogDialog-BEyz7LNE.js → ChangelogDialog-BQRBkiVD.js} +1 -1
- package/apps/web/dist/assets/ChatView-BLZkLlHi.js +10 -0
- package/apps/web/dist/assets/EditorPage-YawfYRAL.js +4 -0
- package/apps/web/dist/assets/{FlowPreview-CLf8WHiG.js → FlowPreview-B0xF8e3r.js} +1 -1
- package/apps/web/dist/assets/{Harness-jc3jpWvI.js → Harness-snRbALGd.js} +2 -2
- package/apps/web/dist/assets/{NewWizardChannels-BPGZ4pfP.js → NewWizardChannels-BGzp9z0m.js} +1 -1
- package/apps/web/dist/assets/NewWizardPage-cOHfwcnA.js +7 -0
- package/apps/web/dist/assets/OnboardingPage-jB3ChKi3.js +1 -0
- package/apps/web/dist/assets/ProjectPage-hRCBquNb.js +1 -0
- package/apps/web/dist/assets/PublicRunner-D_ZkOyRV.js +1 -0
- package/apps/web/dist/assets/{ReadOnly-BVwbqvpi.js → ReadOnly-Db_odT6Y.js} +1 -1
- package/apps/web/dist/assets/RunDrawer-B6AQw90D.js +4 -0
- package/apps/web/dist/assets/RunnerView-DHUkvi_G.js +1 -0
- package/apps/web/dist/assets/SettingsPage-DleMaLz8.js +2 -0
- package/apps/web/dist/assets/SetupPage-DTvVJR1U.js +1 -0
- package/apps/web/dist/assets/{SharePage-CTTSudtp.js → SharePage-Bl-rfCji.js} +1 -1
- package/apps/web/dist/assets/changelog-BcW79fHm.js +1 -0
- package/apps/web/dist/assets/esm-Bji0ThaK.js +7 -0
- package/apps/web/dist/assets/index-CQKA-z2z.js +14 -0
- package/apps/web/dist/assets/index-Cnziz-H-.css +1 -0
- package/apps/web/dist/assets/oss-credits-BjwxLtU4.js +1 -0
- package/apps/web/dist/assets/{phone-5SYD9OrJ.js → phone-DwAf8S3l.js} +1 -1
- package/apps/web/dist/assets/settings-menu-B1ND1GF3.js +1 -0
- package/apps/web/dist/assets/ui-Cdv3QUOd.js +137 -0
- package/apps/web/dist/assets/{upload-Bevcvx5V.js → upload-DCMZI6pp.js} +1 -1
- package/apps/web/dist/assets/{wrench-ZD5SCsz9.js → wrench-BRYtnxti.js} +1 -1
- package/apps/web/dist/index.html +3 -3
- package/apps/web/dist/mcp/flow.html +5 -5
- package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/package.json +1 -1
- package/package.json +3 -3
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/apps/web/dist/assets/AboutDialog-CiiSwL4t.js +0 -1
- package/apps/web/dist/assets/ChatView-9RkWts5F.js +0 -10
- package/apps/web/dist/assets/EditorPage-CCsKKcYo.js +0 -4
- package/apps/web/dist/assets/NewWizardPage-tidycL7Y.js +0 -7
- package/apps/web/dist/assets/OnboardingPage-DtVuaIuv.js +0 -1
- package/apps/web/dist/assets/ProjectPage-BsWgCP5z.js +0 -1
- package/apps/web/dist/assets/PublicRunner-CkA_etKX.js +0 -1
- package/apps/web/dist/assets/RunDrawer-CkFpnWCC.js +0 -4
- package/apps/web/dist/assets/RunnerView-CxTFM-lx.js +0 -1
- package/apps/web/dist/assets/SettingsPage-DM1wNAE7.js +0 -1
- package/apps/web/dist/assets/SetupPage-BKnQqiab.js +0 -1
- package/apps/web/dist/assets/changelog-DBEwyB1f.js +0 -1
- package/apps/web/dist/assets/esm-DtNAg8uF.js +0 -7
- package/apps/web/dist/assets/index-V1M59Yez.css +0 -1
- package/apps/web/dist/assets/index-xIz8znhq.js +0 -14
- package/apps/web/dist/assets/oss-credits-BWE03Xax.js +0 -1
- package/apps/web/dist/assets/settings-menu-Bn5-7Lqk.js +0 -1
- package/apps/web/dist/assets/ui-s39eGOtW.js +0 -137
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/assistant.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/assistant.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/changes.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/changes.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/claude-plugin.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/claude-plugin.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/connectors.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/connectors.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/decision.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/decision.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/definition.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/definition.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns-format.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns-format.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns-value.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns-value.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/columns.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/index.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/data-tables/index.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/search-index/catalog-lexical.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/search-index/catalog-lexical.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/search-index/catalog-rank.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/engenty/search-index/catalog-rank.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/feature-flags.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/feature-flags.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/features.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/features.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/fit.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/fit.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/json-schema.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/json-schema.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/knowledge.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/knowledge.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace-entry.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace-entry.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace-search.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace-search.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/marketplace.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/merge.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/merge.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/numbers.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/numbers.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/projects.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/projects.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/providers.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/providers.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/run.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/run.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/runner-texts.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/runner-texts.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/runners.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/runners.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/shape.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/shape.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/sharing.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/sharing.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/space-data.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/space-data.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/store.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/store.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/surface.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/surface.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/texts.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/texts.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/translation.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/translation.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/wizard-package.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/wizard-package.js +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/workspace.d.ts +0 -0
- /package/node_modules/{@engenty-wizards/shared → @engenty/wizards-shared}/dist/workspace.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { anthropic } from "@ai-sdk/anthropic";
|
|
2
|
-
import { SURFACE_GUIDE } from "@engenty-
|
|
3
|
-
import { isTextMime } from "@engenty-
|
|
2
|
+
import { SURFACE_GUIDE } from "@engenty/wizards-shared/surface";
|
|
3
|
+
import { isTextMime } from "@engenty/wizards-shared/workspace";
|
|
4
4
|
import { Agent } from "@mastra/core/agent";
|
|
5
5
|
import { createTool } from "@mastra/core/tools";
|
|
6
6
|
import { z } from "zod";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { anthropic } from "@ai-sdk/anthropic";
|
|
2
|
-
import { cleanAssetSections, cleanLogoSections, FACT_TYPES, FONT_USES, factKey, gradientCss, PROJECT_FILE_KINDS, PROJECT_LIMITS, parseGradient, RULE_MARKS, textStyleLine, } from "@engenty-
|
|
2
|
+
import { cleanAssetSections, cleanLogoSections, FACT_TYPES, FONT_USES, factKey, gradientCss, PROJECT_FILE_KINDS, PROJECT_LIMITS, parseGradient, RULE_MARKS, textStyleLine, } from "@engenty/wizards-shared/projects";
|
|
3
3
|
import { Agent } from "@mastra/core/agent";
|
|
4
4
|
import { createTool } from "@mastra/core/tools";
|
|
5
5
|
import { nanoid } from "nanoid";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FONT_WEIGHTS } from "@engenty-
|
|
1
|
+
import { FONT_WEIGHTS } from "@engenty/wizards-shared/projects";
|
|
2
2
|
import { webContext } from "../render/chromium.js";
|
|
3
3
|
import { htmlToMarkdown } from "../render/convert.js";
|
|
4
4
|
import { safeFetch } from "../tools/net-guard.js";
|
package/apps/runtime/dist/app.js
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { BUILT_IN_RUNNERS, RUNNER_ID } from "@engenty-
|
|
5
|
+
import { BUILT_IN_RUNNERS, RUNNER_ID } from "@engenty/wizards-shared/runners";
|
|
6
6
|
import { serveStatic } from "@hono/node-server/serve-static";
|
|
7
7
|
import { and, eq } from "drizzle-orm";
|
|
8
8
|
import { Hono } from "hono";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BROWSER_TOOL_TIMEOUT_MS } from "@engenty-
|
|
1
|
+
import { BROWSER_TOOL_TIMEOUT_MS } from "@engenty/wizards-shared/assistant";
|
|
2
2
|
const waiting = new Map();
|
|
3
3
|
/** The browser's answer to `callId`; a note for the model when it gives none in time. */
|
|
4
4
|
export function awaitBrowser(userId, callId, signal) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SURFACE_GUIDE } from "@engenty-
|
|
2
|
-
import { WIZARD_SCHEMA_URL } from "@engenty-
|
|
1
|
+
import { SURFACE_GUIDE } from "@engenty/wizards-shared/surface";
|
|
2
|
+
import { WIZARD_SCHEMA_URL } from "@engenty/wizards-shared/wizard-package";
|
|
3
3
|
import { sandboxGuideLine } from "../sandbox/index.js";
|
|
4
4
|
import { EXAMPLE_WIZARD } from "./example.js";
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultFeatures, FEATURE_NAME, parseFeatures, resolveFeatures, } from "@engenty-
|
|
1
|
+
import { defaultFeatures, FEATURE_NAME, parseFeatures, resolveFeatures, } from "@engenty/wizards-shared/features";
|
|
2
2
|
import { declaredFeatures, featuresFile, fileFeatures, writeFeature } from "../features.js";
|
|
3
3
|
import { discoverPlugins } from "../plugins/discovery.js";
|
|
4
4
|
import { pluginDirs } from "../plugins/loader.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import { basename, dirname, join, relative } from "node:path";
|
|
3
|
-
import { parseWizard } from "@engenty-
|
|
4
|
-
import { PACKAGE_FILES, PACKAGE_MANIFEST } from "@engenty-
|
|
3
|
+
import { parseWizard } from "@engenty/wizards-shared/definition";
|
|
4
|
+
import { PACKAGE_FILES, PACKAGE_MANIFEST } from "@engenty/wizards-shared/wizard-package";
|
|
5
5
|
import { json, readManifest, readPackage } from "../services/package-file.js";
|
|
6
6
|
import { bad, dim, ok } from "./ui.js";
|
|
7
7
|
function workspace(folder) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isLang } from "@engenty-
|
|
2
|
-
import { note } from "@engenty-
|
|
1
|
+
import { isLang } from "@engenty/wizards-shared/definition";
|
|
2
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
3
3
|
import { eq } from "drizzle-orm";
|
|
4
4
|
import { db, schema } from "../db/client.js";
|
|
5
5
|
import { buildAuthorizationUrl, createOAuth2Pkce, exchangeAuthorizationCode, refreshAccessToken, } from "../engenty/connections-sdk/oauth2.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isDecidedField, isDecisionStep, } from "@engenty-
|
|
1
|
+
import { isDecidedField, isDecisionStep, } from "@engenty/wizards-shared/definition";
|
|
2
2
|
import { and, desc, eq, inArray, isNull } from "drizzle-orm";
|
|
3
3
|
import { db, schema } from "../db/client.js";
|
|
4
4
|
import { mostAlongOnePath } from "../engine/requirements.js";
|
|
@@ -15,7 +15,7 @@ its own page, on a website, in a chat or in your own app.
|
|
|
15
15
|
| [The wizard format](./wizard-format/index.md) | A wizard as JSON: its steps, fields, templates and branches |
|
|
16
16
|
| [JSON Schema](./wizard-format/validate.md) | The JSON Schema for your editor and `wizards validate` |
|
|
17
17
|
| [Integration](./integration/index.md) | A published wizard for people, for AI apps and for your own code |
|
|
18
|
-
| [Your own UI](./integration/own-ui.md) | Your app draws the run with `@engenty-
|
|
18
|
+
| [Your own UI](./integration/own-ui.md) | Your app draws the run with `@engenty/wizards-runner` |
|
|
19
19
|
| [Plugins](./plugins/index.md) | Tools for AI steps, routes with their own tables, pages in the studio |
|
|
20
20
|
| [The API](./api.md) | What a program may rely on, what is private, and how a client names itself |
|
|
21
21
|
|
|
@@ -29,7 +29,7 @@ other systems, from a plain link to a chat that starts the wizard by itself.
|
|
|
29
29
|
|
|
30
30
|
| | |
|
|
31
31
|
|---|---|
|
|
32
|
-
| [Your own UI](./own-ui.md) | Your app draws the run with `@engenty-
|
|
32
|
+
| [Your own UI](./own-ui.md) | Your app draws the run with `@engenty/wizards-runner` |
|
|
33
33
|
| [Results to your systems](./results.md) | What a run produces goes on to your own systems |
|
|
34
34
|
|
|
35
35
|
Each way starts from a published wizard. [Test and share](../../user/test-and-share.md) in the
|
|
@@ -148,7 +148,7 @@ the wizards it may start and a proxy to the runtime. In short:
|
|
|
148
148
|
Each one’s token is the part of its link after `/w/`.
|
|
149
149
|
2. Put an `.env.local` in `examples/openui-chat`: `WIZARDS=<token>,<token>`, `CHAT_BASE_URL`,
|
|
150
150
|
`CHAT_API_KEY` and `CHAT_MODEL` for the chat’s model.
|
|
151
|
-
3. `pnpm --filter @engenty-
|
|
151
|
+
3. `pnpm --filter @engenty/wizards-example-openui-chat dev` and open `http://localhost:5190`.
|
|
152
152
|
4. Ask for something a wizard does, in your own words.
|
|
153
153
|
|
|
154
154
|
The example’s README has the details, the endpoints that work and what to set while you try
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Your own UI
|
|
3
|
-
description: Draw a wizard’s run in your own app with @engenty-
|
|
3
|
+
description: Draw a wizard’s run in your own app with @engenty/wizards-runner and the runtime’s public run routes.
|
|
4
4
|
version: 0.7.4
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
This page is not written yet.
|
|
8
8
|
|
|
9
9
|
Until then, [OpenUI](./openui.md) shows one app that does it: it draws the run with
|
|
10
|
-
`@engenty-
|
|
10
|
+
`@engenty/wizards-runner` (`packages/runner`) over the runtime’s public run routes.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Examples
|
|
3
3
|
description: Two plugins in the repository to read, run and copy.
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
The repository has two example plugins. Load them from a checkout with one line in `.env.local`:
|
|
@@ -75,8 +75,7 @@ node scripts/build-plugin.mjs examples/plugins/run-log --watch
|
|
|
75
75
|
Then, in the studio:
|
|
76
76
|
|
|
77
77
|
1. Test a wizard to its end.
|
|
78
|
-
2. Open the space’s Results
|
|
79
|
-
page with the house icon in the app bar and go to Results. “Runs” stands below the results
|
|
78
|
+
2. Open the space’s Results with the tray icon in the app bar. “Runs” stands below the results
|
|
80
79
|
and shows the last five runs of the space’s wizards. Its last line, “All … runs”, opens the
|
|
81
80
|
page with the whole log.
|
|
82
81
|
3. Settings → Runs shows how many lines are kept, and “Delete all” deletes them.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: The studio half
|
|
3
3
|
description: Pages, icons in the app bar, sections of the settings and of the space page – written in React, built once, drawn inside the studio.
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
The studio half is `ui/plugin.tsx`. Its default export is a function; the studio calls it after
|
|
@@ -10,7 +10,7 @@ same router, the same components.
|
|
|
10
10
|
|
|
11
11
|
```tsx
|
|
12
12
|
import { defineStudioPlugin } from "@engenty/wizards/plugin/studio";
|
|
13
|
-
import { Button, Card, Empty, Spinner } from "@engenty-
|
|
13
|
+
import { Button, Card, Empty, Spinner } from "@engenty/wizards-studio/ui";
|
|
14
14
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
15
15
|
import { Users } from "lucide-react";
|
|
16
16
|
|
|
@@ -268,12 +268,11 @@ studio.useCrumbs([{ label: t("title"), to: "/contacts" }, { label: person.name ?
|
|
|
268
268
|
## A page with a menu
|
|
269
269
|
|
|
270
270
|
A page with parts of its own puts its menu where the studio’s own pages put theirs. `MenuPage`
|
|
271
|
-
from `@engenty-
|
|
272
|
-
the page’s left otherwise, so there is only ever one menu at the left. `PageMenu` draws the menu
|
|
271
|
+
from `@engenty/wizards-studio/ui` draws the menu at the page’s left. `PageMenu` draws the menu
|
|
273
272
|
as the settings do: a list with one level below it, and tabs on a phone.
|
|
274
273
|
|
|
275
274
|
```tsx
|
|
276
|
-
import { MenuPage, PageMenu } from "@engenty-
|
|
275
|
+
import { MenuPage, PageMenu } from "@engenty/wizards-studio/ui";
|
|
277
276
|
import { useParams } from "react-router";
|
|
278
277
|
|
|
279
278
|
function ContactsPage() {
|
|
@@ -338,7 +337,7 @@ there is one React and one router on the page:
|
|
|
338
337
|
| `react-dom` | `createPortal`, `flushSync` |
|
|
339
338
|
| `react-router` | `Link`, `NavLink`, `Navigate`, `useNavigate`, `useParams`, `useLocation`, `useSearchParams` |
|
|
340
339
|
| `@tanstack/react-query` | `useQuery`, `useMutation`, `useQueryClient` |
|
|
341
|
-
| `@engenty-
|
|
340
|
+
| `@engenty/wizards-studio/ui` | The studio’s components, see [Styles and components](./styling.md). The earlier name `@engenty-wizards/web/ui` still works |
|
|
342
341
|
| `@engenty/wizards/plugin/studio` | `defineStudioPlugin` and the types |
|
|
343
342
|
|
|
344
343
|
Everything else a plugin imports is bundled into `client.js`. A package the plugin’s folder
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Styles and components
|
|
3
3
|
description: The studio's components, Tailwind against the studio's theme, and why a plugin's styles never leak.
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
A plugin’s page should look like the studio. Two things make that easy: the studio’s components
|
|
@@ -9,7 +9,7 @@ and its theme.
|
|
|
9
9
|
|
|
10
10
|
## Components
|
|
11
11
|
|
|
12
|
-
`@engenty-
|
|
12
|
+
`@engenty/wizards-studio/ui` is what the studio itself is drawn with:
|
|
13
13
|
|
|
14
14
|
| Component | For | Props beside the element’s own |
|
|
15
15
|
|---|---|---|
|
|
@@ -28,7 +28,7 @@ and its theme.
|
|
|
28
28
|
| `DateRangePicker` | A day or a period in one month: the first click is the start, the second the end | `from`, `to`, `onChange({ from, to })`, `min`, `max` |
|
|
29
29
|
| `TimePicker` | A time of day from an hour and a minute column; arrow keys on the field move it by `step` | `value` (“HH:MM” or “”), `onChange`, `step` (minutes, default 5), `compact` (narrow, no clock) |
|
|
30
30
|
| `PageMenu` | A page’s own menu: a list at the side with one level below that slides in, tabs on a phone | `title`, `entries` ({ id, label, icon?, to, entries? }), `current`, `footer` |
|
|
31
|
-
| `MenuPage` | A page with a menu of its own: the menu stands at the page’s left
|
|
31
|
+
| `MenuPage` | A page with a menu of its own: the menu stands at the page’s left | `menu` (a `PageMenu`, or any), `children` (the page) |
|
|
32
32
|
| `Composer` | The field a message is written in: text, dictation, files, send | `onSend(text, files)` (false keeps the draft), `placeholder`, `disabled`, `attach`, `floating` |
|
|
33
33
|
| `Dialog` | A modal; on a phone it fills the screen | `open`, `onClose`, `title`, `wide` (`true`, or `"page"` for a document), `height="tall"` (for tabs, folds or lists: its height does not jump), `bare` (the children are the panel) |
|
|
34
34
|
| `Spinner`, `Empty` | Loading, and nothing there yet | |
|
|
@@ -45,7 +45,7 @@ and its theme.
|
|
|
45
45
|
| `newId()` | A short id for something new | |
|
|
46
46
|
|
|
47
47
|
```tsx
|
|
48
|
-
import { Button, Card, Chip, Label, Input } from "@engenty-
|
|
48
|
+
import { Button, Card, Chip, Label, Input } from "@engenty/wizards-studio/ui";
|
|
49
49
|
|
|
50
50
|
<Card className="flex flex-col gap-4 p-5">
|
|
51
51
|
<Label hint="Where the message goes.">Address</Label>
|
|
@@ -57,11 +57,14 @@ import { Button, Card, Chip, Label, Input } from "@engenty-wizards/web/ui";
|
|
|
57
57
|
</Card>
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
A plugin written against the earlier name, `@engenty-wizards/web/ui`, still builds: the build
|
|
61
|
+
maps both names to the same components.
|
|
62
|
+
|
|
60
63
|
Icons are from `lucide-react`.
|
|
61
64
|
|
|
62
|
-
Most of these components live in the runner package (`@engenty-
|
|
63
|
-
run page looks like the studio. Import them from `@engenty-
|
|
64
|
-
the import the studio shares. `@engenty-
|
|
65
|
+
Most of these components live in the runner package (`@engenty/wizards-runner`), so a wizard’s
|
|
66
|
+
run page looks like the studio. Import them from `@engenty/wizards-studio/ui` all the same: that is
|
|
67
|
+
the import the studio shares. `@engenty/wizards-runner` is not shared, so the build would bundle
|
|
65
68
|
it into `client.js`.
|
|
66
69
|
|
|
67
70
|
## Tailwind
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Build a wizard
|
|
3
3
|
description: Describe what the wizard should do, or start from a template. Then change it in the chat or step by step.
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Start one
|
|
8
8
|
|
|
9
|
-
“New wizard” on the list of your wizards, or in the
|
|
9
|
+
“New wizard” on the list of your wizards, or in the space’s menu, opens the page “What should your
|
|
10
10
|
wizard do?”. It gives you three ways in:
|
|
11
11
|
|
|
12
12
|
| Way | How |
|
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Space
|
|
3
3
|
description: What your wizards share and produce – who you are, what they look things up in, and the results of their runs.
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
Your space holds what all your wizards share, and what they produce. Every AI step knows it, so a
|
|
8
8
|
wizard never has to ask for your company’s name or address.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
The app bar holds its places, below the space’s tile in its corner:
|
|
11
11
|
|
|
12
|
-
- The house
|
|
13
|
-
- The
|
|
14
|
-
|
|
15
|
-
closed.
|
|
12
|
+
- The house opens the space’s wizards: the list and “New wizard”.
|
|
13
|
+
- The layers below it open the space’s page.
|
|
14
|
+
- The tray below them opens the space’s results.
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
On a phone the bar floats along the bottom with the house, the layers and “More” (⋯), which
|
|
17
|
+
holds the results, the settings and the rest. The space’s tile and name sit at the top left, your
|
|
18
|
+
picture at the top right.
|
|
19
|
+
|
|
20
|
+
On the space’s page, the menu on the left shows its three parts. A part opens its own sections,
|
|
21
|
+
and the arrow at the top leads back. On a phone, the parts, a part’s sections and the page take
|
|
22
|
+
turns.
|
|
23
|
+
|
|
24
|
+
Results have no menu: the list above them picks one wizard or all of them.
|
|
20
25
|
|
|
21
26
|
| Part | Sections | Used for |
|
|
22
27
|
|---|---|---|
|
|
23
28
|
| Info & brand | Basics, Facts, Logos, Colours, Brand assets | Who you are and how you look |
|
|
24
29
|
| Knowledge | All, then each category, then the sections plugins add | What every AI step looks things up in |
|
|
25
30
|
| Data | All data, General, then each wizard | Tables and pages the wizards keep |
|
|
26
|
-
| Results | All results, then each wizard | The runs that reached their result |
|
|
27
31
|
|
|
28
32
|
## Info & brand
|
|
29
33
|
|
|
@@ -2,7 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { existsSync, mkdirSync } from "node:fs";
|
|
3
3
|
import { readFile, writeFile } from "node:fs/promises";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import { note } from "@engenty-
|
|
5
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
6
6
|
import { generateText, Output } from "ai";
|
|
7
7
|
import PostalMime from "postal-mime";
|
|
8
8
|
import { z } from "zod";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decisionSchema, readObject, readSystemOne, } from "@engenty-
|
|
1
|
+
import { decisionSchema, readObject, readSystemOne, } from "@engenty/wizards-shared/decision";
|
|
2
2
|
import { generateText, Output } from "ai";
|
|
3
3
|
import { costOf, systemOneAccess, textModel } from "../models.js";
|
|
4
4
|
export class DecisionError extends Error {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AsyncResource } from "node:async_hooks";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
|
-
import { noteText } from "@engenty-
|
|
3
|
+
import { noteText } from "@engenty/wizards-shared/run";
|
|
4
4
|
import { and, desc, eq, gt, sql } from "drizzle-orm";
|
|
5
5
|
import { db, schema } from "../db/client.js";
|
|
6
6
|
const bus = new EventEmitter();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { isDecidedField, isLang, isLocationValue, MAX_FILES, offeredSlot, shownFields, } from "@engenty-
|
|
2
|
-
import { readNumber } from "@engenty-
|
|
3
|
-
import { note, saidText } from "@engenty-
|
|
1
|
+
import { isDecidedField, isLang, isLocationValue, MAX_FILES, offeredSlot, shownFields, } from "@engenty/wizards-shared/definition";
|
|
2
|
+
import { readNumber } from "@engenty/wizards-shared/numbers";
|
|
3
|
+
import { note, saidText } from "@engenty/wizards-shared/run";
|
|
4
4
|
/** The field errors in a language, for whoever reads them. */
|
|
5
5
|
export function fieldErrorsIn(errors, lang) {
|
|
6
6
|
return errors.map((e) => ({ field: e.field, message: saidText(e.message, lang) }));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { allFields, isAudioValue } from "@engenty-
|
|
1
|
+
import { allFields, isAudioValue } from "@engenty/wizards-shared/definition";
|
|
2
2
|
import { extFor, loadAsset } from "../files/storage.js";
|
|
3
3
|
import { listenPieces, transcribeAudio } from "../media/transcribe.js";
|
|
4
4
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { conditionMatches, conditionsOf, isDecidedField, isDecisionStep, isOtherwise, MODEL_CLASSES, } from "@engenty-
|
|
2
|
-
import { closedChoicesFor, openValue, otherwiseIndex, unavoidableFrom, unavoidableSteps, } from "@engenty-
|
|
3
|
-
import { note, saidText } from "@engenty-
|
|
1
|
+
import { conditionMatches, conditionsOf, isDecidedField, isDecisionStep, isOtherwise, MODEL_CLASSES, } from "@engenty/wizards-shared/definition";
|
|
2
|
+
import { closedChoicesFor, openValue, otherwiseIndex, unavoidableFrom, unavoidableSteps, } from "@engenty/wizards-shared/fit";
|
|
3
|
+
import { note, saidText } from "@engenty/wizards-shared/run";
|
|
4
4
|
import { classProblem, filmClient } from "../models.js";
|
|
5
5
|
// The steps every run passes through, and the choices that lead around a missing model, are
|
|
6
6
|
// pure and shared (packages/shared/src/fit.ts): the standalone check uses the same.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { marginOf, } from "@engenty-
|
|
2
|
-
import { branchValues, cardsFromData, conditionsOf, dataRef, followRules, formatsFor, isDecidedField, LIST_FORMATS, listRef, loopKey, MAX_SHOWN_FIELDS, optionsFromData, otherwiseOf, pageNeeds, textLang, whenHolds, wizardLang, } from "@engenty-
|
|
3
|
-
import { note, saidText, } from "@engenty-
|
|
4
|
-
import { CONVERSATION_RUNNERS, DEFAULT_RUNNER_SETTINGS } from "@engenty-
|
|
5
|
-
import { fitData } from "@engenty-
|
|
6
|
-
import { machineTranslated, translateDefinition } from "@engenty-
|
|
1
|
+
import { marginOf, } from "@engenty/wizards-shared/decision";
|
|
2
|
+
import { branchValues, cardsFromData, conditionsOf, dataRef, followRules, formatsFor, isDecidedField, LIST_FORMATS, listRef, loopKey, MAX_SHOWN_FIELDS, optionsFromData, otherwiseOf, pageNeeds, textLang, whenHolds, wizardLang, } from "@engenty/wizards-shared/definition";
|
|
3
|
+
import { note, saidText, } from "@engenty/wizards-shared/run";
|
|
4
|
+
import { CONVERSATION_RUNNERS, DEFAULT_RUNNER_SETTINGS } from "@engenty/wizards-shared/runners";
|
|
5
|
+
import { fitData } from "@engenty/wizards-shared/shape";
|
|
6
|
+
import { machineTranslated, translateDefinition } from "@engenty/wizards-shared/translation";
|
|
7
7
|
import { eq } from "drizzle-orm";
|
|
8
8
|
import { nanoid } from "nanoid";
|
|
9
9
|
import { connectionViews } from "../connectors/index.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { pOf } from "@engenty-
|
|
2
|
-
import { allFields, dataRef, isDecisionStep, langNameEn, localeOf, stepShape, templateRefs, wizardLang, } from "@engenty-
|
|
3
|
-
import { mainLogo, ruleLines, runTheme } from "@engenty-
|
|
4
|
-
import { note as runNote } from "@engenty-
|
|
5
|
-
import { fitData, labelOf, recordsOf, shapeJsonSchema, shapeLines, shapeZod, titleKey, } from "@engenty-
|
|
6
|
-
import { SURFACE_GUIDE, validateSurface, } from "@engenty-
|
|
1
|
+
import { pOf } from "@engenty/wizards-shared/decision";
|
|
2
|
+
import { allFields, dataRef, isDecisionStep, langNameEn, localeOf, stepShape, templateRefs, wizardLang, } from "@engenty/wizards-shared/definition";
|
|
3
|
+
import { mainLogo, ruleLines, runTheme } from "@engenty/wizards-shared/projects";
|
|
4
|
+
import { note as runNote } from "@engenty/wizards-shared/run";
|
|
5
|
+
import { fitData, labelOf, recordsOf, shapeJsonSchema, shapeLines, shapeZod, titleKey, } from "@engenty/wizards-shared/shape";
|
|
6
|
+
import { SURFACE_GUIDE, validateSurface, } from "@engenty/wizards-shared/surface";
|
|
7
7
|
import { Agent } from "@mastra/core/agent";
|
|
8
8
|
import { generateText, jsonSchema, Output, parsePartialJson } from "ai";
|
|
9
9
|
import { extFor, loadAsset, loadAssetText } from "../files/storage.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { assembleSurface, dataRef, listRef, } from "@engenty-
|
|
2
|
-
import { note } from "@engenty-
|
|
3
|
-
import { validateSurface } from "@engenty-
|
|
1
|
+
import { assembleSurface, dataRef, listRef, } from "@engenty/wizards-shared/definition";
|
|
2
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
3
|
+
import { validateSurface } from "@engenty/wizards-shared/surface";
|
|
4
4
|
import { decide } from "./decide.js";
|
|
5
5
|
import { answersAsText, resolveRef } from "./template.js";
|
|
6
6
|
import { StepError } from "./types.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { allFields, isAudioValue, isLocationValue, itemsTotals, localeOf, locationText, wizardLang, } from "@engenty-
|
|
2
|
-
import { formatMoney } from "@engenty-
|
|
3
|
-
import { fontLicenseWords, gradientCss, textStyleLine, } from "@engenty-
|
|
4
|
-
import { listAsMarkdown } from "@engenty-
|
|
1
|
+
import { allFields, isAudioValue, isLocationValue, itemsTotals, localeOf, locationText, wizardLang, } from "@engenty/wizards-shared/definition";
|
|
2
|
+
import { formatMoney } from "@engenty/wizards-shared/numbers";
|
|
3
|
+
import { fontLicenseWords, gradientCss, textStyleLine, } from "@engenty/wizards-shared/projects";
|
|
4
|
+
import { listAsMarkdown } from "@engenty/wizards-shared/store";
|
|
5
5
|
const TEMPLATE_RE = /\{\{\s*([^}]+?)\s*\}\}/g;
|
|
6
6
|
/** Line items as a Markdown table with their totals — what a model needs to write a document. */
|
|
7
7
|
export function itemsAsMarkdown(field, value, values, lang = "en") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
|
-
import { declaredByPlugin, defaultFeatures, FEATURES, featureOn, parseFeatures, resolveFeatures, } from "@engenty-
|
|
3
|
+
import { declaredByPlugin, defaultFeatures, FEATURES, featureOn, parseFeatures, resolveFeatures, } from "@engenty/wizards-shared/features";
|
|
4
4
|
import { accountOverview } from "./auth/account.js";
|
|
5
5
|
import { isCheckout, layout, packageRoot } from "./cli/home.js";
|
|
6
6
|
import { env } from "./env.js";
|
|
@@ -2,8 +2,8 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { cp, mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
4
4
|
import { dirname, join, normalize } from "node:path";
|
|
5
|
-
import { dataRef, FILM_SIZES } from "@engenty-
|
|
6
|
-
import { gradientCss, ruleLines, textStyleLine } from "@engenty-
|
|
5
|
+
import { dataRef, FILM_SIZES } from "@engenty/wizards-shared/definition";
|
|
6
|
+
import { gradientCss, ruleLines, textStyleLine } from "@engenty/wizards-shared/projects";
|
|
7
7
|
import { unzipSync } from "fflate";
|
|
8
8
|
import { logoSectionLine, renderTemplate, resolveRef } from "../engine/template.js";
|
|
9
9
|
import { env } from "../env.js";
|
|
@@ -2,8 +2,8 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { readFile, rm, stat } from "node:fs/promises";
|
|
4
4
|
import { isAbsolute, join, normalize } from "node:path";
|
|
5
|
-
import { FILM_SIZES } from "@engenty-
|
|
6
|
-
import { note as runNote } from "@engenty-
|
|
5
|
+
import { FILM_SIZES } from "@engenty/wizards-shared/definition";
|
|
6
|
+
import { note as runNote } from "@engenty/wizards-shared/run";
|
|
7
7
|
import { StepError } from "../engine/types.js";
|
|
8
8
|
import { CLAUDE_BIN, claudeEnv } from "../harness/claude.js";
|
|
9
9
|
import { failureOf } from "../harness/model.js";
|
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
|
2
2
|
import { release } from "node:os";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { langOf, SPEECH_LOCALES } from "@engenty-
|
|
5
|
+
import { langOf, SPEECH_LOCALES } from "@engenty/wizards-shared/definition";
|
|
6
6
|
import { nanoid } from "nanoid";
|
|
7
7
|
import { env } from "../env.js";
|
|
8
8
|
import { ffmpeg, hasFfmpeg } from "../media/ffmpeg.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
-
import { note } from "@engenty-
|
|
4
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
5
5
|
import { probeVersion, resolveEnv, run } from "./env.js";
|
|
6
6
|
import { failureOf, HarnessImageModel, HarnessModel, runClient, } from "./model.js";
|
|
7
7
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { note } from "@engenty-
|
|
3
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
4
4
|
import spawn from "cross-spawn";
|
|
5
5
|
import { nanoid } from "nanoid";
|
|
6
6
|
import { env } from "../env.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { accessSync, chmodSync, constants } from "node:fs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
-
import { note } from "@engenty-
|
|
4
|
+
import { note } from "@engenty/wizards-shared/run";
|
|
5
5
|
import { nanoid } from "nanoid";
|
|
6
6
|
import { ServiceError } from "../services/errors.js";
|
|
7
7
|
const BUFFER = 200_000;
|
|
@@ -14,7 +14,7 @@ import { draftIssues, ownedWizard, publishedVersion } from "../services/wizards.
|
|
|
14
14
|
/** Built by the web app (`vite.mcp-app.config.ts`) into one HTML file with everything inline. */
|
|
15
15
|
const FLOW_APP_FILE = resolve(dirname(fileURLToPath(import.meta.url)), "../../../web/dist/mcp/flow.html");
|
|
16
16
|
const MISSING = `<!doctype html><meta charset="utf-8"><body style="font:14px system-ui;padding:16px">
|
|
17
|
-
The flow widget is not built: run <code>pnpm --filter @engenty-
|
|
17
|
+
The flow widget is not built: run <code>pnpm --filter @engenty/wizards-studio build</code>.</body>`;
|
|
18
18
|
function readWidget() {
|
|
19
19
|
try {
|
|
20
20
|
return readFileSync(FLOW_APP_FILE, "utf8");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { SPEECH_LOCALES } from "@engenty-
|
|
3
|
+
import { SPEECH_LOCALES } from "@engenty/wizards-shared/definition";
|
|
4
4
|
import { generateText, experimental_transcribe as transcribe } from "ai";
|
|
5
5
|
import { costOf, listenerModel, transcriptionCostUsd } from "../models.js";
|
|
6
6
|
import { ffmpeg, hasFfmpeg, probeMedia, withTempDir } from "./ffmpeg.js";
|
|
@@ -6,9 +6,9 @@ import { createGateway } from "@ai-sdk/gateway";
|
|
|
6
6
|
import { createGoogle } from "@ai-sdk/google";
|
|
7
7
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
8
8
|
import { createReplicate } from "@ai-sdk/replicate";
|
|
9
|
-
import { MODEL_CLASSES, TEXT_CLASSES, } from "@engenty-
|
|
10
|
-
import { CAPABILITY_CLASSES, creditsModelOf, isCreditsRef, PROVIDER_IDS, providerInfo, providerOfRef, } from "@engenty-
|
|
11
|
-
import { note, saidText } from "@engenty-
|
|
9
|
+
import { MODEL_CLASSES, TEXT_CLASSES, } from "@engenty/wizards-shared/definition";
|
|
10
|
+
import { CAPABILITY_CLASSES, creditsModelOf, isCreditsRef, PROVIDER_IDS, providerInfo, providerOfRef, } from "@engenty/wizards-shared/providers";
|
|
11
|
+
import { note, saidText } from "@engenty/wizards-shared/run";
|
|
12
12
|
import { generateSpeech, generateText, } from "ai";
|
|
13
13
|
import { accountToken, linkedAccount } from "./auth/account.js";
|
|
14
14
|
import { ollamaDecisionModel, ollamaRoot } from "./decision-model.js";
|
|
@@ -3,7 +3,7 @@ import { existsSync } from "node:fs";
|
|
|
3
3
|
import { readdir, readFile } from "node:fs/promises";
|
|
4
4
|
import { dirname, join, relative, resolve } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
-
import { marketplaceNameOf } from "@engenty-
|
|
6
|
+
import { marketplaceNameOf } from "@engenty/wizards-shared/claude-plugin";
|
|
7
7
|
import { zipSync } from "fflate";
|
|
8
8
|
import { env } from "./env.js";
|
|
9
9
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import { basename, extname, join, resolve, sep } from "node:path";
|
|
3
|
-
import { PLUGIN_ID } from "@engenty-
|
|
3
|
+
import { PLUGIN_ID } from "@engenty/wizards-shared/definition";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
/**
|
|
6
6
|
* Finding plugins. A folder of plugins holds, in any mix:
|