@huanlin/dsh-plugin-aigc-canvas 0.1.4 → 0.1.6

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/lib/client.js CHANGED
@@ -1733,10 +1733,1364 @@ window.__ModuleLoader__.load({
1733
1733
  "badge.default": "default"
1734
1734
  };
1735
1735
  //#endregion
1736
+ //#region src/client/dictionaries.ts
1737
+ const dicts = {
1738
+ ja: {
1739
+ tabTitle: "AIGC キャンバス",
1740
+ title: "AIGC キャンバス",
1741
+ empty: "キャンバスは空です。エージェントが aigc_http_request でプロバイダー API を呼び出して素材を生成し、aigc_canvas_place で生成されたファイルをキャンバスの任意の場所に配置します。",
1742
+ emptyHint: "右側の設定タブでプロバイダーを設定してから、エージェントに生成を依頼してください。",
1743
+ prompt: "プロンプト",
1744
+ image: "画像",
1745
+ video: "動画",
1746
+ audio: "音声",
1747
+ meta: "メタ情報",
1748
+ generatedBy: "生成方法",
1749
+ edgeCount: "本のエッジ",
1750
+ elementCount: "個の要素",
1751
+ loadError: "キャンバスの読み込みに失敗しました",
1752
+ disconnected: "切断されました。再接続中…",
1753
+ reconnecting: "再接続中…",
1754
+ refresh: "更新",
1755
+ resetView: "ビューをリセット",
1756
+ zoom: "ズーム",
1757
+ zoomIn: "拡大",
1758
+ zoomOut: "縮小",
1759
+ detailClose: "閉じる",
1760
+ detailPrompt: "プロンプト",
1761
+ detailParams: "生成パラメータ",
1762
+ detailPosition: "位置",
1763
+ detailPath: "ファイルパス",
1764
+ delete: "削除",
1765
+ deleteElement: "要素を削除",
1766
+ dropHint: "ファイルをキャンバスにドロップ",
1767
+ uploading: "アップロード中…",
1768
+ settingsNav: "AIGC キャンバス",
1769
+ settingsTitle: "AIGC プロバイダー",
1770
+ settingsIntro: "1 つ以上の AIGC プロバイダーを設定します。各プロバイダーに名前、API アドレス、キー、認証方式、呼び出し手順を個別に設定できます。エージェントは aigc_get_provider_info でプロバイダー一覧を読み取り、aigc_http_request で API を呼び出し(endpoint と apiKey は自動的に付与されます)、生成されたファイルは aigc_canvas_place でキャンバスに配置します。",
1771
+ settingsEmpty: "プロバイダーが設定されていません。下から追加してください。",
1772
+ settingsAdd: "+ プロバイダーを追加",
1773
+ settingsLoading: "読み込み中…",
1774
+ settingsError: "エラー",
1775
+ "row.id": "ID",
1776
+ "row.name": "名前",
1777
+ "row.endpoint": "API アドレス",
1778
+ "row.apiKey": "API キー",
1779
+ "row.instructions": "呼び出し手順",
1780
+ "row.idPlaceholder": "volcano / jimeng / minimax",
1781
+ "row.namePlaceholder": "表示名(例:「火山引擎」)",
1782
+ "row.endpointPlaceholder": "stub://aigc-backend",
1783
+ "row.apiKeyPlaceholder": "sk-...",
1784
+ "row.instructionsPlaceholder": "呼び出し手順はプロバイダー初期化時にエージェントが自動作成します(カードの「初期化」ボタンをクリック)...",
1785
+ "row.idHint": "小文字の英字、数字、ハイフン。英字で始まる必要があります。aigc_http_request の provider_id パラメータとして使用されます",
1786
+ "row.endpointDesc": "プロバイダーの API アドレス。stub://aigc-backend は組み込みの stub(合成テストメディアを生成し、実際の API を呼び出しません)を使用します",
1787
+ "row.apiKeyDesc": "プロバイダーの API キー。stub バックエンドでは不要です。エージェントはキーを見ることができず、aigc_http_request が自動的に付与します",
1788
+ "row.instructionsDesc": "エージェントは aigc_get_provider_info ツールでこのフィールドを読み取り、そのプロバイダー API の呼び出し方を決定します",
1789
+ "row.instructionsHint": "💡 カードの「初期化」ボタンをクリック:エージェントが aigc_http_request で API を調査し、呼び出し手順を自動的に作成します",
1790
+ "row.save": "保存",
1791
+ "row.delete": "削除",
1792
+ "row.deleteConfirm": "このプロバイダーを削除しますか?",
1793
+ "row.expand": "展開",
1794
+ "row.collapse": "折りたたむ",
1795
+ "row.create": "作成",
1796
+ "row.cancel": "キャンセル",
1797
+ "row.init": "初期化",
1798
+ "row.initPrompt": "AIGC プロバイダー「{name}」(id: {id}) を初期化してください:まず aigc_get_provider_info で設定を確認し、次に aigc_http_request で API を調査してください(apiKey は自動付与されるため手動で渡さないでください)。最後に aigc_provider_set_instructions で呼び出し手順を保存しておくと、以後そのまま利用できます。",
1799
+ "row.auth": "認証方式",
1800
+ "row.authBearer": "Bearer ヘッダー",
1801
+ "row.authHeader": "カスタムヘッダー",
1802
+ "row.authQuery": "URL パラメータ",
1803
+ "row.authDesc": "aigc_http_request が apiKey を付与する方式。既定は Authorization: Bearer <key>。カスタムヘッダーまたは URL パラメータを選ぶ場合は名前を入力してください",
1804
+ "badge.builtin": "組み込み",
1805
+ "badge.stub": "stub モード",
1806
+ "badge.real": "実 API",
1807
+ "badge.default": "既定"
1808
+ },
1809
+ de: {
1810
+ tabTitle: "AIGC-Leinwand",
1811
+ title: "AIGC-Leinwand",
1812
+ empty: "Die Leinwand ist leer. Der Agent ruft die API des Anbieters über aigc_http_request auf, um Assets zu generieren, und legt die erzeugten Dateien mit aigc_canvas_place an beliebiger Stelle auf der Leinwand ab.",
1813
+ emptyHint: "Konfiguriere einen Anbieter im Einstellungs-Tab rechts und bitte den Agenten dann, etwas zu generieren.",
1814
+ prompt: "Prompt",
1815
+ image: "Bild",
1816
+ video: "Video",
1817
+ audio: "Audio",
1818
+ meta: "Metadaten",
1819
+ generatedBy: "Generierungsmethode",
1820
+ edgeCount: "Kanten",
1821
+ elementCount: "Elemente",
1822
+ loadError: "Leinwand konnte nicht geladen werden",
1823
+ disconnected: "Getrennt, Verbindung wird wiederhergestellt…",
1824
+ reconnecting: "Verbindung wird wiederhergestellt…",
1825
+ refresh: "Aktualisieren",
1826
+ resetView: "Ansicht zurücksetzen",
1827
+ zoom: "Zoom",
1828
+ zoomIn: "Vergrößern",
1829
+ zoomOut: "Verkleinern",
1830
+ detailClose: "Schließen",
1831
+ detailPrompt: "Prompt",
1832
+ detailParams: "Generierungsparameter",
1833
+ detailPosition: "Position",
1834
+ detailPath: "Dateipfad",
1835
+ delete: "Löschen",
1836
+ deleteElement: "Element löschen",
1837
+ dropHint: "Dateien auf die Leinwand ziehen",
1838
+ uploading: "Hochladen…",
1839
+ settingsNav: "AIGC-Leinwand",
1840
+ settingsTitle: "AIGC-Anbieter",
1841
+ settingsIntro: "Konfiguriere einen oder mehrere AIGC-Anbieter. Jeder Anbieter hat eigene Einstellungen für Name, API-Adresse, Schlüssel, Authentifizierung und Aufrufanweisungen. Der Agent liest die Anbieterliste über aigc_get_provider_info, ruft die API über aigc_http_request auf (endpoint + apiKey werden automatisch angehängt) und legt die generierten Dateien mit aigc_canvas_place auf der Leinwand ab.",
1842
+ settingsEmpty: "Keine Anbieter konfiguriert. Füge unten einen hinzu.",
1843
+ settingsAdd: "+ Anbieter hinzufügen",
1844
+ settingsLoading: "Wird geladen…",
1845
+ settingsError: "Fehler",
1846
+ "row.id": "ID",
1847
+ "row.name": "Name",
1848
+ "row.endpoint": "API-Adresse",
1849
+ "row.apiKey": "API-Schlüssel",
1850
+ "row.instructions": "Aufrufanweisungen",
1851
+ "row.idPlaceholder": "volcano / jimeng / minimax",
1852
+ "row.namePlaceholder": "Anzeigename (z. B. „火山引擎“)",
1853
+ "row.endpointPlaceholder": "stub://aigc-backend",
1854
+ "row.apiKeyPlaceholder": "sk-...",
1855
+ "row.instructionsPlaceholder": "Die Anweisungen schreibt der Agent, wenn du den Anbieter initialisierst (klicke „Initialisieren“ auf der Karte)...",
1856
+ "row.idHint": "Kleinbuchstaben, Ziffern, Bindestriche; muss mit einem Buchstaben beginnen. Wird als provider_id-Parameter an aigc_http_request übergeben",
1857
+ "row.endpointDesc": "API-Adresse des Anbieters. Verwende stub://aigc-backend für den eingebauten Stub (synthetische Testmedien, keine echten API-Aufrufe)",
1858
+ "row.apiKeyDesc": "API-Schlüssel des Anbieters. Für den Stub-Backend nicht nötig. Der Agent sieht den Schlüssel nie — aigc_http_request hängt ihn automatisch an",
1859
+ "row.instructionsDesc": "Der Agent liest dieses Feld über das aigc_get_provider_info-Tool, um zu entscheiden, wie die API des Anbieters aufzurufen ist",
1860
+ "row.instructionsHint": "💡 Klicke „Initialisieren“ auf der Karte: Der Agent testet die API mit aigc_http_request und schreibt die Anweisungen selbst",
1861
+ "row.save": "Speichern",
1862
+ "row.delete": "Löschen",
1863
+ "row.deleteConfirm": "Diesen Anbieter löschen?",
1864
+ "row.expand": "Erweitern",
1865
+ "row.collapse": "Einklappen",
1866
+ "row.create": "Erstellen",
1867
+ "row.cancel": "Abbrechen",
1868
+ "row.init": "Initialisieren",
1869
+ "row.initPrompt": "Bitte initialisiere den AIGC-Anbieter „{name}“ (id: {id}): Rufe zuerst aigc_get_provider_info auf, um die Konfiguration zu sehen, teste dann die API mit aigc_http_request (der apiKey wird automatisch angehängt — übergib ihn nicht selbst) und rufe schließlich aigc_provider_set_instructions auf, um die Anweisungen zu speichern.",
1870
+ "row.auth": "Authentifizierungsschema",
1871
+ "row.authBearer": "Bearer-Header",
1872
+ "row.authHeader": "Benutzerdefinierter Header",
1873
+ "row.authQuery": "URL-Abfrageparameter",
1874
+ "row.authDesc": "Wie aigc_http_request den apiKey anhängt. Standard: Authorization: Bearer <key>. Bei benutzerdefiniertem Header oder URL-Parameter den Namen ausfüllen",
1875
+ "badge.builtin": "integriert",
1876
+ "badge.stub": "Stub-Modus",
1877
+ "badge.real": "echte API",
1878
+ "badge.default": "Standard"
1879
+ },
1880
+ fr: {
1881
+ tabTitle: "Toile AIGC",
1882
+ title: "Toile AIGC",
1883
+ empty: "La toile est vide. L’agent appelle les API du fournisseur via aigc_http_request pour générer les ressources, puis place les fichiers générés n’importe où sur la toile avec aigc_canvas_place.",
1884
+ emptyHint: "Configurez un fournisseur dans l’onglet des paramètres à droite, puis demandez à l’agent de générer quelque chose.",
1885
+ prompt: "Invite",
1886
+ image: "Image",
1887
+ video: "Vidéo",
1888
+ audio: "Audio",
1889
+ meta: "Métadonnées",
1890
+ generatedBy: "Méthode de génération",
1891
+ edgeCount: "arêtes",
1892
+ elementCount: "éléments",
1893
+ loadError: "Échec du chargement de la toile",
1894
+ disconnected: "Déconnecté, reconnexion…",
1895
+ reconnecting: "Reconnexion en cours…",
1896
+ refresh: "Actualiser",
1897
+ resetView: "Réinitialiser la vue",
1898
+ zoom: "Zoom",
1899
+ zoomIn: "Agrandir",
1900
+ zoomOut: "Réduire",
1901
+ detailClose: "Fermer",
1902
+ detailPrompt: "Invite",
1903
+ detailParams: "Paramètres de génération",
1904
+ detailPosition: "Position",
1905
+ detailPath: "Chemin du fichier",
1906
+ delete: "Supprimer",
1907
+ deleteElement: "Supprimer l’élément",
1908
+ dropHint: "Déposez des fichiers sur la toile",
1909
+ uploading: "Téléversement…",
1910
+ settingsNav: "Toile AIGC",
1911
+ settingsTitle: "Fournisseurs AIGC",
1912
+ settingsIntro: "Configurez un ou plusieurs fournisseurs AIGC. Chaque fournisseur a son propre nom, endpoint API, clé, schéma d’authentification et instructions d’appel. L’agent lit la liste des fournisseurs via aigc_get_provider_info, appelle l’API via aigc_http_request (endpoint et apiKey attachés automatiquement) et place les fichiers générés sur la toile avec aigc_canvas_place.",
1913
+ settingsEmpty: "Aucun fournisseur configuré. Ajoutez-en un ci-dessous.",
1914
+ settingsAdd: "+ Ajouter un fournisseur",
1915
+ settingsLoading: "Chargement…",
1916
+ settingsError: "Erreur",
1917
+ "row.id": "ID",
1918
+ "row.name": "Nom",
1919
+ "row.endpoint": "Endpoint",
1920
+ "row.apiKey": "Clé API",
1921
+ "row.instructions": "Instructions",
1922
+ "row.idPlaceholder": "volcano / jimeng / minimax",
1923
+ "row.namePlaceholder": "Nom affiché (ex. «火山引擎»)",
1924
+ "row.endpointPlaceholder": "stub://aigc-backend",
1925
+ "row.apiKeyPlaceholder": "sk-...",
1926
+ "row.instructionsPlaceholder": "L’agent les écrit lors de l’initialisation du fournisseur (cliquez sur « Initialiser » sur la carte)...",
1927
+ "row.idHint": "Lettres minuscules, chiffres, tirets ; doit commencer par une lettre. Utilisé comme paramètre provider_id d’aigc_http_request",
1928
+ "row.endpointDesc": "Adresse API du fournisseur. Utilisez stub://aigc-backend pour le stub intégré (contenus de test synthétiques, aucun appel API réel)",
1929
+ "row.apiKeyDesc": "Clé API du fournisseur. Inutile pour le backend stub. L’agent ne la voit jamais — aigc_http_request l’attache automatiquement",
1930
+ "row.instructionsDesc": "L’agent lit ce champ via l’outil aigc_get_provider_info pour décider comment appeler l’API du fournisseur",
1931
+ "row.instructionsHint": "💡 Cliquez sur « Initialiser » sur la carte : l’agent sonde l’API avec aigc_http_request et écrit lui-même les instructions",
1932
+ "row.save": "Enregistrer",
1933
+ "row.delete": "Supprimer",
1934
+ "row.deleteConfirm": "Supprimer ce fournisseur ?",
1935
+ "row.expand": "Développer",
1936
+ "row.collapse": "Réduire",
1937
+ "row.create": "Créer",
1938
+ "row.cancel": "Annuler",
1939
+ "row.init": "Initialiser",
1940
+ "row.initPrompt": "Veuillez initialiser le fournisseur AIGC « {name} » (id : {id}) : appelez d’abord aigc_get_provider_info pour voir sa configuration, puis sondez son API avec aigc_http_request (le apiKey est attaché automatiquement — ne le passez pas vous-même), et enfin appelez aigc_provider_set_instructions pour enregistrer les instructions d’appel.",
1941
+ "row.auth": "Schéma d’authentification",
1942
+ "row.authBearer": "En-tête Bearer",
1943
+ "row.authHeader": "En-tête personnalisé",
1944
+ "row.authQuery": "Paramètre de requête URL",
1945
+ "row.authDesc": "Comment aigc_http_request attache le apiKey. Défaut : Authorization: Bearer <key>. Pour un en-tête personnalisé ou un paramètre d’URL, remplissez le nom",
1946
+ "badge.builtin": "intégré",
1947
+ "badge.stub": "mode stub",
1948
+ "badge.real": "API réelle",
1949
+ "badge.default": "défaut"
1950
+ },
1951
+ pt: {
1952
+ tabTitle: "Tela AIGC",
1953
+ title: "Tela AIGC",
1954
+ empty: "A tela está vazia. O agente chama as APIs do provedor via aigc_http_request para gerar os recursos e coloca os arquivos gerados em qualquer posição da tela com aigc_canvas_place.",
1955
+ emptyHint: "Configure um provedor na aba de configurações à direita e peça ao agente para gerar algo.",
1956
+ prompt: "Prompt",
1957
+ image: "Imagem",
1958
+ video: "Vídeo",
1959
+ audio: "Áudio",
1960
+ meta: "Metadados",
1961
+ generatedBy: "Método de geração",
1962
+ edgeCount: "arestas",
1963
+ elementCount: "elementos",
1964
+ loadError: "Falha ao carregar a tela",
1965
+ disconnected: "Desconectado, reconectando…",
1966
+ reconnecting: "Reconectando…",
1967
+ refresh: "Atualizar",
1968
+ resetView: "Redefinir visualização",
1969
+ zoom: "Zoom",
1970
+ zoomIn: "Ampliar",
1971
+ zoomOut: "Reduzir",
1972
+ detailClose: "Fechar",
1973
+ detailPrompt: "Prompt",
1974
+ detailParams: "Parâmetros de geração",
1975
+ detailPosition: "Posição",
1976
+ detailPath: "Caminho do arquivo",
1977
+ delete: "Excluir",
1978
+ deleteElement: "Excluir elemento",
1979
+ dropHint: "Solte arquivos na tela",
1980
+ uploading: "Enviando…",
1981
+ settingsNav: "Tela AIGC",
1982
+ settingsTitle: "Provedores AIGC",
1983
+ settingsIntro: "Configure um ou mais provedores AIGC. Cada provedor tem configurações independentes de nome, endereço da API, chave, método de autenticação e instruções de chamada. O agente lê a lista de provedores via aigc_get_provider_info, chama a API via aigc_http_request (endpoint e apiKey anexados automaticamente) e coloca os arquivos gerados na tela com aigc_canvas_place.",
1984
+ settingsEmpty: "Nenhum provedor configurado. Adicione um abaixo.",
1985
+ settingsAdd: "+ Adicionar provedor",
1986
+ settingsLoading: "Carregando…",
1987
+ settingsError: "Erro",
1988
+ "row.id": "ID",
1989
+ "row.name": "Nome",
1990
+ "row.endpoint": "Endereço da API",
1991
+ "row.apiKey": "Chave da API",
1992
+ "row.instructions": "Instruções de chamada",
1993
+ "row.idPlaceholder": "volcano / jimeng / minimax",
1994
+ "row.namePlaceholder": "Nome de exibição (ex.: 火山引擎)",
1995
+ "row.endpointPlaceholder": "stub://aigc-backend",
1996
+ "row.apiKeyPlaceholder": "sk-...",
1997
+ "row.instructionsPlaceholder": "O agente escreve as instruções ao inicializar o provedor (clique em \"Inicializar\" no cartão)...",
1998
+ "row.idHint": "Letras minúsculas, dígitos, hífens; deve começar com uma letra. Usado como parâmetro provider_id de aigc_http_request",
1999
+ "row.endpointDesc": "Endereço da API do provedor. Use stub://aigc-backend para o stub integrado (mídia de teste sintética, sem chamadas reais de API)",
2000
+ "row.apiKeyDesc": "Chave da API do provedor. Não é necessária para o backend stub. O agente nunca a vê — aigc_http_request a anexa automaticamente",
2001
+ "row.instructionsDesc": "O agente lê este campo via a ferramenta aigc_get_provider_info para decidir como chamar a API do provedor",
2002
+ "row.instructionsHint": "💡 Clique em \"Inicializar\" no cartão: o agente testa a API com aigc_http_request e escreve as instruções ele mesmo",
2003
+ "row.save": "Salvar",
2004
+ "row.delete": "Excluir",
2005
+ "row.deleteConfirm": "Excluir este provedor?",
2006
+ "row.expand": "Expandir",
2007
+ "row.collapse": "Recolher",
2008
+ "row.create": "Criar",
2009
+ "row.cancel": "Cancelar",
2010
+ "row.init": "Inicializar",
2011
+ "row.initPrompt": "Inicialize o provedor AIGC \"{name}\" (id: {id}): primeiro chame aigc_get_provider_info para ver a configuração dele, depois teste a API com aigc_http_request (o apiKey é anexado automaticamente — não o passe você mesmo) e finalmente chame aigc_provider_set_instructions para salvar as instruções de chamada.",
2012
+ "row.auth": "Método de autenticação",
2013
+ "row.authBearer": "Cabeçalho Bearer",
2014
+ "row.authHeader": "Cabeçalho personalizado",
2015
+ "row.authQuery": "Parâmetro de consulta de URL",
2016
+ "row.authDesc": "Como aigc_http_request anexa o apiKey. Padrão: Authorization: Bearer <key>. Para cabeçalho personalizado ou parâmetro de URL, preencha o nome",
2017
+ "badge.builtin": "integrado",
2018
+ "badge.stub": "modo stub",
2019
+ "badge.real": "API real",
2020
+ "badge.default": "padrão"
2021
+ },
2022
+ ko: {
2023
+ tabTitle: "AIGC 캔버스",
2024
+ title: "AIGC 캔버스",
2025
+ empty: "캔버스가 비어 있습니다. 에이전트가 aigc_http_request로 공급자 API를 호출해 자산을 생성한 후, aigc_canvas_place로 생성된 파일을 캔버스의 원하는 위치에 배치합니다.",
2026
+ emptyHint: "오른쪽 설정 탭에서 공급자를 구성한 다음 에이전트에게 생성을 요청하세요.",
2027
+ prompt: "프롬프트",
2028
+ image: "이미지",
2029
+ video: "동영상",
2030
+ audio: "오디오",
2031
+ meta: "메타데이터",
2032
+ generatedBy: "생성 방식",
2033
+ edgeCount: "개 연결",
2034
+ elementCount: "개 요소",
2035
+ loadError: "캔버스를 불러오지 못했습니다",
2036
+ disconnected: "연결이 끊겼습니다. 다시 연결하는 중…",
2037
+ reconnecting: "다시 연결하는 중…",
2038
+ refresh: "새로고침",
2039
+ resetView: "보기 초기화",
2040
+ zoom: "확대/축소",
2041
+ zoomIn: "확대",
2042
+ zoomOut: "축소",
2043
+ detailClose: "닫기",
2044
+ detailPrompt: "프롬프트",
2045
+ detailParams: "생성 매개변수",
2046
+ detailPosition: "위치",
2047
+ detailPath: "파일 경로",
2048
+ delete: "삭제",
2049
+ deleteElement: "요소 삭제",
2050
+ dropHint: "캔버스에 파일을 끌어다 놓기",
2051
+ uploading: "업로드 중…",
2052
+ settingsNav: "AIGC 캔버스",
2053
+ settingsTitle: "AIGC 공급자",
2054
+ settingsIntro: "하나 이상의 AIGC 공급자를 구성합니다. 각 공급자에 이름, API 주소, 키, 인증 방식, 호출 지침을 개별적으로 설정할 수 있습니다. 에이전트는 aigc_get_provider_info로 공급자 목록을 읽고, aigc_http_request로 API를 호출하며(endpoint와 apiKey 자동 첨부), 생성된 파일은 aigc_canvas_place로 캔버스에 배치합니다.",
2055
+ settingsEmpty: "구성된 공급자가 없습니다. 아래에서 추가하세요.",
2056
+ settingsAdd: "+ 공급자 추가",
2057
+ settingsLoading: "불러오는 중…",
2058
+ settingsError: "오류",
2059
+ "row.id": "ID",
2060
+ "row.name": "이름",
2061
+ "row.endpoint": "API 주소",
2062
+ "row.apiKey": "API 키",
2063
+ "row.instructions": "호출 지침",
2064
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2065
+ "row.namePlaceholder": "표시 이름(예: \"Volcano Engine\")",
2066
+ "row.endpointPlaceholder": "stub://aigc-backend",
2067
+ "row.apiKeyPlaceholder": "sk-...",
2068
+ "row.instructionsPlaceholder": "공급자 초기화 시 에이전트가 자동으로 작성합니다(카드의 \"초기화\" 버튼 클릭)...",
2069
+ "row.idHint": "소문자, 숫자, 하이픈; 반드시 문자로 시작해야 합니다. aigc_http_request의 provider_id 매개변수로 사용됩니다",
2070
+ "row.endpointDesc": "공급자 API 주소. stub://aigc-backend는 내장 stub(합성 테스트 미디어, 실제 API 호출 없음)을 사용합니다",
2071
+ "row.apiKeyDesc": "공급자 API 키. stub 백엔드에는 필요하지 않습니다. 에이전트는 키를 볼 수 없으며 aigc_http_request가 자동으로 첨부합니다",
2072
+ "row.instructionsDesc": "에이전트는 aigc_get_provider_info 도구로 이 필드를 읽어 공급자 API를 호출하는 방법을 결정합니다",
2073
+ "row.instructionsHint": "💡 카드의 \"초기화\" 버튼을 클릭하면 에이전트가 aigc_http_request로 API를 탐색하고 지침을 직접 작성합니다",
2074
+ "row.save": "저장",
2075
+ "row.delete": "삭제",
2076
+ "row.deleteConfirm": "이 공급자를 삭제할까요?",
2077
+ "row.expand": "펼치기",
2078
+ "row.collapse": "접기",
2079
+ "row.create": "만들기",
2080
+ "row.cancel": "취소",
2081
+ "row.init": "초기화",
2082
+ "row.initPrompt": "AIGC 공급자 \"{name}\"(id: {id})를 초기화해 주세요: 먼저 aigc_get_provider_info로 설정을 확인하고, aigc_http_request로 API를 탐색하세요(apiKey는 자동 첨부되므로 직접 전달하지 마세요). 마지막으로 aigc_provider_set_instructions로 호출 지침을 저장해 두면 나중에 바로 사용할 수 있습니다.",
2083
+ "row.auth": "인증 방식",
2084
+ "row.authBearer": "Bearer 헤더",
2085
+ "row.authHeader": "사용자 지정 헤더",
2086
+ "row.authQuery": "URL 매개변수",
2087
+ "row.authDesc": "aigc_http_request가 apiKey를 첨부하는 방식. 기본값: Authorization: Bearer <key>. 사용자 지정 헤더 또는 URL 매개변수를 선택한 경우 이름을 입력하세요",
2088
+ "badge.builtin": "내장",
2089
+ "badge.stub": "stub 모드",
2090
+ "badge.real": "실제 API",
2091
+ "badge.default": "기본값"
2092
+ },
2093
+ ar: {
2094
+ tabTitle: "لوحة AIGC",
2095
+ title: "لوحة AIGC",
2096
+ empty: "اللوحة فارغة. يستدعي الوكيل واجهات برمجة تطبيقات المزوّد عبر aigc_http_request لتوليد الموارد، ثم يضع الملفات المولَّدة في أي موضع على اللوحة باستخدام aigc_canvas_place.",
2097
+ emptyHint: "قم بتكوين مزوّد في تبويب الإعدادات على اليمين، ثم اطلب من الوكيل توليد شيء.",
2098
+ prompt: "الموجّه",
2099
+ image: "صورة",
2100
+ video: "فيديو",
2101
+ audio: "صوت",
2102
+ meta: "بيانات وصفية",
2103
+ generatedBy: "طريقة التوليد",
2104
+ edgeCount: "حافة",
2105
+ elementCount: "عنصر",
2106
+ loadError: "فشل تحميل اللوحة",
2107
+ disconnected: "انقطع الاتصال، جارٍ إعادة الاتصال…",
2108
+ reconnecting: "جارٍ إعادة الاتصال…",
2109
+ refresh: "تحديث",
2110
+ resetView: "إعادة تعيين العرض",
2111
+ zoom: "تكبير/تصغير",
2112
+ zoomIn: "تكبير",
2113
+ zoomOut: "تصغير",
2114
+ detailClose: "إغلاق",
2115
+ detailPrompt: "الموجّه",
2116
+ detailParams: "معلمات التوليد",
2117
+ detailPosition: "الموضع",
2118
+ detailPath: "مسار الملف",
2119
+ delete: "حذف",
2120
+ deleteElement: "حذف العنصر",
2121
+ dropHint: "اسحب الملفات إلى اللوحة",
2122
+ uploading: "جارٍ الرفع…",
2123
+ settingsNav: "لوحة AIGC",
2124
+ settingsTitle: "مزوّدو AIGC",
2125
+ settingsIntro: "قم بتكوين مزوّد واحد أو أكثر من مزوّدي AIGC. يمكن ضبط اسم وعنوان API ومفتاح وطريقة مصادقة وتعليمات الاستدعاء لكل مزوّد بشكل مستقل. يقرأ الوكيل قائمة المزوّدين عبر aigc_get_provider_info، ويستدعي واجهة API عبر aigc_http_request (مع إرفاق endpoint وapiKey تلقائيًا)، ويضع الملفات المولَّدة على اللوحة باستخدام aigc_canvas_place.",
2126
+ settingsEmpty: "لا توجد مزوّدات مكوّنة. أضف واحدًا أدناه.",
2127
+ settingsAdd: "+ إضافة مزوّد",
2128
+ settingsLoading: "جارٍ التحميل…",
2129
+ settingsError: "خطأ",
2130
+ "row.id": "المعرّف",
2131
+ "row.name": "الاسم",
2132
+ "row.endpoint": "عنوان API",
2133
+ "row.apiKey": "مفتاح API",
2134
+ "row.instructions": "تعليمات الاستدعاء",
2135
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2136
+ "row.namePlaceholder": "الاسم المعروض (مثل «火山引擎»)",
2137
+ "row.endpointPlaceholder": "stub://aigc-backend",
2138
+ "row.apiKeyPlaceholder": "sk-...",
2139
+ "row.instructionsPlaceholder": "يكتب الوكيل هذه التعليمات تلقائيًا عند تهيئة المزوّد (انقر زر «تهيئة» على البطاقة)...",
2140
+ "row.idHint": "أحرف صغيرة وأرقام وواصلات؛ يجب أن يبدأ بحرف. يُستخدم كمعامل provider_id في aigc_http_request",
2141
+ "row.endpointDesc": "عنوان API الخاص بالمزوّد. استخدم stub://aigc-backend للـ stub المدمج (محتوى اختبار اصطناعي دون استدعاءات API حقيقية)",
2142
+ "row.apiKeyDesc": "مفتاح API الخاص بالمزوّد. غير مطلوب للخلفية stub. لا يرى الوكيل المفتاح أبدًا — يرفقه aigc_http_request تلقائيًا",
2143
+ "row.instructionsDesc": "يقرأ الوكيل هذا الحقل عبر أداة aigc_get_provider_info ليقرر كيفية استدعاء واجهة API الخاصة بالمزوّد",
2144
+ "row.instructionsHint": "💡 انقر «تهيئة» على البطاقة: يستقصي الوكيل واجهة API باستخدام aigc_http_request ويكتب التعليمات بنفسه",
2145
+ "row.save": "حفظ",
2146
+ "row.delete": "حذف",
2147
+ "row.deleteConfirm": "هل تريد حذف هذا المزوّد؟",
2148
+ "row.expand": "توسيع",
2149
+ "row.collapse": "طيّ",
2150
+ "row.create": "إنشاء",
2151
+ "row.cancel": "إلغاء",
2152
+ "row.init": "تهيئة",
2153
+ "row.initPrompt": "يرجى تهيئة مزوّد AIGC «{name}» (المعرّف: {id}): استدعِ أولاً aigc_get_provider_info لرؤية إعداده، ثم استقصِ واجهة API الخاصة به عبر aigc_http_request (يُرفق apiKey تلقائيًا — لا تمرّره بنفسك)، وأخيرًا استدعِ aigc_provider_set_instructions لحفظ تعليمات الاستدعاء.",
2154
+ "row.auth": "طريقة المصادقة",
2155
+ "row.authBearer": "ترويسة Bearer",
2156
+ "row.authHeader": "ترويسة مخصصة",
2157
+ "row.authQuery": "معامل URL",
2158
+ "row.authDesc": "كيفية إرفاق aigc_http_request للمفتاح apiKey. الافتراضي: Authorization: Bearer <key>. عند اختيار ترويسة مخصصة أو معامل URL، املأ الاسم",
2159
+ "badge.builtin": "مدمج",
2160
+ "badge.stub": "وضع stub",
2161
+ "badge.real": "API حقيقي",
2162
+ "badge.default": "افتراضي"
2163
+ },
2164
+ hi: {
2165
+ tabTitle: "AIGC कैनवास",
2166
+ title: "AIGC कैनवास",
2167
+ empty: "कैनवास खाली है। एजेंट aigc_http_request के माध्यम से प्रदाता API को कॉल करके एसेट जनरेट करता है, फिर aigc_canvas_place से जनरेट की गई फ़ाइलों को कैनवास पर किसी भी स्थान पर रखता है।",
2168
+ emptyHint: "दाईं ओर सेटिंग्स टैब में प्रदाता कॉन्फ़िगर करें, फिर एजेंट से कुछ जनरेट करने के लिए कहें।",
2169
+ prompt: "प्रॉम्प्ट",
2170
+ image: "छवि",
2171
+ video: "वीडियो",
2172
+ audio: "ऑडियो",
2173
+ meta: "मेटाडेटा",
2174
+ generatedBy: "जनरेशन विधि",
2175
+ edgeCount: "कनेक्शन",
2176
+ elementCount: "तत्व",
2177
+ loadError: "कैनवास लोड करने में विफल",
2178
+ disconnected: "डिस्कनेक्ट हुआ, पुनः कनेक्ट किया जा रहा…",
2179
+ reconnecting: "पुनः कनेक्ट किया जा रहा…",
2180
+ refresh: "रीफ़्रेश",
2181
+ resetView: "दृश्य रीसेट करें",
2182
+ zoom: "ज़ूम",
2183
+ zoomIn: "ज़ूम इन",
2184
+ zoomOut: "ज़ूम आउट",
2185
+ detailClose: "बंद करें",
2186
+ detailPrompt: "प्रॉम्प्ट",
2187
+ detailParams: "जनरेशन पैरामीटर",
2188
+ detailPosition: "स्थिति",
2189
+ detailPath: "फ़ाइल पथ",
2190
+ delete: "हटाएं",
2191
+ deleteElement: "तत्व हटाएं",
2192
+ dropHint: "फ़ाइलों को कैनवास पर छोड़ें",
2193
+ uploading: "अपलोड किया जा रहा…",
2194
+ settingsNav: "AIGC कैनवास",
2195
+ settingsTitle: "AIGC प्रदाता",
2196
+ settingsIntro: "एक या अधिक AIGC प्रदाता कॉन्फ़िगर करें। प्रत्येक प्रदाता के लिए नाम, API पता, कुंजी, प्रमाणीकरण विधि और कॉल निर्देश अलग से सेट किए जा सकते हैं। एजेंट aigc_get_provider_info से प्रदाता सूची पढ़ता है, aigc_http_request से API कॉल करता है (endpoint और apiKey स्वतः जुड़ जाते हैं), और जनरेट की गई फ़ाइलें aigc_canvas_place से कैनवास पर रखता है।",
2197
+ settingsEmpty: "कोई प्रदाता कॉन्फ़िगर नहीं है। नीचे जोड़ें।",
2198
+ settingsAdd: "+ प्रदाता जोड़ें",
2199
+ settingsLoading: "लोड हो रहा…",
2200
+ settingsError: "त्रुटि",
2201
+ "row.id": "आईडी",
2202
+ "row.name": "नाम",
2203
+ "row.endpoint": "API पता",
2204
+ "row.apiKey": "API कुंजी",
2205
+ "row.instructions": "कॉल निर्देश",
2206
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2207
+ "row.namePlaceholder": "प्रदर्शन नाम (जैसे \"Volcano Engine\")",
2208
+ "row.endpointPlaceholder": "stub://aigc-backend",
2209
+ "row.apiKeyPlaceholder": "sk-...",
2210
+ "row.instructionsPlaceholder": "प्रदाता आरंभ होने पर एजेंट इन्हें स्वतः लिखता है (कार्ड पर \"आरंभ करें\" क्लिक करें)...",
2211
+ "row.idHint": "छोटे अक्षर, अंक, हाइफ़न; अक्षर से शुरू होना चाहिए। aigc_http_request के provider_id पैरामीटर के रूप में उपयोग होता है",
2212
+ "row.endpointDesc": "प्रदाता API पता। stub://aigc-backend का उपयोग अंतर्निहित stub (सिंथेटिक टेस्ट मीडिया, बिना वास्तविक API कॉल) के लिए करें",
2213
+ "row.apiKeyDesc": "प्रदाता API कुंजी। stub बैकएंड के लिए आवश्यक नहीं। एजेंट कुंजी कभी नहीं देखता — aigc_http_request इसे स्वतः जोड़ देता है",
2214
+ "row.instructionsDesc": "एजेंट aigc_get_provider_info टूल के माध्यम से इस फ़ील्ड को पढ़ता है ताकि प्रदाता API को कैसे कॉल करना है यह तय कर सके",
2215
+ "row.instructionsHint": "💡 कार्ड पर \"आरंभ करें\" क्लिक करें: एजेंट aigc_http_request से API की जांच करता है और निर्देश स्वयं लिखता है",
2216
+ "row.save": "सहेजें",
2217
+ "row.delete": "हटाएं",
2218
+ "row.deleteConfirm": "क्या यह प्रदाता हटाया जाए?",
2219
+ "row.expand": "विस्तार करें",
2220
+ "row.collapse": "संक्षिप्त करें",
2221
+ "row.create": "बनाएं",
2222
+ "row.cancel": "रद्द करें",
2223
+ "row.init": "आरंभ करें",
2224
+ "row.initPrompt": "कृपया AIGC प्रदाता \"{name}\" (id: {id}) आरंभ करें: पहले aigc_get_provider_info से इसका कॉन्फ़िग देखें, फिर aigc_http_request से इसकी API की जांच करें (apiKey स्वतः जुड़ता है — इसे स्वयं न दें), और अंत में aigc_provider_set_instructions से कॉल निर्देश सहेज लें।",
2225
+ "row.auth": "प्रमाणीकरण विधि",
2226
+ "row.authBearer": "Bearer हेडर",
2227
+ "row.authHeader": "कस्टम हेडर",
2228
+ "row.authQuery": "URL पैरामीटर",
2229
+ "row.authDesc": "aigc_http_request apiKey को कैसे जोड़ता है। डिफ़ॉल्ट: Authorization: Bearer <key>। कस्टम हेडर या URL पैरामीटर चुनने पर नाम भरें",
2230
+ "badge.builtin": "अंतर्निहित",
2231
+ "badge.stub": "stub मोड",
2232
+ "badge.real": "वास्तविक API",
2233
+ "badge.default": "डिफ़ॉल्ट"
2234
+ },
2235
+ id: {
2236
+ tabTitle: "Kanvas AIGC",
2237
+ title: "Kanvas AIGC",
2238
+ empty: "Kanvas kosong. Agen memanggil API penyedia melalui aigc_http_request untuk menghasilkan aset, lalu menempatkan file yang dihasilkan ke posisi mana pun di kanvas dengan aigc_canvas_place.",
2239
+ emptyHint: "Konfigurasikan penyedia di tab pengaturan di kanan, lalu minta agen untuk menghasilkan sesuatu.",
2240
+ prompt: "Prompt",
2241
+ image: "Gambar",
2242
+ video: "Video",
2243
+ audio: "Audio",
2244
+ meta: "Metadata",
2245
+ generatedBy: "Metode pembuatan",
2246
+ edgeCount: "tepi",
2247
+ elementCount: "elemen",
2248
+ loadError: "Gagal memuat kanvas",
2249
+ disconnected: "Terputus, menyambung ulang…",
2250
+ reconnecting: "Menyambung ulang…",
2251
+ refresh: "Segarkan",
2252
+ resetView: "Atur ulang tampilan",
2253
+ zoom: "Zoom",
2254
+ zoomIn: "Perbesar",
2255
+ zoomOut: "Perkecil",
2256
+ detailClose: "Tutup",
2257
+ detailPrompt: "Prompt",
2258
+ detailParams: "Parameter pembuatan",
2259
+ detailPosition: "Posisi",
2260
+ detailPath: "Lintasan file",
2261
+ delete: "Hapus",
2262
+ deleteElement: "Hapus elemen",
2263
+ dropHint: "Letakkan file di kanvas",
2264
+ uploading: "Mengunggah…",
2265
+ settingsNav: "Kanvas AIGC",
2266
+ settingsTitle: "Penyedia AIGC",
2267
+ settingsIntro: "Konfigurasikan satu atau lebih penyedia AIGC. Setiap penyedia dapat mengatur nama, alamat API, kunci, metode autentikasi, dan instruksi pemanggilan secara terpisah. Agen membaca daftar penyedia melalui aigc_get_provider_info, memanggil API melalui aigc_http_request (endpoint dan apiKey dilampirkan otomatis), dan file yang dihasilkan diletakkan di kanvas dengan aigc_canvas_place.",
2268
+ settingsEmpty: "Belum ada penyedia yang dikonfigurasi. Tambahkan di bawah.",
2269
+ settingsAdd: "+ Tambah penyedia",
2270
+ settingsLoading: "Memuat…",
2271
+ settingsError: "Kesalahan",
2272
+ "row.id": "ID",
2273
+ "row.name": "Nama",
2274
+ "row.endpoint": "Alamat API",
2275
+ "row.apiKey": "Kunci API",
2276
+ "row.instructions": "Instruksi pemanggilan",
2277
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2278
+ "row.namePlaceholder": "Nama tampilan (mis. \"Volcano Engine\")",
2279
+ "row.endpointPlaceholder": "stub://aigc-backend",
2280
+ "row.apiKeyPlaceholder": "sk-...",
2281
+ "row.instructionsPlaceholder": "Instruksi pemanggilan ditulis otomatis oleh agen saat Anda menginisialisasi penyedia (klik tombol \"Inisialisasi\" di kartu)...",
2282
+ "row.idHint": "Huruf kecil, angka, tanda hubung; harus diawali huruf. Digunakan sebagai parameter provider_id untuk aigc_http_request",
2283
+ "row.endpointDesc": "Alamat API penyedia. Gunakan stub://aigc-backend untuk stub bawaan (media uji sintetis, tanpa panggilan API sungguhan)",
2284
+ "row.apiKeyDesc": "Kunci API penyedia. Tidak diperlukan untuk backend stub. Agen tidak pernah melihat kuncinya — aigc_http_request melampirkannya otomatis",
2285
+ "row.instructionsDesc": "Agen membaca kolom ini melalui alat aigc_get_provider_info untuk memutuskan cara memanggil API penyedia",
2286
+ "row.instructionsHint": "💡 Klik \"Inisialisasi\" di kartu: agen menguji API dengan aigc_http_request dan menulis instruksinya sendiri",
2287
+ "row.save": "Simpan",
2288
+ "row.delete": "Hapus",
2289
+ "row.deleteConfirm": "Hapus penyedia ini?",
2290
+ "row.expand": "Perluas",
2291
+ "row.collapse": "Ciutkan",
2292
+ "row.create": "Buat",
2293
+ "row.cancel": "Batal",
2294
+ "row.init": "Inisialisasi",
2295
+ "row.initPrompt": "Silakan inisialisasi penyedia AIGC \"{name}\" (id: {id}): pertama panggil aigc_get_provider_info untuk melihat konfigurasinya, lalu uji API-nya dengan aigc_http_request (apiKey dilampirkan otomatis — jangan dioper sendiri), dan terakhir panggil aigc_provider_set_instructions untuk menyimpan instruksi pemanggilan.",
2296
+ "row.auth": "Metode autentikasi",
2297
+ "row.authBearer": "Header Bearer",
2298
+ "row.authHeader": "Header kustom",
2299
+ "row.authQuery": "Parameter URL",
2300
+ "row.authDesc": "Cara aigc_http_request melampirkan apiKey. Default: Authorization: Bearer <key>. Bila memilih header kustom atau parameter URL, isi namanya",
2301
+ "badge.builtin": "bawaan",
2302
+ "badge.stub": "mode stub",
2303
+ "badge.real": "API sungguhan",
2304
+ "badge.default": "default"
2305
+ },
2306
+ tr: {
2307
+ tabTitle: "AIGC Tuvali",
2308
+ title: "AIGC Tuvali",
2309
+ empty: "Tuval boş. Aracı, aigc_http_request ile sağlayıcı API’lerini çağırıp varlık üretir; ardından aigc_canvas_place ile dosyaları tuvale istediğiniz konuma yerleştirir.",
2310
+ emptyHint: "Sağdaki ayarlar sekmesinde bir sağlayıcı yapılandırın, sonra aracıdan bir şey üretmesini isteyin.",
2311
+ prompt: "İstek",
2312
+ image: "Görsel",
2313
+ video: "Video",
2314
+ audio: "Ses",
2315
+ meta: "Üst veri",
2316
+ generatedBy: "Üretim yöntemi",
2317
+ edgeCount: "bağlantı",
2318
+ elementCount: "öğe",
2319
+ loadError: "Tuval yüklenemedi",
2320
+ disconnected: "Bağlantı kesildi, yeniden bağlanılıyor…",
2321
+ reconnecting: "Yeniden bağlanılıyor…",
2322
+ refresh: "Yenile",
2323
+ resetView: "Görünümü sıfırla",
2324
+ zoom: "Yakınlaştırma",
2325
+ zoomIn: "Yakınlaştır",
2326
+ zoomOut: "Uzaklaştır",
2327
+ detailClose: "Kapat",
2328
+ detailPrompt: "İstek",
2329
+ detailParams: "Üretim parametreleri",
2330
+ detailPosition: "Konum",
2331
+ detailPath: "Dosya yolu",
2332
+ delete: "Sil",
2333
+ deleteElement: "Öğeyi sil",
2334
+ dropHint: "Dosyaları tuvale bırakın",
2335
+ uploading: "Yükleniyor…",
2336
+ settingsNav: "AIGC Tuvali",
2337
+ settingsTitle: "AIGC Sağlayıcıları",
2338
+ settingsIntro: "Bir veya daha fazla AIGC sağlayıcısı yapılandırın. Her sağlayıcı için ad, API adresi, anahtar, kimlik doğrulama biçimi ve çağrı talimatları bağımsız olarak ayarlanabilir. Aracı, sağlayıcı listesini aigc_get_provider_info ile okur, API’yi aigc_http_request ile çağırır (endpoint ve apiKey otomatik eklenir) ve üretilen dosyaları aigc_canvas_place ile tuvale yerleştirir.",
2339
+ settingsEmpty: "Yapılandırılmış sağlayıcı yok. Aşağıdan ekleyin.",
2340
+ settingsAdd: "+ Sağlayıcı ekle",
2341
+ settingsLoading: "Yükleniyor…",
2342
+ settingsError: "Hata",
2343
+ "row.id": "Kimlik",
2344
+ "row.name": "Ad",
2345
+ "row.endpoint": "API adresi",
2346
+ "row.apiKey": "API Anahtarı",
2347
+ "row.instructions": "Çağrı talimatları",
2348
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2349
+ "row.namePlaceholder": "Görünen ad (ör. \"Volcano Engine\")",
2350
+ "row.endpointPlaceholder": "stub://aigc-backend",
2351
+ "row.apiKeyPlaceholder": "sk-...",
2352
+ "row.instructionsPlaceholder": "Sağlayıcıyı başlatırken aracı bunları otomatik yazar (karttaki \"Başlat\"a tıklayın)...",
2353
+ "row.idHint": "Küçük harfler, rakamlar, tireler; harfle başlamalıdır. aigc_http_request için provider_id parametresi olarak kullanılır",
2354
+ "row.endpointDesc": "Sağlayıcı API adresi. Yerleşik stub için stub://aigc-backend kullanın (sentetik test medyası, gerçek API çağrısı yok)",
2355
+ "row.apiKeyDesc": "Sağlayıcı API anahtarı. stub arka ucu için gerekmez. Aracı anahtarı asla görmez — aigc_http_request otomatik olarak ekler",
2356
+ "row.instructionsDesc": "Aracı, sağlayıcı API’sinin nasıl çağrılacağına karar vermek için bu alanı aigc_get_provider_info aracıyla okur",
2357
+ "row.instructionsHint": "💡 Karttaki \"Başlat\"a tıklayın: aracı API’yi aigc_http_request ile sınar ve talimatları kendisi yazar",
2358
+ "row.save": "Kaydet",
2359
+ "row.delete": "Sil",
2360
+ "row.deleteConfirm": "Bu sağlayıcı silinsin mi?",
2361
+ "row.expand": "Genişlet",
2362
+ "row.collapse": "Daralt",
2363
+ "row.create": "Oluştur",
2364
+ "row.cancel": "İptal",
2365
+ "row.init": "Başlat",
2366
+ "row.initPrompt": "Lütfen AIGC sağlayıcısı \"{name}\" (id: {id}) öğesini başlatın: önce aigc_get_provider_info ile yapılandırmasını görün, ardından aigc_http_request ile API’sini sınayın (apiKey otomatik eklenir — kendiniz iletmeyin) ve son olarak çağrı talimatlarını kaydetmek için aigc_provider_set_instructions çağırın.",
2367
+ "row.auth": "Kimlik doğrulama biçimi",
2368
+ "row.authBearer": "Bearer başlığı",
2369
+ "row.authHeader": "Özel başlık",
2370
+ "row.authQuery": "URL parametresi",
2371
+ "row.authDesc": "aigc_http_request’in apiKey’i ekleme biçimi. Varsayılan: Authorization: Bearer <key>. Özel başlık veya URL parametresi seçilirse adı doldurun",
2372
+ "badge.builtin": "yerleşik",
2373
+ "badge.stub": "stub modu",
2374
+ "badge.real": "gerçek API",
2375
+ "badge.default": "varsayılan"
2376
+ },
2377
+ vi: {
2378
+ tabTitle: "Canvas AIGC",
2379
+ title: "Canvas AIGC",
2380
+ empty: "Canvas đang trống. Agent gọi API của nhà cung cấp qua aigc_http_request để tạo tài nguyên, sau đó dùng aigc_canvas_place đặt tệp đã tạo vào bất kỳ vị trí nào trên canvas.",
2381
+ emptyHint: "Cấu hình một nhà cung cấp trong tab cài đặt bên phải, rồi yêu cầu agent tạo nội dung.",
2382
+ prompt: "Lời nhắc",
2383
+ image: "Hình ảnh",
2384
+ video: "Video",
2385
+ audio: "Âm thanh",
2386
+ meta: "Siêu dữ liệu",
2387
+ generatedBy: "Cách tạo",
2388
+ edgeCount: "cạnh",
2389
+ elementCount: "phần tử",
2390
+ loadError: "Không tải được canvas",
2391
+ disconnected: "Đã ngắt kết nối, đang kết nối lại…",
2392
+ reconnecting: "Đang kết nối lại…",
2393
+ refresh: "Làm mới",
2394
+ resetView: "Đặt lại chế độ xem",
2395
+ zoom: "Thu phóng",
2396
+ zoomIn: "Phóng to",
2397
+ zoomOut: "Thu nhỏ",
2398
+ detailClose: "Đóng",
2399
+ detailPrompt: "Lời nhắc",
2400
+ detailParams: "Tham số tạo",
2401
+ detailPosition: "Vị trí",
2402
+ detailPath: "Đường dẫn tệp",
2403
+ delete: "Xóa",
2404
+ deleteElement: "Xóa phần tử",
2405
+ dropHint: "Kéo thả tệp vào canvas",
2406
+ uploading: "Đang tải lên…",
2407
+ settingsNav: "Canvas AIGC",
2408
+ settingsTitle: "Nhà cung cấp AIGC",
2409
+ settingsIntro: "Cấu hình một hoặc nhiều nhà cung cấp AIGC. Mỗi nhà cung cấp có thể đặt riêng tên, địa chỉ API, khóa, phương thức xác thực và hướng dẫn gọi. Agent đọc danh sách nhà cung cấp qua aigc_get_provider_info, gọi API qua aigc_http_request (endpoint và apiKey tự động đính kèm) và đặt tệp đã tạo lên canvas bằng aigc_canvas_place.",
2410
+ settingsEmpty: "Chưa có nhà cung cấp nào được cấu hình. Thêm một nhà cung cấp bên dưới.",
2411
+ settingsAdd: "+ Thêm nhà cung cấp",
2412
+ settingsLoading: "Đang tải…",
2413
+ settingsError: "Lỗi",
2414
+ "row.id": "ID",
2415
+ "row.name": "Tên",
2416
+ "row.endpoint": "Địa chỉ API",
2417
+ "row.apiKey": "Khóa API",
2418
+ "row.instructions": "Hướng dẫn gọi",
2419
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2420
+ "row.namePlaceholder": "Tên hiển thị (ví dụ: \"Volcano Engine\")",
2421
+ "row.endpointPlaceholder": "stub://aigc-backend",
2422
+ "row.apiKeyPlaceholder": "sk-...",
2423
+ "row.instructionsPlaceholder": "Agent tự viết hướng dẫn gọi khi bạn khởi tạo nhà cung cấp (bấm \"Khởi tạo\" trên thẻ)...",
2424
+ "row.idHint": "Chữ thường, chữ số, dấu gạch ngang; phải bắt đầu bằng chữ cái. Được dùng làm tham số provider_id cho aigc_http_request",
2425
+ "row.endpointDesc": "Địa chỉ API của nhà cung cấp. Dùng stub://aigc-backend cho stub tích hợp sẵn (phương tiện kiểm thử giả lập, không gọi API thật)",
2426
+ "row.apiKeyDesc": "Khóa API của nhà cung cấp. Không cần cho backend stub. Agent không bao giờ thấy khóa — aigc_http_request tự động đính kèm",
2427
+ "row.instructionsDesc": "Agent đọc trường này qua công cụ aigc_get_provider_info để quyết định cách gọi API của nhà cung cấp",
2428
+ "row.instructionsHint": "💡 Bấm \"Khởi tạo\" trên thẻ: agent dò API bằng aigc_http_request và tự viết hướng dẫn",
2429
+ "row.save": "Lưu",
2430
+ "row.delete": "Xóa",
2431
+ "row.deleteConfirm": "Xóa nhà cung cấp này?",
2432
+ "row.expand": "Mở rộng",
2433
+ "row.collapse": "Thu gọn",
2434
+ "row.create": "Tạo",
2435
+ "row.cancel": "Hủy",
2436
+ "row.init": "Khởi tạo",
2437
+ "row.initPrompt": "Vui lòng khởi tạo nhà cung cấp AIGC \"{name}\" (id: {id}): trước tiên gọi aigc_get_provider_info để xem cấu hình, sau đó dò API bằng aigc_http_request (apiKey tự động đính kèm — đừng tự truyền), cuối cùng gọi aigc_provider_set_instructions để lưu hướng dẫn gọi.",
2438
+ "row.auth": "Phương thức xác thực",
2439
+ "row.authBearer": "Header Bearer",
2440
+ "row.authHeader": "Header tùy chỉnh",
2441
+ "row.authQuery": "Tham số URL",
2442
+ "row.authDesc": "Cách aigc_http_request đính kèm apiKey. Mặc định: Authorization: Bearer <key>. Nếu chọn header tùy chỉnh hoặc tham số URL, hãy điền tên",
2443
+ "badge.builtin": "tích hợp",
2444
+ "badge.stub": "chế độ stub",
2445
+ "badge.real": "API thật",
2446
+ "badge.default": "mặc định"
2447
+ },
2448
+ th: {
2449
+ tabTitle: "แคนวาส AIGC",
2450
+ title: "แคนวาส AIGC",
2451
+ empty: "แคนวาสว่างเปล่า เอเจนต์เรียก API ของผู้ให้บริการผ่าน aigc_http_request เพื่อสร้างทรัพยากร แล้ววางไฟล์ที่สร้างแล้วบนตำแหน่งใดก็ได้บนแคนวาสด้วย aigc_canvas_place",
2452
+ emptyHint: "กำหนดค่าผู้ให้บริการในแท็บการตั้งค่าทางขวา แล้วขอให้เอเจนต์สร้างบางอย่าง",
2453
+ prompt: "พรอมต์",
2454
+ image: "รูปภาพ",
2455
+ video: "วิดีโอ",
2456
+ audio: "เสียง",
2457
+ meta: "ข้อมูลเมตา",
2458
+ generatedBy: "วิธีสร้าง",
2459
+ edgeCount: "ขอบ",
2460
+ elementCount: "องค์ประกอบ",
2461
+ loadError: "โหลดแคนวาสไม่สำเร็จ",
2462
+ disconnected: "ตัดการเชื่อมต่อ กำลังเชื่อมต่อใหม่…",
2463
+ reconnecting: "กำลังเชื่อมต่อใหม่…",
2464
+ refresh: "รีเฟรช",
2465
+ resetView: "รีเซ็ตมุมมอง",
2466
+ zoom: "ซูม",
2467
+ zoomIn: "ซูมเข้า",
2468
+ zoomOut: "ซูมออก",
2469
+ detailClose: "ปิด",
2470
+ detailPrompt: "พรอมต์",
2471
+ detailParams: "พารามิเตอร์การสร้าง",
2472
+ detailPosition: "ตำแหน่ง",
2473
+ detailPath: "เส้นทางไฟล์",
2474
+ delete: "ลบ",
2475
+ deleteElement: "ลบองค์ประกอบ",
2476
+ dropHint: "วางไฟล์ลงบนแคนวาส",
2477
+ uploading: "กำลังอัปโหลด…",
2478
+ settingsNav: "แคนวาส AIGC",
2479
+ settingsTitle: "ผู้ให้บริการ AIGC",
2480
+ settingsIntro: "กำหนดค่าผู้ให้บริการ AIGC หนึ่งรายขึ้นไป แต่ละรายสามารถตั้งชื่อ ที่อยู่ API คีย์ วิธีการยืนยันตัวตน และคำแนะนำการเรียกได้ด้วยตัวเอง เอเจนต์อ่านรายชื่อผู้ให้บริการผ่าน aigc_get_provider_info เรียก API ผ่าน aigc_http_request (แนบ endpoint และ apiKey อัตโนมัติ) และวางไฟล์ที่สร้างแล้วบนแคนวาสด้วย aigc_canvas_place",
2481
+ settingsEmpty: "ยังไม่ได้กำหนดค่าผู้ให้บริการ เพิ่มด้านล่าง",
2482
+ settingsAdd: "+ เพิ่มผู้ให้บริการ",
2483
+ settingsLoading: "กำลังโหลด…",
2484
+ settingsError: "ข้อผิดพลาด",
2485
+ "row.id": "ID",
2486
+ "row.name": "ชื่อ",
2487
+ "row.endpoint": "ที่อยู่ API",
2488
+ "row.apiKey": "คีย์ API",
2489
+ "row.instructions": "คำแนะนำการเรียก",
2490
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2491
+ "row.namePlaceholder": "ชื่อที่แสดง (เช่น \"Volcano Engine\")",
2492
+ "row.endpointPlaceholder": "stub://aigc-backend",
2493
+ "row.apiKeyPlaceholder": "sk-...",
2494
+ "row.instructionsPlaceholder": "เอเจนต์เขียนคำแนะนำเหล่านี้เมื่อคุณเริ่มต้นผู้ให้บริการ (คลิก \"เริ่มต้น\" บนการ์ด)...",
2495
+ "row.idHint": "ตัวพิมพ์เล็ก ตัวเลข ยัติภังค์ ต้องขึ้นต้นด้วยตัวอักษร ใช้เป็นพารามิเตอร์ provider_id สำหรับ aigc_http_request",
2496
+ "row.endpointDesc": "ที่อยู่ API ของผู้ให้บริการ ใช้ stub://aigc-backend สำหรับ stub ในตัว (สื่อทดสอบสังเคราะห์ ไม่เรียก API จริง)",
2497
+ "row.apiKeyDesc": "คีย์ API ของผู้ให้บริการ ไม่จำเป็นสำหรับแบ็กเอนด์ stub เอเจนต์ไม่เห็นคีย์ — aigc_http_request แนบให้อัตโนมัติ",
2498
+ "row.instructionsDesc": "เอเจนต์อ่านฟิลด์นี้ผ่านเครื่องมือ aigc_get_provider_info เพื่อตัดสินใจวิธีเรียก API ของผู้ให้บริการ",
2499
+ "row.instructionsHint": "💡 คลิก \"เริ่มต้น\" บนการ์ด: เอเจนต์สำรวจ API ด้วย aigc_http_request และเขียนคำแนะนำเอง",
2500
+ "row.save": "บันทึก",
2501
+ "row.delete": "ลบ",
2502
+ "row.deleteConfirm": "ลบผู้ให้บริการนี้หรือไม่",
2503
+ "row.expand": "ขยาย",
2504
+ "row.collapse": "ย่อ",
2505
+ "row.create": "สร้าง",
2506
+ "row.cancel": "ยกเลิก",
2507
+ "row.init": "เริ่มต้น",
2508
+ "row.initPrompt": "กรุณาเริ่มต้นผู้ให้บริการ AIGC \"{name}\" (id: {id}): ก่อนอื่นเรียก aigc_get_provider_info เพื่อดูการกำหนดค่า จากนั้นสำรวจ API ด้วย aigc_http_request (apiKey แนบอัตโนมัติ — อย่าส่งเอง) สุดท้ายเรียก aigc_provider_set_instructions เพื่อบันทึกคำแนะนำการเรียก",
2509
+ "row.auth": "วิธีการยืนยันตัวตน",
2510
+ "row.authBearer": "Bearer header",
2511
+ "row.authHeader": "Header ที่กำหนดเอง",
2512
+ "row.authQuery": "พารามิเตอร์ URL",
2513
+ "row.authDesc": "วิธีที่ aigc_http_request แนบ apiKey ค่าเริ่มต้น: Authorization: Bearer <key> หากเลือก header ที่กำหนดเองหรือพารามิเตอร์ URL ให้กรอกชื่อ",
2514
+ "badge.builtin": "ในตัว",
2515
+ "badge.stub": "โหมด stub",
2516
+ "badge.real": "API จริง",
2517
+ "badge.default": "ค่าเริ่มต้น"
2518
+ },
2519
+ ru: {
2520
+ tabTitle: "Холст AIGC",
2521
+ title: "Холст AIGC",
2522
+ empty: "Холст пуст. Агент вызывает API провайдера через aigc_http_request для генерации ресурсов, затем помещает сгенерированные файлы в любое место холста с помощью aigc_canvas_place.",
2523
+ emptyHint: "Настройте провайдера на вкладке настроек справа, затем попросите агента что-нибудь сгенерировать.",
2524
+ prompt: "Промпт",
2525
+ image: "Изображение",
2526
+ video: "Видео",
2527
+ audio: "Аудио",
2528
+ meta: "Метаданные",
2529
+ generatedBy: "Способ генерации",
2530
+ edgeCount: "ребер",
2531
+ elementCount: "элементов",
2532
+ loadError: "Не удалось загрузить холст",
2533
+ disconnected: "Отключено, переподключение…",
2534
+ reconnecting: "Переподключение…",
2535
+ refresh: "Обновить",
2536
+ resetView: "Сбросить вид",
2537
+ zoom: "Масштаб",
2538
+ zoomIn: "Увеличить",
2539
+ zoomOut: "Уменьшить",
2540
+ detailClose: "Закрыть",
2541
+ detailPrompt: "Промпт",
2542
+ detailParams: "Параметры генерации",
2543
+ detailPosition: "Положение",
2544
+ detailPath: "Путь к файлу",
2545
+ delete: "Удалить",
2546
+ deleteElement: "Удалить элемент",
2547
+ dropHint: "Перетащите файлы на холст",
2548
+ uploading: "Загрузка…",
2549
+ settingsNav: "Холст AIGC",
2550
+ settingsTitle: "Провайдеры AIGC",
2551
+ settingsIntro: "Настройте одного или нескольких провайдеров AIGC. Для каждого провайдера можно отдельно задать имя, адрес API, ключ, способ аутентификации и инструкции по вызову. Агент читает список провайдеров через aigc_get_provider_info, вызывает API через aigc_http_request (endpoint и apiKey прикрепляются автоматически) и помещает сгенерированные файлы на холст с помощью aigc_canvas_place.",
2552
+ settingsEmpty: "Провайдеры не настроены. Добавьте одного ниже.",
2553
+ settingsAdd: "+ Добавить провайдера",
2554
+ settingsLoading: "Загрузка…",
2555
+ settingsError: "Ошибка",
2556
+ "row.id": "ID",
2557
+ "row.name": "Название",
2558
+ "row.endpoint": "Адрес API",
2559
+ "row.apiKey": "Ключ API",
2560
+ "row.instructions": "Инструкции по вызову",
2561
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2562
+ "row.namePlaceholder": "Отображаемое имя (например, 火山引擎)",
2563
+ "row.endpointPlaceholder": "stub://aigc-backend",
2564
+ "row.apiKeyPlaceholder": "sk-...",
2565
+ "row.instructionsPlaceholder": "Агент пишет их при инициализации провайдера (нажмите «Инициализировать» на карточке)...",
2566
+ "row.idHint": "Строчные буквы, цифры, дефисы; должно начинаться с буквы. Используется как параметр provider_id для aigc_http_request",
2567
+ "row.endpointDesc": "Адрес API провайдера. Используйте stub://aigc-backend для встроенного stуба (синтетические тестовые медиа, без реальных вызовов API)",
2568
+ "row.apiKeyDesc": "Ключ API провайдера. Не требуется для stub-бэкенда. Агент никогда не видит ключ — aigc_http_request добавляет его автоматически",
2569
+ "row.instructionsDesc": "Агент читает это поле через инструмент aigc_get_provider_info, чтобы решить, как вызывать API провайдера",
2570
+ "row.instructionsHint": "💡 Нажмите «Инициализировать» на карточке: агент прощупывает API через aigc_http_request и сам пишет инструкции",
2571
+ "row.save": "Сохранить",
2572
+ "row.delete": "Удалить",
2573
+ "row.deleteConfirm": "Удалить этого провайдера?",
2574
+ "row.expand": "Развернуть",
2575
+ "row.collapse": "Свернуть",
2576
+ "row.create": "Создать",
2577
+ "row.cancel": "Отмена",
2578
+ "row.init": "Инициализировать",
2579
+ "row.initPrompt": "Пожалуйста, инициализируйте провайдера AIGC «{name}» (id: {id}): сначала вызовите aigc_get_provider_info, чтобы увидеть его конфигурацию, затем прощупайте его API через aigc_http_request (apiKey добавляется автоматически — не передавайте его сами) и наконец вызовите aigc_provider_set_instructions, чтобы сохранить инструкции по использованию.",
2580
+ "row.auth": "Способ аутентификации",
2581
+ "row.authBearer": "Заголовок Bearer",
2582
+ "row.authHeader": "Произвольный заголовок",
2583
+ "row.authQuery": "Параметр URL",
2584
+ "row.authDesc": "Как aigc_http_request добавляет apiKey. По умолчанию: Authorization: Bearer <key>. При выборе произвольного заголовка или параметра URL укажите имя",
2585
+ "badge.builtin": "встроенный",
2586
+ "badge.stub": "режим stub",
2587
+ "badge.real": "реальный API",
2588
+ "badge.default": "по умолчанию"
2589
+ },
2590
+ it: {
2591
+ tabTitle: "Tela AIGC",
2592
+ title: "Tela AIGC",
2593
+ empty: "La tela è vuota. L’agente chiama le API del fornitore tramite aigc_http_request per generare le risorse, quindi posiziona i file generati in un punto qualsiasi della tela con aigc_canvas_place.",
2594
+ emptyHint: "Configura un fornitore nella scheda impostazioni a destra, poi chiedi all’agente di generare qualcosa.",
2595
+ prompt: "Prompt",
2596
+ image: "Immagine",
2597
+ video: "Video",
2598
+ audio: "Audio",
2599
+ meta: "Metadati",
2600
+ generatedBy: "Metodo di generazione",
2601
+ edgeCount: "archi",
2602
+ elementCount: "elementi",
2603
+ loadError: "Impossibile caricare la tela",
2604
+ disconnected: "Disconnesso, riconnessione…",
2605
+ reconnecting: "Riconnessione in corso…",
2606
+ refresh: "Aggiorna",
2607
+ resetView: "Reimposta vista",
2608
+ zoom: "Zoom",
2609
+ zoomIn: "Ingrandisci",
2610
+ zoomOut: "Riduci",
2611
+ detailClose: "Chiudi",
2612
+ detailPrompt: "Prompt",
2613
+ detailParams: "Parametri di generazione",
2614
+ detailPosition: "Posizione",
2615
+ detailPath: "Percorso file",
2616
+ delete: "Elimina",
2617
+ deleteElement: "Elimina elemento",
2618
+ dropHint: "Trascina i file sulla tela",
2619
+ uploading: "Caricamento…",
2620
+ settingsNav: "Tela AIGC",
2621
+ settingsTitle: "Fornitori AIGC",
2622
+ settingsIntro: "Configura uno o più fornitori AIGC. Ogni fornitore ha nome, endpoint API, chiave, schema di autenticazione e istruzioni di chiamata propri. L’agente legge l’elenco dei fornitori tramite aigc_get_provider_info, chiama l’API tramite aigc_http_request (endpoint e apiKey allegati automaticamente) e posiziona i file generati sulla tela con aigc_canvas_place.",
2623
+ settingsEmpty: "Nessun fornitore configurato. Aggiungine uno qui sotto.",
2624
+ settingsAdd: "+ Aggiungi fornitore",
2625
+ settingsLoading: "Caricamento…",
2626
+ settingsError: "Errore",
2627
+ "row.id": "ID",
2628
+ "row.name": "Nome",
2629
+ "row.endpoint": "Endpoint",
2630
+ "row.apiKey": "Chiave API",
2631
+ "row.instructions": "Istruzioni",
2632
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2633
+ "row.namePlaceholder": "Nome visualizzato (es. \"Volcano Engine\")",
2634
+ "row.endpointPlaceholder": "stub://aigc-backend",
2635
+ "row.apiKeyPlaceholder": "sk-...",
2636
+ "row.instructionsPlaceholder": "L’agente le scrive quando inizializzi il fornitore (fai clic su \"Inizializza\" sulla scheda)...",
2637
+ "row.idHint": "Lettere minuscole, cifre, trattini; deve iniziare con una lettera. Usato come parametro provider_id per aigc_http_request",
2638
+ "row.endpointDesc": "Endpoint API del fornitore. Usa stub://aigc-backend per lo stub integrato (contenuti di test sintetici, nessuna vera chiamata API)",
2639
+ "row.apiKeyDesc": "Chiave API del fornitore. Non necessaria per il backend stub. L’agente non la vede mai — aigc_http_request la allega automaticamente",
2640
+ "row.instructionsDesc": "L’agente legge questo campo tramite lo strumento aigc_get_provider_info per decidere come chiamare l’API del fornitore",
2641
+ "row.instructionsHint": "💡 Fai clic su \"Inizializza\" sulla scheda: l’agente sonda l’API con aigc_http_request e scrive le istruzioni da solo",
2642
+ "row.save": "Salva",
2643
+ "row.delete": "Elimina",
2644
+ "row.deleteConfirm": "Eliminare questo fornitore?",
2645
+ "row.expand": "Espandi",
2646
+ "row.collapse": "Comprimi",
2647
+ "row.create": "Crea",
2648
+ "row.cancel": "Annulla",
2649
+ "row.init": "Inizializza",
2650
+ "row.initPrompt": "Inizializza il fornitore AIGC \"{name}\" (id: {id}): prima chiama aigc_get_provider_info per vederne la configurazione, poi sonda la sua API con aigc_http_request (il apiKey è allegato automaticamente — non passarlo tu), e infine chiama aigc_provider_set_instructions per salvare le istruzioni di chiamata.",
2651
+ "row.auth": "Schema di autenticazione",
2652
+ "row.authBearer": "Header Bearer",
2653
+ "row.authHeader": "Header personalizzato",
2654
+ "row.authQuery": "Parametro URL",
2655
+ "row.authDesc": "Come aigc_http_request allega l’apiKey. Default: Authorization: Bearer <key>. Per header personalizzato o parametro URL, compila il nome",
2656
+ "badge.builtin": "integrato",
2657
+ "badge.stub": "modalità stub",
2658
+ "badge.real": "API reale",
2659
+ "badge.default": "default"
2660
+ },
2661
+ nl: {
2662
+ tabTitle: "AIGC-canvas",
2663
+ title: "AIGC-canvas",
2664
+ empty: "Het canvas is leeg. De agent roept provider-API’s aan via aigc_http_request om assets te genereren en plaatst de gegenereerde bestanden met aigc_canvas_place op elke gewenste positie op het canvas.",
2665
+ emptyHint: "Configureer een provider op het tabblad Instellingen rechts en vraag de agent vervolgens iets te genereren.",
2666
+ prompt: "Prompt",
2667
+ image: "Afbeelding",
2668
+ video: "Video",
2669
+ audio: "Audio",
2670
+ meta: "Metadata",
2671
+ generatedBy: "Generatiemethode",
2672
+ edgeCount: "randen",
2673
+ elementCount: "elementen",
2674
+ loadError: "Canvas laden mislukt",
2675
+ disconnected: "Verbinding verbroken, opnieuw verbinden…",
2676
+ reconnecting: "Opnieuw verbinden…",
2677
+ refresh: "Vernieuwen",
2678
+ resetView: "Weergave resetten",
2679
+ zoom: "Zoom",
2680
+ zoomIn: "Inzoomen",
2681
+ zoomOut: "Uitzoomen",
2682
+ detailClose: "Sluiten",
2683
+ detailPrompt: "Prompt",
2684
+ detailParams: "Generatieparameters",
2685
+ detailPosition: "Positie",
2686
+ detailPath: "Bestandspad",
2687
+ delete: "Verwijderen",
2688
+ deleteElement: "Element verwijderen",
2689
+ dropHint: "Sleep bestanden naar het canvas",
2690
+ uploading: "Bezig met uploaden…",
2691
+ settingsNav: "AIGC-canvas",
2692
+ settingsTitle: "AIGC-providers",
2693
+ settingsIntro: "Configureer een of meer AIGC-providers. Elke provider kan afzonderlijk worden ingesteld op naam, API-adres, sleutel, authenticatiemethode en aanroepinstructies. De agent leest de providerlijst via aigc_get_provider_info, roept de API aan via aigc_http_request (endpoint en apiKey automatisch toegevoegd) en plaatst de gegenereerde bestanden met aigc_canvas_place op het canvas.",
2694
+ settingsEmpty: "Geen providers geconfigureerd. Voeg er hieronder een toe.",
2695
+ settingsAdd: "+ Provider toevoegen",
2696
+ settingsLoading: "Laden…",
2697
+ settingsError: "Fout",
2698
+ "row.id": "ID",
2699
+ "row.name": "Naam",
2700
+ "row.endpoint": "API-adres",
2701
+ "row.apiKey": "API-sleutel",
2702
+ "row.instructions": "Aanroepinstructies",
2703
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2704
+ "row.namePlaceholder": "Weergavenaam (bijv. Volcano Engine)",
2705
+ "row.endpointPlaceholder": "stub://aigc-backend",
2706
+ "row.apiKeyPlaceholder": "sk-...",
2707
+ "row.instructionsPlaceholder": "De agent schrijft deze wanneer je de provider initialiseert (klik op \"Initialiseren\" op de kaart)...",
2708
+ "row.idHint": "Kleine letters, cijfers, koppeltekens; moet met een letter beginnen. Wordt gebruikt als provider_id-parameter voor aigc_http_request",
2709
+ "row.endpointDesc": "API-adres van de provider. Gebruik stub://aigc-backend voor de ingebouwde stub (synthetische testmedia, geen echte API-aanroepen)",
2710
+ "row.apiKeyDesc": "API-sleutel van de provider. Niet nodig voor de stub-backend. De agent ziet de sleutel nooit — aigc_http_request voegt hem automatisch toe",
2711
+ "row.instructionsDesc": "De agent leest dit veld via de tool aigc_get_provider_info om te bepalen hoe de API van de provider moet worden aangeroepen",
2712
+ "row.instructionsHint": "💡 Klik op \"Initialiseren\" op de kaart: de agent test de API met aigc_http_request en schrijft de instructies zelf",
2713
+ "row.save": "Opslaan",
2714
+ "row.delete": "Verwijderen",
2715
+ "row.deleteConfirm": "Deze provider verwijderen?",
2716
+ "row.expand": "Uitvouwen",
2717
+ "row.collapse": "Inklappen",
2718
+ "row.create": "Maken",
2719
+ "row.cancel": "Annuleren",
2720
+ "row.init": "Initialiseren",
2721
+ "row.initPrompt": "Initialiseer de AIGC-provider \"{name}\" (id: {id}): roep eerst aigc_get_provider_info aan om de configuratie te zien, test daarna de API met aigc_http_request (de apiKey wordt automatisch toegevoegd — geef hem zelf niet door) en roep ten slotte aigc_provider_set_instructions aan om de aanroepinstructies op te slaan.",
2722
+ "row.auth": "Authenticatieschema",
2723
+ "row.authBearer": "Bearer-header",
2724
+ "row.authHeader": "Eigen header",
2725
+ "row.authQuery": "URL-queryparameter",
2726
+ "row.authDesc": "Hoe aigc_http_request de apiKey toevoegt. Standaard: Authorization: Bearer <key>. Kies je een eigen header of URL-parameter, vul dan de naam in",
2727
+ "badge.builtin": "ingebouwd",
2728
+ "badge.stub": "stubmodus",
2729
+ "badge.real": "echte API",
2730
+ "badge.default": "standaard"
2731
+ },
2732
+ sv: {
2733
+ tabTitle: "AIGC-canvas",
2734
+ title: "AIGC-canvas",
2735
+ empty: "Canvasen är tom. Agenten anropar leverantörens API:er via aigc_http_request för att generera tillgångar och placerar sedan de genererade filerna var som helst på canvasen med aigc_canvas_place.",
2736
+ emptyHint: "Konfigurera en leverantör i inställningsfliken till höger och be sedan agenten att generera något.",
2737
+ prompt: "Prompt",
2738
+ image: "Bild",
2739
+ video: "Video",
2740
+ audio: "Ljud",
2741
+ meta: "Metadata",
2742
+ generatedBy: "Genereringsmetod",
2743
+ edgeCount: "kanter",
2744
+ elementCount: "element",
2745
+ loadError: "Det gick inte att läsa in canvasen",
2746
+ disconnected: "Frånkopplad, återansluter…",
2747
+ reconnecting: "Återansluter…",
2748
+ refresh: "Uppdatera",
2749
+ resetView: "Återställ vy",
2750
+ zoom: "Zooma",
2751
+ zoomIn: "Zooma in",
2752
+ zoomOut: "Zooma ut",
2753
+ detailClose: "Stäng",
2754
+ detailPrompt: "Prompt",
2755
+ detailParams: "Genereringsparametrar",
2756
+ detailPosition: "Position",
2757
+ detailPath: "Filsökväg",
2758
+ delete: "Ta bort",
2759
+ deleteElement: "Ta bort element",
2760
+ dropHint: "Släpp filer på canvasen",
2761
+ uploading: "Laddar upp…",
2762
+ settingsNav: "AIGC-canvas",
2763
+ settingsTitle: "AIGC-leverantörer",
2764
+ settingsIntro: "Konfigurera en eller flera AIGC-leverantörer. Varje leverantör kan ställas in med eget namn, API-adress, nyckel, autentiseringsmetod och anropssinstruktioner. Agenten läser leverantörslistan via aigc_get_provider_info, anropar API:et via aigc_http_request (endpoint och apiKey läggs till automatiskt) och placerar de genererade filerna på canvasen med aigc_canvas_place.",
2765
+ settingsEmpty: "Inga leverantörer konfigurerade. Lägg till en nedan.",
2766
+ settingsAdd: "+ Lägg till leverantör",
2767
+ settingsLoading: "Läser in…",
2768
+ settingsError: "Fel",
2769
+ "row.id": "ID",
2770
+ "row.name": "Namn",
2771
+ "row.endpoint": "API-adress",
2772
+ "row.apiKey": "API-nyckel",
2773
+ "row.instructions": "Anropssinstruktioner",
2774
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2775
+ "row.namePlaceholder": "Visningsnamn (t.ex. Volcano Engine)",
2776
+ "row.endpointPlaceholder": "stub://aigc-backend",
2777
+ "row.apiKeyPlaceholder": "sk-...",
2778
+ "row.instructionsPlaceholder": "Agenten skriver dem när du initierar leverantören (klicka på \"Initiera\" på kortet)...",
2779
+ "row.idHint": "Gemener, siffror, bindestreck; måste börja med en bokstav. Används som provider_id-parameter till aigc_http_request",
2780
+ "row.endpointDesc": "Leverantörens API-adress. Använd stub://aigc-backend för den inbyggda stubben (syntetiska testmedier, inga riktiga API-anrop)",
2781
+ "row.apiKeyDesc": "Leverantörens API-nyckel. Behövs inte för stub-backend. Agenten ser aldrig nyckeln — aigc_http_request lägger till den automatiskt",
2782
+ "row.instructionsDesc": "Agenten läser detta fält via verktyget aigc_get_provider_info för att avgöra hur leverantörens API ska anropas",
2783
+ "row.instructionsHint": "💡 Klicka på \"Initiera\" på kortet: agenten sondar API:et med aigc_http_request och skriver instruktionerna själv",
2784
+ "row.save": "Spara",
2785
+ "row.delete": "Ta bort",
2786
+ "row.deleteConfirm": "Ta bort den här leverantören?",
2787
+ "row.expand": "Expandera",
2788
+ "row.collapse": "Fäll ihop",
2789
+ "row.create": "Skapa",
2790
+ "row.cancel": "Avbryt",
2791
+ "row.init": "Initiera",
2792
+ "row.initPrompt": "Initiera AIGC-leverantören \"{name}\" (id: {id}): anropa först aigc_get_provider_info för att se konfigurationen, sondera sedan API:et med aigc_http_request (apiKey läggs till automatiskt — skicka inte den själv) och anropa slutligen aigc_provider_set_instructions för att spara anropssinstruktionerna.",
2793
+ "row.auth": "Autentiseringsschema",
2794
+ "row.authBearer": "Bearer-header",
2795
+ "row.authHeader": "Egen header",
2796
+ "row.authQuery": "URL-frågeparameter",
2797
+ "row.authDesc": "Hur aigc_http_request lägger till apiKey. Standard: Authorization: Bearer <key>. För egen header eller URL-parameter fyller du i namnet",
2798
+ "badge.builtin": "inbyggd",
2799
+ "badge.stub": "stub-läge",
2800
+ "badge.real": "riktigt API",
2801
+ "badge.default": "standard"
2802
+ },
2803
+ pl: {
2804
+ tabTitle: "Płótno AIGC",
2805
+ title: "Płótno AIGC",
2806
+ empty: "Płótno jest puste. Agent wywołuje API dostawcy przez aigc_http_request, aby wygenerować zasoby, a następnie umieszcza wygenerowane pliki w dowolnym miejscu na płótnie za pomocą aigc_canvas_place.",
2807
+ emptyHint: "Skonfiguruj dostawcę w zakładce ustawień po prawej, a następnie poproś agenta o wygenerowanie czegoś.",
2808
+ prompt: "Komunikat",
2809
+ image: "Obraz",
2810
+ video: "Wideo",
2811
+ audio: "Audio",
2812
+ meta: "Metadane",
2813
+ generatedBy: "Metoda generowania",
2814
+ edgeCount: "krawędzie",
2815
+ elementCount: "elementy",
2816
+ loadError: "Nie udało się załadować płótna",
2817
+ disconnected: "Rozłączono, ponawianie połączenia…",
2818
+ reconnecting: "Ponawianie połączenia…",
2819
+ refresh: "Odśwież",
2820
+ resetView: "Resetuj widok",
2821
+ zoom: "Zoom",
2822
+ zoomIn: "Powiększ",
2823
+ zoomOut: "Pomniejsz",
2824
+ detailClose: "Zamknij",
2825
+ detailPrompt: "Komunikat",
2826
+ detailParams: "Parametry generowania",
2827
+ detailPosition: "Pozycja",
2828
+ detailPath: "Ścieżka pliku",
2829
+ delete: "Usuń",
2830
+ deleteElement: "Usuń element",
2831
+ dropHint: "Przeciągnij pliki na płótno",
2832
+ uploading: "Przesyłanie…",
2833
+ settingsNav: "Płótno AIGC",
2834
+ settingsTitle: "Dostawcy AIGC",
2835
+ settingsIntro: "Skonfiguruj jednego lub więcej dostawców AIGC. Dla każdego dostawcy można osobno ustawić nazwę, adres API, klucz, metodę uwierzytelniania i instrukcje wywołania. Agent odczytuje listę dostawców przez aigc_get_provider_info, wywołuje API przez aigc_http_request (endpoint i apiKey dołączane automatycznie) i umieszcza wygenerowane pliki na płótnie za pomocą aigc_canvas_place.",
2836
+ settingsEmpty: "Nie skonfigurowano żadnych dostawców. Dodaj jednego poniżej.",
2837
+ settingsAdd: "+ Dodaj dostawcę",
2838
+ settingsLoading: "Ładowanie…",
2839
+ settingsError: "Błąd",
2840
+ "row.id": "ID",
2841
+ "row.name": "Nazwa",
2842
+ "row.endpoint": "Adres API",
2843
+ "row.apiKey": "Klucz API",
2844
+ "row.instructions": "Instrukcje wywołania",
2845
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2846
+ "row.namePlaceholder": "Nazwa wyświetlana (np. Volcano Engine)",
2847
+ "row.endpointPlaceholder": "stub://aigc-backend",
2848
+ "row.apiKeyPlaceholder": "sk-...",
2849
+ "row.instructionsPlaceholder": "Agent pisze je, gdy inicjalizujesz dostawcę (kliknij „Inicjalizuj” na karcie)...",
2850
+ "row.idHint": "Małe litery, cyfry, łączniki; musi zaczynać się od litery. Używany jako parametr provider_id dla aigc_http_request",
2851
+ "row.endpointDesc": "Adres API dostawcy. Użyj stub://aigc-backend dla wbudowanego stuba (syntetyczne media testowe, bez prawdziwych wywołań API)",
2852
+ "row.apiKeyDesc": "Klucz API dostawcy. Niepotrzebny dla backendu stub. Agent nigdy go nie widzi — aigc_http_request dołącza go automatycznie",
2853
+ "row.instructionsDesc": "Agent odczytuje to pole przez narzędzie aigc_get_provider_info, aby zdecydować, jak wywołać API dostawcy",
2854
+ "row.instructionsHint": "💡 Kliknij „Inicjalizuj” na karcie: agent sonduje API przez aigc_http_request i sam pisze instrukcje",
2855
+ "row.save": "Zapisz",
2856
+ "row.delete": "Usuń",
2857
+ "row.deleteConfirm": "Usunąć tego dostawcę?",
2858
+ "row.expand": "Rozwiń",
2859
+ "row.collapse": "Zwiń",
2860
+ "row.create": "Utwórz",
2861
+ "row.cancel": "Anuluj",
2862
+ "row.init": "Inicjalizuj",
2863
+ "row.initPrompt": "Zainicjalizuj dostawcę AIGC „{name}” (id: {id}): najpierw wywołaj aigc_get_provider_info, aby zobaczyć jego konfigurację, następnie przesondaj jego API przez aigc_http_request (apiKey jest dołączany automatycznie — nie przekazuj go sam), a na koniec wywołaj aigc_provider_set_instructions, aby zapisać instrukcje wywołania.",
2864
+ "row.auth": "Schemat uwierzytelniania",
2865
+ "row.authBearer": "Nagłówek Bearer",
2866
+ "row.authHeader": "Własny nagłówek",
2867
+ "row.authQuery": "Parametr zapytania URL",
2868
+ "row.authDesc": "Jak aigc_http_request dołącza apiKey. Domyślnie: Authorization: Bearer <key>. W przypadku własnego nagłówka lub parametru URL podaj nazwę",
2869
+ "badge.builtin": "wbudowany",
2870
+ "badge.stub": "tryb stub",
2871
+ "badge.real": "prawdziwe API",
2872
+ "badge.default": "domyślny"
2873
+ },
2874
+ "zh-HK": {
2875
+ tabTitle: "AIGC 畫布",
2876
+ title: "AIGC 畫布",
2877
+ empty: "畫布是空的。模型透過 aigc_http_request 呼叫供應商 API 產生素材,再用 aigc_canvas_place 把檔案放到畫布的任意位置。",
2878
+ emptyHint: "可在右側設定頁配置供應商,然後讓模型開始產生。",
2879
+ prompt: "提示詞",
2880
+ image: "圖片",
2881
+ video: "影片",
2882
+ audio: "音頻",
2883
+ meta: "中繼資料",
2884
+ generatedBy: "產生方式",
2885
+ edgeCount: "條連線",
2886
+ elementCount: "個元素",
2887
+ loadError: "載入畫布失敗",
2888
+ disconnected: "已中斷連線,正在重連…",
2889
+ reconnecting: "正在重連…",
2890
+ refresh: "重新整理",
2891
+ resetView: "重設檢視",
2892
+ zoom: "縮放",
2893
+ zoomIn: "放大",
2894
+ zoomOut: "縮小",
2895
+ detailClose: "關閉",
2896
+ detailPrompt: "提示詞",
2897
+ detailParams: "產生參數",
2898
+ detailPosition: "位置",
2899
+ detailPath: "檔案路徑",
2900
+ delete: "刪除",
2901
+ deleteElement: "刪除元素",
2902
+ dropHint: "拖放檔案到畫布",
2903
+ uploading: "上載中…",
2904
+ settingsNav: "AIGC 畫布",
2905
+ settingsTitle: "AIGC 供應商",
2906
+ settingsIntro: "設定一個或多個 AIGC 供應商。每個供應商可獨立設定名稱、API 位址、金鑰、驗證方式和呼叫說明。模型透過 aigc_get_provider_info 讀取供應商列表,用 aigc_http_request 呼叫 API(自動攜帶 endpoint 和 apiKey),產生的檔案用 aigc_canvas_place 放到畫布上。",
2907
+ settingsEmpty: "尚無供應商,請在下方新增。",
2908
+ settingsAdd: "+ 新增供應商",
2909
+ settingsLoading: "載入中…",
2910
+ settingsError: "錯誤",
2911
+ "row.id": "ID",
2912
+ "row.name": "名稱",
2913
+ "row.endpoint": "API 位址",
2914
+ "row.apiKey": "API 金鑰",
2915
+ "row.instructions": "呼叫說明",
2916
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2917
+ "row.namePlaceholder": "顯示名稱(例如「火山引擎」)",
2918
+ "row.endpointPlaceholder": "stub://aigc-backend",
2919
+ "row.apiKeyPlaceholder": "sk-...",
2920
+ "row.instructionsPlaceholder": "呼叫說明由 Agent 初始化供應商時自動撰寫(點擊卡片上的「初始化」按鈕)...",
2921
+ "row.idHint": "小寫字母、數字、連字號;必須以字母開頭。作為 provider_id 傳給 aigc_http_request",
2922
+ "row.endpointDesc": "供應商 API 位址。填 stub://aigc-backend 使用內建 stub(合成測試媒體,不呼叫真實 API)",
2923
+ "row.apiKeyDesc": "供應商 API 金鑰。stub 後端不需要。模型看不到金鑰,由 aigc_http_request 自動附加",
2924
+ "row.instructionsDesc": "Agent 透過 aigc_get_provider_info 工具讀取此欄位,決定如何呼叫該供應商的 API",
2925
+ "row.instructionsHint": "💡 點擊卡片上的「初始化」按鈕,Agent 會用 aigc_http_request 探測 API 並自動撰寫呼叫說明",
2926
+ "row.save": "儲存",
2927
+ "row.delete": "刪除",
2928
+ "row.deleteConfirm": "確定刪除此供應商?",
2929
+ "row.expand": "展開",
2930
+ "row.collapse": "收起",
2931
+ "row.create": "建立",
2932
+ "row.cancel": "取消",
2933
+ "row.init": "初始化",
2934
+ "row.initPrompt": "請幫我初始化 AIGC 供應商「{name}」(id: {id}):先用 aigc_get_provider_info 查看設定,再用 aigc_http_request 探測它的 API(apiKey 會自動附加,無需手動傳入),最後呼叫 aigc_provider_set_instructions 把呼叫說明儲存下來,方便以後直接使用。",
2935
+ "row.auth": "驗證方式",
2936
+ "row.authBearer": "Bearer 標頭",
2937
+ "row.authHeader": "自訂標頭",
2938
+ "row.authQuery": "URL 參數",
2939
+ "row.authDesc": "aigc_http_request 自動附加 apiKey 的方式。預設 Authorization: Bearer <key>;選擇自訂標頭或 URL 參數時需填寫名稱",
2940
+ "badge.builtin": "內建",
2941
+ "badge.stub": "stub 模式",
2942
+ "badge.real": "真實 API",
2943
+ "badge.default": "預設"
2944
+ },
2945
+ "zh-TW": {
2946
+ tabTitle: "AIGC 畫布",
2947
+ title: "AIGC 畫布",
2948
+ empty: "畫布是空的。模型透過 aigc_http_request 呼叫供應商 API 產生素材,再用 aigc_canvas_place 把檔案放到畫布的任意位置。",
2949
+ emptyHint: "可在右側設定頁配置供應商,然後讓模型開始產生。",
2950
+ prompt: "提示詞",
2951
+ image: "圖片",
2952
+ video: "影片",
2953
+ audio: "音訊",
2954
+ meta: "中繼資訊",
2955
+ generatedBy: "產生方式",
2956
+ edgeCount: "條連線",
2957
+ elementCount: "個元素",
2958
+ loadError: "載入畫布失敗",
2959
+ disconnected: "已中斷連線,正在重連…",
2960
+ reconnecting: "正在重連…",
2961
+ refresh: "重新整理",
2962
+ resetView: "重設檢視",
2963
+ zoom: "縮放",
2964
+ zoomIn: "放大",
2965
+ zoomOut: "縮小",
2966
+ detailClose: "關閉",
2967
+ detailPrompt: "提示詞",
2968
+ detailParams: "產生參數",
2969
+ detailPosition: "位置",
2970
+ detailPath: "檔案路徑",
2971
+ delete: "刪除",
2972
+ deleteElement: "刪除元素",
2973
+ dropHint: "拖放檔案到畫布",
2974
+ uploading: "上傳中…",
2975
+ settingsNav: "AIGC 畫布",
2976
+ settingsTitle: "AIGC 供應商",
2977
+ settingsIntro: "設定一個或多個 AIGC 供應商。每個供應商可獨立設定名稱、API 位址、金鑰、驗證方式和呼叫說明。模型透過 aigc_get_provider_info 讀取供應商列表,用 aigc_http_request 呼叫 API(自動攜帶 endpoint 和 apiKey),產生的檔案用 aigc_canvas_place 放到畫布上。",
2978
+ settingsEmpty: "尚無供應商,請在下方新增。",
2979
+ settingsAdd: "+ 新增供應商",
2980
+ settingsLoading: "載入中…",
2981
+ settingsError: "錯誤",
2982
+ "row.id": "ID",
2983
+ "row.name": "名稱",
2984
+ "row.endpoint": "API 位址",
2985
+ "row.apiKey": "API 金鑰",
2986
+ "row.instructions": "呼叫說明",
2987
+ "row.idPlaceholder": "volcano / jimeng / minimax",
2988
+ "row.namePlaceholder": "顯示名稱(如「火山引擎」)",
2989
+ "row.endpointPlaceholder": "stub://aigc-backend",
2990
+ "row.apiKeyPlaceholder": "sk-...",
2991
+ "row.instructionsPlaceholder": "呼叫說明由 Agent 初始化供應商時自動撰寫(點擊卡片上的「初始化」按鈕)...",
2992
+ "row.idHint": "小寫字母、數字、連字號;必須以字母開頭。作為 provider_id 傳給 aigc_http_request",
2993
+ "row.endpointDesc": "供應商 API 位址。填 stub://aigc-backend 使用內建 stub(合成測試媒體,不呼叫真實 API)",
2994
+ "row.apiKeyDesc": "供應商 API 金鑰。stub 後端不需要。模型看不到金鑰,由 aigc_http_request 自動附加",
2995
+ "row.instructionsDesc": "Agent 透過 aigc_get_provider_info 工具讀取此欄位,決定如何呼叫該供應商的 API",
2996
+ "row.instructionsHint": "💡 點擊卡片上的「初始化」按鈕,Agent 會用 aigc_http_request 探測 API 並自動撰寫呼叫說明",
2997
+ "row.save": "儲存",
2998
+ "row.delete": "刪除",
2999
+ "row.deleteConfirm": "確定刪除此供應商?",
3000
+ "row.expand": "展開",
3001
+ "row.collapse": "收合",
3002
+ "row.create": "建立",
3003
+ "row.cancel": "取消",
3004
+ "row.init": "初始化",
3005
+ "row.initPrompt": "請幫我初始化 AIGC 供應商「{name}」(id: {id}):先用 aigc_get_provider_info 查看設定,再用 aigc_http_request 探測它的 API(apiKey 會自動附加,無需手動傳入),最後呼叫 aigc_provider_set_instructions 把呼叫說明儲存下來,方便以後直接使用。",
3006
+ "row.auth": "驗證方式",
3007
+ "row.authBearer": "Bearer 標頭",
3008
+ "row.authHeader": "自訂標頭",
3009
+ "row.authQuery": "URL 參數",
3010
+ "row.authDesc": "aigc_http_request 自動附加 apiKey 的方式。預設 Authorization: Bearer <key>;選擇自訂標頭或 URL 參數時需填寫名稱",
3011
+ "badge.builtin": "內建",
3012
+ "badge.stub": "stub 模式",
3013
+ "badge.real": "真實 API",
3014
+ "badge.default": "預設"
3015
+ },
3016
+ "zh-MO": {
3017
+ tabTitle: "AIGC 畫布",
3018
+ title: "AIGC 畫布",
3019
+ empty: "畫布是空的。模型透過 aigc_http_request 呼叫供應商 API 產生素材,再用 aigc_canvas_place 把檔案放到畫布的任意位置。",
3020
+ emptyHint: "可在右側設定頁配置供應商,然後讓模型開始產生。",
3021
+ prompt: "提示詞",
3022
+ image: "圖片",
3023
+ video: "影片",
3024
+ audio: "音頻",
3025
+ meta: "中繼資料",
3026
+ generatedBy: "產生方式",
3027
+ edgeCount: "條連線",
3028
+ elementCount: "個元素",
3029
+ loadError: "載入畫布失敗",
3030
+ disconnected: "已中斷連線,正在重連…",
3031
+ reconnecting: "正在重連…",
3032
+ refresh: "重新整理",
3033
+ resetView: "重設檢視",
3034
+ zoom: "縮放",
3035
+ zoomIn: "放大",
3036
+ zoomOut: "縮小",
3037
+ detailClose: "關閉",
3038
+ detailPrompt: "提示詞",
3039
+ detailParams: "產生參數",
3040
+ detailPosition: "位置",
3041
+ detailPath: "檔案路徑",
3042
+ delete: "刪除",
3043
+ deleteElement: "刪除元素",
3044
+ dropHint: "拖放檔案到畫布",
3045
+ uploading: "上載中…",
3046
+ settingsNav: "AIGC 畫布",
3047
+ settingsTitle: "AIGC 供應商",
3048
+ settingsIntro: "設定一個或多個 AIGC 供應商。每個供應商可獨立設定名稱、API 位址、金鑰、驗證方式和呼叫說明。模型透過 aigc_get_provider_info 讀取供應商列表,用 aigc_http_request 呼叫 API(自動攜帶 endpoint 和 apiKey),產生的檔案用 aigc_canvas_place 放到畫布上。",
3049
+ settingsEmpty: "尚無供應商,請在下方新增。",
3050
+ settingsAdd: "+ 新增供應商",
3051
+ settingsLoading: "載入中…",
3052
+ settingsError: "錯誤",
3053
+ "row.id": "ID",
3054
+ "row.name": "名稱",
3055
+ "row.endpoint": "API 位址",
3056
+ "row.apiKey": "API 金鑰",
3057
+ "row.instructions": "呼叫說明",
3058
+ "row.idPlaceholder": "volcano / jimeng / minimax",
3059
+ "row.namePlaceholder": "顯示名稱(如「火山引擎」)",
3060
+ "row.endpointPlaceholder": "stub://aigc-backend",
3061
+ "row.apiKeyPlaceholder": "sk-...",
3062
+ "row.instructionsPlaceholder": "呼叫說明由 Agent 初始化供應商時自動撰寫(點擊卡片上的「初始化」按鈕)...",
3063
+ "row.idHint": "小寫字母、數字、連字號;必須以字母開頭。作為 provider_id 傳給 aigc_http_request",
3064
+ "row.endpointDesc": "供應商 API 位址。填 stub://aigc-backend 使用內建 stub(合成測試媒體,不呼叫真實 API)",
3065
+ "row.apiKeyDesc": "供應商 API 金鑰。stub 後端不需要。模型看不到金鑰,由 aigc_http_request 自動附加",
3066
+ "row.instructionsDesc": "Agent 透過 aigc_get_provider_info 工具讀取此欄位,決定如何呼叫該供應商的 API",
3067
+ "row.instructionsHint": "💡 點擊卡片上的「初始化」按鈕,Agent 會用 aigc_http_request 探測 API 並自動撰寫呼叫說明",
3068
+ "row.save": "儲存",
3069
+ "row.delete": "刪除",
3070
+ "row.deleteConfirm": "確定刪除此供應商?",
3071
+ "row.expand": "展開",
3072
+ "row.collapse": "收起",
3073
+ "row.create": "建立",
3074
+ "row.cancel": "取消",
3075
+ "row.init": "初始化",
3076
+ "row.initPrompt": "請幫我初始化 AIGC 供應商「{name}」(id: {id}):先用 aigc_get_provider_info 查看設定,再用 aigc_http_request 探測它的 API(apiKey 會自動附加,無需手動傳入),最後呼叫 aigc_provider_set_instructions 把呼叫說明儲存下來,方便以後直接使用。",
3077
+ "row.auth": "驗證方式",
3078
+ "row.authBearer": "Bearer 標頭",
3079
+ "row.authHeader": "自訂標頭",
3080
+ "row.authQuery": "URL 參數",
3081
+ "row.authDesc": "aigc_http_request 自動附加 apiKey 的方式。預設 Authorization: Bearer <key>;選擇自訂標頭或 URL 參數時需填寫名稱",
3082
+ "badge.builtin": "內建",
3083
+ "badge.stub": "stub 模式",
3084
+ "badge.real": "真實 API",
3085
+ "badge.default": "預設"
3086
+ }
3087
+ };
3088
+ //#endregion
1736
3089
  //#region src/client/index.tsx
1737
- /** Services required before mounting. */
3090
+ /** Services required before mounting. `betterSidebar` is intentionally NOT
3091
+ * listed here — this plugin extends `dsh-better-sidebar` when present, but
3092
+ * must remain loadable without it (defensive lookup via `ctx.get(...)`). */
1738
3093
  const inject = [
1739
- "betterSidebar",
1740
3094
  "slots",
1741
3095
  "locale",
1742
3096
  "conversation"
@@ -1746,8 +3100,23 @@ window.__ModuleLoader__.load({
1746
3100
  zh,
1747
3101
  en
1748
3102
  }), "dsh-aigc-canvas: dictionaries");
3103
+ ctx.effect(() => {
3104
+ let dispose;
3105
+ const sync = () => {
3106
+ dispose?.();
3107
+ dispose = void 0;
3108
+ const store = ctx.get("betterLocale");
3109
+ if (store !== void 0) dispose = store.register(NS, dicts);
3110
+ };
3111
+ sync();
3112
+ const unsubscribe = ctx.locale.subscribe(sync);
3113
+ return () => {
3114
+ unsubscribe();
3115
+ dispose?.();
3116
+ };
3117
+ }, "dsh-aigc-canvas: better-locale override dicts");
1749
3118
  const t = ctx.locale.bind(NS);
1750
- const betterSidebar = ctx.betterSidebar;
3119
+ const betterSidebar = ctx.get("betterSidebar");
1751
3120
  if (betterSidebar !== void 0) ctx.effect(() => betterSidebar.registerTab({
1752
3121
  id: "aigc-canvas:main",
1753
3122
  title: () => t("tabTitle"),