@agent-native/core 0.164.12 → 0.164.17

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 (90) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/netlify.toml +4 -0
  3. package/corpus/templates/clips/actions/request-transcript.ts +10 -6
  4. package/corpus/templates/content/actions/_database-source-utils.ts +25 -2
  5. package/corpus/templates/content/actions/_database-utils.ts +2 -0
  6. package/corpus/templates/content/actions/_local-folder-source.ts +186 -2
  7. package/corpus/templates/content/actions/connect-local-folder-source.ts +23 -8
  8. package/corpus/templates/content/actions/disconnect-local-folder-source.ts +3 -3
  9. package/corpus/templates/content/actions/resolve-local-folder-conflict.ts +2 -2
  10. package/corpus/templates/content/actions/sync-local-folder-source.ts +130 -12
  11. package/corpus/templates/content/app/components/LocalFolderLiveSync.tsx +77 -0
  12. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +298 -3
  13. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +354 -8
  14. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +23 -1
  15. package/corpus/templates/content/app/components/editor/VisualEditor.tsx +81 -1
  16. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +36 -0
  17. package/corpus/templates/content/app/components/editor/extensions/NotionExtensions.tsx +18 -4
  18. package/corpus/templates/content/app/components/editor/local-source-write-state.ts +52 -0
  19. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +244 -6
  20. package/corpus/templates/content/app/components/sidebar/local-source-hierarchy.ts +189 -0
  21. package/corpus/templates/content/app/hooks/use-create-page.ts +26 -4
  22. package/corpus/templates/content/app/hooks/use-documents.ts +83 -0
  23. package/corpus/templates/content/app/i18n-data.ts +239 -0
  24. package/corpus/templates/content/app/lib/desktop-content-files.ts +57 -1
  25. package/corpus/templates/content/app/lib/local-content-source-files.ts +210 -34
  26. package/corpus/templates/content/app/lib/local-folder-live-sync.ts +191 -0
  27. package/corpus/templates/content/app/root.tsx +2 -1
  28. package/corpus/templates/content/app/routes/_app.local-files.tsx +103 -38
  29. package/corpus/templates/content/docs/product/capabilities/content.source.file-folder.md +2 -2
  30. package/corpus/templates/content/docs/product/features/content.feature.bring-your-local-work.md +3 -3
  31. package/corpus/templates/content/docs/product/roadmap.md +2 -2
  32. package/corpus/templates/content/docs/solutions/2026-08-18-colored-text-highlighting-shape.md +693 -0
  33. package/corpus/templates/content/docs/solutions/2026-08-18-content-navigation-coherence-shape.md +482 -0
  34. package/corpus/templates/content/package.json +1 -0
  35. package/corpus/templates/content/shared/api.ts +25 -0
  36. package/corpus/templates/content/shared/nfm.ts +14 -3
  37. package/corpus/templates/factory/AGENTS.md +24 -29
  38. package/corpus/templates/factory/actions/get-slack-feedback-context.ts +8 -28
  39. package/corpus/templates/factory/actions/get-triage-config.ts +1 -0
  40. package/corpus/templates/factory/actions/govern-agent-native-pull-request.ts +67 -59
  41. package/corpus/templates/factory/actions/list-triage-items.ts +6 -1
  42. package/corpus/templates/factory/actions/reconcile-triage-run.ts +7 -1
  43. package/corpus/templates/factory/actions/save-triage-config.ts +27 -7
  44. package/corpus/templates/factory/actions/start-builder-for-item.ts +113 -31
  45. package/corpus/templates/factory/actions/view-screen.ts +12 -0
  46. package/corpus/templates/factory/app/components/factory/FactorySettingsView.tsx +457 -0
  47. package/corpus/templates/factory/app/components/factory/FactoryWorkspaceActions.tsx +53 -0
  48. package/corpus/templates/factory/app/components/layout/Layout.tsx +2 -0
  49. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +3 -1
  50. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +10 -7
  51. package/corpus/templates/factory/app/i18n/en-US.ts +3 -0
  52. package/corpus/templates/factory/app/routes/agents.tsx +22 -1
  53. package/corpus/templates/factory/app/routes/factory-settings.tsx +34 -0
  54. package/corpus/templates/factory/app/routes/factory.tsx +33 -323
  55. package/corpus/templates/factory/server/connectors/slack.ts +62 -0
  56. package/corpus/templates/factory/server/db/schema.ts +1 -0
  57. package/corpus/templates/factory/server/lib/slack-feedback-prompt.ts +30 -0
  58. package/corpus/templates/factory/server/plugins/agent-chat.ts +9 -8
  59. package/corpus/templates/factory/server/plugins/factory-migrations.ts +7 -0
  60. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +43 -25
  61. package/corpus/templates/factory/server/triage/ai-services-git.ts +2 -0
  62. package/corpus/templates/factory/server/triage/pr-monitor.ts +2 -1
  63. package/corpus/templates/factory/server/triage/pr-policy.ts +197 -19
  64. package/corpus/templates/factory/server/triage/review-skill-alignment.ts +127 -0
  65. package/corpus/templates/factory/server/triage/slack-client.ts +79 -6
  66. package/dist/app-config/auth.d.ts +4 -0
  67. package/dist/app-config/auth.js +7 -0
  68. package/dist/app-config/schema.d.ts +3 -0
  69. package/dist/app-config/schema.js +2 -0
  70. package/dist/cli/code-agent-executor.js +6 -1
  71. package/dist/cli/code-agent-mcp-config.d.ts +2 -2
  72. package/dist/cli/code-agent-mcp-config.js +34 -9
  73. package/dist/client/MultiTabAssistantChat.js +28 -1
  74. package/dist/client/org/OrgSwitcher.js +8 -4
  75. package/dist/client/use-chat-threads.d.ts +1 -0
  76. package/dist/client/use-chat-threads.js +13 -3
  77. package/dist/collab/awareness.d.ts +2 -2
  78. package/dist/collab/routes.d.ts +1 -1
  79. package/dist/mcp-client/config.d.ts +11 -0
  80. package/dist/mcp-client/config.js +33 -26
  81. package/dist/notifications/routes.d.ts +3 -3
  82. package/dist/observability/routes.d.ts +5 -5
  83. package/dist/progress/routes.d.ts +1 -1
  84. package/dist/resources/handlers.d.ts +2 -2
  85. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  86. package/dist/server/auth.js +17 -3
  87. package/dist/server/realtime-token.d.ts +1 -1
  88. package/dist/server/transcribe-voice.d.ts +1 -1
  89. package/dist/vite/client.js +2 -0
  90. package/package.json +1 -1
@@ -2876,6 +2876,7 @@ const editorToolbarMessages = {
2876
2876
  pushFailed: "Push failed.",
2877
2877
  pushLocal: "Push local",
2878
2878
  pushToNotion: "Push to Notion",
2879
+ redo: "Redo",
2879
2880
  revealInFinder: "Reveal in Finder",
2880
2881
  revealedLocalFile: "Revealed local file",
2881
2882
  searchNotionPages: "Search Notion pages...",
@@ -2896,6 +2897,7 @@ const editorToolbarMessages = {
2896
2897
  disconnectedNotionWorkspace: "Disconnected Notion workspace.",
2897
2898
  unlinkFailed: "Unlink failed.",
2898
2899
  unlinkedFromNotion: "Unlinked from Notion.",
2900
+ undo: "Undo",
2899
2901
  versionHistory: "Version history",
2900
2902
  };
2901
2903
 
@@ -3135,6 +3137,22 @@ const enUS = {
3135
3137
  italic: "Italic",
3136
3138
  strikethrough: "Strikethrough",
3137
3139
  code: "Code",
3140
+ textColor: "Text color",
3141
+ backgroundColor: "Background color",
3142
+ defaultColor: "Default",
3143
+ color: {
3144
+ label: "Color",
3145
+ recentlyUsed: "Recently used",
3146
+ gray: "Gray",
3147
+ brown: "Brown",
3148
+ orange: "Orange",
3149
+ yellow: "Yellow",
3150
+ green: "Green",
3151
+ blue: "Blue",
3152
+ purple: "Purple",
3153
+ pink: "Pink",
3154
+ red: "Red",
3155
+ },
3138
3156
  heading1: "Heading 1",
3139
3157
  heading2: "Heading 2",
3140
3158
  heading3: "Heading 3",
@@ -3153,6 +3171,13 @@ const enUS = {
3153
3171
  "This Blocks field changed elsewhere. Your edit wasn't saved; the latest version is now shown.",
3154
3172
  couldNotReadLocalSourceFile: "Could not read local source file",
3155
3173
  couldNotSaveLocalFile: "Could not save local file",
3174
+ localFileChangedWithUnsavedEdits:
3175
+ "The file changed on disk while this page had unsaved edits.",
3176
+ localFileReadOnlySnapshot:
3177
+ "Read-only snapshot · Last synced from {{device}} at {{date}}",
3178
+ copyUnsavedText: "Copy my unsaved text",
3179
+ unsavedTextCopied: "Unsaved text copied",
3180
+ useDiskVersion: "Use disk version",
3156
3181
  collabConnectingReadOnly:
3157
3182
  "Connecting live editor. Showing a read-only snapshot.",
3158
3183
  liveDocumentSaveBeforeSyncFailed:
@@ -3497,10 +3522,17 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
3497
3522
  editor: {
3498
3523
  couldNotReadLocalSourceFile: "无法读取本地源文件",
3499
3524
  couldNotSaveLocalFile: "无法保存本地文件",
3525
+ localFileChangedWithUnsavedEdits:
3526
+ "此页面有未保存的编辑时,磁盘上的文件已更改。",
3527
+ copyUnsavedText: "复制我未保存的文本",
3528
+ unsavedTextCopied: "已复制未保存的文本",
3529
+ useDiskVersion: "使用磁盘版本",
3500
3530
  documentTitle: "文档标题",
3501
3531
  localFileSavedHistoryNotUpdated: "本地文件已保存,但历史记录未更新",
3502
3532
  title: "标题",
3503
3533
  toolbar: {
3534
+ undo: "撤销",
3535
+ redo: "重做",
3504
3536
  conflict: "冲突",
3505
3537
  conflictResolutionFailed: "冲突解决失败。",
3506
3538
  conflictResolvedFromLocalDocument: "已从本本文档解决冲突。",
@@ -3725,6 +3757,11 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
3725
3757
  editor: {
3726
3758
  couldNotReadLocalSourceFile: "No se pudo leer el archivo local de origen",
3727
3759
  couldNotSaveLocalFile: "No se pudo guardar el archivo local",
3760
+ localFileChangedWithUnsavedEdits:
3761
+ "El archivo del disco cambió mientras esta página tenía ediciones sin guardar.",
3762
+ copyUnsavedText: "Copiar mi texto sin guardar",
3763
+ unsavedTextCopied: "Texto sin guardar copiado",
3764
+ useDiskVersion: "Usar la versión del disco",
3728
3765
  documentTitle: "Título del documento",
3729
3766
  localFileSavedHistoryNotUpdated:
3730
3767
  "El archivo local se guardó, pero el historial no se actualizó",
@@ -3791,6 +3828,8 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
3791
3828
  "Transcribe este video y agrega la transcripción debajo.",
3792
3829
  },
3793
3830
  toolbar: {
3831
+ undo: "Deshacer",
3832
+ redo: "Rehacer",
3794
3833
  conflict: "Conflicto",
3795
3834
  conflictResolutionFailed: "Error al resolver el conflicto.",
3796
3835
  conflictResolvedFromLocalDocument:
@@ -3929,6 +3968,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
3929
3968
  },
3930
3969
  },
3931
3970
  "fr-FR": {
3971
+ editor: {
3972
+ localFileChangedWithUnsavedEdits:
3973
+ "Le fichier sur le disque a changé alors que cette page contenait des modifications non enregistrées.",
3974
+ copyUnsavedText: "Copier mon texte non enregistré",
3975
+ unsavedTextCopied: "Texte non enregistré copié",
3976
+ useDiskVersion: "Utiliser la version du disque",
3977
+ toolbar: { undo: "Annuler", redo: "Rétablir" },
3978
+ },
3932
3979
  sidebar: {
3933
3980
  addChild: "Ajouter un enfant",
3934
3981
  addChildTo: "Ajouter un enfant à {{title}}",
@@ -3965,6 +4012,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
3965
4012
  },
3966
4013
  },
3967
4014
  "de-DE": {
4015
+ editor: {
4016
+ localFileChangedWithUnsavedEdits:
4017
+ "Die Datei auf dem Datenträger wurde geändert, während diese Seite ungespeicherte Änderungen enthielt.",
4018
+ copyUnsavedText: "Meinen ungespeicherten Text kopieren",
4019
+ unsavedTextCopied: "Ungespeicherter Text kopiert",
4020
+ useDiskVersion: "Version vom Datenträger verwenden",
4021
+ toolbar: { undo: "Rückgängig", redo: "Wiederholen" },
4022
+ },
3968
4023
  sidebar: {
3969
4024
  addChild: "Unterelement hinzufügen",
3970
4025
  addChildTo: "Unterelement zu {{title}} hinzufügen",
@@ -4000,6 +4055,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
4000
4055
  },
4001
4056
  },
4002
4057
  "ja-JP": {
4058
+ editor: {
4059
+ localFileChangedWithUnsavedEdits:
4060
+ "このページに未保存の編集がある間に、ディスク上のファイルが変更されました。",
4061
+ copyUnsavedText: "未保存のテキストをコピー",
4062
+ unsavedTextCopied: "未保存のテキストをコピーしました",
4063
+ useDiskVersion: "ディスク上の版を使用",
4064
+ toolbar: { undo: "元に戻す", redo: "やり直す" },
4065
+ },
4003
4066
  sidebar: {
4004
4067
  addChild: "子項目を追加",
4005
4068
  addChildTo: "{{title}} に子項目を追加",
@@ -4033,6 +4096,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
4033
4096
  },
4034
4097
  },
4035
4098
  "ko-KR": {
4099
+ editor: {
4100
+ localFileChangedWithUnsavedEdits:
4101
+ "이 페이지에 저장하지 않은 편집 내용이 있는 동안 디스크의 파일이 변경되었습니다.",
4102
+ copyUnsavedText: "저장하지 않은 텍스트 복사",
4103
+ unsavedTextCopied: "저장하지 않은 텍스트를 복사했습니다",
4104
+ useDiskVersion: "디스크 버전 사용",
4105
+ toolbar: { undo: "실행 취소", redo: "다시 실행" },
4106
+ },
4036
4107
  sidebar: {
4037
4108
  addChild: "하위 항목 추가",
4038
4109
  addChildTo: "{{title}}에 하위 항목 추가",
@@ -4065,6 +4136,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
4065
4136
  },
4066
4137
  },
4067
4138
  "pt-BR": {
4139
+ editor: {
4140
+ localFileChangedWithUnsavedEdits:
4141
+ "O arquivo no disco foi alterado enquanto esta página tinha edições não salvas.",
4142
+ copyUnsavedText: "Copiar meu texto não salvo",
4143
+ unsavedTextCopied: "Texto não salvo copiado",
4144
+ useDiskVersion: "Usar versão do disco",
4145
+ toolbar: { undo: "Desfazer", redo: "Refazer" },
4146
+ },
4068
4147
  sidebar: {
4069
4148
  addChild: "Adicionar filho",
4070
4149
  addChildTo: "Adicionar filho a {{title}}",
@@ -4099,6 +4178,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
4099
4178
  },
4100
4179
  },
4101
4180
  "hi-IN": {
4181
+ editor: {
4182
+ localFileChangedWithUnsavedEdits:
4183
+ "इस पेज में सहेजे नहीं गए बदलाव होने के दौरान डिस्क की फ़ाइल बदल गई।",
4184
+ copyUnsavedText: "मेरा सहेजा नहीं गया टेक्स्ट कॉपी करें",
4185
+ unsavedTextCopied: "सहेजा नहीं गया टेक्स्ट कॉपी किया गया",
4186
+ useDiskVersion: "डिस्क वाला संस्करण उपयोग करें",
4187
+ toolbar: { undo: "पूर्ववत करें", redo: "फिर से करें" },
4188
+ },
4102
4189
  sidebar: {
4103
4190
  addChild: "चाइल्ड जोड़ें",
4104
4191
  addChildTo: "{{title}} में चाइल्ड जोड़ें",
@@ -4131,6 +4218,14 @@ const rawLiteralLocaleMessages: Partial<Record<LocaleCode, PartialMessages>> = {
4131
4218
  },
4132
4219
  },
4133
4220
  "ar-SA": {
4221
+ editor: {
4222
+ localFileChangedWithUnsavedEdits:
4223
+ "تغيّر الملف على القرص أثناء وجود تعديلات غير محفوظة في هذه الصفحة.",
4224
+ copyUnsavedText: "نسخ النص غير المحفوظ",
4225
+ unsavedTextCopied: "تم نسخ النص غير المحفوظ",
4226
+ useDiskVersion: "استخدام نسخة القرص",
4227
+ toolbar: { undo: "تراجع", redo: "إعادة" },
4228
+ },
4134
4229
  sidebar: {
4135
4230
  addChild: "إضافة عنصر فرعي",
4136
4231
  addChildTo: "إضافة عنصر فرعي إلى {{title}}",
@@ -5650,6 +5745,22 @@ const databaseExactEnglishMessagesByLocale = {
5650
5745
 
5651
5746
  const editorMessagesByLocale = {
5652
5747
  "zh-CN": {
5748
+ textColor: "文本颜色",
5749
+ backgroundColor: "背景颜色",
5750
+ defaultColor: "默认",
5751
+ color: {
5752
+ label: "颜色",
5753
+ recentlyUsed: "最近使用",
5754
+ gray: "灰色",
5755
+ brown: "棕色",
5756
+ orange: "橙色",
5757
+ yellow: "黄色",
5758
+ green: "绿色",
5759
+ blue: "蓝色",
5760
+ purple: "紫色",
5761
+ pink: "粉色",
5762
+ red: "红色",
5763
+ },
5653
5764
  noDocumentSelected: "未选择文档",
5654
5765
  blocksFieldRevisionConflict:
5655
5766
  "此 Blocks 字段已在其他位置更改。你的编辑未保存;现已显示最新版本。",
@@ -5999,6 +6110,22 @@ const editorMessagesByLocale = {
5999
6110
  },
6000
6111
  },
6001
6112
  "es-ES": {
6113
+ textColor: "Color de texto",
6114
+ backgroundColor: "Color de fondo",
6115
+ defaultColor: "Predeterminado",
6116
+ color: {
6117
+ label: "Color",
6118
+ recentlyUsed: "Usados recientemente",
6119
+ gray: "Gris",
6120
+ brown: "Marrón",
6121
+ orange: "Naranja",
6122
+ yellow: "Amarillo",
6123
+ green: "Verde",
6124
+ blue: "Azul",
6125
+ purple: "Morado",
6126
+ pink: "Rosa",
6127
+ red: "Rojo",
6128
+ },
6002
6129
  noDocumentSelected: "Ningún documento seleccionado",
6003
6130
  blocksFieldRevisionConflict:
6004
6131
  "Este campo de bloques cambió en otro lugar. Tu edición no se guardó; ahora se muestra la versión más reciente.",
@@ -6361,6 +6488,22 @@ const editorMessagesByLocale = {
6361
6488
  },
6362
6489
  },
6363
6490
  "fr-FR": {
6491
+ textColor: "Couleur du texte",
6492
+ backgroundColor: "Couleur d’arrière-plan",
6493
+ defaultColor: "Par défaut",
6494
+ color: {
6495
+ label: "Couleur",
6496
+ recentlyUsed: "Utilisées récemment",
6497
+ gray: "Gris",
6498
+ brown: "Marron",
6499
+ orange: "Orange",
6500
+ yellow: "Jaune",
6501
+ green: "Vert",
6502
+ blue: "Bleu",
6503
+ purple: "Violet",
6504
+ pink: "Rose",
6505
+ red: "Rouge",
6506
+ },
6364
6507
  noDocumentSelected: "Aucun document sélectionné",
6365
6508
  blocksFieldRevisionConflict:
6366
6509
  "Ce champ de blocs a été modifié ailleurs. Votre modification n’a pas été enregistrée ; la dernière version est maintenant affichée.",
@@ -6728,6 +6871,22 @@ const editorMessagesByLocale = {
6728
6871
  },
6729
6872
  },
6730
6873
  "de-DE": {
6874
+ textColor: "Textfarbe",
6875
+ backgroundColor: "Hintergrundfarbe",
6876
+ defaultColor: "Standard",
6877
+ color: {
6878
+ label: "Farbe",
6879
+ recentlyUsed: "Zuletzt verwendet",
6880
+ gray: "Grau",
6881
+ brown: "Braun",
6882
+ orange: "Orange",
6883
+ yellow: "Gelb",
6884
+ green: "Grün",
6885
+ blue: "Blau",
6886
+ purple: "Violett",
6887
+ pink: "Rosa",
6888
+ red: "Rot",
6889
+ },
6731
6890
  noDocumentSelected: "Kein Dokument ausgewählt",
6732
6891
  blocksFieldRevisionConflict:
6733
6892
  "Dieses Blocks-Feld wurde an anderer Stelle geändert. Deine Bearbeitung wurde nicht gespeichert; jetzt wird die neueste Version angezeigt.",
@@ -7098,6 +7257,22 @@ const editorMessagesByLocale = {
7098
7257
  },
7099
7258
  },
7100
7259
  "ja-JP": {
7260
+ textColor: "テキストの色",
7261
+ backgroundColor: "背景色",
7262
+ defaultColor: "デフォルト",
7263
+ color: {
7264
+ label: "色",
7265
+ recentlyUsed: "最近使用した色",
7266
+ gray: "灰色",
7267
+ brown: "茶色",
7268
+ orange: "オレンジ",
7269
+ yellow: "黄色",
7270
+ green: "緑",
7271
+ blue: "青",
7272
+ purple: "紫",
7273
+ pink: "ピンク",
7274
+ red: "赤",
7275
+ },
7101
7276
  noDocumentSelected: "ドキュメントが選択されていません",
7102
7277
  blocksFieldRevisionConflict:
7103
7278
  "このブロックフィールドは別の場所で変更されました。編集内容は保存されず、最新バージョンが表示されています。",
@@ -7457,6 +7632,22 @@ const editorMessagesByLocale = {
7457
7632
  },
7458
7633
  },
7459
7634
  "ko-KR": {
7635
+ textColor: "텍스트 색상",
7636
+ backgroundColor: "배경색",
7637
+ defaultColor: "기본값",
7638
+ color: {
7639
+ label: "색상",
7640
+ recentlyUsed: "최근 사용",
7641
+ gray: "회색",
7642
+ brown: "갈색",
7643
+ orange: "주황색",
7644
+ yellow: "노란색",
7645
+ green: "녹색",
7646
+ blue: "파란색",
7647
+ purple: "보라색",
7648
+ pink: "분홍색",
7649
+ red: "빨간색",
7650
+ },
7460
7651
  noDocumentSelected: "선택한 문서가 없습니다.",
7461
7652
  blocksFieldRevisionConflict:
7462
7653
  "이 블록 필드가 다른 곳에서 변경되었습니다. 편집 내용은 저장되지 않았으며 최신 버전이 표시됩니다.",
@@ -7815,6 +8006,22 @@ const editorMessagesByLocale = {
7815
8006
  },
7816
8007
  },
7817
8008
  "pt-BR": {
8009
+ textColor: "Cor do texto",
8010
+ backgroundColor: "Cor de fundo",
8011
+ defaultColor: "Padrão",
8012
+ color: {
8013
+ label: "Cor",
8014
+ recentlyUsed: "Usadas recentemente",
8015
+ gray: "Cinza",
8016
+ brown: "Marrom",
8017
+ orange: "Laranja",
8018
+ yellow: "Amarelo",
8019
+ green: "Verde",
8020
+ blue: "Azul",
8021
+ purple: "Roxo",
8022
+ pink: "Rosa",
8023
+ red: "Vermelho",
8024
+ },
7818
8025
  noDocumentSelected: "Nenhum documento selecionado",
7819
8026
  blocksFieldRevisionConflict:
7820
8027
  "Este campo de blocos foi alterado em outro lugar. Sua edição não foi salva; a versão mais recente agora está sendo exibida.",
@@ -8179,6 +8386,22 @@ const editorMessagesByLocale = {
8179
8386
  },
8180
8387
  },
8181
8388
  "hi-IN": {
8389
+ textColor: "टेक्स्ट का रंग",
8390
+ backgroundColor: "पृष्ठभूमि का रंग",
8391
+ defaultColor: "डिफ़ॉल्ट",
8392
+ color: {
8393
+ label: "रंग",
8394
+ recentlyUsed: "हाल में उपयोग किए गए",
8395
+ gray: "स्लेटी",
8396
+ brown: "भूरा",
8397
+ orange: "नारंगी",
8398
+ yellow: "पीला",
8399
+ green: "हरा",
8400
+ blue: "नीला",
8401
+ purple: "बैंगनी",
8402
+ pink: "गुलाबी",
8403
+ red: "लाल",
8404
+ },
8182
8405
  noDocumentSelected: "कोई दस्तावेज़ चयनित नहीं",
8183
8406
  blocksFieldRevisionConflict:
8184
8407
  "यह ब्लॉक फ़ील्ड कहीं और बदल गया है। आपका संपादन सहेजा नहीं गया; अब नवीनतम संस्करण दिखाया जा रहा है।",
@@ -8533,6 +8756,22 @@ const editorMessagesByLocale = {
8533
8756
  },
8534
8757
  },
8535
8758
  "ar-SA": {
8759
+ textColor: "لون النص",
8760
+ backgroundColor: "لون الخلفية",
8761
+ defaultColor: "افتراضي",
8762
+ color: {
8763
+ label: "اللون",
8764
+ recentlyUsed: "المستخدمة مؤخراً",
8765
+ gray: "رمادي",
8766
+ brown: "بني",
8767
+ orange: "برتقالي",
8768
+ yellow: "أصفر",
8769
+ green: "أخضر",
8770
+ blue: "أزرق",
8771
+ purple: "أرجواني",
8772
+ pink: "وردي",
8773
+ red: "أحمر",
8774
+ },
8536
8775
  noDocumentSelected: "لم يتم تحديد أي مستند",
8537
8776
  blocksFieldRevisionConflict:
8538
8777
  "تم تغيير حقل الكتل هذا في مكان آخر. لم يتم حفظ تعديلك؛ ويظهر الآن أحدث إصدار.",
@@ -1,7 +1,17 @@
1
1
  export interface DesktopContentFilesFolder {
2
2
  id?: string;
3
3
  name: string;
4
- path?: string;
4
+ kind?: "persistent" | "temporary";
5
+ repository?: {
6
+ localId: string;
7
+ branch?: string;
8
+ commit?: string;
9
+ detached?: boolean;
10
+ };
11
+ contentSource?: {
12
+ sourceId: string;
13
+ databaseId?: string;
14
+ };
5
15
  sourcePrefix?: string;
6
16
  updatedAt?: string;
7
17
  }
@@ -10,6 +20,27 @@ export interface DesktopContentFilesFolderRequest {
10
20
  folderId?: string;
11
21
  }
12
22
 
23
+ /** Opaque content fingerprint returned by the trusted local bridge. */
24
+ export type DesktopContentFileRevision = string;
25
+
26
+ export interface DesktopContentFileConflict {
27
+ path: string;
28
+ expectedRevision?: string | null;
29
+ actualRevision?: string;
30
+ }
31
+
32
+ export type DesktopContentFilesChange = {
33
+ folderId: string;
34
+ revision: string;
35
+ changedAt: string;
36
+ missing?: boolean;
37
+ reason?: "attached" | "changed" | "missing";
38
+ };
39
+
40
+ export type DesktopContentFilesWatchResult =
41
+ | { ok: true; unsubscribe(): void }
42
+ | { ok: false; error: string; unavailable?: boolean };
43
+
13
44
  export type DesktopContentFilesResult =
14
45
  | {
15
46
  ok: true;
@@ -17,6 +48,8 @@ export type DesktopContentFilesResult =
17
48
  folders?: DesktopContentFilesFolder[];
18
49
  files?: string[];
19
50
  sources?: Record<string, string>;
51
+ revisions?: Record<string, DesktopContentFileRevision>;
52
+ identities?: Record<string, string>;
20
53
  controlResources?: Record<string, string>;
21
54
  }
22
55
  | {
@@ -25,6 +58,8 @@ export type DesktopContentFilesResult =
25
58
  canceled?: boolean;
26
59
  folder?: DesktopContentFilesFolder;
27
60
  folders?: DesktopContentFilesFolder[];
61
+ code?: "conflict" | "unavailable" | "invalid-request";
62
+ conflict?: DesktopContentFileConflict;
28
63
  };
29
64
 
30
65
  export interface DesktopContentFilesApi {
@@ -32,18 +67,27 @@ export interface DesktopContentFilesApi {
32
67
  request?: DesktopContentFilesFolderRequest,
33
68
  ): Promise<DesktopContentFilesResult>;
34
69
  chooseFolder(): Promise<DesktopContentFilesResult>;
70
+ associateSource?(request: {
71
+ folderId: string;
72
+ sourceId: string;
73
+ databaseId?: string;
74
+ }): Promise<DesktopContentFilesResult>;
35
75
  writeFiles(request: {
36
76
  folderId?: string;
37
77
  files: Record<string, string>;
78
+ expectedRevisions: Record<string, string | null>;
38
79
  }): Promise<DesktopContentFilesResult>;
39
80
  writeFile(request: {
40
81
  folderId?: string;
41
82
  path: string;
42
83
  content: string;
84
+ /** The revision observed by the editor; a mismatch must not overwrite. */
85
+ expectedRevision: string | null;
43
86
  }): Promise<DesktopContentFilesResult>;
44
87
  deleteFile?(request: {
45
88
  folderId?: string;
46
89
  path: string;
90
+ expectedRevision: string;
47
91
  }): Promise<DesktopContentFilesResult>;
48
92
  readFiles(
49
93
  request?: DesktopContentFilesFolderRequest,
@@ -55,6 +99,18 @@ export interface DesktopContentFilesApi {
55
99
  clearFolder(
56
100
  request?: DesktopContentFilesFolderRequest,
57
101
  ): Promise<DesktopContentFilesResult>;
102
+ subscribeChanges?(
103
+ request: DesktopContentFilesFolderRequest,
104
+ ): Promise<DesktopContentFilesResult>;
105
+ unsubscribeChanges?(
106
+ request: DesktopContentFilesFolderRequest,
107
+ ): Promise<DesktopContentFilesResult>;
108
+ onChange?(callback: (change: DesktopContentFilesChange) => void): () => void;
109
+ /** Optional until the installed Desktop bridge supports live folder events. */
110
+ watchFiles?(
111
+ request: DesktopContentFilesFolderRequest,
112
+ onChange: (change: DesktopContentFilesChange) => void,
113
+ ): Promise<DesktopContentFilesWatchResult>;
58
114
  }
59
115
 
60
116
  type WindowWithAgentNativeDesktop = Window & {