@12-apps/mcp 3.9.0 → 3.11.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.
@@ -0,0 +1,64 @@
1
+ import { b as AiConnectPromptSpec, e as AiHostGuide, A as AiCapability, i as AiPermissionModel } from './guide-KQNcXlMG.js';
2
+
3
+ /**
4
+ * The AI hosts a store owner can connect, in recommended order. Same OAuth flow
5
+ * everywhere (the host drives it) — only the menu path differs per app.
6
+ *
7
+ * A FUNCTION of the platform's name, because one step is not generic: the
8
+ * ChatGPT connector's consent screen shows an OAuth button labelled with
9
+ * whoever operates the server, and the owner is told which button to click. It
10
+ * used to name one particular STORE on one particular deployment — not even the
11
+ * product, a tenant of it — so every other adopter instructed its owners to
12
+ * click a button that does not exist.
13
+ */
14
+ declare function PT_BR_AI_HOST_GUIDES(platformName: string): readonly AiHostGuide[];
15
+ declare const PT_BR_AI_CAPABILITIES: readonly AiCapability[];
16
+ /**
17
+ * The permission model in one line, shown prominently: the assistant acts AS
18
+ * the signed-in owner (auth-passthrough) — it can do exactly what the owner
19
+ * can, nothing more, and no extra credential/API key is ever created.
20
+ */
21
+ declare const PT_BR_AI_PERMISSION_MODEL: AiPermissionModel;
22
+ /** The pt-BR paste-in prompt, built from the host's own tool names. */
23
+ declare function PT_BR_AI_CONNECT_PROMPT(spec: AiConnectPromptSpec): string;
24
+
25
+ /**
26
+ * The AI hosts a store owner can connect, in recommended order. Same OAuth flow
27
+ * everywhere (the host drives it) — only the menu path differs per app.
28
+ *
29
+ * A FUNCTION of the platform's name, because one step is not generic: the
30
+ * ChatGPT connector's consent screen shows an OAuth button labelled with
31
+ * whoever operates the server, and the owner is told which button to click. It
32
+ * used to name one particular STORE on one particular deployment — not even the
33
+ * product, a tenant of it — so every other adopter instructed its owners to
34
+ * click a button that does not exist.
35
+ */
36
+ declare function EN_US_AI_HOST_GUIDES(platformName: string): readonly AiHostGuide[];
37
+ declare const EN_US_AI_CAPABILITIES: readonly AiCapability[];
38
+ /**
39
+ * The permission model in one line, shown prominently: the assistant acts AS
40
+ * the signed-in owner (auth-passthrough) — it can do exactly what the owner
41
+ * can, nothing more, and no extra credential/API key is ever created.
42
+ */
43
+ declare const EN_US_AI_PERMISSION_MODEL: AiPermissionModel;
44
+ /** The en-US paste-in prompt, built from the host's own tool names. */
45
+ declare function EN_US_AI_CONNECT_PROMPT(spec: AiConnectPromptSpec): string;
46
+
47
+ declare const AI_HOST_GUIDES: {
48
+ readonly "pt-BR": typeof PT_BR_AI_HOST_GUIDES;
49
+ readonly "en-US": typeof EN_US_AI_HOST_GUIDES;
50
+ };
51
+ declare const AI_CONNECT_PROMPT: {
52
+ readonly "pt-BR": typeof PT_BR_AI_CONNECT_PROMPT;
53
+ readonly "en-US": typeof EN_US_AI_CONNECT_PROMPT;
54
+ };
55
+ declare const AI_CAPABILITIES: {
56
+ readonly "pt-BR": readonly AiCapability[];
57
+ readonly "en-US": readonly AiCapability[];
58
+ };
59
+ declare const AI_PERMISSION_MODEL: {
60
+ readonly "pt-BR": string;
61
+ readonly "en-US": string;
62
+ };
63
+
64
+ export { AI_CAPABILITIES as A, EN_US_AI_CAPABILITIES as E, PT_BR_AI_CAPABILITIES as P, AI_CONNECT_PROMPT as a, AI_HOST_GUIDES as b, AI_PERMISSION_MODEL as c, EN_US_AI_CONNECT_PROMPT as d, EN_US_AI_HOST_GUIDES as e, EN_US_AI_PERMISSION_MODEL as f, PT_BR_AI_CONNECT_PROMPT as g, PT_BR_AI_HOST_GUIDES as h, PT_BR_AI_PERMISSION_MODEL as i };
@@ -2,7 +2,7 @@ import { ConfirmActionCopy } from '@12-apps/ui/copy';
2
2
  import { OnboardingStore, OnboardingStateSnapshot } from '@12-apps/onboarding';
3
3
  import { e as AiHostGuide, g as AiProvider, A as AiCapability, c as AiHostBrand } from '../guide-KQNcXlMG.js';
4
4
  export { b as AiConnectPromptSpec, d as AiHostConfigureStage, f as AiHostLink, h as aiConnectPrompt, p as providerForHostId } from '../guide-KQNcXlMG.js';
5
- export { P as PT_BR_AI_CAPABILITIES, a as PT_BR_AI_CONNECT_PROMPT, b as PT_BR_AI_HOST_GUIDES, c as PT_BR_AI_PERMISSION_MODEL } from '../pt-BR-e1RnV2v8.js';
5
+ export { A as AI_CAPABILITIES, a as AI_CONNECT_PROMPT, b as AI_HOST_GUIDES, c as AI_PERMISSION_MODEL, E as EN_US_AI_CAPABILITIES, d as EN_US_AI_CONNECT_PROMPT, e as EN_US_AI_HOST_GUIDES, f as EN_US_AI_PERMISSION_MODEL, P as PT_BR_AI_CAPABILITIES, g as PT_BR_AI_CONNECT_PROMPT, h as PT_BR_AI_HOST_GUIDES, i as PT_BR_AI_PERMISSION_MODEL } from '../locales-eKE_OJw4.js';
6
6
 
7
7
  /**
8
8
  * Every word the AI-integration screens render, as REQUIRED host config
@@ -35,7 +35,15 @@ interface AiTrustPoint {
35
35
  interface AiLandingCopy {
36
36
  /** Small line above the headline. */
37
37
  eyebrow: string;
38
- /** The headline's second half, after the assistant names. */
38
+ /**
39
+ * The headline, in the three runs it renders as: lead, the EMPHASISED
40
+ * middle (drawn in the accent colour), then the tail. `titleTail` was the
41
+ * only one a host could set, so two thirds of this product's headline —
42
+ * `Conecte` and `assistentes de IA` — shipped as literals around it.
43
+ */
44
+ titleLead: string;
45
+ titleEmphasis: string;
46
+ /** The headline's last run, after the emphasised middle. */
39
47
  titleTail: string;
40
48
  /** The paragraph under the headline. */
41
49
  lede: string;
@@ -432,4 +440,22 @@ declare function FeatureBadge({ icon, label, caption }: FeatureBadgeItem): React
432
440
  */
433
441
  declare const PT_BR_MCP_AI_COPY: McpAiCopy;
434
442
 
435
- export { AiCapabilities, type AiCapabilitiesCopy, AiCapability, type AiConnectGuideCopy, type AiConnection, type AiConnectionSummaryCopy, type AiFlowCopy, AiHostBrand, AiHostGuide, type AiHostSelectCopy, AiIntegrationOnboarding, type AiIntegrationOnboardingProps, AiLanding, type AiLandingCopy, type AiOnboardingCopy, AiProvider, AiStatusBoard, type AiStatusBoardCopy, type AiTrustPoint, CapabilityIcon, type DisconnectHandler, EndpointCopyBlock, FeatureBadge, type FeatureBadgeItem, HostBrandAvatar, HostConnectHeader, HostOpenButton, HostSelectStep, type HostStatus, HostStepList, type McpAiCopy, McpEndpointUrl, PT_BR_MCP_AI_COPY, PromptCopyBlock };
443
+ /**
444
+ * The en-US pack for the AI-integration screens — a NAMED constant a host
445
+ * passes by hand, never a default.
446
+ *
447
+ * `statusBoard.confirmAction` composes `@12-apps/ui`'s own English pack rather
448
+ * than restating it, exactly as the pt-BR side composes the Portuguese one.
449
+ *
450
+ * The assistant NAMES (Claude, ChatGPT, Codex) are products, not words: they
451
+ * are spelled the same in every language, and `hostLabel` arrives as an
452
+ * argument so a sentence can place it where its own grammar wants.
453
+ */
454
+ declare const EN_US_MCP_AI_COPY: McpAiCopy;
455
+
456
+ declare const MCP_AI_COPY: {
457
+ readonly "pt-BR": McpAiCopy;
458
+ readonly "en-US": McpAiCopy;
459
+ };
460
+
461
+ export { AiCapabilities, type AiCapabilitiesCopy, AiCapability, type AiConnectGuideCopy, type AiConnection, type AiConnectionSummaryCopy, type AiFlowCopy, AiHostBrand, AiHostGuide, type AiHostSelectCopy, AiIntegrationOnboarding, type AiIntegrationOnboardingProps, AiLanding, type AiLandingCopy, type AiOnboardingCopy, AiProvider, AiStatusBoard, type AiStatusBoardCopy, type AiTrustPoint, CapabilityIcon, type DisconnectHandler, EN_US_MCP_AI_COPY, EndpointCopyBlock, FeatureBadge, type FeatureBadgeItem, HostBrandAvatar, HostConnectHeader, HostOpenButton, HostSelectStep, type HostStatus, HostStepList, MCP_AI_COPY, type McpAiCopy, McpEndpointUrl, PT_BR_MCP_AI_COPY, PromptCopyBlock };
@@ -1,9 +1,17 @@
1
1
  import {
2
+ AI_CAPABILITIES,
3
+ AI_CONNECT_PROMPT,
4
+ AI_HOST_GUIDES,
5
+ AI_PERMISSION_MODEL,
6
+ EN_US_AI_CAPABILITIES,
7
+ EN_US_AI_CONNECT_PROMPT,
8
+ EN_US_AI_HOST_GUIDES,
9
+ EN_US_AI_PERMISSION_MODEL,
2
10
  PT_BR_AI_CAPABILITIES,
3
11
  PT_BR_AI_CONNECT_PROMPT,
4
12
  PT_BR_AI_HOST_GUIDES,
5
13
  PT_BR_AI_PERMISSION_MODEL
6
- } from "../chunk-HRAQKMDC.js";
14
+ } from "../chunk-WUNMAHQG.js";
7
15
  import {
8
16
  aiConnectPrompt,
9
17
  providerForHostId
@@ -238,9 +246,9 @@ function Hero({
238
246
  }
239
247
  ),
240
248
  /* @__PURE__ */ jsxs3(Text3, { variant: "heading", size: "xl", weight: "bold", as: "h1", children: [
241
- "Conecte",
249
+ copy.titleLead,
242
250
  " ",
243
- /* @__PURE__ */ jsx4(Box4, { component: "span", sx: { color: "primary.main" }, children: "assistentes de IA" }),
251
+ /* @__PURE__ */ jsx4(Box4, { component: "span", sx: { color: "primary.main" }, children: copy.titleEmphasis }),
244
252
  " ",
245
253
  copy.titleTail
246
254
  ] }),
@@ -866,7 +874,7 @@ function StatusBox({
866
874
  "data-testid": `ai-status-connect-${host.id}`,
867
875
  children: [
868
876
  /* @__PURE__ */ jsx8(AddLinkOutlinedIcon, { sx: { fontSize: 16, mr: 0.5 } }),
869
- "Conectar"
877
+ copy.connect
870
878
  ]
871
879
  }
872
880
  )
@@ -1260,6 +1268,8 @@ var PT_BR_MCP_AI_COPY = {
1260
1268
  },
1261
1269
  landing: {
1262
1270
  eyebrow: "Integra\xE7\xE3o com IA",
1271
+ titleLead: "Conecte",
1272
+ titleEmphasis: "assistentes de IA",
1263
1273
  titleTail: "\xE0 sua loja",
1264
1274
  lede: "Deixe o Claude, o ChatGPT e outros assistentes responderem sobre o seu card\xE1pio, estoque e pedidos \u2014 e executarem a\xE7\xF5es por voc\xEA, direto na conversa. Com seguran\xE7a e sem instalar nada.",
1265
1275
  trust: [
@@ -1347,12 +1357,131 @@ var PT_BR_MCP_AI_COPY = {
1347
1357
  collapseLabel: "Ocultar"
1348
1358
  }
1349
1359
  };
1360
+
1361
+ // src/react/en-US.ts
1362
+ import { EN_US_CONFIRM_ACTION_COPY } from "@12-apps/ui/en-US";
1363
+ var EN_US_MCP_AI_COPY = {
1364
+ capabilities: {
1365
+ heading: "What the assistant does for you",
1366
+ subheading: "No spreadsheets, no clicking \u2014 just ask it in the chat."
1367
+ },
1368
+ landing: {
1369
+ eyebrow: "AI integration",
1370
+ // Three fragments the heading renders around an emphasised middle, so the
1371
+ // seam has to survive: "Connect / AI assistants / to your store".
1372
+ titleLead: "Connect",
1373
+ titleEmphasis: "AI assistants",
1374
+ titleTail: "to your store",
1375
+ lede: "Let Claude, ChatGPT and other assistants answer questions about your menu, stock and orders \u2014 and take actions for you, right in the chat. Securely, with nothing to install.",
1376
+ trust: [
1377
+ // The `id`s are the package's own and are NOT words: the component keys
1378
+ // its icons off them.
1379
+ {
1380
+ id: "login",
1381
+ label: "Uses your own login",
1382
+ caption: "No extra keys or credentials"
1383
+ },
1384
+ { id: "install", label: "Nothing to install", caption: "Connects in minutes" },
1385
+ {
1386
+ id: "permissions",
1387
+ label: "Only what you can do",
1388
+ caption: "Your permissions, nothing beyond them"
1389
+ },
1390
+ { id: "surface", label: "Browser or app", caption: "Claude, ChatGPT, Codex" }
1391
+ ],
1392
+ start: "Get started"
1393
+ },
1394
+ flow: {
1395
+ steps: {
1396
+ select: "Choose",
1397
+ copyUrl: "Copy URL",
1398
+ configure: "Configure",
1399
+ connect: "Connect",
1400
+ install: "Install",
1401
+ confirm: "Confirm"
1402
+ },
1403
+ back: "Back",
1404
+ next: "Next",
1405
+ advance: "Continue",
1406
+ finish: "Finish",
1407
+ copyUrl: "Copy URL",
1408
+ copied: "Copied",
1409
+ copyMessage: "Copy message",
1410
+ copyUrlTitle: "Copy your store's URL",
1411
+ urlCaption: "It is the only thing you paste into the assistant \u2014 copying it moves you to the next step.",
1412
+ promptCaption: "That is how it connects, identifies itself (Claude, ChatGPT\u2026) and how we record the connection.",
1413
+ askTitle: "Ask the assistant to connect",
1414
+ installBody: "Open your store's plugin, click Install and authorise access \u2014 no URL to copy, no credentials to generate.",
1415
+ installAction: "Install the store plugin",
1416
+ pasteTitle: "Paste this message into the assistant",
1417
+ pasteInstallCaption: "Paste it into the assistant so it connects, identifies itself and confirms access.",
1418
+ connectedTo: /* @__PURE__ */ __name((hostLabel2) => `${hostLabel2} is connected to your store.`, "connectedTo"),
1419
+ waitingTitle: "Waiting for the connection",
1420
+ waitingBody: /* @__PURE__ */ __name((hostLabel2) => `As soon as you authorise access in ${hostLabel2}, it appears here automatically.`, "waitingBody"),
1421
+ testNow: "Test it now"
1422
+ },
1423
+ statusBoard: {
1424
+ instructions: "Instructions",
1425
+ connected: "Connected",
1426
+ notConnected: "Not connected yet",
1427
+ connect: "Connect",
1428
+ disconnect: "Disconnect",
1429
+ disconnectTitle: "Disconnect this assistant?",
1430
+ disconnectBody: "It loses access to your store immediately. To use it again you will have to connect it afresh.",
1431
+ disconnectConfirm: "Disconnect",
1432
+ disconnectError: "Could not disconnect. Try again.",
1433
+ boardTitle: "Connected assistants",
1434
+ boardCaption: "Green are the ones already working with your store; red are the ones still to connect.",
1435
+ confirmAction: EN_US_CONFIRM_ACTION_COPY
1436
+ },
1437
+ summary: {
1438
+ activeNow: "active now",
1439
+ activeMinutes: /* @__PURE__ */ __name((minutes) => `active ${minutes} min ago`, "activeMinutes"),
1440
+ activeHours: /* @__PURE__ */ __name((hours) => `active ${hours} h ago`, "activeHours"),
1441
+ activeDays: /* @__PURE__ */ __name((days) => `active ${days} days ago`, "activeDays"),
1442
+ configured: "Integration configured",
1443
+ connectedSuffix: "Connected",
1444
+ connectedSeveral: /* @__PURE__ */ __name((names) => `${names} connected`, "connectedSeveral"),
1445
+ connectedGeneric: "AI connected"
1446
+ },
1447
+ hostSelect: {
1448
+ heading: "Choose your assistant",
1449
+ caption: "Pick where you use AI \u2014 the walkthrough is tailored to it."
1450
+ },
1451
+ connectGuide: {
1452
+ urlLabel: "Your store's server URL",
1453
+ urlHint: "Copy this URL and paste it into your assistant to connect it to the store.",
1454
+ // Ends mid-sentence: the screen renders a documentation link straight after.
1455
+ moreInfo: "For more, see the",
1456
+ connectOn: /* @__PURE__ */ __name((hostLabel2) => `Connect in ${hostLabel2}`, "connectOn")
1457
+ },
1458
+ onboarding: {
1459
+ title: "Connect AI assistants to your store",
1460
+ editLabel: "Connect AI",
1461
+ collapseLabel: "Hide"
1462
+ }
1463
+ };
1464
+
1465
+ // src/react/locales.ts
1466
+ var MCP_AI_COPY = {
1467
+ "pt-BR": PT_BR_MCP_AI_COPY,
1468
+ "en-US": EN_US_MCP_AI_COPY
1469
+ };
1350
1470
  export {
1471
+ AI_CAPABILITIES,
1472
+ AI_CONNECT_PROMPT,
1473
+ AI_HOST_GUIDES,
1474
+ AI_PERMISSION_MODEL,
1351
1475
  AiCapabilities,
1352
1476
  AiIntegrationOnboarding,
1353
1477
  AiLanding,
1354
1478
  AiStatusBoard,
1355
1479
  CapabilityIcon,
1480
+ EN_US_AI_CAPABILITIES,
1481
+ EN_US_AI_CONNECT_PROMPT,
1482
+ EN_US_AI_HOST_GUIDES,
1483
+ EN_US_AI_PERMISSION_MODEL,
1484
+ EN_US_MCP_AI_COPY,
1356
1485
  EndpointCopyBlock,
1357
1486
  FeatureBadge,
1358
1487
  HostBrandAvatar,
@@ -1360,6 +1489,7 @@ export {
1360
1489
  HostOpenButton,
1361
1490
  HostSelectStep,
1362
1491
  HostStepList,
1492
+ MCP_AI_COPY,
1363
1493
  McpEndpointUrl,
1364
1494
  PT_BR_AI_CAPABILITIES,
1365
1495
  PT_BR_AI_CONNECT_PROMPT,