@agent-native/core 0.77.10 → 0.77.12
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 +1 -1
- package/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/package.json +3 -3
- package/corpus/core/src/cli/create.ts +65 -15
- package/corpus/core/src/cli/sync-builder-starter-manifest.ts +261 -65
- package/corpus/core/src/collab/awareness.ts +12 -9
- package/corpus/core/src/collab/client.ts +4 -2
- package/corpus/templates/clips/actions/finalize-recording.ts +1 -1
- package/corpus/templates/clips/chrome-extension/package.json +1 -1
- package/corpus/templates/clips/desktop/src/app.tsx +35 -19
- package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +38 -1
- package/corpus/templates/clips/desktop/src/styles.css +35 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +343 -14
- package/corpus/templates/content/actions/list-trashed-content-databases.ts +36 -2
- package/corpus/templates/content/actions/move-document.ts +79 -33
- package/corpus/templates/content/actions/restore-content-database.ts +40 -3
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +84 -2
- package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +177 -49
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +393 -219
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +632 -467
- package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +114 -14
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +56 -15
- package/corpus/templates/content/app/components/editor/extensions/NotionExtensions.tsx +6 -5
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +12 -4
- package/corpus/templates/content/app/global.css +9 -0
- package/corpus/templates/content/app/hooks/use-create-page.ts +36 -7
- package/corpus/templates/content/app/i18n-data.ts +140 -10
- package/corpus/templates/content/changelog/2026-06-25-comment-cards-now-track-their-highlighted-text-while-scrolli.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-comments-now-scroll-with-the-document-and-stay-below-the-pag.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-creating-a-database-from-the-slash-menu-no-longer-leaves-sta.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-sidebar-hover-controls-no-longer-leave-a-lingering-fade-when.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-sidebar-page-actions-are-now-easier-to-see-when-hovering-ina.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-text-selections-in-the-editor-no-longer-show-white-gaps-when.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-the-editor-toolbar-now-has-a-one-click-page-link-copy-button.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-the-editor-toolbar-now-shows-page-breadcrumbs-and-the-latest.md +6 -0
- package/corpus/templates/content/changelog/2026-06-25-the-page-command-now-leaves-a-notion-style-page-reference-an.md +6 -0
- package/corpus/templates/content/shared/nfm.ts +16 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +53 -15
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/sync-builder-starter-manifest.d.ts +36 -2
- package/dist/cli/sync-builder-starter-manifest.d.ts.map +1 -1
- package/dist/cli/sync-builder-starter-manifest.js +180 -37
- package/dist/cli/sync-builder-starter-manifest.js.map +1 -1
- package/dist/collab/awareness.d.ts +1 -1
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/awareness.js +12 -8
- package/dist/collab/awareness.js.map +1 -1
- package/dist/collab/client.d.ts.map +1 -1
- package/dist/collab/client.js +4 -3
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +3 -3
|
@@ -1163,6 +1163,11 @@ const editorToolbarMessages = {
|
|
|
1163
1163
|
conflictResolvedFromNotion: "Conflict resolved from Notion.",
|
|
1164
1164
|
connectNotionWorkspaceToLink:
|
|
1165
1165
|
"Connect a Notion workspace to link this document.",
|
|
1166
|
+
copiedPageLink: "Copied page link",
|
|
1167
|
+
copyPageLink: "Copy page link",
|
|
1168
|
+
couldNotCopyLink: "Could not copy link",
|
|
1169
|
+
clipboardAccessUnavailable:
|
|
1170
|
+
"Clipboard access is not available in this browser.",
|
|
1166
1171
|
edited: "Edited",
|
|
1167
1172
|
export: "Export",
|
|
1168
1173
|
exportFailed: "Export failed",
|
|
@@ -1197,6 +1202,7 @@ const editorToolbarMessages = {
|
|
|
1197
1202
|
openInNotion: "Open in Notion",
|
|
1198
1203
|
orgCanFindAndView: "Anyone in your organization can find and view",
|
|
1199
1204
|
orgLinkCanView: "Anyone in your organization with the link can view",
|
|
1205
|
+
pageBreadcrumb: "Page breadcrumb",
|
|
1200
1206
|
printDialogOpened: "Print dialog opened",
|
|
1201
1207
|
printDialogOpenedDescription: "Choose Save as PDF to finish the export.",
|
|
1202
1208
|
pulledFromNotion: "Pulled from Notion.",
|
|
@@ -1443,6 +1449,7 @@ const enUS = {
|
|
|
1443
1449
|
describeWhatToGenerate: "Describe what to generate...",
|
|
1444
1450
|
enterToSubmit: "Enter to submit",
|
|
1445
1451
|
failedToCreateDatabase: "Failed to create database",
|
|
1452
|
+
failedToCreatePage: "Failed to create page",
|
|
1446
1453
|
generateWithAi: "Generate with AI",
|
|
1447
1454
|
dropMedia: "Drop media",
|
|
1448
1455
|
editLink: "Edit link",
|
|
@@ -7524,21 +7531,130 @@ export const messagesByLocale = {
|
|
|
7524
7531
|
} satisfies Record<LocaleCode, Messages>;
|
|
7525
7532
|
|
|
7526
7533
|
const contentExactEnglishTranslations = {
|
|
7527
|
-
"zh-CN": {
|
|
7528
|
-
|
|
7529
|
-
|
|
7534
|
+
"zh-CN": {
|
|
7535
|
+
editor: {
|
|
7536
|
+
failedToCreatePage: "创建页面失败",
|
|
7537
|
+
toolbar: {
|
|
7538
|
+
copiedPageLink: "已复制页面链接",
|
|
7539
|
+
copyPageLink: "复制页面链接",
|
|
7540
|
+
couldNotCopyLink: "无法复制链接",
|
|
7541
|
+
clipboardAccessUnavailable: "此浏览器无法访问剪贴板。",
|
|
7542
|
+
pageBreadcrumb: "页面面包屑",
|
|
7543
|
+
},
|
|
7544
|
+
versionRestoreQuestion: "恢复此版本?",
|
|
7545
|
+
},
|
|
7546
|
+
},
|
|
7547
|
+
"es-ES": {
|
|
7548
|
+
editor: {
|
|
7549
|
+
failedToCreatePage: "No se pudo crear la página",
|
|
7550
|
+
toolbar: {
|
|
7551
|
+
copiedPageLink: "Enlace de página copiado",
|
|
7552
|
+
copyPageLink: "Copiar enlace de página",
|
|
7553
|
+
couldNotCopyLink: "No se pudo copiar el enlace",
|
|
7554
|
+
clipboardAccessUnavailable:
|
|
7555
|
+
"El acceso al portapapeles no está disponible en este navegador.",
|
|
7556
|
+
pageBreadcrumb: "Ruta de la página",
|
|
7557
|
+
},
|
|
7558
|
+
versionRestoreQuestion: "¿Restaurar esta versión?",
|
|
7559
|
+
},
|
|
7560
|
+
},
|
|
7561
|
+
"fr-FR": {
|
|
7562
|
+
editor: {
|
|
7563
|
+
failedToCreatePage: "Impossible de créer la page",
|
|
7564
|
+
toolbar: {
|
|
7565
|
+
copiedPageLink: "Lien de la page copié",
|
|
7566
|
+
copyPageLink: "Copier le lien de la page",
|
|
7567
|
+
couldNotCopyLink: "Impossible de copier le lien",
|
|
7568
|
+
clipboardAccessUnavailable:
|
|
7569
|
+
"L'accès au presse-papiers n'est pas disponible dans ce navigateur.",
|
|
7570
|
+
pageBreadcrumb: "Fil d'Ariane de la page",
|
|
7571
|
+
},
|
|
7572
|
+
versionRestoreQuestion: "Restaurer cette version ?",
|
|
7573
|
+
},
|
|
7574
|
+
},
|
|
7530
7575
|
"de-DE": {
|
|
7531
|
-
editor: {
|
|
7576
|
+
editor: {
|
|
7577
|
+
failedToCreatePage: "Seite konnte nicht erstellt werden",
|
|
7578
|
+
toolbar: {
|
|
7579
|
+
copiedPageLink: "Seitenlink kopiert",
|
|
7580
|
+
copyPageLink: "Seitenlink kopieren",
|
|
7581
|
+
couldNotCopyLink: "Link konnte nicht kopiert werden",
|
|
7582
|
+
clipboardAccessUnavailable:
|
|
7583
|
+
"Der Zugriff auf die Zwischenablage ist in diesem Browser nicht verfügbar.",
|
|
7584
|
+
pageBreadcrumb: "Seitenpfad",
|
|
7585
|
+
},
|
|
7586
|
+
versionRestoreQuestion: "Diese Version wiederherstellen?",
|
|
7587
|
+
},
|
|
7532
7588
|
},
|
|
7533
7589
|
"ja-JP": {
|
|
7534
|
-
editor: {
|
|
7590
|
+
editor: {
|
|
7591
|
+
failedToCreatePage: "ページを作成できませんでした",
|
|
7592
|
+
toolbar: {
|
|
7593
|
+
copiedPageLink: "ページリンクをコピーしました",
|
|
7594
|
+
copyPageLink: "ページリンクをコピー",
|
|
7595
|
+
couldNotCopyLink: "リンクをコピーできませんでした",
|
|
7596
|
+
clipboardAccessUnavailable:
|
|
7597
|
+
"このブラウザではクリップボードにアクセスできません。",
|
|
7598
|
+
pageBreadcrumb: "ページのパンくずリスト",
|
|
7599
|
+
},
|
|
7600
|
+
versionRestoreQuestion: "このバージョンを復元しますか?",
|
|
7601
|
+
},
|
|
7602
|
+
},
|
|
7603
|
+
"ko-KR": {
|
|
7604
|
+
editor: {
|
|
7605
|
+
failedToCreatePage: "페이지를 만들지 못했습니다",
|
|
7606
|
+
toolbar: {
|
|
7607
|
+
copiedPageLink: "페이지 링크를 복사했습니다",
|
|
7608
|
+
copyPageLink: "페이지 링크 복사",
|
|
7609
|
+
couldNotCopyLink: "링크를 복사하지 못했습니다",
|
|
7610
|
+
clipboardAccessUnavailable:
|
|
7611
|
+
"이 브라우저에서는 클립보드에 접근할 수 없습니다.",
|
|
7612
|
+
pageBreadcrumb: "페이지 이동 경로",
|
|
7613
|
+
},
|
|
7614
|
+
versionRestoreQuestion: "이 버전을 복원할까요?",
|
|
7615
|
+
},
|
|
7616
|
+
},
|
|
7617
|
+
"pt-BR": {
|
|
7618
|
+
editor: {
|
|
7619
|
+
failedToCreatePage: "Não foi possível criar a página",
|
|
7620
|
+
toolbar: {
|
|
7621
|
+
copiedPageLink: "Link da página copiado",
|
|
7622
|
+
copyPageLink: "Copiar link da página",
|
|
7623
|
+
couldNotCopyLink: "Não foi possível copiar o link",
|
|
7624
|
+
clipboardAccessUnavailable:
|
|
7625
|
+
"O acesso à área de transferência não está disponível neste navegador.",
|
|
7626
|
+
pageBreadcrumb: "Caminho da página",
|
|
7627
|
+
},
|
|
7628
|
+
versionRestoreQuestion: "Restaurar esta versão?",
|
|
7629
|
+
},
|
|
7535
7630
|
},
|
|
7536
|
-
"ko-KR": { editor: { versionRestoreQuestion: "이 버전을 복원할까요?" } },
|
|
7537
|
-
"pt-BR": { editor: { versionRestoreQuestion: "Restaurar esta versão?" } },
|
|
7538
7631
|
"hi-IN": {
|
|
7539
|
-
editor: {
|
|
7632
|
+
editor: {
|
|
7633
|
+
failedToCreatePage: "पेज नहीं बनाया जा सका",
|
|
7634
|
+
toolbar: {
|
|
7635
|
+
copiedPageLink: "पेज लिंक कॉपी किया गया",
|
|
7636
|
+
copyPageLink: "पेज लिंक कॉपी करें",
|
|
7637
|
+
couldNotCopyLink: "लिंक कॉपी नहीं किया जा सका",
|
|
7638
|
+
clipboardAccessUnavailable: "इस ब्राउज़र में क्लिपबोर्ड एक्सेस उपलब्ध नहीं है।",
|
|
7639
|
+
pageBreadcrumb: "पेज ब्रेडक्रंब",
|
|
7640
|
+
},
|
|
7641
|
+
versionRestoreQuestion: "यह संस्करण पुनर्स्थापित करें?",
|
|
7642
|
+
},
|
|
7643
|
+
},
|
|
7644
|
+
"ar-SA": {
|
|
7645
|
+
editor: {
|
|
7646
|
+
failedToCreatePage: "تعذر إنشاء الصفحة",
|
|
7647
|
+
toolbar: {
|
|
7648
|
+
copiedPageLink: "تم نسخ رابط الصفحة",
|
|
7649
|
+
copyPageLink: "نسخ رابط الصفحة",
|
|
7650
|
+
couldNotCopyLink: "تعذر نسخ الرابط",
|
|
7651
|
+
clipboardAccessUnavailable:
|
|
7652
|
+
"الوصول إلى الحافظة غير متاح في هذا المتصفح.",
|
|
7653
|
+
pageBreadcrumb: "مسار الصفحة",
|
|
7654
|
+
},
|
|
7655
|
+
versionRestoreQuestion: "استعادة هذا الإصدار؟",
|
|
7656
|
+
},
|
|
7540
7657
|
},
|
|
7541
|
-
"ar-SA": { editor: { versionRestoreQuestion: "استعادة هذا الإصدار؟" } },
|
|
7542
7658
|
} satisfies Partial<Record<LocaleCode, PartialMessages>>;
|
|
7543
7659
|
|
|
7544
7660
|
for (const [locale, overrides] of Object.entries(
|
|
@@ -7549,7 +7665,21 @@ for (const [locale, overrides] of Object.entries(
|
|
|
7549
7665
|
for (const [group, groupOverrides] of Object.entries(overrides)) {
|
|
7550
7666
|
const target = (messages as Record<string, Record<string, unknown>>)[group];
|
|
7551
7667
|
if (target && groupOverrides && typeof groupOverrides === "object") {
|
|
7552
|
-
Object.
|
|
7668
|
+
for (const [key, value] of Object.entries(groupOverrides)) {
|
|
7669
|
+
const nestedTarget = target[key];
|
|
7670
|
+
if (
|
|
7671
|
+
nestedTarget &&
|
|
7672
|
+
value &&
|
|
7673
|
+
typeof nestedTarget === "object" &&
|
|
7674
|
+
typeof value === "object" &&
|
|
7675
|
+
!Array.isArray(nestedTarget) &&
|
|
7676
|
+
!Array.isArray(value)
|
|
7677
|
+
) {
|
|
7678
|
+
Object.assign(nestedTarget, value);
|
|
7679
|
+
} else {
|
|
7680
|
+
target[key] = value;
|
|
7681
|
+
}
|
|
7682
|
+
}
|
|
7553
7683
|
}
|
|
7554
7684
|
}
|
|
7555
7685
|
}
|
|
@@ -1798,3 +1798,19 @@ function parseLeafTag(
|
|
|
1798
1798
|
export function canonicalizeNfm(nfm: string | null | undefined): string {
|
|
1799
1799
|
return docToNfm(nfmToDoc(nfm ?? ""));
|
|
1800
1800
|
}
|
|
1801
|
+
|
|
1802
|
+
export function collapseExactRepeatedNfm(
|
|
1803
|
+
nfm: string,
|
|
1804
|
+
options: { requiredText: string },
|
|
1805
|
+
): string {
|
|
1806
|
+
if (!options.requiredText || !nfm.includes(options.requiredText)) return nfm;
|
|
1807
|
+
|
|
1808
|
+
const lines = nfm.split("\n");
|
|
1809
|
+
if (lines.length < 2 || lines.length % 2 !== 0) return nfm;
|
|
1810
|
+
|
|
1811
|
+
const midpoint = lines.length / 2;
|
|
1812
|
+
for (let index = 0; index < midpoint; index += 1) {
|
|
1813
|
+
if (lines[index] !== lines[index + midpoint]) return nfm;
|
|
1814
|
+
}
|
|
1815
|
+
return lines.slice(0, midpoint).join("\n");
|
|
1816
|
+
}
|
package/dist/cli/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAkB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/create.js
CHANGED
|
@@ -16,19 +16,7 @@ const STANDALONE_EXACT_DEPENDENCY_OVERRIDES = {
|
|
|
16
16
|
"@react-router/fs-routes": "8.0.1",
|
|
17
17
|
"react-router": "8.0.1",
|
|
18
18
|
};
|
|
19
|
-
const SENTRY_MINIMUM_RELEASE_AGE_EXCLUDES = [
|
|
20
|
-
'"@sentry/browser"',
|
|
21
|
-
'"@sentry/browser-utils"',
|
|
22
|
-
'"@sentry/conventions"',
|
|
23
|
-
'"@sentry/core"',
|
|
24
|
-
'"@sentry/feedback"',
|
|
25
|
-
'"@sentry/node"',
|
|
26
|
-
'"@sentry/node-core"',
|
|
27
|
-
'"@sentry/opentelemetry"',
|
|
28
|
-
'"@sentry/replay"',
|
|
29
|
-
'"@sentry/replay-canvas"',
|
|
30
|
-
'"@sentry/server-utils"',
|
|
31
|
-
];
|
|
19
|
+
const SENTRY_MINIMUM_RELEASE_AGE_EXCLUDES = ['"@sentry/*"'];
|
|
32
20
|
const FIRST_PARTY_TARBALL_SYMLINK_EXCLUDES = [
|
|
33
21
|
"*/CLAUDE.md",
|
|
34
22
|
"*/.claude/skills",
|
|
@@ -792,6 +780,7 @@ function postProcessStandalone(name, targetDir, templateName) {
|
|
|
792
780
|
const appTitle = appTitleForScaffold(name);
|
|
793
781
|
replacePlaceholders(targetDir, name, appTitle);
|
|
794
782
|
rewriteTrackingAppId(targetDir, name, templateName);
|
|
783
|
+
rewriteAgentChatAppId(targetDir, name, templateName);
|
|
795
784
|
fixPackageJsonName(targetDir, name, templateName);
|
|
796
785
|
fixWebManifestName(targetDir, name, templateName);
|
|
797
786
|
rewriteNetlifyToml(targetDir, name, "standalone");
|
|
@@ -885,8 +874,37 @@ function postProcessStandalone(name, targetDir, templateName) {
|
|
|
885
874
|
}
|
|
886
875
|
}
|
|
887
876
|
catch { }
|
|
877
|
+
fixStandaloneTsconfig(targetDir, templateName);
|
|
888
878
|
setupAgentSymlinks(targetDir);
|
|
889
879
|
}
|
|
880
|
+
function fixStandaloneTsconfig(targetDir, templateName) {
|
|
881
|
+
const tsconfigPath = path.join(targetDir, "tsconfig.json");
|
|
882
|
+
if (!fs.existsSync(tsconfigPath))
|
|
883
|
+
return;
|
|
884
|
+
try {
|
|
885
|
+
const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, "utf-8"));
|
|
886
|
+
tsconfig.compilerOptions ??= {};
|
|
887
|
+
const hasUiApp = templateName !== "headless" && fs.existsSync(path.join(targetDir, "app"));
|
|
888
|
+
const paths = {
|
|
889
|
+
...(tsconfig.compilerOptions.paths ?? {}),
|
|
890
|
+
};
|
|
891
|
+
paths["*"] ??= ["./*"];
|
|
892
|
+
if (hasUiApp) {
|
|
893
|
+
paths["@/*"] ??= ["./app/*"];
|
|
894
|
+
paths["@shared/*"] ??= ["./shared/*"];
|
|
895
|
+
// Child baseUrl anchors @/* for apps extending legacy core tsconfig bases
|
|
896
|
+
// that still ship baseUrl. Headless scaffolds omit it so raw tsgo --noEmit
|
|
897
|
+
// keeps working under TS 6.
|
|
898
|
+
tsconfig.compilerOptions.baseUrl = ".";
|
|
899
|
+
}
|
|
900
|
+
else {
|
|
901
|
+
delete tsconfig.compilerOptions.baseUrl;
|
|
902
|
+
}
|
|
903
|
+
tsconfig.compilerOptions.paths = paths;
|
|
904
|
+
fs.writeFileSync(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}\n`);
|
|
905
|
+
}
|
|
906
|
+
catch { }
|
|
907
|
+
}
|
|
890
908
|
/* ─────────────────────────────────────────────────────────────────────────
|
|
891
909
|
* Prompting helpers
|
|
892
910
|
* ───────────────────────────────────────────────────────────────────────── */
|
|
@@ -1396,7 +1414,7 @@ function rewriteNetlifyToml(appDir, appName, mode) {
|
|
|
1396
1414
|
return;
|
|
1397
1415
|
try {
|
|
1398
1416
|
let content = fs.readFileSync(netlifyPath, "utf-8");
|
|
1399
|
-
const originalCommand = content.match(
|
|
1417
|
+
const originalCommand = content.match(/^\s*command = "([^"]*)"$/m)?.[1];
|
|
1400
1418
|
const usesUnpooledDatabase = originalCommand?.includes("NETLIFY_DATABASE_URL_UNPOOLED") ?? false;
|
|
1401
1419
|
const buildCommand = mode === "workspace"
|
|
1402
1420
|
? `APP_BASE_PATH=/${appName} VITE_APP_BASE_PATH=/${appName} NITRO_PRESET=netlify pnpm --filter ${appName} build`
|
|
@@ -1411,7 +1429,7 @@ function rewriteNetlifyToml(appDir, appName, mode) {
|
|
|
1411
1429
|
? `apps/${appName}/.netlify/functions-internal`
|
|
1412
1430
|
: ".netlify/functions-internal";
|
|
1413
1431
|
content = content
|
|
1414
|
-
.replace(/^
|
|
1432
|
+
.replace(/^(\s*)command = ".*"$/m, `$1command = "${command}"`)
|
|
1415
1433
|
.replace(/publish = "templates\/[^"]+\/dist"/g, `publish = "${publishPath}"`)
|
|
1416
1434
|
.replace(/functions = "templates\/[^"]+\/\.netlify\/functions-internal"/g, `functions = "${functionsPath}"`)
|
|
1417
1435
|
// Strip the `ignore` script line: it references a monorepo script path
|
|
@@ -1425,6 +1443,26 @@ function rewriteNetlifyToml(appDir, appName, mode) {
|
|
|
1425
1443
|
}
|
|
1426
1444
|
catch { }
|
|
1427
1445
|
}
|
|
1446
|
+
function rewriteAgentChatAppId(appDir, appName, templateName) {
|
|
1447
|
+
const pluginPath = path.join(appDir, "server", "plugins", "agent-chat.ts");
|
|
1448
|
+
if (!fs.existsSync(pluginPath))
|
|
1449
|
+
return;
|
|
1450
|
+
try {
|
|
1451
|
+
const content = fs.readFileSync(pluginPath, "utf-8");
|
|
1452
|
+
const sourceAppIds = ["chat", "starter"];
|
|
1453
|
+
if (templateName && templateName !== appName) {
|
|
1454
|
+
sourceAppIds.push(templateName);
|
|
1455
|
+
}
|
|
1456
|
+
const pattern = new RegExp(`(appId:\\s*)(["'])(${sourceAppIds.map(escapeRegExp).join("|")})\\2`);
|
|
1457
|
+
if (!pattern.test(content))
|
|
1458
|
+
return;
|
|
1459
|
+
const next = content.replace(pattern, (_match, prefix, quote) => `${prefix}${quote}${appName}${quote}`);
|
|
1460
|
+
if (next !== content) {
|
|
1461
|
+
fs.writeFileSync(pluginPath, next);
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
catch { }
|
|
1465
|
+
}
|
|
1428
1466
|
function rewriteTrackingAppId(appDir, appName, templateName) {
|
|
1429
1467
|
const rootPath = path.join(appDir, "app", "root.tsx");
|
|
1430
1468
|
if (!fs.existsSync(rootPath))
|