@agent-native/core 0.86.0 → 0.86.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +9 -0
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/client/AgentPanel.tsx +10 -0
- package/corpus/core/src/client/AssistantChat.tsx +91 -27
- package/corpus/core/src/client/ErrorBoundary.tsx +67 -12
- package/corpus/core/src/client/ErrorReportActions.tsx +69 -0
- package/corpus/core/src/client/FeedbackButton.tsx +8 -4
- package/corpus/core/src/client/db-admin/DbAdminPage.tsx +41 -13
- package/corpus/core/src/client/db-admin/SqlEditor.tsx +10 -3
- package/corpus/core/src/client/db-admin/TableEditor.tsx +12 -5
- package/corpus/core/src/client/db-admin/useAgentSync.ts +10 -3
- package/corpus/core/src/client/db-admin/useDbAdmin.ts +65 -16
- package/corpus/core/src/client/error-reporting.ts +100 -0
- package/corpus/core/src/client/index.ts +11 -0
- package/corpus/core/src/client/org/RequireActiveOrg.tsx +12 -0
- package/corpus/core/src/client/visual-style-controls.tsx +615 -2
- package/corpus/core/src/db-admin/index.ts +26 -0
- package/corpus/core/src/db-admin/operations.ts +87 -49
- package/corpus/core/src/localization/default-messages.ts +4 -0
- package/corpus/core/src/server/builder-design-systems.ts +328 -9
- package/corpus/core/src/server/index.ts +15 -0
- package/corpus/core/src/templates/default/app/root.tsx +47 -0
- package/corpus/templates/analytics/AGENTS.md +6 -4
- package/corpus/templates/analytics/actions/delete-db-admin-connection.ts +19 -0
- package/corpus/templates/analytics/actions/list-db-admin-connections.ts +18 -0
- package/corpus/templates/analytics/actions/navigate.ts +17 -3
- package/corpus/templates/analytics/actions/save-db-admin-connection.ts +33 -0
- package/corpus/templates/analytics/actions/view-screen.ts +11 -3
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +11 -2
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +23 -2
- package/corpus/templates/analytics/app/i18n-data.ts +230 -20
- package/corpus/templates/analytics/app/pages/Agents.tsx +398 -4
- package/corpus/templates/analytics/changelog/2026-07-03-connect-other-app-databases-from-analytics.md +6 -0
- package/corpus/templates/analytics/server/db/schema.ts +27 -0
- package/corpus/templates/analytics/server/lib/db-admin-connections.ts +458 -0
- package/corpus/templates/analytics/server/plugins/db.ts +35 -0
- package/corpus/templates/analytics/server/routes/[base]/_agent-native/analytics-db-admin/[...path].ts +1 -0
- package/corpus/templates/analytics/server/routes/_agent-native/analytics-db-admin/[...path].ts +160 -0
- package/corpus/templates/content/app/root.tsx +9 -0
- package/corpus/templates/content/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/design/AGENTS.md +13 -7
- package/corpus/templates/design/actions/get-design-system.ts +21 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +14 -37
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +3 -3
- package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +70 -9
- package/corpus/templates/design/app/components/design/code-workbench/editor/EditorTabs.tsx +11 -2
- package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +1 -1
- package/corpus/templates/design/app/components/design/code-workbench/editor/StatusBar.tsx +1 -1
- package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +8 -2
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +7 -3
- package/corpus/templates/design/app/components/design/code-workbench/store.tsx +48 -0
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +6 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +15 -14
- package/corpus/templates/design/app/i18n-data.ts +154 -142
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +32 -14
- package/corpus/templates/design/changelog/2026-07-03-design-system-setup-now-indexes-figma-code-and-design-md-sou.md +6 -0
- package/corpus/templates/design/changelog/2026-07-03-the-code-editor-is-easier-to-use-with-top-sidebar-tabs-clear.md +6 -0
- package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +16 -106
- package/corpus/templates/mail/app/root.tsx +60 -1
- package/corpus/templates/mail/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/plan/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/plan/app/i18n/de-DE.ts +4 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +4 -0
- package/corpus/templates/plan/app/i18n/es-ES.ts +4 -0
- package/corpus/templates/plan/app/i18n/fr-FR.ts +4 -0
- package/corpus/templates/plan/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/plan/app/i18n/ja-JP.ts +4 -0
- package/corpus/templates/plan/app/i18n/ko-KR.ts +4 -0
- package/corpus/templates/plan/app/i18n/pt-BR.ts +4 -0
- package/corpus/templates/plan/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +74 -3
- package/corpus/templates/plan/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/slides/AGENTS.md +7 -3
- package/corpus/templates/slides/actions/get-design-system.ts +21 -0
- package/corpus/templates/slides/actions/import-file.ts +15 -7
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +14 -37
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +32 -8
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +2 -2
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +2 -4
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +163 -154
- package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +19 -15
- package/corpus/templates/slides/app/components/editor/SpeakerNotesPanel.tsx +56 -6
- package/corpus/templates/slides/app/components/layout/Layout.tsx +6 -1
- package/corpus/templates/slides/app/i18n/ar-SA.ts +8 -7
- package/corpus/templates/slides/app/i18n/de-DE.ts +7 -8
- package/corpus/templates/slides/app/i18n/en-US.ts +8 -7
- package/corpus/templates/slides/app/i18n/es-ES.ts +7 -8
- package/corpus/templates/slides/app/i18n/fr-FR.ts +7 -8
- package/corpus/templates/slides/app/i18n/hi-IN.ts +8 -7
- package/corpus/templates/slides/app/i18n/ja-JP.ts +7 -8
- package/corpus/templates/slides/app/i18n/ko-KR.ts +7 -7
- package/corpus/templates/slides/app/i18n/pt-BR.ts +7 -8
- package/corpus/templates/slides/app/i18n/zh-CN.ts +8 -7
- package/corpus/templates/slides/app/i18n/zh-TW.ts +8 -7
- package/corpus/templates/slides/app/lib/canvas-zoom.ts +16 -1
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +3 -3
- package/corpus/templates/slides/changelog/2026-07-03-design-system-setup-now-indexes-figma-code-and-design-md-sou.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-03-slide-editing-now-keeps-thumbnails-speaker-notes-styling-and.md +6 -0
- package/corpus/templates/slides/server/lib/builder-design-system-proxy.ts +16 -104
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +2 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +77 -25
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +37 -2
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/ErrorReportActions.d.ts +13 -0
- package/dist/client/ErrorReportActions.d.ts.map +1 -0
- package/dist/client/ErrorReportActions.js +14 -0
- package/dist/client/ErrorReportActions.js.map +1 -0
- package/dist/client/FeedbackButton.d.ts +3 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +6 -5
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/db-admin/DbAdminPage.d.ts +9 -1
- package/dist/client/db-admin/DbAdminPage.d.ts.map +1 -1
- package/dist/client/db-admin/DbAdminPage.js +17 -13
- package/dist/client/db-admin/DbAdminPage.js.map +1 -1
- package/dist/client/db-admin/SqlEditor.d.ts +3 -1
- package/dist/client/db-admin/SqlEditor.d.ts.map +1 -1
- package/dist/client/db-admin/SqlEditor.js +3 -3
- package/dist/client/db-admin/SqlEditor.js.map +1 -1
- package/dist/client/db-admin/TableEditor.d.ts +3 -1
- package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
- package/dist/client/db-admin/TableEditor.js +6 -6
- package/dist/client/db-admin/TableEditor.js.map +1 -1
- package/dist/client/db-admin/useAgentSync.d.ts +3 -2
- package/dist/client/db-admin/useAgentSync.d.ts.map +1 -1
- package/dist/client/db-admin/useAgentSync.js +8 -4
- package/dist/client/db-admin/useAgentSync.js.map +1 -1
- package/dist/client/db-admin/useDbAdmin.d.ts +11 -7
- package/dist/client/db-admin/useDbAdmin.d.ts.map +1 -1
- package/dist/client/db-admin/useDbAdmin.js +45 -20
- package/dist/client/db-admin/useDbAdmin.js.map +1 -1
- package/dist/client/error-reporting.d.ts +19 -0
- package/dist/client/error-reporting.d.ts.map +1 -0
- package/dist/client/error-reporting.js +71 -0
- package/dist/client/error-reporting.js.map +1 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
- package/dist/client/org/RequireActiveOrg.js +2 -1
- package/dist/client/org/RequireActiveOrg.js.map +1 -1
- package/dist/client/visual-style-controls.d.ts +11 -0
- package/dist/client/visual-style-controls.d.ts.map +1 -1
- package/dist/client/visual-style-controls.js +350 -1
- package/dist/client/visual-style-controls.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/db-admin/index.d.ts +3 -0
- package/dist/db-admin/index.d.ts.map +1 -0
- package/dist/db-admin/index.js +2 -0
- package/dist/db-admin/index.js.map +1 -0
- package/dist/db-admin/operations.d.ts +26 -5
- package/dist/db-admin/operations.d.ts.map +1 -1
- package/dist/db-admin/operations.js +66 -55
- package/dist/db-admin/operations.js.map +1 -1
- package/dist/localization/default-messages.d.ts +3 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +3 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/builder-design-systems.d.ts +61 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +219 -14
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/templates/default/app/root.tsx +47 -0
- package/package.json +2 -1
- package/src/templates/default/app/root.tsx +47 -0
|
@@ -254,7 +254,7 @@ export default function DesignSystemSetup() {
|
|
|
254
254
|
if (
|
|
255
255
|
f.size < 200 * 1024 &&
|
|
256
256
|
(f.name.match(
|
|
257
|
-
/\.(css|scss|sass|less|ts|tsx|js|jsx|json|html|svg|xml)$/i,
|
|
257
|
+
/\.(css|scss|sass|less|ts|tsx|js|jsx|json|html|svg|xml|md|markdown|mdx|txt)$/i,
|
|
258
258
|
) ||
|
|
259
259
|
f.type.startsWith("text/"))
|
|
260
260
|
) {
|
|
@@ -362,10 +362,16 @@ export default function DesignSystemSetup() {
|
|
|
362
362
|
const normalizedGithubLinks = pendingGithubUrl
|
|
363
363
|
? [...githubLinks, { id: "pending", url: pendingGithubUrl }]
|
|
364
364
|
: githubLinks;
|
|
365
|
+
const readableCodeFiles = codeFiles.filter((f) => f.textContent);
|
|
366
|
+
const designMdFiles = readableCodeFiles.filter(isDesignMdFile);
|
|
367
|
+
const builderCodeFiles = readableCodeFiles.filter(
|
|
368
|
+
(file) => !isDesignMdFile(file),
|
|
369
|
+
);
|
|
370
|
+
const unreadableCodeFiles = codeFiles.filter((f) => !f.textContent);
|
|
365
371
|
|
|
366
372
|
const parts: string[] = [];
|
|
367
373
|
parts.push(
|
|
368
|
-
"Set up a design system from the following sources. Analyze each source, extract design tokens (colors, fonts, spacing, borders), and create a cohesive design system.",
|
|
374
|
+
"Set up a design system from the following sources. Use Builder Design System Intelligence (DSI) as the source of truth for reusable Figma/code/design.md indexing. Analyze each source, extract design tokens (colors, fonts, spacing, borders), and create a cohesive design system.",
|
|
369
375
|
);
|
|
370
376
|
|
|
371
377
|
if (companyInfo.trim()) {
|
|
@@ -380,34 +386,41 @@ export default function DesignSystemSetup() {
|
|
|
380
386
|
|
|
381
387
|
if (normalizedGithubLinks.length > 0) {
|
|
382
388
|
parts.push(
|
|
383
|
-
`\n## GitHub Repositories\nStart Builder
|
|
389
|
+
`\n## Connect Code: GitHub Repositories\nStart Builder DSI indexing for each repository with \`index-design-system-with-builder\`:\n${normalizedGithubLinks.map((l) => `- ${l.url}`).join("\n")}\n\nBuilder is the source of truth for repo/code design-system indexing. The action also creates a local selectable proxy design system for Design flows. If Builder is not connected, stop and tell me to connect Builder from Settings instead of asking me to paste repository credentials into chat.`,
|
|
384
390
|
);
|
|
385
391
|
}
|
|
386
392
|
|
|
387
393
|
if (codeFiles.length > 0) {
|
|
388
|
-
|
|
389
|
-
const withoutContent = codeFiles.filter((f) => !f.textContent);
|
|
390
|
-
|
|
391
|
-
if (withContent.length > 0) {
|
|
394
|
+
if (builderCodeFiles.length > 0) {
|
|
392
395
|
parts.push(
|
|
393
|
-
`\n## Code Files (${
|
|
396
|
+
`\n## Connect Code: Code Files (${builderCodeFiles.length} files with content)\nStart Builder DSI indexing with \`index-design-system-with-builder\` using these files as the \`codeFiles\` argument:`,
|
|
394
397
|
);
|
|
395
|
-
for (const f of
|
|
398
|
+
for (const f of builderCodeFiles) {
|
|
396
399
|
parts.push(
|
|
397
400
|
`\n### ${f.name}\n\`\`\`\n${f.textContent!.slice(0, 5000)}\n\`\`\``,
|
|
398
401
|
);
|
|
399
402
|
}
|
|
400
403
|
}
|
|
401
|
-
if (
|
|
404
|
+
if (designMdFiles.length > 0) {
|
|
405
|
+
parts.push(
|
|
406
|
+
`\n## Optional design.md (${designMdFiles.length} file${designMdFiles.length === 1 ? "" : "s"})\nPass this content as the \`designMd\` argument to \`index-design-system-with-builder\` alongside any Figma/code sources:`,
|
|
407
|
+
);
|
|
408
|
+
for (const f of designMdFiles) {
|
|
409
|
+
parts.push(
|
|
410
|
+
`\n### ${f.name}\n\`\`\`md\n${f.textContent!.slice(0, 5000)}\n\`\`\``,
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if (unreadableCodeFiles.length > 0) {
|
|
402
415
|
parts.push(
|
|
403
|
-
`\nBinary code files (could not read):\n${
|
|
416
|
+
`\nBinary code files (could not read):\n${unreadableCodeFiles.map((f) => `- ${f.name}`).join("\n")}`,
|
|
404
417
|
);
|
|
405
418
|
}
|
|
406
419
|
}
|
|
407
420
|
|
|
408
421
|
if (builderIndexResult) {
|
|
409
422
|
parts.push(
|
|
410
|
-
`\n## Builder-Indexed Figma File\nBuilder
|
|
423
|
+
`\n## Connect Figma: Builder-Indexed Figma File\nBuilder DSI indexing has already started.\n- Design system: ${builderIndexResult.designSystemId}\n- Local selectable design system: ${builderIndexResult.localDesignSystemId ?? "(not returned)"}\n- Project: ${builderIndexResult.projectId}\n- Job: ${builderIndexResult.jobId}\n- URL: ${builderIndexResult.builderUrl}\n\nUse Builder as the source of truth for extracted tokens, assets, components, and guidance. Do not call \`create-design-system\` again for this Builder-indexed source.`,
|
|
411
424
|
);
|
|
412
425
|
}
|
|
413
426
|
|
|
@@ -454,7 +467,7 @@ export default function DesignSystemSetup() {
|
|
|
454
467
|
}
|
|
455
468
|
|
|
456
469
|
parts.push(
|
|
457
|
-
`\n---\nAfter processing all sources, if you started Builder
|
|
470
|
+
`\n---\nAfter processing all sources, if you started Builder DSI indexing, report the Builder job/design-system URL plus the local selectable design-system id returned by \`index-design-system-with-builder\`. Do not call \`create-design-system\` again for Builder-indexed Figma/code/design.md sources. If you processed non-Builder sources into concrete tokens, call \`create-design-system\` with the combined tokens${
|
|
458
471
|
customInstructions.trim()
|
|
459
472
|
? " AND the verbatim --customInstructions string from above"
|
|
460
473
|
: ""
|
|
@@ -757,7 +770,7 @@ export default function DesignSystemSetup() {
|
|
|
757
770
|
ref={codeInputRef}
|
|
758
771
|
type="file"
|
|
759
772
|
multiple
|
|
760
|
-
accept=".css,.scss,.sass,.less,.ts,.tsx,.js,.jsx,.json,.html,.svg"
|
|
773
|
+
accept=".css,.scss,.sass,.less,.ts,.tsx,.js,.jsx,.json,.html,.svg,.xml,.md,.markdown,.mdx,.txt"
|
|
761
774
|
onChange={handleCodeUpload}
|
|
762
775
|
className="hidden"
|
|
763
776
|
/>
|
|
@@ -1137,6 +1150,11 @@ function formatSize(bytes: number): string {
|
|
|
1137
1150
|
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
1138
1151
|
}
|
|
1139
1152
|
|
|
1153
|
+
function isDesignMdFile(file: UploadedFile): boolean {
|
|
1154
|
+
const name = file.name.split(/[\\/]/).pop()?.toLowerCase() ?? file.name;
|
|
1155
|
+
return name === "design.md" || name === "design.mdx";
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1140
1158
|
function isHttpUrl(value: string): boolean {
|
|
1141
1159
|
try {
|
|
1142
1160
|
const url = new URL(value);
|
|
@@ -1,93 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createBuilderDesignSystemProxyFields,
|
|
3
|
+
localBuilderDesignSystemId,
|
|
4
|
+
type BuilderDesignSystemIndexResult,
|
|
5
|
+
} from "@agent-native/core/server";
|
|
1
6
|
import { eq } from "drizzle-orm";
|
|
2
7
|
import { nanoid } from "nanoid";
|
|
3
8
|
|
|
4
9
|
import { getDb, schema } from "../db/index.js";
|
|
5
10
|
|
|
6
|
-
type BuilderDesignSystemIndexResult = {
|
|
7
|
-
designSystemId: string;
|
|
8
|
-
jobId: string;
|
|
9
|
-
builderUrl: string;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export function localBuilderDesignSystemId(
|
|
13
|
-
builderDesignSystemId: string,
|
|
14
|
-
): string {
|
|
15
|
-
const slug = builderDesignSystemId
|
|
16
|
-
.replace(/[^a-zA-Z0-9_-]+/g, "-")
|
|
17
|
-
.replace(/^-+|-+$/g, "")
|
|
18
|
-
.slice(0, 96);
|
|
19
|
-
return `builder-${slug || "design-system"}`;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function builderProxyData({
|
|
23
|
-
builderDesignSystemId,
|
|
24
|
-
jobId,
|
|
25
|
-
builderUrl,
|
|
26
|
-
projectName,
|
|
27
|
-
description,
|
|
28
|
-
}: {
|
|
29
|
-
builderDesignSystemId: string;
|
|
30
|
-
jobId: string;
|
|
31
|
-
builderUrl: string;
|
|
32
|
-
projectName?: string;
|
|
33
|
-
description?: string;
|
|
34
|
-
}) {
|
|
35
|
-
return JSON.stringify({
|
|
36
|
-
source: "builder",
|
|
37
|
-
builderDesignSystemId,
|
|
38
|
-
builderJobId: jobId,
|
|
39
|
-
builderUrl,
|
|
40
|
-
colors: {
|
|
41
|
-
primary: "var(--primary)",
|
|
42
|
-
secondary: "var(--secondary)",
|
|
43
|
-
accent: "var(--accent)",
|
|
44
|
-
background: "var(--background)",
|
|
45
|
-
surface: "var(--card)",
|
|
46
|
-
text: "var(--foreground)",
|
|
47
|
-
textMuted: "var(--muted-foreground)",
|
|
48
|
-
},
|
|
49
|
-
typography: {
|
|
50
|
-
headingFont: "inherit",
|
|
51
|
-
bodyFont: "inherit",
|
|
52
|
-
headingWeight: "700",
|
|
53
|
-
bodyWeight: "400",
|
|
54
|
-
headingSizes: { h1: "48px", h2: "32px", h3: "24px" },
|
|
55
|
-
},
|
|
56
|
-
spacing: { elementGap: "24px", pagePadding: "48px" },
|
|
57
|
-
borders: { radius: "12px", accentWidth: "1px" },
|
|
58
|
-
logos: [],
|
|
59
|
-
notes: [
|
|
60
|
-
"This is a local proxy for a Builder-indexed design system.",
|
|
61
|
-
`Builder design system id: ${builderDesignSystemId}`,
|
|
62
|
-
`Builder indexing job id: ${jobId}`,
|
|
63
|
-
`Builder URL: ${builderUrl}`,
|
|
64
|
-
projectName ? `Requested name: ${projectName}` : "",
|
|
65
|
-
description ? `Context: ${description}` : "",
|
|
66
|
-
"Use Builder as the source of truth for extracted tokens and guidance.",
|
|
67
|
-
]
|
|
68
|
-
.filter(Boolean)
|
|
69
|
-
.join("\n"),
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function builderProxyInstructions({
|
|
74
|
-
builderDesignSystemId,
|
|
75
|
-
jobId,
|
|
76
|
-
builderUrl,
|
|
77
|
-
}: {
|
|
78
|
-
builderDesignSystemId: string;
|
|
79
|
-
jobId: string;
|
|
80
|
-
builderUrl: string;
|
|
81
|
-
}) {
|
|
82
|
-
return [
|
|
83
|
-
"This design system is indexed and owned by Builder.",
|
|
84
|
-
`Builder design system id: ${builderDesignSystemId}`,
|
|
85
|
-
`Builder job id: ${jobId}`,
|
|
86
|
-
`Builder URL: ${builderUrl}`,
|
|
87
|
-
"When generating designs, treat Builder as the source of truth for the final extracted tokens, assets, and guidance.",
|
|
88
|
-
].join("\n");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
11
|
export async function upsertBuilderProxyDesignSystem({
|
|
92
12
|
result,
|
|
93
13
|
ownerEmail,
|
|
@@ -106,18 +26,11 @@ export async function upsertBuilderProxyDesignSystem({
|
|
|
106
26
|
const baseLocalDesignSystemId = localBuilderDesignSystemId(
|
|
107
27
|
result.designSystemId,
|
|
108
28
|
);
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
builderDesignSystemId: result.designSystemId,
|
|
112
|
-
jobId: result.jobId,
|
|
113
|
-
builderUrl: result.builderUrl,
|
|
29
|
+
const proxyFields = createBuilderDesignSystemProxyFields({
|
|
30
|
+
result,
|
|
114
31
|
projectName,
|
|
115
32
|
description,
|
|
116
|
-
|
|
117
|
-
const customInstructions = builderProxyInstructions({
|
|
118
|
-
builderDesignSystemId: result.designSystemId,
|
|
119
|
-
jobId: result.jobId,
|
|
120
|
-
builderUrl: result.builderUrl,
|
|
33
|
+
surface: "design",
|
|
121
34
|
});
|
|
122
35
|
const [existing] = await db
|
|
123
36
|
.select({
|
|
@@ -135,13 +48,11 @@ export async function upsertBuilderProxyDesignSystem({
|
|
|
135
48
|
await db
|
|
136
49
|
.update(schema.designSystems)
|
|
137
50
|
.set({
|
|
138
|
-
title,
|
|
139
|
-
description:
|
|
140
|
-
|
|
141
|
-
`Builder indexed design system ${result.designSystemId}`,
|
|
142
|
-
data: localData,
|
|
51
|
+
title: proxyFields.title,
|
|
52
|
+
description: proxyFields.description,
|
|
53
|
+
data: proxyFields.data,
|
|
143
54
|
assets: "[]",
|
|
144
|
-
customInstructions,
|
|
55
|
+
customInstructions: proxyFields.customInstructions,
|
|
145
56
|
updatedAt: now,
|
|
146
57
|
})
|
|
147
58
|
.where(eq(schema.designSystems.id, existing.id));
|
|
@@ -153,12 +64,11 @@ export async function upsertBuilderProxyDesignSystem({
|
|
|
153
64
|
.limit(1);
|
|
154
65
|
await db.insert(schema.designSystems).values({
|
|
155
66
|
id: localDesignSystemId,
|
|
156
|
-
title,
|
|
157
|
-
description:
|
|
158
|
-
|
|
159
|
-
data: localData,
|
|
67
|
+
title: proxyFields.title,
|
|
68
|
+
description: proxyFields.description,
|
|
69
|
+
data: proxyFields.data,
|
|
160
70
|
assets: "[]",
|
|
161
|
-
customInstructions,
|
|
71
|
+
customInstructions: proxyFields.customInstructions,
|
|
162
72
|
isDefault: !ownedSystem,
|
|
163
73
|
ownerEmail,
|
|
164
74
|
orgId: orgId ?? null,
|
|
@@ -2,6 +2,7 @@ import { useDbSync } from "@agent-native/core/client";
|
|
|
2
2
|
import {
|
|
3
3
|
AppProviders,
|
|
4
4
|
DEFAULT_LOCALE,
|
|
5
|
+
ErrorReportActions,
|
|
5
6
|
LOCALE_HYDRATION_GLOBAL,
|
|
6
7
|
LOCALE_STORAGE_KEY,
|
|
7
8
|
RequireSession,
|
|
@@ -82,73 +83,121 @@ function skipBroadActionInvalidation() {
|
|
|
82
83
|
|
|
83
84
|
const MAIL_ERROR_COPY: Record<
|
|
84
85
|
LocaleCode,
|
|
85
|
-
{
|
|
86
|
+
{
|
|
87
|
+
title: string;
|
|
88
|
+
fallback: string;
|
|
89
|
+
back: string;
|
|
90
|
+
reload: string;
|
|
91
|
+
sendFeedback: string;
|
|
92
|
+
feedbackPlaceholder: string;
|
|
93
|
+
openGitHubIssue: string;
|
|
94
|
+
}
|
|
86
95
|
> = {
|
|
87
96
|
"en-US": {
|
|
88
97
|
title: "Mail could not load this view.",
|
|
89
98
|
fallback: "Something went wrong while loading Mail.",
|
|
90
99
|
back: "Back",
|
|
91
100
|
reload: "Reload",
|
|
101
|
+
sendFeedback: "Send feedback",
|
|
102
|
+
feedbackPlaceholder:
|
|
103
|
+
"Describe what happened before this Mail error appeared.",
|
|
104
|
+
openGitHubIssue: "Open GitHub issue",
|
|
92
105
|
},
|
|
93
106
|
"zh-CN": {
|
|
94
107
|
title: "Mail 无法加载此视图。",
|
|
95
108
|
fallback: "加载 Mail 时出现问题。",
|
|
96
109
|
back: "返回",
|
|
97
110
|
reload: "重新加载",
|
|
111
|
+
sendFeedback: "发送反馈",
|
|
112
|
+
feedbackPlaceholder: "描述此 Mail 错误出现前发生了什么。",
|
|
113
|
+
openGitHubIssue: "打开 GitHub issue",
|
|
98
114
|
},
|
|
99
115
|
"zh-TW": {
|
|
100
116
|
title: "Mail 無法載入此檢視。",
|
|
101
117
|
fallback: "載入 Mail 時發生問題。",
|
|
102
118
|
back: "返回",
|
|
103
119
|
reload: "重新載入",
|
|
120
|
+
sendFeedback: "傳送意見回饋",
|
|
121
|
+
feedbackPlaceholder: "描述此 Mail 錯誤出現前發生了什麼。",
|
|
122
|
+
openGitHubIssue: "開啟 GitHub issue",
|
|
104
123
|
},
|
|
105
124
|
"es-ES": {
|
|
106
125
|
title: "Mail no pudo cargar esta vista.",
|
|
107
126
|
fallback: "Algo salió mal al cargar Mail.",
|
|
108
127
|
back: "Atrás",
|
|
109
128
|
reload: "Recargar",
|
|
129
|
+
sendFeedback: "Enviar comentarios",
|
|
130
|
+
feedbackPlaceholder:
|
|
131
|
+
"Describe qué pasó antes de que apareciera este error de Mail.",
|
|
132
|
+
openGitHubIssue: "Abrir issue en GitHub",
|
|
110
133
|
},
|
|
111
134
|
"fr-FR": {
|
|
112
135
|
title: "Mail n'a pas pu charger cette vue.",
|
|
113
136
|
fallback: "Un problème est survenu lors du chargement de Mail.",
|
|
114
137
|
back: "Retour",
|
|
115
138
|
reload: "Recharger",
|
|
139
|
+
sendFeedback: "Envoyer un retour",
|
|
140
|
+
feedbackPlaceholder:
|
|
141
|
+
"Décrivez ce qui s'est passé avant cette erreur de Mail.",
|
|
142
|
+
openGitHubIssue: "Ouvrir une issue GitHub",
|
|
116
143
|
},
|
|
117
144
|
"de-DE": {
|
|
118
145
|
title: "Mail konnte diese Ansicht nicht laden.",
|
|
119
146
|
fallback: "Beim Laden von Mail ist ein Fehler aufgetreten.",
|
|
120
147
|
back: "Zurück",
|
|
121
148
|
reload: "Neu laden",
|
|
149
|
+
sendFeedback: "Feedback senden",
|
|
150
|
+
feedbackPlaceholder:
|
|
151
|
+
"Beschreiben Sie, was vor diesem Mail-Fehler passiert ist.",
|
|
152
|
+
openGitHubIssue: "GitHub-Issue öffnen",
|
|
122
153
|
},
|
|
123
154
|
"ja-JP": {
|
|
124
155
|
title: "Mail はこのビューを読み込めませんでした。",
|
|
125
156
|
fallback: "Mail の読み込み中に問題が発生しました。",
|
|
126
157
|
back: "戻る",
|
|
127
158
|
reload: "再読み込み",
|
|
159
|
+
sendFeedback: "フィードバックを送信",
|
|
160
|
+
feedbackPlaceholder:
|
|
161
|
+
"この Mail エラーの直前に起きたことを説明してください。",
|
|
162
|
+
openGitHubIssue: "GitHub issue を開く",
|
|
128
163
|
},
|
|
129
164
|
"ko-KR": {
|
|
130
165
|
title: "Mail에서 이 보기를 불러올 수 없습니다.",
|
|
131
166
|
fallback: "Mail을 불러오는 중 문제가 발생했습니다.",
|
|
132
167
|
back: "뒤로",
|
|
133
168
|
reload: "새로고침",
|
|
169
|
+
sendFeedback: "피드백 보내기",
|
|
170
|
+
feedbackPlaceholder:
|
|
171
|
+
"이 Mail 오류가 나타나기 전에 무슨 일이 있었는지 적어 주세요.",
|
|
172
|
+
openGitHubIssue: "GitHub issue 열기",
|
|
134
173
|
},
|
|
135
174
|
"pt-BR": {
|
|
136
175
|
title: "O Mail não conseguiu carregar esta visualização.",
|
|
137
176
|
fallback: "Algo deu errado ao carregar o Mail.",
|
|
138
177
|
back: "Voltar",
|
|
139
178
|
reload: "Recarregar",
|
|
179
|
+
sendFeedback: "Enviar feedback",
|
|
180
|
+
feedbackPlaceholder:
|
|
181
|
+
"Descreva o que aconteceu antes deste erro do Mail aparecer.",
|
|
182
|
+
openGitHubIssue: "Abrir issue no GitHub",
|
|
140
183
|
},
|
|
141
184
|
"hi-IN": {
|
|
142
185
|
title: "Mail यह दृश्य लोड नहीं कर सका।",
|
|
143
186
|
fallback: "Mail लोड करते समय कुछ गलत हुआ।",
|
|
144
187
|
back: "वापस",
|
|
145
188
|
reload: "रीलोड",
|
|
189
|
+
sendFeedback: "फ़ीडबैक भेजें",
|
|
190
|
+
feedbackPlaceholder: "इस Mail त्रुटि से पहले क्या हुआ, उसका वर्णन करें।",
|
|
191
|
+
openGitHubIssue: "GitHub issue खोलें",
|
|
146
192
|
},
|
|
147
193
|
"ar-SA": {
|
|
148
194
|
title: "تعذر على Mail تحميل هذا العرض.",
|
|
149
195
|
fallback: "حدث خطأ أثناء تحميل Mail.",
|
|
150
196
|
back: "رجوع",
|
|
151
197
|
reload: "إعادة التحميل",
|
|
198
|
+
sendFeedback: "إرسال الملاحظات",
|
|
199
|
+
feedbackPlaceholder: "صف ما حدث قبل ظهور خطأ Mail هذا.",
|
|
200
|
+
openGitHubIssue: "فتح مشكلة في GitHub",
|
|
152
201
|
},
|
|
153
202
|
};
|
|
154
203
|
|
|
@@ -436,6 +485,16 @@ export function ErrorBoundary() {
|
|
|
436
485
|
{copy.reload}
|
|
437
486
|
</Button>
|
|
438
487
|
</div>
|
|
488
|
+
<ErrorReportActions
|
|
489
|
+
appName="Mail"
|
|
490
|
+
title={copy.title}
|
|
491
|
+
details={message}
|
|
492
|
+
issueTitle={`Mail error: ${copy.title}`}
|
|
493
|
+
feedbackLabel={copy.sendFeedback}
|
|
494
|
+
feedbackPlaceholder={copy.feedbackPlaceholder}
|
|
495
|
+
githubLabel={copy.openGitHubIssue}
|
|
496
|
+
className="mt-4"
|
|
497
|
+
/>
|
|
439
498
|
</div>
|
|
440
499
|
</div>
|
|
441
500
|
);
|
|
@@ -641,6 +641,9 @@ const messages = {
|
|
|
641
641
|
signIn: "تسجيل الدخول",
|
|
642
642
|
haveAccount: "لدي حساب بالفعل",
|
|
643
643
|
retry: "حاول ثانية",
|
|
644
|
+
sendFeedback: "إرسال الملاحظات",
|
|
645
|
+
feedbackPlaceholder: "صف ما حدث قبل ظهور خطأ الخطة هذا.",
|
|
646
|
+
openGitHubIssue: "فتح مشكلة في GitHub",
|
|
644
647
|
joinedOrg: "انضم {{orgName}}. خطة الافتتاح...",
|
|
645
648
|
acceptingInvite: "قبول الدعوة",
|
|
646
649
|
joiningOrg: "الانضمام إلى المنظمة",
|
|
@@ -653,6 +653,10 @@ const messages = {
|
|
|
653
653
|
signIn: "Einloggen",
|
|
654
654
|
haveAccount: "Ich habe bereits ein Konto",
|
|
655
655
|
retry: "Versuchen Sie es erneut",
|
|
656
|
+
sendFeedback: "Feedback senden",
|
|
657
|
+
feedbackPlaceholder:
|
|
658
|
+
"Beschreiben Sie, was vor diesem Planfehler passiert ist.",
|
|
659
|
+
openGitHubIssue: "GitHub-Issue öffnen",
|
|
656
660
|
joinedOrg: "Beigetreten {{orgName}}. Eröffnungsplan...",
|
|
657
661
|
acceptingInvite: "Einladung annehmen",
|
|
658
662
|
joiningOrg: "Beitritt zur Organisation",
|
|
@@ -630,6 +630,10 @@ const messages = {
|
|
|
630
630
|
signIn: "Sign in",
|
|
631
631
|
haveAccount: "I have an account",
|
|
632
632
|
retry: "Retry",
|
|
633
|
+
sendFeedback: "Send feedback",
|
|
634
|
+
feedbackPlaceholder:
|
|
635
|
+
"Describe what happened before this plan error appeared.",
|
|
636
|
+
openGitHubIssue: "Open GitHub issue",
|
|
633
637
|
joinedOrg: "Joined {{orgName}}. Opening plan...",
|
|
634
638
|
acceptingInvite: "Accepting invite",
|
|
635
639
|
joiningOrg: "Joining organization",
|
|
@@ -474,6 +474,10 @@ const messages = {
|
|
|
474
474
|
requestAccessTitle: "Solicitar acceso a este plan",
|
|
475
475
|
requestSent: "Solicitud enviada",
|
|
476
476
|
retry: "Rever",
|
|
477
|
+
sendFeedback: "Enviar comentarios",
|
|
478
|
+
feedbackPlaceholder:
|
|
479
|
+
"Describe qué pasó antes de que apareciera este error del plan.",
|
|
480
|
+
openGitHubIssue: "Abrir issue en GitHub",
|
|
477
481
|
retryHelp:
|
|
478
482
|
"Vuelva a intentar la carga o inicie sesión con otra cuenta si se trata de un enlace de plan privado.",
|
|
479
483
|
signIn: "Iniciar sesión",
|
|
@@ -476,6 +476,10 @@ const messages = {
|
|
|
476
476
|
requestAccessTitle: "Demander l'accès à ce plan",
|
|
477
477
|
requestSent: "Demande envoyée",
|
|
478
478
|
retry: "Réessayer",
|
|
479
|
+
sendFeedback: "Envoyer un retour",
|
|
480
|
+
feedbackPlaceholder:
|
|
481
|
+
"Décrivez ce qui s'est passé avant cette erreur de plan.",
|
|
482
|
+
openGitHubIssue: "Ouvrir une issue GitHub",
|
|
479
483
|
retryHelp:
|
|
480
484
|
"Réessayez le chargement ou connectez-vous avec un autre compte s'il s'agit d'un lien vers un forfait privé.",
|
|
481
485
|
signIn: "Se connecter",
|
|
@@ -626,6 +626,9 @@ const messages = {
|
|
|
626
626
|
signIn: "लॉग इन करें",
|
|
627
627
|
haveAccount: "मेरा पहले से ही खाता है",
|
|
628
628
|
retry: "पुनः प्रयास करें",
|
|
629
|
+
sendFeedback: "फ़ीडबैक भेजें",
|
|
630
|
+
feedbackPlaceholder: "इस प्लान त्रुटि से पहले क्या हुआ, उसका वर्णन करें।",
|
|
631
|
+
openGitHubIssue: "GitHub issue खोलें",
|
|
629
632
|
joinedOrg: "{{orgName}} से जुड़े। उद्घाटन योजना...",
|
|
630
633
|
acceptingInvite: "निमंत्रण स्वीकार कर रहा हूँ",
|
|
631
634
|
joiningOrg: "संगठन से जुड़ना",
|
|
@@ -626,6 +626,10 @@ const messages = {
|
|
|
626
626
|
signIn: "登录",
|
|
627
627
|
haveAccount: "我已有账户",
|
|
628
628
|
retry: "重试",
|
|
629
|
+
sendFeedback: "フィードバックを送信",
|
|
630
|
+
feedbackPlaceholder:
|
|
631
|
+
"このプランエラーの直前に起きたことを説明してください。",
|
|
632
|
+
openGitHubIssue: "GitHub issue を開く",
|
|
629
633
|
joinedOrg: "已加入 {{orgName}}。正在打开计划...",
|
|
630
634
|
acceptingInvite: "正在接受邀请",
|
|
631
635
|
joiningOrg: "正在加入组织",
|
|
@@ -615,6 +615,10 @@ const messages = {
|
|
|
615
615
|
signIn: "登录",
|
|
616
616
|
haveAccount: "我已有账户",
|
|
617
617
|
retry: "重试",
|
|
618
|
+
sendFeedback: "피드백 보내기",
|
|
619
|
+
feedbackPlaceholder:
|
|
620
|
+
"이 계획 오류가 나타나기 전에 무슨 일이 있었는지 적어 주세요.",
|
|
621
|
+
openGitHubIssue: "GitHub issue 열기",
|
|
618
622
|
joinedOrg: "已加入 {{orgName}}。正在打开计划...",
|
|
619
623
|
acceptingInvite: "正在接受邀请",
|
|
620
624
|
joiningOrg: "正在加入组织",
|
|
@@ -651,6 +651,10 @@ const messages = {
|
|
|
651
651
|
signIn: "Conecte-se",
|
|
652
652
|
haveAccount: "Eu já tenho uma conta",
|
|
653
653
|
retry: "Tente novamente",
|
|
654
|
+
sendFeedback: "Enviar feedback",
|
|
655
|
+
feedbackPlaceholder:
|
|
656
|
+
"Descreva o que aconteceu antes deste erro do plano aparecer.",
|
|
657
|
+
openGitHubIssue: "Abrir issue no GitHub",
|
|
654
658
|
joinedOrg: "Inscreveu-se em {{orgName}}. Plano de abertura...",
|
|
655
659
|
acceptingInvite: "Aceitando convite",
|
|
656
660
|
joiningOrg: "Aderindo à organização",
|
|
@@ -445,6 +445,9 @@ const messages = {
|
|
|
445
445
|
requestAccessTitle: "请求访问此计划",
|
|
446
446
|
requestSent: "请求已发送",
|
|
447
447
|
retry: "重试",
|
|
448
|
+
sendFeedback: "发送反馈",
|
|
449
|
+
feedbackPlaceholder: "描述此计划错误出现前发生了什么。",
|
|
450
|
+
openGitHubIssue: "打开 GitHub issue",
|
|
448
451
|
retryHelp: "重试加载,或者如果这是私人计划链接,则使用其他帐户登录。",
|
|
449
452
|
signIn: "登入",
|
|
450
453
|
signInTitle: "登录查看此计划",
|
|
@@ -445,6 +445,9 @@ const messages = {
|
|
|
445
445
|
requestAccessTitle: "請求存取此計畫",
|
|
446
446
|
requestSent: "請求已傳送",
|
|
447
447
|
retry: "重試",
|
|
448
|
+
sendFeedback: "傳送意見回饋",
|
|
449
|
+
feedbackPlaceholder: "描述此計畫錯誤出現前發生了什麼。",
|
|
450
|
+
openGitHubIssue: "開啟 GitHub issue",
|
|
448
451
|
retryHelp: "重試載入,或者如果這是私人計畫連結,則使用其他帳戶登入。",
|
|
449
452
|
signIn: "登入",
|
|
450
453
|
signInTitle: "登入檢視此計畫",
|