@agent-native/core 0.84.21 → 0.84.22

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.
Files changed (96) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +8 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/client/AssistantChat.tsx +27 -4
  5. package/corpus/core/src/client/guided-questions.tsx +11 -6
  6. package/corpus/core/src/client/tool-display.ts +8 -0
  7. package/corpus/core/src/file-upload/builder.ts +7 -2
  8. package/corpus/core/src/notifications/channels.ts +235 -38
  9. package/corpus/core/src/server/analytics.ts +32 -6
  10. package/corpus/core/src/server/ssr-handler.ts +31 -12
  11. package/corpus/templates/analytics/AGENTS.md +21 -0
  12. package/corpus/templates/analytics/README.md +35 -0
  13. package/corpus/templates/analytics/actions/delete-analytics-alert-rule.ts +23 -0
  14. package/corpus/templates/analytics/actions/list-analytics-alert-rules.ts +20 -0
  15. package/corpus/templates/analytics/actions/run-analytics-alerts.ts +23 -0
  16. package/corpus/templates/analytics/actions/save-analytics-alert-rule.ts +69 -0
  17. package/corpus/templates/analytics/changelog/2026-07-01-analytics-can-alert-when-first-party-events-spike.md +6 -0
  18. package/corpus/templates/analytics/changelog/2026-07-01-session-replays-play-back-in-production-instead-of-showing.md +6 -0
  19. package/corpus/templates/analytics/netlify.toml +3 -0
  20. package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +109 -0
  21. package/corpus/templates/analytics/server/db/schema.ts +55 -0
  22. package/corpus/templates/analytics/server/handlers/session-replay.ts +5 -2
  23. package/corpus/templates/analytics/server/jobs/analytics-alerts.ts +71 -0
  24. package/corpus/templates/analytics/server/lib/analytics-alerts.ts +734 -0
  25. package/corpus/templates/analytics/server/lib/session-replay.ts +10 -3
  26. package/corpus/templates/analytics/server/plugins/analytics-alert-jobs.ts +54 -0
  27. package/corpus/templates/analytics/server/plugins/db.ts +100 -0
  28. package/corpus/templates/analytics/server/routes/api/analytics-alerts/run.post.ts +60 -0
  29. package/corpus/templates/assets/README.md +30 -8
  30. package/corpus/templates/brain/README.md +20 -552
  31. package/corpus/templates/calendar/README.md +22 -28
  32. package/corpus/templates/chat/README.md +32 -0
  33. package/corpus/templates/clips/README.md +37 -0
  34. package/corpus/templates/clips/app/components/library/library-grid.tsx +18 -7
  35. package/corpus/templates/clips/app/components/library/recording-card.tsx +42 -5
  36. package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +41 -1
  37. package/corpus/templates/clips/changelog/2026-07-01-move-to-folder-now-opens-folder-choices-directly-instead-of.md +6 -0
  38. package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
  39. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +37 -0
  40. package/corpus/templates/content/AGENTS.md +7 -3
  41. package/corpus/templates/content/README.md +22 -34
  42. package/corpus/templates/content/actions/list-trashed-content-databases.ts +4 -0
  43. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +58 -6
  44. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +257 -24
  45. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +41 -15
  46. package/corpus/templates/content/app/i18n/zh-TW.ts +25 -7
  47. package/corpus/templates/content/app/i18n-data.ts +278 -40
  48. package/corpus/templates/content/changelog/2026-06-30-database-once-again-creates-an-inline-database-in-the-curren.md +6 -0
  49. package/corpus/templates/content/shared/api.ts +1 -0
  50. package/corpus/templates/design/AGENTS.md +7 -6
  51. package/corpus/templates/design/README.md +33 -0
  52. package/corpus/templates/design/actions/delete-file.ts +86 -10
  53. package/corpus/templates/design/actions/get-design-snapshot.ts +13 -0
  54. package/corpus/templates/design/actions/present-design-variants.ts +11 -13
  55. package/corpus/templates/design/app/hooks/use-question-flow.ts +2 -2
  56. package/corpus/templates/design/app/pages/DesignEditor.tsx +2 -2
  57. package/corpus/templates/dispatch/README.md +34 -0
  58. package/corpus/templates/forms/README.md +34 -0
  59. package/corpus/templates/macros/README.md +28 -0
  60. package/corpus/templates/mail/README.md +35 -0
  61. package/corpus/templates/plan/README.md +30 -118
  62. package/corpus/templates/slides/README.md +34 -0
  63. package/corpus/templates/videos/README.md +22 -201
  64. package/dist/client/AssistantChat.d.ts.map +1 -1
  65. package/dist/client/AssistantChat.js +28 -4
  66. package/dist/client/AssistantChat.js.map +1 -1
  67. package/dist/client/guided-questions.d.ts.map +1 -1
  68. package/dist/client/guided-questions.js +10 -6
  69. package/dist/client/guided-questions.js.map +1 -1
  70. package/dist/client/tool-display.d.ts.map +1 -1
  71. package/dist/client/tool-display.js +8 -0
  72. package/dist/client/tool-display.js.map +1 -1
  73. package/dist/collab/awareness.d.ts +2 -2
  74. package/dist/collab/awareness.d.ts.map +1 -1
  75. package/dist/collab/routes.d.ts +1 -1
  76. package/dist/file-upload/builder.d.ts.map +1 -1
  77. package/dist/file-upload/builder.js +6 -2
  78. package/dist/file-upload/builder.js.map +1 -1
  79. package/dist/notifications/channels.d.ts +10 -0
  80. package/dist/notifications/channels.d.ts.map +1 -1
  81. package/dist/notifications/channels.js +172 -20
  82. package/dist/notifications/channels.js.map +1 -1
  83. package/dist/notifications/routes.d.ts +3 -3
  84. package/dist/observability/routes.d.ts +5 -5
  85. package/dist/progress/routes.d.ts +1 -1
  86. package/dist/resources/handlers.d.ts +1 -1
  87. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  88. package/dist/server/analytics.d.ts +16 -0
  89. package/dist/server/analytics.d.ts.map +1 -1
  90. package/dist/server/analytics.js +30 -7
  91. package/dist/server/analytics.js.map +1 -1
  92. package/dist/server/ssr-handler.d.ts.map +1 -1
  93. package/dist/server/ssr-handler.js +28 -12
  94. package/dist/server/ssr-handler.js.map +1 -1
  95. package/dist/server/transcribe-voice.d.ts +1 -1
  96. package/package.json +1 -1
@@ -2043,7 +2043,7 @@ const editorSlashMessages = {
2043
2043
  codeBlockDescription: "Code snippet",
2044
2044
  collapsibleBlockDescription: "Collapsible block",
2045
2045
  database: "Database",
2046
- databaseDescription: "Create a child database page",
2046
+ databaseDescription: "Inline database in this page",
2047
2047
  divider: "Divider",
2048
2048
  dividerDescription: "Horizontal rule",
2049
2049
  generate: "Generate",
@@ -2247,11 +2247,11 @@ const enUS = {
2247
2247
  reorderField: "Reorder {{name}}",
2248
2248
  title: "Title",
2249
2249
  toggleField: "Toggle {{name}}",
2250
- creatingDatabase: "Creating database...",
2251
- databaseCreated: "Database created",
2250
+ creatingDatabase: "Creating inline database...",
2251
+ databaseCreated: "Inline database created",
2252
2252
  describeWhatToGenerate: "Describe what to generate...",
2253
2253
  enterToSubmit: "Enter to submit",
2254
- failedToCreateDatabase: "Failed to create database",
2254
+ failedToCreateDatabase: "Failed to create inline database",
2255
2255
  failedToCreatePage: "Failed to create page",
2256
2256
  generateWithAi: "Generate with AI",
2257
2257
  dropMedia: "Drop media",
@@ -2353,6 +2353,8 @@ const enUS = {
2353
2353
  localFiles: localFilesMessages,
2354
2354
  sidebar: {
2355
2355
  cannotReorderPages: "Cannot reorder pages",
2356
+ addChild: "Add child",
2357
+ addChildTo: "Add child to {{title}}",
2356
2358
  addSubPage: "Add sub-page",
2357
2359
  collapse: "Collapse sidebar",
2358
2360
  completeStepsAboveFirst: "Complete steps above first",
@@ -2363,13 +2365,25 @@ const enUS = {
2363
2365
  copy: "Copy",
2364
2366
  disconnectWorkspace: "Disconnect workspace",
2365
2367
  expand: "Expand sidebar",
2368
+ database: "Database",
2369
+ databasePermanentlyDeleted: "Database permanently deleted",
2370
+ databaseRestored: "Database restored",
2371
+ deleteDatabaseNamedPermanently: "Delete {{title}} permanently",
2372
+ deleteDatabasePermanentlyDescription:
2373
+ "This permanently deletes “{{title}}” and its pages. This cannot be undone.",
2374
+ deleteDatabasePermanentlyQuestion: "Delete database permanently?",
2375
+ deletePermanently: "Delete permanently",
2376
+ failedCreateDatabase: "Failed to create database",
2366
2377
  failedCreatePage: "Failed to create page",
2367
2378
  failedDeletePage: "Failed to delete page",
2379
+ failedPermanentDeleteDatabase: "Failed to permanently delete database",
2368
2380
  failedMovePage: "Failed to move page",
2381
+ failedRestoreDatabase: "Failed to restore database",
2369
2382
  deletePageDescription:
2370
2383
  "“{{title}}” and all its sub-pages will be permanently deleted. This cannot be undone.",
2371
2384
  deletePageQuestion: "Delete page?",
2372
2385
  localFiles: "Local files",
2386
+ new: "New",
2373
2387
  newPage: "New page",
2374
2388
  nextStep: "Next step",
2375
2389
  notionConfigureOAuthAuthorize:
@@ -2408,14 +2422,18 @@ const enUS = {
2408
2422
  noSharedCopiesYet: "No shared copies yet",
2409
2423
  oneAffectedPageReadOnly: "One of the affected pages is read-only.",
2410
2424
  organization: "Organization",
2425
+ page: "Page",
2411
2426
  private: "Private",
2412
2427
  results: "Results",
2413
2428
  search: "Search",
2414
2429
  searchPages: "Search pages...",
2415
2430
  refreshConnection: "Refresh connection",
2431
+ restoreDatabase: "Restore",
2432
+ restoreDatabaseNamed: "Restore {{title}}",
2416
2433
  saving: "Saving...",
2417
2434
  sharedCopies: "Shared copies",
2418
2435
  synced: "Synced",
2436
+ trash: "Trash",
2419
2437
  favorites: "Favorites",
2420
2438
  untitled: "Untitled",
2421
2439
  },
@@ -2527,13 +2545,27 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
2527
2545
  },
2528
2546
  },
2529
2547
  sidebar: {
2548
+ addChild: "新增子项",
2549
+ addChildTo: "新增子项至 {{title}}",
2530
2550
  completeStepsAboveFirst: "请先完成上面的步骤",
2531
2551
  connectWorkspace: "连接工作区",
2532
2552
  connected: "已连接",
2533
2553
  connectedViaOAuth: "已通过 OAuth 连接",
2534
2554
  copied: "已复制!",
2535
2555
  copy: "复制",
2556
+ database: "数据库",
2557
+ databasePermanentlyDeleted: "数据库已永久删除",
2558
+ databaseRestored: "数据库已恢复",
2559
+ deleteDatabaseNamedPermanently: "永久删除 {{title}}",
2560
+ deleteDatabasePermanentlyDescription:
2561
+ "这会永久删除“{{title}}”及其页面。此操作无法撤消。",
2562
+ deleteDatabasePermanentlyQuestion: "永久删除数据库?",
2563
+ deletePermanently: "永久删除",
2536
2564
  disconnectWorkspace: "断开工作区连接",
2565
+ failedCreateDatabase: "创建数据库失败",
2566
+ failedPermanentDeleteDatabase: "永久删除数据库失败",
2567
+ failedRestoreDatabase: "恢复数据库失败",
2568
+ new: "新建",
2537
2569
  nextStep: "下一步",
2538
2570
  notionConfigureOAuthAuthorize: "配置 OAuth,然后授权你的工作区。",
2539
2571
  notionConfigurePublicIntegration: "配置为公开集成",
@@ -2560,9 +2592,13 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
2560
2592
  notionParseJsonFailed: "解析 JSON 失败",
2561
2593
  notionSyncDocumentsDescription: "与 Notion 工作区同步文档。",
2562
2594
  notionUploadCredentialsJson: "上传凭据 JSON",
2595
+ page: "页面",
2563
2596
  refreshConnection: "刷新连接",
2597
+ restoreDatabase: "恢复",
2598
+ restoreDatabaseNamed: "恢复 {{title}}",
2564
2599
  saving: "正在保存...",
2565
2600
  synced: "已同步",
2601
+ trash: "回收站",
2566
2602
  },
2567
2603
  },
2568
2604
  "es-ES": {
@@ -2792,17 +2828,33 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
2792
2828
  },
2793
2829
  },
2794
2830
  sidebar: {
2831
+ addChild: "Agregar hijo",
2832
+ addChildTo: "Agregar hijo a {{title}}",
2795
2833
  completeStepsAboveFirst: "Completa primero los pasos anteriores",
2796
2834
  connectWorkspace: "Conectar espacio",
2797
2835
  connected: "Conectado",
2798
2836
  connectedViaOAuth: "Conectado mediante OAuth",
2799
2837
  copied: "Copiado",
2800
2838
  copy: "Copiar",
2839
+ database: "Base de datos",
2840
+ databasePermanentlyDeleted: "Base de datos eliminada permanentemente",
2841
+ databaseRestored: "Base de datos restaurada",
2801
2842
  disconnectWorkspace: "Desconectar espacio",
2802
2843
  addSubPage: "Agregar subpágina",
2844
+ deleteDatabaseNamedPermanently: "Eliminar {{title}} permanentemente",
2845
+ deleteDatabasePermanentlyDescription:
2846
+ "Esto elimina permanentemente “{{title}}” y sus páginas. No se puede deshacer.",
2847
+ deleteDatabasePermanentlyQuestion:
2848
+ "¿Eliminar base de datos permanentemente?",
2803
2849
  deletePageDescription:
2804
2850
  "“{{title}}” y todas sus subpáginas se eliminarán permanentemente. Esto no se puede deshacer.",
2805
2851
  deletePageQuestion: "¿Eliminar página?",
2852
+ deletePermanently: "Eliminar permanentemente",
2853
+ failedCreateDatabase: "No se pudo crear la base de datos",
2854
+ failedPermanentDeleteDatabase:
2855
+ "No se pudo eliminar permanentemente la base de datos",
2856
+ failedRestoreDatabase: "No se pudo restaurar la base de datos",
2857
+ new: "Nuevo",
2806
2858
  nextStep: "Siguiente paso",
2807
2859
  notionConfigureOAuthAuthorize:
2808
2860
  "Configura OAuth y luego autoriza tu espacio de trabajo.",
@@ -2832,9 +2884,194 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
2832
2884
  notionSyncDocumentsDescription:
2833
2885
  "Sincroniza documentos con tu espacio de trabajo de Notion.",
2834
2886
  notionUploadCredentialsJson: "Subir JSON de credenciales",
2887
+ page: "Página",
2835
2888
  refreshConnection: "Actualizar conexión",
2889
+ restoreDatabase: "Restaurar",
2890
+ restoreDatabaseNamed: "Restaurar {{title}}",
2836
2891
  saving: "Guardando...",
2837
2892
  synced: "Sincronizado",
2893
+ trash: "Papelera",
2894
+ },
2895
+ },
2896
+ "zh-TW": {
2897
+ sidebar: {
2898
+ addChild: "新增子項目",
2899
+ addChildTo: "新增子項目至 {{title}}",
2900
+ database: "資料庫",
2901
+ databasePermanentlyDeleted: "資料庫已永久刪除",
2902
+ databaseRestored: "資料庫已還原",
2903
+ deleteDatabaseNamedPermanently: "永久刪除 {{title}}",
2904
+ deleteDatabasePermanentlyDescription:
2905
+ "這會永久刪除「{{title}}」及其頁面。此操作無法復原。",
2906
+ deleteDatabasePermanentlyQuestion: "永久刪除資料庫?",
2907
+ deletePermanently: "永久刪除",
2908
+ failedCreateDatabase: "建立資料庫失敗",
2909
+ failedPermanentDeleteDatabase: "永久刪除資料庫失敗",
2910
+ failedRestoreDatabase: "還原資料庫失敗",
2911
+ new: "新增",
2912
+ page: "頁面",
2913
+ restoreDatabase: "還原",
2914
+ restoreDatabaseNamed: "還原 {{title}}",
2915
+ trash: "垃圾桶",
2916
+ },
2917
+ },
2918
+ "fr-FR": {
2919
+ sidebar: {
2920
+ addChild: "Ajouter un enfant",
2921
+ addChildTo: "Ajouter un enfant à {{title}}",
2922
+ database: "Base de données",
2923
+ databasePermanentlyDeleted: "Base de données supprimée définitivement",
2924
+ databaseRestored: "Base de données restaurée",
2925
+ deleteDatabaseNamedPermanently: "Supprimer définitivement {{title}}",
2926
+ deleteDatabasePermanentlyDescription:
2927
+ "Cela supprime définitivement « {{title}} » et ses pages. Cette action est irréversible.",
2928
+ deleteDatabasePermanentlyQuestion:
2929
+ "Supprimer définitivement la base de données ?",
2930
+ deletePermanently: "Supprimer définitivement",
2931
+ failedCreateDatabase: "Échec de la création de la base de données",
2932
+ failedPermanentDeleteDatabase:
2933
+ "Échec de la suppression définitive de la base de données",
2934
+ failedRestoreDatabase: "Échec de la restauration de la base de données",
2935
+ new: "Nouveau",
2936
+ page: "Page",
2937
+ restoreDatabase: "Restaurer",
2938
+ restoreDatabaseNamed: "Restaurer {{title}}",
2939
+ trash: "Corbeille",
2940
+ },
2941
+ },
2942
+ "de-DE": {
2943
+ sidebar: {
2944
+ addChild: "Unterelement hinzufügen",
2945
+ addChildTo: "Unterelement zu {{title}} hinzufügen",
2946
+ database: "Datenbank",
2947
+ databasePermanentlyDeleted: "Datenbank endgültig gelöscht",
2948
+ databaseRestored: "Datenbank wiederhergestellt",
2949
+ deleteDatabaseNamedPermanently: "{{title}} endgültig löschen",
2950
+ deleteDatabasePermanentlyDescription:
2951
+ "Dadurch werden „{{title}}“ und zugehörige Seiten endgültig gelöscht. Dies kann nicht rückgängig gemacht werden.",
2952
+ deleteDatabasePermanentlyQuestion: "Datenbank endgültig löschen?",
2953
+ deletePermanently: "Endgültig löschen",
2954
+ failedCreateDatabase: "Datenbank konnte nicht erstellt werden",
2955
+ failedPermanentDeleteDatabase:
2956
+ "Datenbank konnte nicht endgültig gelöscht werden",
2957
+ failedRestoreDatabase: "Datenbank konnte nicht wiederhergestellt werden",
2958
+ new: "Neu",
2959
+ page: "Seite",
2960
+ restoreDatabase: "Wiederherstellen",
2961
+ restoreDatabaseNamed: "{{title}} wiederherstellen",
2962
+ trash: "Papierkorb",
2963
+ },
2964
+ },
2965
+ "ja-JP": {
2966
+ sidebar: {
2967
+ addChild: "子項目を追加",
2968
+ addChildTo: "{{title}} に子項目を追加",
2969
+ database: "データベース",
2970
+ databasePermanentlyDeleted: "データベースを完全に削除しました",
2971
+ databaseRestored: "データベースを復元しました",
2972
+ deleteDatabaseNamedPermanently: "{{title}} を完全に削除",
2973
+ deleteDatabasePermanentlyDescription:
2974
+ "「{{title}}」とそのページを完全に削除します。この操作は元に戻せません。",
2975
+ deleteDatabasePermanentlyQuestion: "データベースを完全に削除しますか?",
2976
+ deletePermanently: "完全に削除",
2977
+ failedCreateDatabase: "データベースを作成できませんでした",
2978
+ failedPermanentDeleteDatabase: "データベースを完全に削除できませんでした",
2979
+ failedRestoreDatabase: "データベースを復元できませんでした",
2980
+ new: "新規",
2981
+ page: "ページ",
2982
+ restoreDatabase: "復元",
2983
+ restoreDatabaseNamed: "{{title}} を復元",
2984
+ trash: "ゴミ箱",
2985
+ },
2986
+ },
2987
+ "ko-KR": {
2988
+ sidebar: {
2989
+ addChild: "하위 항목 추가",
2990
+ addChildTo: "{{title}}에 하위 항목 추가",
2991
+ database: "데이터베이스",
2992
+ databasePermanentlyDeleted: "데이터베이스가 영구 삭제되었습니다",
2993
+ databaseRestored: "데이터베이스가 복원되었습니다",
2994
+ deleteDatabaseNamedPermanently: "{{title}} 영구 삭제",
2995
+ deleteDatabasePermanentlyDescription:
2996
+ "“{{title}}” 및 해당 페이지가 영구 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
2997
+ deleteDatabasePermanentlyQuestion: "데이터베이스를 영구 삭제할까요?",
2998
+ deletePermanently: "영구 삭제",
2999
+ failedCreateDatabase: "데이터베이스를 만들지 못했습니다",
3000
+ failedPermanentDeleteDatabase: "데이터베이스를 영구 삭제하지 못했습니다",
3001
+ failedRestoreDatabase: "데이터베이스를 복원하지 못했습니다",
3002
+ new: "새로 만들기",
3003
+ page: "페이지",
3004
+ restoreDatabase: "복원",
3005
+ restoreDatabaseNamed: "{{title}} 복원",
3006
+ trash: "휴지통",
3007
+ },
3008
+ },
3009
+ "pt-BR": {
3010
+ sidebar: {
3011
+ addChild: "Adicionar filho",
3012
+ addChildTo: "Adicionar filho a {{title}}",
3013
+ database: "Banco de dados",
3014
+ databasePermanentlyDeleted: "Banco de dados excluído permanentemente",
3015
+ databaseRestored: "Banco de dados restaurado",
3016
+ deleteDatabaseNamedPermanently: "Excluir {{title}} permanentemente",
3017
+ deleteDatabasePermanentlyDescription:
3018
+ "Isso exclui permanentemente “{{title}}” e suas páginas. Esta ação não pode ser desfeita.",
3019
+ deleteDatabasePermanentlyQuestion:
3020
+ "Excluir banco de dados permanentemente?",
3021
+ deletePermanently: "Excluir permanentemente",
3022
+ failedCreateDatabase: "Falha ao criar banco de dados",
3023
+ failedPermanentDeleteDatabase:
3024
+ "Falha ao excluir banco de dados permanentemente",
3025
+ failedRestoreDatabase: "Falha ao restaurar banco de dados",
3026
+ new: "Novo",
3027
+ page: "Página",
3028
+ restoreDatabase: "Restaurar",
3029
+ restoreDatabaseNamed: "Restaurar {{title}}",
3030
+ trash: "Lixeira",
3031
+ },
3032
+ },
3033
+ "hi-IN": {
3034
+ sidebar: {
3035
+ addChild: "चाइल्ड जोड़ें",
3036
+ addChildTo: "{{title}} में चाइल्ड जोड़ें",
3037
+ database: "डेटाबेस",
3038
+ databasePermanentlyDeleted: "डेटाबेस स्थायी रूप से हटाया गया",
3039
+ databaseRestored: "डेटाबेस बहाल किया गया",
3040
+ deleteDatabaseNamedPermanently: "{{title}} को स्थायी रूप से हटाएं",
3041
+ deleteDatabasePermanentlyDescription:
3042
+ "यह “{{title}}” और उसके पेजों को स्थायी रूप से हटाता है। इसे वापस नहीं किया जा सकता।",
3043
+ deleteDatabasePermanentlyQuestion: "डेटाबेस स्थायी रूप से हटाएं?",
3044
+ deletePermanently: "स्थायी रूप से हटाएं",
3045
+ failedCreateDatabase: "डेटाबेस नहीं बन सका",
3046
+ failedPermanentDeleteDatabase: "डेटाबेस स्थायी रूप से हटाया नहीं जा सका",
3047
+ failedRestoreDatabase: "डेटाबेस बहाल नहीं हो सका",
3048
+ new: "नया",
3049
+ page: "पेज",
3050
+ restoreDatabase: "बहाल करें",
3051
+ restoreDatabaseNamed: "{{title}} बहाल करें",
3052
+ trash: "ट्रैश",
3053
+ },
3054
+ },
3055
+ "ar-SA": {
3056
+ sidebar: {
3057
+ addChild: "إضافة عنصر فرعي",
3058
+ addChildTo: "إضافة عنصر فرعي إلى {{title}}",
3059
+ database: "قاعدة البيانات",
3060
+ databasePermanentlyDeleted: "تم حذف قاعدة البيانات نهائيًا",
3061
+ databaseRestored: "تمت استعادة قاعدة البيانات",
3062
+ deleteDatabaseNamedPermanently: "حذف {{title}} نهائيًا",
3063
+ deleteDatabasePermanentlyDescription:
3064
+ "سيؤدي هذا إلى حذف “{{title}}” وصفحاته نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
3065
+ deleteDatabasePermanentlyQuestion: "هل تريد حذف قاعدة البيانات نهائيًا؟",
3066
+ deletePermanently: "حذف نهائيًا",
3067
+ failedCreateDatabase: "فشل إنشاء قاعدة البيانات",
3068
+ failedPermanentDeleteDatabase: "فشل حذف قاعدة البيانات نهائيًا",
3069
+ failedRestoreDatabase: "فشلت استعادة قاعدة البيانات",
3070
+ new: "جديد",
3071
+ page: "صفحة",
3072
+ restoreDatabase: "استعادة",
3073
+ restoreDatabaseNamed: "استعادة {{title}}",
3074
+ trash: "المهملات",
2838
3075
  },
2839
3076
  },
2840
3077
  };
@@ -4227,11 +4464,11 @@ const databaseExactEnglishMessagesByLocale = {
4227
4464
  const editorMessagesByLocale = {
4228
4465
  "zh-CN": {
4229
4466
  noDocumentSelected: "未选择文档",
4230
- creatingDatabase: "正在创建数据库...",
4231
- databaseCreated: "数据库已创建",
4467
+ creatingDatabase: "正在创建内联数据库...",
4468
+ databaseCreated: "内联数据库已创建",
4232
4469
  describeWhatToGenerate: "描述要生成什么...",
4233
4470
  enterToSubmit: "输入提交",
4234
- failedToCreateDatabase: "创建数据库失败",
4471
+ failedToCreateDatabase: "创建内联数据库失败",
4235
4472
  generateWithAi: "用人工智能生成",
4236
4473
  untitledDatabase: "无标题数据库",
4237
4474
  media: {
@@ -4445,7 +4682,7 @@ const editorMessagesByLocale = {
4445
4682
  codeBlockDescription: "代码片段",
4446
4683
  collapsibleBlockDescription: "可折叠块",
4447
4684
  database: "数据库",
4448
- databaseDescription: "创建子数据库页面",
4685
+ databaseDescription: "在此页面中插入内联数据库",
4449
4686
  divider: "分频器",
4450
4687
  dividerDescription: "水平尺",
4451
4688
  generate: "生成",
@@ -4544,11 +4781,11 @@ const editorMessagesByLocale = {
4544
4781
  },
4545
4782
  "es-ES": {
4546
4783
  noDocumentSelected: "Ningún documento seleccionado",
4547
- creatingDatabase: "Creando base de datos...",
4548
- databaseCreated: "Base de datos creada",
4784
+ creatingDatabase: "Creando base de datos integrada...",
4785
+ databaseCreated: "Base de datos integrada creada",
4549
4786
  describeWhatToGenerate: "Describe qué generar...",
4550
4787
  enterToSubmit: "Entra para enviar",
4551
- failedToCreateDatabase: "No se pudo crear la base de datos",
4788
+ failedToCreateDatabase: "No se pudo crear la base de datos integrada",
4552
4789
  generateWithAi: "Generar con IA",
4553
4790
  untitledDatabase: "Base de datos sin título",
4554
4791
  media: {
@@ -4764,7 +5001,7 @@ const editorMessagesByLocale = {
4764
5001
  codeBlockDescription: "Fragmento de código",
4765
5002
  collapsibleBlockDescription: "bloque plegable",
4766
5003
  database: "Base de datos",
4767
- databaseDescription: "Crear una página de base de datos secundaria",
5004
+ databaseDescription: "Base de datos integrada en esta página",
4768
5005
  divider: "Divisor",
4769
5006
  dividerDescription: "regla horizontal",
4770
5007
  generate: "generar",
@@ -4871,11 +5108,12 @@ const editorMessagesByLocale = {
4871
5108
  },
4872
5109
  "fr-FR": {
4873
5110
  noDocumentSelected: "Aucun document sélectionné",
4874
- creatingDatabase: "Création d'une base de données...",
4875
- databaseCreated: "Base de données créée",
5111
+ creatingDatabase: "Création d'une base de données intégrée...",
5112
+ databaseCreated: "Base de données intégrée créée",
4876
5113
  describeWhatToGenerate: "Décrivez ce qu'il faut générer...",
4877
5114
  enterToSubmit: "Entrez pour soumettre",
4878
- failedToCreateDatabase: "Échec de la création de la base de données",
5115
+ failedToCreateDatabase:
5116
+ "Échec de la création de la base de données intégrée",
4879
5117
  generateWithAi: "Générer avec l'IA",
4880
5118
  untitledDatabase: "Base de données sans titre",
4881
5119
  media: {
@@ -5092,7 +5330,7 @@ const editorMessagesByLocale = {
5092
5330
  codeBlockDescription: "Extrait de code",
5093
5331
  collapsibleBlockDescription: "Bloc pliable",
5094
5332
  database: "Base de données",
5095
- databaseDescription: "Créer une page de base de données enfant",
5333
+ databaseDescription: "Base de données intégrée dans cette page",
5096
5334
  divider: "Diviseur",
5097
5335
  dividerDescription: "Règle horizontale",
5098
5336
  generate: "Générer",
@@ -5199,11 +5437,11 @@ const editorMessagesByLocale = {
5199
5437
  },
5200
5438
  "de-DE": {
5201
5439
  noDocumentSelected: "Kein Dokument ausgewählt",
5202
- creatingDatabase: "Datenbank erstellen...",
5203
- databaseCreated: "Datenbank erstellt",
5440
+ creatingDatabase: "Inline-Datenbank wird erstellt...",
5441
+ databaseCreated: "Inline-Datenbank erstellt",
5204
5442
  describeWhatToGenerate: "Beschreiben Sie, was generiert werden soll ...",
5205
5443
  enterToSubmit: "Zum Absenden eintreten",
5206
- failedToCreateDatabase: "Datenbank konnte nicht erstellt werden",
5444
+ failedToCreateDatabase: "Inline-Datenbank konnte nicht erstellt werden",
5207
5445
  generateWithAi: "Generieren Sie mit KI",
5208
5446
  untitledDatabase: "Unbenannte Datenbank",
5209
5447
  media: {
@@ -5422,7 +5660,7 @@ const editorMessagesByLocale = {
5422
5660
  codeBlockDescription: "Codeausschnitt",
5423
5661
  collapsibleBlockDescription: "Zusammenklappbarer Block",
5424
5662
  database: "Datenbank",
5425
- databaseDescription: "Erstellen Sie eine untergeordnete Datenbankseite",
5663
+ databaseDescription: "Inline-Datenbank auf dieser Seite",
5426
5664
  divider: "Teiler",
5427
5665
  dividerDescription: "Horizontale Regel",
5428
5666
  generate: "Generieren",
@@ -5533,11 +5771,11 @@ const editorMessagesByLocale = {
5533
5771
  },
5534
5772
  "ja-JP": {
5535
5773
  noDocumentSelected: "ドキュメントが選択されていません",
5536
- creatingDatabase: "データベースを作成しています...",
5537
- databaseCreated: "データベースが作成されました",
5774
+ creatingDatabase: "インラインデータベースを作成しています...",
5775
+ databaseCreated: "インラインデータベースが作成されました",
5538
5776
  describeWhatToGenerate: "何を生成するかを説明します...",
5539
5777
  enterToSubmit: "入力して送信してください",
5540
- failedToCreateDatabase: "データベースの作成に失敗しました",
5778
+ failedToCreateDatabase: "インラインデータベースの作成に失敗しました",
5541
5779
  generateWithAi: "AIで生成",
5542
5780
  untitledDatabase: "無題のデータベース",
5543
5781
  media: {
@@ -5752,7 +5990,7 @@ const editorMessagesByLocale = {
5752
5990
  codeBlockDescription: "コードスニペット",
5753
5991
  collapsibleBlockDescription: "折りたたみ可能なブロック",
5754
5992
  database: "データベース",
5755
- databaseDescription: "子データベースページを作成する",
5993
+ databaseDescription: "このページ内のインラインデータベース",
5756
5994
  divider: "ディバイダー",
5757
5995
  dividerDescription: "横罫線",
5758
5996
  generate: "生成する",
@@ -5857,11 +6095,11 @@ const editorMessagesByLocale = {
5857
6095
  },
5858
6096
  "ko-KR": {
5859
6097
  noDocumentSelected: "선택한 문서가 없습니다.",
5860
- creatingDatabase: "데이터베이스 생성 중...",
5861
- databaseCreated: "데이터베이스가 생성되었습니다.",
6098
+ creatingDatabase: "인라인 데이터베이스 생성 중...",
6099
+ databaseCreated: "인라인 데이터베이스가 생성되었습니다.",
5862
6100
  describeWhatToGenerate: "무엇을 생성할지 설명하세요...",
5863
6101
  enterToSubmit: "제출하려면 입력하세요.",
5864
- failedToCreateDatabase: "데이터베이스를 생성하지 못했습니다.",
6102
+ failedToCreateDatabase: "인라인 데이터베이스를 생성하지 못했습니다.",
5865
6103
  generateWithAi: "AI로 생성",
5866
6104
  untitledDatabase: "제목 없는 데이터베이스",
5867
6105
  media: {
@@ -6075,7 +6313,7 @@ const editorMessagesByLocale = {
6075
6313
  codeBlockDescription: "코드 조각",
6076
6314
  collapsibleBlockDescription: "접이식 블록",
6077
6315
  database: "데이터베이스",
6078
- databaseDescription: "하위 데이터베이스 페이지 만들기",
6316
+ databaseDescription: " 페이지 안의 인라인 데이터베이스",
6079
6317
  divider: "분배기",
6080
6318
  dividerDescription: "수평선",
6081
6319
  generate: "생성",
@@ -6180,11 +6418,11 @@ const editorMessagesByLocale = {
6180
6418
  },
6181
6419
  "pt-BR": {
6182
6420
  noDocumentSelected: "Nenhum documento selecionado",
6183
- creatingDatabase: "Criando banco de dados...",
6184
- databaseCreated: "Banco de dados criado",
6421
+ creatingDatabase: "Criando banco de dados embutido...",
6422
+ databaseCreated: "Banco de dados embutido criado",
6185
6423
  describeWhatToGenerate: "Descreva o que gerar...",
6186
6424
  enterToSubmit: "Entre para enviar",
6187
- failedToCreateDatabase: "Falha ao criar banco de dados",
6425
+ failedToCreateDatabase: "Falha ao criar banco de dados embutido",
6188
6426
  generateWithAi: "Gere com IA",
6189
6427
  untitledDatabase: "Banco de dados sem título",
6190
6428
  media: {
@@ -6401,7 +6639,7 @@ const editorMessagesByLocale = {
6401
6639
  codeBlockDescription: "Trecho de código",
6402
6640
  collapsibleBlockDescription: "Bloco dobrável",
6403
6641
  database: "Banco de dados",
6404
- databaseDescription: "Crie uma página de banco de dados filho",
6642
+ databaseDescription: "Banco de dados embutido nesta página",
6405
6643
  divider: "Divisor",
6406
6644
  dividerDescription: "Regra horizontal",
6407
6645
  generate: "Gerar",
@@ -6509,11 +6747,11 @@ const editorMessagesByLocale = {
6509
6747
  },
6510
6748
  "hi-IN": {
6511
6749
  noDocumentSelected: "कोई दस्तावेज़ चयनित नहीं",
6512
- creatingDatabase: "डेटाबेस बनाया जा रहा है...",
6513
- databaseCreated: "डेटाबेस बनाया गया",
6750
+ creatingDatabase: "इनलाइन डेटाबेस बनाया जा रहा है...",
6751
+ databaseCreated: "इनलाइन डेटाबेस बनाया गया",
6514
6752
  describeWhatToGenerate: "वर्णन करें कि क्या उत्पन्न करना है...",
6515
6753
  enterToSubmit: "सबमिट करने के लिए दर्ज करें",
6516
- failedToCreateDatabase: "डेटाबेस बनाने में विफल",
6754
+ failedToCreateDatabase: "इनलाइन डेटाबेस बनाने में विफल",
6517
6755
  generateWithAi: "एआई के साथ उत्पन्न करें",
6518
6756
  untitledDatabase: "शीर्षक रहित डेटाबेस",
6519
6757
  media: {
@@ -6727,7 +6965,7 @@ const editorMessagesByLocale = {
6727
6965
  codeBlockDescription: "कोड स्निपेट",
6728
6966
  collapsibleBlockDescription: "बंधनेवाला ब्लॉक",
6729
6967
  database: "डेटाबेस",
6730
- databaseDescription: "एक चाइल्ड डेटाबेस पेज बनाएं",
6968
+ databaseDescription: "इस पेज में इनलाइन डेटाबेस",
6731
6969
  divider: "विभाजक",
6732
6970
  dividerDescription: "क्षैतिज नियम",
6733
6971
  generate: "उत्पन्न करें",
@@ -6829,11 +7067,11 @@ const editorMessagesByLocale = {
6829
7067
  },
6830
7068
  "ar-SA": {
6831
7069
  noDocumentSelected: "لم يتم تحديد أي مستند",
6832
- creatingDatabase: "جارٍ إنشاء قاعدة البيانات...",
6833
- databaseCreated: "تم إنشاء قاعدة البيانات",
7070
+ creatingDatabase: "جارٍ إنشاء قاعدة بيانات مضمنة...",
7071
+ databaseCreated: "تم إنشاء قاعدة البيانات المضمنة",
6834
7072
  describeWhatToGenerate: "وصف ما سيتم إنشاؤه...",
6835
7073
  enterToSubmit: "أدخل لتقديم",
6836
- failedToCreateDatabase: "فشل في إنشاء قاعدة البيانات",
7074
+ failedToCreateDatabase: "فشل في إنشاء قاعدة البيانات المضمنة",
6837
7075
  generateWithAi: "إنشاء باستخدام الذكاء الاصطناعي",
6838
7076
  untitledDatabase: "قاعدة بيانات بدون عنوان",
6839
7077
  media: {
@@ -7047,7 +7285,7 @@ const editorMessagesByLocale = {
7047
7285
  codeBlockDescription: "مقتطف الكود",
7048
7286
  collapsibleBlockDescription: "كتلة قابلة للطي",
7049
7287
  database: "قاعدة البيانات",
7050
- databaseDescription: "إنشاء صفحة قاعدة بيانات فرعية",
7288
+ databaseDescription: "قاعدة بيانات مضمنة في هذه الصفحة",
7051
7289
  divider: "مقسم",
7052
7290
  dividerDescription: "القاعدة الأفقية",
7053
7291
  generate: "إنشاء",
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ /database once again creates an inline database in the current page instead of opening a child database page, and the sidebar restores Page/Database create menus plus inline database Trash controls.
@@ -773,6 +773,7 @@ export interface TrashedContentDatabaseSummary {
773
773
  documentId: string;
774
774
  ownerDocumentId: string | null;
775
775
  deletedAt: string;
776
+ canPermanentlyDelete: boolean;
776
777
  }
777
778
 
778
779
  export interface ListTrashedContentDatabasesResponse {
@@ -222,12 +222,13 @@ patterns live in `.agents/skills/`.
222
222
  and open the editor in overview mode.
223
223
  - For human-in-the-loop UI exploration, create a design shell, call
224
224
  `present-design-variants` with 2-5 concise directions (three by default),
225
- wait for the user to pick one in chat, delete the other generated variant
226
- screens with `delete-file`, call `get-design-snapshot` with the selected
227
- screen's `fileId`, then call `edit-design` on that same `fileId` for
228
- follow-up refinement. Use `mode: "replace-file"` when expanding the
229
- representative placeholder into the full chosen direction. Do not call
230
- `generate-design` after a variant pick.
225
+ wait for the user to pick one in chat, delete each other generated variant
226
+ screen with `delete-file` at most once, call `get-design-snapshot` exactly
227
+ once with the selected screen's `fileId`, then call `edit-design` exactly once
228
+ on that same `fileId` for follow-up refinement. Use `mode: "replace-file"`
229
+ when expanding the representative placeholder into the full chosen direction.
230
+ Do not repeat delete/snapshot cycles, and do not call `generate-design` after
231
+ a variant pick.
231
232
  - If inline chat choice buttons are unavailable, the user can tell you the
232
233
  preferred screen name. Do not show a separate variant picker or ask them to
233
234
  paste a copyable handoff summary.
@@ -0,0 +1,33 @@
1
+ # Design
2
+
3
+ An agent-native HTML prototyping studio — describe a screen and get a working
4
+ Alpine/Tailwind prototype you can refine, tweak, and export. An open-source,
5
+ self-hostable alternative to v0 and Lovable-style prototyping tools.
6
+
7
+ **Live app: [design.agent-native.com](https://design.agent-native.com)**
8
+
9
+ Instead of a layered drawing canvas, the agent generates complete self-contained
10
+ HTML prototypes, renders them in an iframe, and lets you refine the result with
11
+ prompts and visual tweak controls.
12
+
13
+ ## Features
14
+
15
+ - Generate complete, working HTML prototypes from a prompt.
16
+ - Compare multiple design directions, then keep refining the strongest one.
17
+ - Visual tweak controls for common copy, layout, color, and spacing changes.
18
+ - Save and reuse design-system preferences to stay on-brand.
19
+ - Import existing HTML or reference material as context.
20
+ - Export real files: HTML, ZIP, or PDF.
21
+
22
+ ## Develop locally
23
+
24
+ Scaffold your own copy and run it:
25
+
26
+ ```bash
27
+ npx @agent-native/core@latest create my-design --standalone --template design
28
+ cd my-design
29
+ pnpm install
30
+ pnpm dev
31
+ ```
32
+
33
+ Full docs: [agent-native.com/docs/template-design](https://agent-native.com/docs/template-design).