wizards 0.5.7 → 0.5.9
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 +13 -26
- package/apps/runtime/dist/agents/studio-assistant.js +19 -22
- package/apps/runtime/dist/agents/subscription.js +10 -9
- package/apps/runtime/dist/app.js +6 -6
- package/apps/runtime/dist/assistant/knows.js +10 -9
- package/apps/runtime/dist/connectors/external.js +3 -3
- package/apps/runtime/dist/connectors/index.js +23 -23
- package/apps/runtime/dist/connectors/via-account.js +6 -6
- package/apps/runtime/dist/documents/parse.js +3 -3
- package/apps/runtime/dist/engine/input.js +11 -11
- package/apps/runtime/dist/engine/requirements.js +7 -8
- package/apps/runtime/dist/engine/runner.js +10 -14
- package/apps/runtime/dist/engine/steps.js +6 -6
- package/apps/runtime/dist/engine/surface.js +2 -2
- package/apps/runtime/dist/film/step.js +5 -5
- package/apps/runtime/dist/harness/apple.js +2 -1
- package/apps/runtime/dist/harness/claude.js +2 -2
- package/apps/runtime/dist/harness/codex.js +2 -2
- package/apps/runtime/dist/harness/model.js +4 -5
- package/apps/runtime/dist/harness/terminal.js +4 -4
- package/apps/runtime/dist/media/conversation.js +18 -35
- package/apps/runtime/dist/media/transcribe.js +2 -1
- package/apps/runtime/dist/model-errors.js +1 -1
- package/apps/runtime/dist/models.js +32 -40
- package/apps/runtime/dist/plugins/runs.js +3 -5
- package/apps/runtime/dist/routes/api.js +9 -9
- package/apps/runtime/dist/routes/lang.js +14 -9
- package/apps/runtime/dist/routes/runs.js +5 -5
- package/apps/runtime/dist/routes/studio.js +38 -37
- package/apps/runtime/dist/services/access.js +4 -4
- package/apps/runtime/dist/services/architect.js +3 -12
- package/apps/runtime/dist/services/assistant-chats.js +2 -2
- package/apps/runtime/dist/services/brand.js +3 -3
- package/apps/runtime/dist/services/cloud.js +5 -5
- package/apps/runtime/dist/services/errors.js +2 -2
- package/apps/runtime/dist/services/knowledge-model.js +3 -3
- package/apps/runtime/dist/services/marketplace.js +3 -3
- package/apps/runtime/dist/services/package-file.js +9 -11
- package/apps/runtime/dist/services/package.js +8 -9
- package/apps/runtime/dist/services/profile.js +2 -1
- package/apps/runtime/dist/services/project-files.js +13 -13
- package/apps/runtime/dist/services/projects.js +7 -11
- package/apps/runtime/dist/services/runners.js +4 -4
- package/apps/runtime/dist/services/runs.js +7 -10
- package/apps/runtime/dist/services/shares.js +2 -2
- package/apps/runtime/dist/services/site.js +8 -11
- package/apps/runtime/dist/services/space-categories.js +7 -7
- package/apps/runtime/dist/services/space-data.js +20 -20
- package/apps/runtime/dist/services/spaces.js +7 -9
- package/apps/runtime/dist/services/wizards.js +11 -13
- package/apps/runtime/dist/store/index.js +2 -2
- package/apps/runtime/dist/texts.js +195 -0
- package/apps/runtime/dist/tools/plugin.js +7 -3
- package/apps/runtime/dist/widgets/step.js +2 -2
- package/apps/web/dist/assets/AboutDialog-CpI-cGpz.js +1 -0
- package/apps/web/dist/assets/{ChangelogDialog-rAtYZjxz.js → ChangelogDialog-BW56Y5UR.js} +1 -1
- package/apps/web/dist/assets/ChatView-CH8U-tRy.js +10 -0
- package/apps/web/dist/assets/EditorPage-Be5J_y4F.js +3 -0
- package/apps/web/dist/assets/{FlowPreview--3-yI51e.js → FlowPreview-CzmH4JUQ.js} +1 -1
- package/apps/web/dist/assets/{Harness-B9tvFe0U.js → Harness-CJKWO3AK.js} +2 -2
- package/apps/web/dist/assets/{NewWizardChannels-BxrBhC9U.js → NewWizardChannels-Ca2niMTY.js} +1 -1
- package/apps/web/dist/assets/NewWizardPage-D5gi4TYE.js +7 -0
- package/apps/web/dist/assets/{OnboardingPage-DPdH9sSj.js → OnboardingPage-Bm-c-D21.js} +1 -1
- package/apps/web/dist/assets/ProjectPage-C8nJCBZP.js +1 -0
- package/apps/web/dist/assets/{PublicRunner-Bv3TMKw4.js → PublicRunner-anxg3Rxz.js} +1 -1
- package/apps/web/dist/assets/{ReadOnly-CmqIrOAR.js → ReadOnly-i-6WBMSE.js} +1 -1
- package/apps/web/dist/assets/RunDrawer-4yvfW_2c.js +4 -0
- package/apps/web/dist/assets/{RunnerView-Cd1VAlIA.js → RunnerView-BkWQBa_M.js} +1 -1
- package/apps/web/dist/assets/SettingsPage-NL8r9S6R.js +1 -0
- package/apps/web/dist/assets/SetupPage-Crcfx4-p.js +1 -0
- package/apps/web/dist/assets/{SharePage-BT80wI1I.js → SharePage-CDEAtmBC.js} +1 -1
- package/apps/web/dist/assets/changelog-BGBuldNF.js +1 -0
- package/apps/web/dist/assets/{esm-BTVd6EFo.js → esm-BF1nonbH.js} +1 -1
- package/apps/web/dist/assets/index-C74LSJ-W.js +14 -0
- package/apps/web/dist/assets/{lock-ByHFI96G.js → lock-DVvM6IsA.js} +1 -1
- package/apps/web/dist/assets/{phone-KPwxAM1R.js → phone-3fG1okFs.js} +1 -1
- package/apps/web/dist/assets/{settings-menu-K5bg3QE3.js → settings-menu-D9fbi1Z0.js} +1 -1
- package/apps/web/dist/assets/ui-EuR3jezP.js +134 -0
- package/apps/web/dist/assets/{upload-BsIL8tNR.js → upload-BsMUhEfX.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/apps/web/dist/mcp/flow.html +77 -77
- package/bin/wizards.mjs +15 -2
- package/node_modules/@engenty-wizards/shared/dist/definition.d.ts +26 -9
- package/node_modules/@engenty-wizards/shared/dist/definition.js +125 -3
- package/node_modules/@engenty-wizards/shared/dist/marketplace-entry.d.ts +1 -1
- package/node_modules/@engenty-wizards/shared/dist/marketplace-entry.js +9 -8
- package/node_modules/@engenty-wizards/shared/dist/marketplace-search.js +6 -6
- package/node_modules/@engenty-wizards/shared/dist/marketplace.d.ts +78 -205
- package/node_modules/@engenty-wizards/shared/dist/marketplace.js +167 -68
- package/node_modules/@engenty-wizards/shared/dist/projects.d.ts +3 -6
- package/node_modules/@engenty-wizards/shared/dist/projects.js +9 -9
- package/node_modules/@engenty-wizards/shared/dist/providers.d.ts +33 -7
- package/node_modules/@engenty-wizards/shared/dist/providers.js +88 -37
- package/node_modules/@engenty-wizards/shared/dist/run.d.ts +298 -365
- package/node_modules/@engenty-wizards/shared/dist/run.js +582 -240
- package/node_modules/@engenty-wizards/shared/dist/texts.d.ts +36 -0
- package/node_modules/@engenty-wizards/shared/dist/texts.js +46 -0
- package/package.json +5 -1
- package/apps/web/dist/assets/AboutDialog-t9bayaIs.js +0 -1
- package/apps/web/dist/assets/ChatView-C3VqLT98.js +0 -10
- package/apps/web/dist/assets/EditorPage-D3Ef24b9.js +0 -3
- package/apps/web/dist/assets/NewWizardPage-C1_hsQPr.js +0 -7
- package/apps/web/dist/assets/ProjectPage-P40R1cPE.js +0 -1
- package/apps/web/dist/assets/RunDrawer-9qG1G-OY.js +0 -4
- package/apps/web/dist/assets/SettingsPage-DFz4UMfo.js +0 -1
- package/apps/web/dist/assets/SetupPage-B0UBNMB9.js +0 -1
- package/apps/web/dist/assets/changelog-BpSBMjpm.js +0 -1
- package/apps/web/dist/assets/index-D8vwgldH.js +0 -14
- package/apps/web/dist/assets/ui-4bQx9I1f.js +0 -134
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { pluginToolOf } from "./definition.js";
|
|
1
|
+
import { LANGS, pluginToolOf, } from "./definition.js";
|
|
2
|
+
import { textOf } from "./texts.js";
|
|
2
3
|
/**
|
|
3
4
|
* The marketplace: wizards anyone can start from. What an entry is sorted by — formats, industry,
|
|
4
5
|
* use case — and what follows from its definition: the AI capabilities it needs, how much a
|
|
@@ -6,78 +7,176 @@ import { pluginToolOf } from "./definition.js";
|
|
|
6
7
|
*/
|
|
7
8
|
export const MARKETPLACE_LANGS = ["de", "en"];
|
|
8
9
|
/** What comes out of a run. */
|
|
9
|
-
export const
|
|
10
|
-
text
|
|
11
|
-
document
|
|
12
|
-
table
|
|
13
|
-
image
|
|
14
|
-
video
|
|
15
|
-
audio
|
|
16
|
-
dashboard
|
|
17
|
-
|
|
18
|
-
export const
|
|
19
|
-
any
|
|
20
|
-
trades
|
|
21
|
-
gastronomy
|
|
22
|
-
hospitality
|
|
23
|
-
realEstate
|
|
24
|
-
retail
|
|
25
|
-
health
|
|
26
|
-
professional
|
|
27
|
-
agency
|
|
28
|
-
events
|
|
29
|
-
publicSector
|
|
30
|
-
|
|
31
|
-
export const
|
|
32
|
-
marketing
|
|
33
|
-
|
|
34
|
-
accounting
|
|
35
|
-
|
|
36
|
-
research
|
|
37
|
-
hr
|
|
38
|
-
|
|
39
|
-
website
|
|
40
|
-
visuals
|
|
41
|
-
inquiries
|
|
42
|
-
advice
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
export const COST_TIERS = {
|
|
63
|
-
low: { de: "günstig", en: "low cost" },
|
|
64
|
-
medium: { de: "mittel", en: "medium cost" },
|
|
65
|
-
high: { de: "teuer", en: "high cost" },
|
|
66
|
-
};
|
|
10
|
+
export const ITEM_FORMAT_IDS = [
|
|
11
|
+
"text",
|
|
12
|
+
"document",
|
|
13
|
+
"table",
|
|
14
|
+
"image",
|
|
15
|
+
"video",
|
|
16
|
+
"audio",
|
|
17
|
+
"dashboard",
|
|
18
|
+
];
|
|
19
|
+
export const INDUSTRY_IDS = [
|
|
20
|
+
"any",
|
|
21
|
+
"trades",
|
|
22
|
+
"gastronomy",
|
|
23
|
+
"hospitality",
|
|
24
|
+
"realEstate",
|
|
25
|
+
"retail",
|
|
26
|
+
"health",
|
|
27
|
+
"professional",
|
|
28
|
+
"agency",
|
|
29
|
+
"events",
|
|
30
|
+
"publicSector",
|
|
31
|
+
];
|
|
32
|
+
export const USE_CASE_IDS = [
|
|
33
|
+
"marketing",
|
|
34
|
+
"sales",
|
|
35
|
+
"accounting",
|
|
36
|
+
"service",
|
|
37
|
+
"research",
|
|
38
|
+
"hr",
|
|
39
|
+
"operations",
|
|
40
|
+
"website",
|
|
41
|
+
"visuals",
|
|
42
|
+
"inquiries",
|
|
43
|
+
"advice",
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* What the models and tools behind a wizard must be able to do. `film`: a film the installed
|
|
47
|
+
* client makes, only on a computer with Claude Code, on its subscription.
|
|
48
|
+
*/
|
|
49
|
+
export const CAPABILITY_IDS = [
|
|
50
|
+
"text",
|
|
51
|
+
"web",
|
|
52
|
+
"browser",
|
|
53
|
+
"documents",
|
|
54
|
+
"image",
|
|
55
|
+
"video",
|
|
56
|
+
"speech",
|
|
57
|
+
"listening",
|
|
58
|
+
"code",
|
|
59
|
+
"connectors",
|
|
60
|
+
"film",
|
|
61
|
+
];
|
|
62
|
+
export const COST_TIER_IDS = ["low", "medium", "high"];
|
|
67
63
|
/**
|
|
68
64
|
* The plan a wizard needs. Free runs on what every runtime has; Pro needs plugins, which come
|
|
69
65
|
* with the Pro and Team plans of engenty.ai.
|
|
70
66
|
*/
|
|
71
|
-
export const
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
export const MARKETPLACE_PLAN_IDS = ["free", "pro"];
|
|
68
|
+
const MARKET_EN = {
|
|
69
|
+
"format.text": "Text",
|
|
70
|
+
"format.document": "Document (PDF, Word)",
|
|
71
|
+
"format.table": "Table",
|
|
72
|
+
"format.image": "Image",
|
|
73
|
+
"format.video": "Video",
|
|
74
|
+
"format.audio": "Audio",
|
|
75
|
+
"format.dashboard": "Dashboard",
|
|
76
|
+
"industry.any": "Any industry",
|
|
77
|
+
"industry.trades": "Trades",
|
|
78
|
+
"industry.gastronomy": "Food service",
|
|
79
|
+
"industry.hospitality": "Hotels & tourism",
|
|
80
|
+
"industry.realEstate": "Real estate",
|
|
81
|
+
"industry.retail": "Retail",
|
|
82
|
+
"industry.health": "Health",
|
|
83
|
+
"industry.professional": "Professional services",
|
|
84
|
+
"industry.agency": "Agency & marketing",
|
|
85
|
+
"industry.events": "Events",
|
|
86
|
+
"industry.publicSector": "Associations & public sector",
|
|
87
|
+
"useCase.marketing": "Marketing & social media",
|
|
88
|
+
"useCase.sales": "Offers & sales",
|
|
89
|
+
"useCase.accounting": "Accounting & receipts",
|
|
90
|
+
"useCase.service": "Customer service",
|
|
91
|
+
"useCase.research": "Research & analysis",
|
|
92
|
+
"useCase.hr": "HR & applications",
|
|
93
|
+
"useCase.operations": "Planning & operations",
|
|
94
|
+
"useCase.website": "Website helpers",
|
|
95
|
+
"useCase.visuals": "Images & video",
|
|
96
|
+
"useCase.inquiries": "Inquiries & bookings",
|
|
97
|
+
"useCase.advice": "Advice & pricing",
|
|
98
|
+
"capability.text": "Writes text",
|
|
99
|
+
"capability.web": "Web search",
|
|
100
|
+
"capability.browser": "Drives a browser",
|
|
101
|
+
"capability.documents": "Reads documents & photos",
|
|
102
|
+
"capability.image": "Makes images",
|
|
103
|
+
"capability.video": "Makes video",
|
|
104
|
+
"capability.speech": "Speech output",
|
|
105
|
+
"capability.listening": "Understands voice notes",
|
|
106
|
+
"capability.code": "Runs code",
|
|
107
|
+
"capability.connectors": "Connected accounts & systems",
|
|
108
|
+
"capability.film": "Films with Claude Code (on your subscription)",
|
|
109
|
+
"cost.low": "low cost",
|
|
110
|
+
"cost.medium": "medium cost",
|
|
111
|
+
"cost.high": "high cost",
|
|
112
|
+
"plan.free": "Free",
|
|
113
|
+
"plan.pro": "Pro",
|
|
114
|
+
"outline.otherwise": "otherwise",
|
|
115
|
+
"outline.and": "{first} and {second}",
|
|
116
|
+
"outline.with": "with {name}",
|
|
117
|
+
"outline.without": "without {name}",
|
|
118
|
+
"outline.contains": "{name} contains {value}",
|
|
74
119
|
};
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
120
|
+
const MARKET_DE = {
|
|
121
|
+
"format.text": "Text",
|
|
122
|
+
"format.document": "Dokument (PDF, Word)",
|
|
123
|
+
"format.table": "Tabelle",
|
|
124
|
+
"format.image": "Bild",
|
|
125
|
+
"format.video": "Video",
|
|
126
|
+
"format.audio": "Audio",
|
|
127
|
+
"format.dashboard": "Dashboard",
|
|
128
|
+
"industry.any": "Jede Branche",
|
|
129
|
+
"industry.trades": "Handwerk",
|
|
130
|
+
"industry.gastronomy": "Gastronomie",
|
|
131
|
+
"industry.hospitality": "Hotel & Tourismus",
|
|
132
|
+
"industry.realEstate": "Immobilien",
|
|
133
|
+
"industry.retail": "Handel",
|
|
134
|
+
"industry.health": "Gesundheit",
|
|
135
|
+
"industry.professional": "Kanzlei & Beratung",
|
|
136
|
+
"industry.agency": "Agentur & Marketing",
|
|
137
|
+
"industry.events": "Veranstaltungen",
|
|
138
|
+
"industry.publicSector": "Vereine & Öffentliches",
|
|
139
|
+
"useCase.marketing": "Marketing & Social Media",
|
|
140
|
+
"useCase.sales": "Angebote & Verkauf",
|
|
141
|
+
"useCase.accounting": "Buchhaltung & Belege",
|
|
142
|
+
"useCase.service": "Kundenservice",
|
|
143
|
+
"useCase.research": "Recherche & Analyse",
|
|
144
|
+
"useCase.hr": "Personal & Bewerbungen",
|
|
145
|
+
"useCase.operations": "Planung & Abläufe",
|
|
146
|
+
"useCase.website": "Helfer für die Website",
|
|
147
|
+
"useCase.visuals": "Bilder & Video",
|
|
148
|
+
"useCase.inquiries": "Anfragen & Termine",
|
|
149
|
+
"useCase.advice": "Beratung & Preise",
|
|
150
|
+
"capability.text": "Text schreiben",
|
|
151
|
+
"capability.web": "Websuche",
|
|
152
|
+
"capability.browser": "Browser bedienen",
|
|
153
|
+
"capability.documents": "Dokumente & Fotos lesen",
|
|
154
|
+
"capability.image": "Bilder erzeugen",
|
|
155
|
+
"capability.video": "Videos erzeugen",
|
|
156
|
+
"capability.speech": "Sprachausgabe",
|
|
157
|
+
"capability.listening": "Sprachnotizen verstehen",
|
|
158
|
+
"capability.code": "Code ausführen",
|
|
159
|
+
"capability.connectors": "Verbundene Konten & Systeme",
|
|
160
|
+
"capability.film": "Filme mit Claude Code (auf deinem Abo)",
|
|
161
|
+
"cost.low": "günstig",
|
|
162
|
+
"cost.medium": "mittel",
|
|
163
|
+
"cost.high": "teuer",
|
|
164
|
+
"plan.free": "Kostenlos",
|
|
165
|
+
"plan.pro": "Pro",
|
|
166
|
+
"outline.otherwise": "sonst",
|
|
167
|
+
"outline.and": "{first} und {second}",
|
|
168
|
+
"outline.with": "mit {name}",
|
|
169
|
+
"outline.without": "ohne {name}",
|
|
170
|
+
"outline.contains": "{name} enthält {value}",
|
|
171
|
+
};
|
|
172
|
+
export const MARKET_TEXTS = { en: MARKET_EN, de: MARKET_DE };
|
|
173
|
+
/** The label of a facet value, a cost tier or a plan in a language; its id where it has none. */
|
|
174
|
+
export function marketLabel(group, id, lang, params) {
|
|
175
|
+
const key = `${group}.${id}`;
|
|
176
|
+
return key in MARKET_EN ? textOf(MARKET_TEXTS, key, lang, params) : id;
|
|
177
|
+
}
|
|
178
|
+
/** A label in every language, for search: a person may type either. */
|
|
179
|
+
export const marketLabels = (group, id) => LANGS.map((lang) => marketLabel(group, id, lang));
|
|
81
180
|
const FORMAT_OF = {
|
|
82
181
|
pdf: "document",
|
|
83
182
|
docx: "document",
|
|
@@ -13,12 +13,9 @@ export declare function detectFactType(value: string): FactType;
|
|
|
13
13
|
export declare function factType(fact: Pick<ProjectFact, "value" | "type">): FactType;
|
|
14
14
|
/** A fact's key from its label: lower case, a-z 0-9 and _, unique among `taken`. */
|
|
15
15
|
export declare function factKey(label: string, taken?: string[]): string;
|
|
16
|
-
/** Facts most projects have; offered as empty rows to fill in. */
|
|
17
|
-
export declare const BASIC_FACTS:
|
|
18
|
-
|
|
19
|
-
de: string;
|
|
20
|
-
en: string;
|
|
21
|
-
}[];
|
|
16
|
+
/** Facts most projects have, by key; offered as empty rows to fill in (labels: `fact.<key>`). */
|
|
17
|
+
export declare const BASIC_FACTS: readonly ["adresse", "plz", "ort", "uid", "telefon", "e_mail", "website", "iban"];
|
|
18
|
+
export type BasicFact = (typeof BASIC_FACTS)[number];
|
|
22
19
|
export interface BrandColor {
|
|
23
20
|
/** What the colour is for and how to use it, in the admin's words: "Primär – Buttons und Überschriften". */
|
|
24
21
|
name: string;
|
|
@@ -68,16 +68,16 @@ export function factKey(label, taken = []) {
|
|
|
68
68
|
}
|
|
69
69
|
return key;
|
|
70
70
|
}
|
|
71
|
-
/** Facts most projects have; offered as empty rows to fill in. */
|
|
71
|
+
/** Facts most projects have, by key; offered as empty rows to fill in (labels: `fact.<key>`). */
|
|
72
72
|
export const BASIC_FACTS = [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
"adresse",
|
|
74
|
+
"plz",
|
|
75
|
+
"ort",
|
|
76
|
+
"uid",
|
|
77
|
+
"telefon",
|
|
78
|
+
"e_mail",
|
|
79
|
+
"website",
|
|
80
|
+
"iban",
|
|
81
81
|
];
|
|
82
82
|
export const COLOR_SECTION_KINDS = ["colors", "gradients", "patterns"];
|
|
83
83
|
export const GRADIENT_TYPES = ["linear", "radial", "conic"];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ModelClass, TextClass } from "./definition.js";
|
|
1
|
+
import type { Lang, ModelClass, TextClass } from "./definition.js";
|
|
2
|
+
import { type Texts } from "./texts.js";
|
|
2
3
|
/**
|
|
3
4
|
* What a wizard asks models for, as a person thinks of it. Each stands for model classes; the
|
|
4
5
|
* names are the marketplace's capabilities.
|
|
@@ -38,22 +39,47 @@ export declare function capabilityOfKind(kind: CreditModel["kind"]): ModelCapabi
|
|
|
38
39
|
/** The providers whose API key a person can bring. */
|
|
39
40
|
export declare const PROVIDER_IDS: readonly ["openai", "anthropic", "google", "fal", "elevenlabs", "replicate", "gateway"];
|
|
40
41
|
export type ProviderId = (typeof PROVIDER_IDS)[number];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
declare const PROVIDER_EN: {
|
|
43
|
+
readonly "about.openai": "GPT models, GPT Image and voices.";
|
|
44
|
+
readonly fast: "fast";
|
|
45
|
+
readonly thorough: "thorough";
|
|
46
|
+
readonly versatile: "versatile";
|
|
47
|
+
readonly lowCost: "low cost";
|
|
48
|
+
readonly fastLowCost: "fast, low cost";
|
|
49
|
+
readonly "about.anthropic": "The Claude models.";
|
|
50
|
+
readonly strongest: "strongest";
|
|
51
|
+
readonly "about.google": "Gemini, Veo for video and voices – one key from AI Studio.";
|
|
52
|
+
readonly fastEditsPhotos: "fast, edits photos";
|
|
53
|
+
readonly bestQuality: "best quality";
|
|
54
|
+
readonly withSound: "with sound";
|
|
55
|
+
readonly "about.fal": "Hundreds of image, video and audio models with one key: FLUX, Recraft, Veo, Luma, MiniMax.";
|
|
56
|
+
readonly highQuality: "high quality";
|
|
57
|
+
readonly graphicsLogosTextIn: "graphics, logos, text in images";
|
|
58
|
+
readonly photorealistic: "photorealistic";
|
|
59
|
+
readonly "about.elevenlabs": "Natural voices in many languages and accurate transcripts.";
|
|
60
|
+
readonly naturalManyLanguages: "natural, many languages";
|
|
61
|
+
readonly expressive: "expressive";
|
|
62
|
+
readonly veryAccurate: "very accurate";
|
|
63
|
+
readonly "about.replicate": "Open image and video models, billed per run.";
|
|
64
|
+
readonly "about.gateway": "One key for many providers' models, billed by Vercel.";
|
|
65
|
+
};
|
|
66
|
+
/** A line about a provider or one of its models, in `PROVIDER_TEXTS`. */
|
|
67
|
+
export type ProviderWords = keyof typeof PROVIDER_EN;
|
|
68
|
+
export declare const PROVIDER_TEXTS: Texts<ProviderWords>;
|
|
69
|
+
/** A line about a provider or a model, in a language. */
|
|
70
|
+
export declare const providerText: (key: ProviderWords, lang: Lang) => string;
|
|
45
71
|
export interface ModelOption {
|
|
46
72
|
/** The binding: `<provider>:<the provider's model id>`. */
|
|
47
73
|
ref: string;
|
|
48
74
|
/** The model's own name; not translated. */
|
|
49
75
|
label: string;
|
|
50
|
-
note?:
|
|
76
|
+
note?: ProviderWords;
|
|
51
77
|
}
|
|
52
78
|
export interface ProviderInfo {
|
|
53
79
|
id: ProviderId;
|
|
54
80
|
name: string;
|
|
55
81
|
/** One line on what it is, for someone who never heard of it. */
|
|
56
|
-
about:
|
|
82
|
+
about: ProviderWords;
|
|
57
83
|
/** Where a person makes a key. */
|
|
58
84
|
keyUrl: string;
|
|
59
85
|
/** How a key looks, for the input's placeholder. */
|